UberLou's Forum Posts

  • I think a lot of people would just like basic 3d rendering and not a fully 3d engine. More of a 2.5d engine like Street Fighter 4, Shadow Complex, Smash Bros, the new Sonic 4, etc.

    I'm really interested in the 3d object. Would I be able to display 3d backgrounds with 2d characters? That would be completely awesome!

  • The cap file in this thread might help:

    It uses spawn points to create the player at different points.

  • This should get you started:

  • the main thing that I noticed was that you are still using a hidden collision box object for the player, rather than the built in masks.

    Oh good catch, I'll write that into my main post. I use a hidden collision box so that I can have control of it. If the player ducks or dodges I need to scale down the collision box. Also the hotspot for the mask needs to be at the base (which I forgot to do) so it scales downward. I'm not aware of a way to change or scale the built in collision mask but I haven't put much time into that feature.

  • Glad to see people are enjoying and understanding the tutorial. I was worried it wasn't clear enough.

    Very nice. Posted to madewithconstruct.tumblr.com

    Thanks GMG! You said in your post that there were some design decisions that weren't too clear for you. Anything specific that I can address?

    PART 4: ?

    *cough* hadoukens and various special attacks

    Hah, I initially wrote special moves for Part 4 but then took it off because it would be really tough

    UberLou: You are a game designer!

    Because you make a game. Ist just that easy. Everyone who thinks about a game or even makes one is a game designer.

    Hah, I guess thats true. Maybe I'll revise my sentence to say "I'm an unproven game designer."

  • The original Eventsheet had 7500+ and the Program was pretty much dead then, so I allready optimized it and reduced it down to 4500.

    Wow, what kind of game is this? My game is a Metroid type engine with most features I need completed already. This includes missions, chat\cinematics system, inventory system, saving\loading, multiple enemies, a boss battle, upgrades, multiple weapons, etc. and my biggest event sheet is 150 events. The whole demo is under 600 events. I can't imagine most people's games having sheets in the 1000's.

    Really, the only thing holding me back is the platform behavior jumping on slopes bug. And if that doesn't get fixed, I can just remake the levels and take out slopes. Not the best solution but it works.

    -Lou

  • This... actually makes me feel depressed. I wish SO MUCH I could've thought of this

    It's not really too original, everything is pretty much concepts from other game, zooming, combos etc. I just like to see if I can figure out how to do it too.

    have you ever worked on a full game before?

    I've tried to make full games in Gamemaker before but the coding always got too complicated for me to work on. I'm not much of a programmer so my "hacky" solutions for things we're always a pain to work with. I've been doing much better trying to make a full game in Construct. It's easier for my brain to handle Bug Army is the farthest I've gotten.

    and is this just going to be an example or an actual game...commercial? free?

    This was my first attempt at a game with Construct. Once I got into bone animation I stuck with that, mostly to save on VRAM because the amount of animations I wanted to do. So this is now just an example.

  • PS can you also upload the png files of the character used in the tutorial file?? i want to use them as reference sprites when i am trying to make walking animations.

    Thats a good idea, I'll put up all of the graphics files later on today. In the meantime you can do what lildragn said.

  • PART 1: CONTROLLING THE PLAYER

    Download tutorial file

    Player Variables:

    • dir: The dir variable can only be -1 (for facing left) or 1 (for facing right). I use it mostly for math equations, multiplying by dir to get a positive or negative value.
    • state1 and state2: The state variables tell you what the player is doing at any time. It makes things like organization and bug checking much easier. I normally use two state variables one for the base set of movement: standing, running, jumping, falling, getting hit, etc. The second state variable is used for whats playing on top of the base, usually attack type of actions. If state1=0 (idle) and state2=1(melee1 attack), you know exactly what the player is doing and you can check those easily in conditions. I use numbers so that I can check conditions easier than words. For instance, "if state2>0" -> do stuff. You just have to remember to track states for everything the player does. If you press left or right then state1=2(walking). It's essential to keep good notes or comments so you don't lose track of states.
    • buffer: Buffer is used for buffering attacks. Read the buffer section for more info.
    • attackTimer: The attackTimer variable is the time you have to perform a combo. Read the buffer section for more info.

    Layouts and Event Sheets

    • characters: This layout will store the graphics for the characters.
    • scene: This layout is the level where the game takes place.
    • player: This event sheet is where all of the player's controls and systems are handled.

    Buffering Attacks

    Buffering basically means storing button presses. It goes a long way in making a game feel responsive. A good example of buffering is God of War. When you press attack Kratos does his first move. Pressing attack again at an early part of his animation will buffer the next move and he'll execute it when his first attack ends. Without a buffer system in the same scenario, most people would be frustrated if they pushed attack and then nothing happened because they didn't press it at the exact right time. In a good control system, this doesn't only apply to attack chains, you can buffer a jump after a roll for example. Some games allow you to buffer whole attack strings (I think Soul Caliber does this?) so if you press attack 4x you'll get the 4 hits in the chain, but I think most games only buffer one move.

    In Tutorial Fighter, when you press attack, you're just setting the variable buffer=1. When buffer=1 that means an attack is queued up and it will play when possible. Here's some pseudo code to show whats happening on a basic level:

    Press "A"
      set buffer=1
    
    if buffer=1
      if no attack is playing
          play attack 1
          set buffer=0
      if attack 1 is playing
          play attack 2
          set buffer=0
      if attack 2 is playing
          play attack 3
          set buffer=0
    [/code:bxqq299y]
    
    The attackTimer comes into play with buffering.  When you press attack, the attackTimer is set to a certain time, then counts down to 0 using [url=http://sourceforge.net/apps/mediawiki/construct/index.php?title=Time_Delta]timedelta[/url].  You can only go into the next attack while the attackTimer is greater than 0.
    
    [b]The Player Mask (AKA Collision Box)[/b]
    Construct has a built in mask system however I use a hidden collision box sprite so that I can have control of it.  If the player ducks or dodges I need to scale the collision box.  The hot spot for the mask also needs to be at the base so it scales downward.  I'm not aware of a way to change or scale the built in collision mask.  
    
    [b]Update 7/2/10[/b]
    [ul]
    [li]moved hotspot of collision box down to base of sprite and realigned the player graphics[/li]
    [li]changed player mask collision to bounding box instead of per pixel...just to optimize a bit.[/li]
    [li]changed debug comments to blue so that debug code can be easily found and deleted when the game is done (just better organization).[/li]
    [li]changed the Attack Timer Countdown condition in the "player" event sheet at line 4. The comment I wrote was correct, however the condition code was wrong.  It still worked but for the wrong reason.  [/li]
    [li]in the "player" event sheet under "Animation Control" section, changed jumping and falling code to use the state variable.  I also needed to create a state for "falling" around line 16.[/li]
    [li]in the "player" event sheet at line 5, deleted "not falling" and "not jumping conditions" because they were redundant[/li][/ul]
  • TUTORIAL FIGHTER!

    <img src="http://www.louisferina.com/games/TutorialFighter/TutFighter.jpg">

    INTRO

    Tutorial Fighter will be a series of tutorials aimed at moderate to intermediate level Construct users showing how to make an action game. I'm expecting each part of the tutorial to be continuously evolving. I will explain what I think is necessary, but if there are questions or I missed something, I'll make sure to add them into the main post or into the comments of the cap file. If you have any suggestions on how to make these tutorials any better, let me know. Help me help you!

    I am not a programmer and I don't claim this as the definitive way to make an action game in Construct. If anyone has any suggestions for better coding, I am open to them. I am also not a game designer. If I've incorrectly explained any concepts or someone can define them more clearly, feel free to correct me and I'll update my post.

    Also, please excuse my crappy graphics, I plan to polish them as I go. OK, enough disclaimers, here we go!

    • PART 1: CONTROLLING THE PLAYER Covers player control and attacks.
    • PART 2: HITTING THINGS Adding in hit boxes, enemy hit reacts, hit pause, hit effects etc.
    • PART 3: MORE PLAYER MOVEMENT Adding more actions for the player: running, running attacks, blocking, dodges
    • PART 4: SPECIAL MOVES inkBot created a nice example of how to do special moves based on discussions on page 3. I haven't gotten to implementing a special move system yet, but check it out if you're interested.

    Enjoy!

    -Lou

  • Yeah, states are just easier to track. In the Gambit .cap, before you can walk you have to check to make sure each individual attack isn't playing. Using a state variable, you can set "state =attacking" for whatever attack and just check that state variable to see if he can walk or not. I'm not a programmer so I'm not sure that's the best way but it just makes things easier to read, for me at least. There are different ways to go about it.

    In the gambit .cap I tried:

    -Animation GambitStaff is finished

    - Set Animation to GambitStand

    And that worked for his staff attack, but not for his card attack for some reason.

  • Ah, sorry I read your first post wrong. When I first opened up the cap he was freezing before the attack, deleting the frame 1 thing worked and I had thought that was your problem.

  • In the Animation Event Sheet, delete the actions that set the animation frames to 1. That's causing it to repeatedly play the first frame. I think on older versions you had to set it to frame 1. If something isn't working, you should break it down to little parts and figure out what works and what doesn't, even if it looks obvious that it should work. That makes it easier to fix bugs and such.

    Edit: There seems to be something else causing him to freeze after attack. I think you need an event sending him back to idle and letting you move him. The events in the cap are kind of sloppy, but maybe i'm more used to working with states.

    -Lou

  • Wow that looks awesome Minor! Love the style and looks really polished already. Video played fine in firefox for me.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Glad I can give back something to the community!

    How is Bugs going BTW???

    It's going really well! I'm looking to release a demo soon with missions, a boss battle, upgrades, etc. I mostly have graphics work to finish up before i release it.