thomasmahler's Forum Posts

  • I guess it makes sense to show and discuss some of the worst games ever - so that people can learn how not to do it, so that there are no excuses if you actually ship shit, cause there's nothing worse than being a shit shipper.

    Probably one of the worst games ever is the NES version of Dragons Lair. Let's take a look at it:

    http://video.google.com/videoplay?docid ... 6889378692

    Can you believe a profit-oriented organization actually shipped that shit?

    Another 'gem' is the SNES version of Pitfighter:

    A buddy of mine bought that way back for 90 bucks! o_O

    Oh, there's so much to learn here...

  • Why not just make the function global then you dont need it in every layout.

    That's what I am doing. What made you think that I set them to local?

    Edit: Ah, I see, what I wrote was kinda stupid. What I meant was that I need to use function events coupled together with another event now for timed events all the time, which makes things a little more cluttered. If the 'execute it for 400 ms, then set back to what it was before' condition was in there, it'd be simpler.

  • You could just do

    "Attack key is down." -> Set attacking to 1

    else -> attacking = 0

    I know. But that's the catch. Usually, for attacking, you don't want to hold the attack key down.

    You want to press it once, see the attack animation do its thing and set the value back once its done. So you need to time it.

    What I've set-up is:

    1) On "Attack" pressed

    + Is global variable 'Attacking' Equal to 0

    -> Set Animation to Attacking

    Play current animation

    Start ignoring user input

    System: Set gv 'Attacking to 1

    Function: Call function "ReturnControl" after 400ms

    Function "Call function "SetAttackBack" after 400ms

    2) On Function "ReturnControl" -> Player: Stop ignoring user input

    3) On Function "SetAttackBack" -> System: Set gv 'Attacking' to 0

    So it'd be cool if I wouldn't need the function object in every layout just to set the values back.

    Also, the cool thing when you time it is that you can either let the animation play all its frames or interrupt it beforehand, cause if the animation needs 800ms to complete, but you get your input back after 400ms, you can interrupt it and keep going - that's exactly what every Castlevania title is doing, for example.

  • 38) Thanks to Deadeye I know how to toggle events now based on timing, but it would be cool if we could do something like this natively without workarounds:

    If Attack is pressed - Set 'Attacking' Global Variable to 1 for 300ms

    • Get it? Means, it'd be cool if we could time actions like that. And once the time runs out, the value that has been set will be set back to what it was before.
  • Yeah, I'm not saying that it's feasible - I'm just saying that it could be an interesting thing to study. I will do all the character work in 3d and render it out into sprites anyway. So I can make use of whatever Maya has to offer, even a bit of clothsim with ncloth, since it'll be pre-rendered anyway. But we''ll see, that's still wide in the open and you'd need to blend animations together in a smart way and streamline them together in a smart way. If the simple prototype of that doesn't give me something very interesting, I'm gonna drop the idea, because it'd add a rather big layer of complexity.

    Could you upload the thing you've done through interpolations? I'm all ears for whatever people have done in this area so far.

  • Right. It's just about what you can come up with, you can give it the needed polish later on.

    This is what Braid looked like before an artist came along to polish it up:

    http://www.davidhellman.net/blog/wp-con ... t_1_01.jpg

    The cool thing is that the game was already pretty much the same in this crude version. And there's no reason you can't test gameplay that way.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Haha, no I do this sometimes to get people interested and push things even further together with me.

    So, I haven't got a working version of that stuff yet, it's still just a concept (hence it's 'shit'), but I don't see why it wouldn't work right now, except that it's quite a bit more complex than the traditional stuff. If someone else here already played around with systems like that, that'd be the point where that person could shine and we could push each other further.

    Everyone can use any idea I come up with and if we help one another to push those concepts into actual design, it's a win win.

  • Also, because I don't always wanna spam the forums with that shit and want to keep those ideas centralized later on, I quickly created a blogger site:

    http://banana-place.blogspot.com/

    I'll probably still build up a dedicated site later on, but building sites is still a bitch and there's more important stuff to tackle atm.

    I'll just put all that shit on there, so if you're interested in my ideas and where all of this is going, rss it

  • So, lately I've been thinking about how to plan out the character animation for my 2d side-scroller.

    Now, because I want to do things a little differently than what I've seen so far in terms of 2d games, I also want to change the way you're controlling your character - meaning, I want it to feel more believable than your typical side-scroller using momentum as a key.

    All of this is totally based on whether or not this is feasible in the end. If it's too complicated or feels like crap, I'm gonna cut it, but I'd love to explore this a bit more.

    Now, to get an image into your head, let's compare what it usually looks / feels like when you're controlling the player in various games:

    Castlevania:

    Subscribe to Construct videos now

    The controls are VERY direct. There's no momentum building up in movements, the character goes from walking to running without any delay, same with jumping, turning around, etc.

    Then theres' Another World / Heart of Darkness / Flashback, etc.:

    Subscribe to Construct videos now

    - Another World

    Subscribe to Construct videos now

    - Flashback

    Subscribe to Construct videos now

    - Heart of Darkness (Probably the best example in this category)

    This was basically the first try to give controls more believability. There already was a sense of momentum being conveyed, if ever so slightly. For Another World and Flashback, they used Rotoscoping, which explains why they changed the controls a bit. Heart of Darkness took it a step further. The controls weren't really 100% direct, the animations were darn smooth and awesome for its time and as you see in the video, controlling the character feels very different than controlling your typical 2d character like Mario or your Castlevania Alter Ego.

    Limbo copied those games and headed into a similar direction:

    http://www.limbogame.org/

    This is a tech demo and was never actually real time (so the character animations are actually 'just' animated / pre-rendered for each situation), but it's darn fascinating to study the animations and to wonder if that stuff could still be somehow done in a 2d game, where the player has to have direct access over the character all the time.

    Now, let's look at 3d for a second. One of the games that had shitty and awesome controls at the same time was Shadow of the Colossus. Let's take a look at the first boss battle (no spoilers here, that's like 5 minutes into the game):

    Now, as you see, the controls are very different. It always needs some time to build up momentum and climbing a colossus is a real challenge because of the momentum. You have to keep your grip and balance yourself out, momentum is _always_ an issue. It felt believable, it felt like no other title before, the controls were a bit too sluggish and awesome at the same time.

    Now, I know there are a lot of people out there who just hate it when there's a slight lag in the character controls. Still, I think for a lot of games, especially in a field that has been explored SO often before, changing the controls can fundamentally change the experience. I'll back that up with some concepts and a prototype if I get it to work later on, but we'll see.

    I think it's safe to say that absolutely direct controls feel a lot more arcade-y, oldschool, like Castlevania / Mario / MegaMan. Games where momentum has to be built up often head into a very different direction.

    Now, the question is how we'd properly build up momentum using the tools and resources we have. So, in a 2d game, how could we manipulate the controls so that momentum could be built up?

    My direct guess is that we'll 'just' need to balance animation, acceleration values and hook that up to the input. So the input would either be a digital scheme (like in the traditional sense, if you press the digipad left / right you simply walk, if you press another key + left / right you run) or an analogue scheme, so if you push the analogue stick into a certain direction to a certain degree, you'll walk and if you push it all the way, you'll run.

    So!

    A simple example of how momentum could be integrated into the controls would be this:

    (I also created some very simple, crude graphs for the people that need a visual aid, just trying to get my point across)

    I press right on my digipad and my character starts walking. We only build in a very slight sense of momentum into the walking phase, cause you'd want walking to be direct. You don't want to feel a lag every single time you move your character. So it'd probably look like this:

    <img src="http://thomasmahler.com/files/construct/images/walking.jpg">

    Now comes the interesting bit:

    You hit the run key and keep pressing right on the digipad. 2 things happen: We swap animations from a walking animation cycle to a transition cycle that'd transition walking into running and we'd gradually build up speed. Once the transition animation is over, we switch to the full-blown run cycle. So, If the walking speed was 100, we now need 1000ms to go to 300 and our character is sprinting. Here's the graph again:

    <img src="http://thomasmahler.com/files/construct/images/running.jpg">

    Now - In order to not break the illusion of building up momentum, what happens if we stop now? If the player lets go of all keys, basically telling the program to stop heading into that direction, like letting go of the gas pedal and stepping onto the break pedal.

    We'd need a deceleration phase. If the player would come to an instant halt, we would completely break the illusion, so we'd need something like going from 300 to 0 in 1000ms again, having the player to have a stopping distance as well. So if you're running towards a cliff at full speed and you didn't plan in the stopping distance, you'll fall down even if you let go of all controls right before the cliff - because of the momentum that you build up during the sprint. Also, an interesting phenomenon when I'm sprinting is that I need quite a bit of time to decelerate, but once I'm at a certain point, I can pretty much get that instant halt. So we have a gradually decreasing curve, but at a certain point, we can almost instantly come to a stop. Here's the graph:

    <img src="http://thomasmahler.com/files/construct/images/deceleration.jpg">

    That was the shitty thing about 3d - the industry completely stopped all their 2d efforts and I'm pretty sure we still could have had some very cool, new control schemes and gameplay ideas based on controls that aren't complex per se, but more believable and are based on more complex systems than the simple, digital control schemes that we're still using in 2d games since the 8 bit era. If we'd scale this whole idea up and let characters interact with other characters or objects based on momentum, we could create very unique experiences that haven't been done before.

  • Piracy is a big problem and it hits indies especially hard (Seriously, copying a game that costs as much as a Pizza is just fucked up).

    I think the safest way at the moment would be to target locked platforms like PSN, WiiWare, XBLA, AppStore, etc. - set a lower price point and make your bet on many, many people buying it if it's actually any good.

    Releasing the game just like that without any protection if you've worked for months on it is not a very smart idea. If people can copy it easily, they will. If they can't, they won't. DRM is a lot of shit, really and it's definitely not the answer - but if you invest a lot into making sure that your creation is great, it's natural that you want people not to steal it.

  • Uh... private variables are gonna multiply like crazy. It is best if we leave them under respective objects they belong to.

    That's why you'd split apart the variables folder into two sub folders - global and private.

    Under private, you'd see the objects that actually have private variables assigned to them, so you could roll them out like a folder and you'd get access to their private variables.

    No biggie.

  • Cause you'd have every major control in one place. Wanna change a global variable? Do that in the projects bar. Wanna change a private variable? Do that in the projects bar.

    We could have a 'Variables' Folder with subMenus for 'Global' and 'Private'.

    Under global, we'd have all the global variables. Under 'Private', we'd see a list of objects that have private variables, which we could expand and create / remove pv's.

    Also, what about Function objects and accessing their keys? So we could directly set some keys in the function object in there and trigger them using events.

  • Rich, you're awesome. This'll make it _MUCH_ easier to organize things and keep them under control. Looks really clean and tidy to me.

    The families in there sound a little redundant, yeah. Especially since you could just set-up a hotkey for the family editor to pop up.

  • Yeah, I think the problem arises with systems with older gpus. I used multiply on some elements, which is done through a ps and the motion blur adds another problem on those systems.

    But that's nothing to worry, this was pretty much a non-optimized test - Most of the framework stuff is laid out now and I already have a lot of the tiles I need (tiles meaning bigger sized instances, not tiles in the sense of 8x8px tiles ), to build up the screens.

    I'm still playing around with how to go about getting really crisp, nice shadows for all the characters, but that's pretty much a post issue.

    Thanks for all the testing, guys!

  • 37) Animate along a path.

    I'm currently trying to put some birds / seagulls in the game and thought of this: It'd be really, really cool if we'd have a feature like in Maya / Max / After Effects or whatever where you could build a spline and then just let an object animate along that path.

    That could be very powerful for animation of all kind, especially for backgrounds. Setting a couple of curves on a layer in a couple of layouts and setting a random value for the intervals would really help making a scene come to life. Leafs, Birds, Dust, Sprites, Particles, etc. - could be used for anything.