Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

AppGameKit Studio Chat / Community ideas, how to ... Beat 'm' Up Scroller Brawler?

Author
Message
Xaby
FPSC Reloaded TGC Backer
16
Years of Service
User Offline
Joined: 17th Apr 2007
Location: Berlin
Posted: 1st May 2020 18:40
May I ask, if somebody knows, how to begin a game like this? In the video Digital Foundry talks about the engine and the editor and tools, I guess, we could build something like that in AppGameKit as well.


https://youtu.be/1uxiL4fPWAA?t=912

t=912, there Digital Foundry talks about the engine, the editor, the tools and how the Studio has done the game.

I am especially interested in how to define the collions. And define the bounding pathes for the characters.
I would create some of the needed tools myself, but to create some GUI elements it is not easy in AppGameKit without creating our own system of gadgets.

I also don't know, how to place objects / sprites into one layer and scroll them the fastest way. I could create the animations in Spine or Spriter. Also could define collison boxes in these programs.

Test for zoom and scroll, see the attached file. Is mapped to the game pad controller input.

Attachments

Login to view attachments
GarBenjamin
AGK Developer
7
Years of Service
User Offline
Joined: 30th Nov 2016
Location: USA
Posted: 16th May 2020 20:07
Hey Xaby,

I think basically, like everything else, it all comes down to a matter of work and taking an iterative approach is a good way to go.

By that I mean focus on one part at a time instead of tackling a full game such as Streets of Rage 4.

For example, you can throw out the scrolling level aspect entirely and focus on just getting the character control, animation system and collision box system, etc working to the level of quality you want.
You would need only to create images for the stage. This could be single screen non-scrolling. Or you could create large images maybe 2 screens wide.
That gets that part out of the way. Throw up an image done.

Next you can design a player character and 1 enemy.

Then... yes... create a simple editor that lets you load in a sprite sheet or Spine/Spriter images and animations.
Depending on which way you are going... predrawn images or something like Spriter the Editor would be made one of two ways...

Pre-Drawn
Editor needs to load in your sprite sheet.
Editor needs to allow you to define hit boxes (and possibly hurt boxes as well) for each image.
Editor need to allow you define the animations by choosing images from the sprite sheet (and ideally by specifying duration of each frame)
Once you have that done you can use your Editor to define the animations and hit boxes and save them in a format easy for you to load into AGK.

Spine/Spriter
Editor needs to load in your image and animation data you created using Spine/Spriter.
Editor needs to allow you to step through the animations and define hit boxes (and possibly hurt boxes as well) for each animation based on the current step of time in the animation.
Once you have that done you can use your Editor to create the data tying your hit boxes to your animations and save them in a format easy for you to load into AGK.

Then it is just a matter of loading in the data and using it.

Obviously, that is very basic example but it is always good to keep things simple. Just break things down.

So once you are at this point... now you can get to work on your player walking around.
Then you can get to work on adding your enemy into the game.

Then you will want to look into interaction between the player and the enemy.
For this you will want to look into some simple collision detection system using the data you created in your editor.
It should be fairly easy to do that because you will create the data in a way that is very easy for you to work with.
Then you'll want to use some basic state management systems.

Like say your player hits the enemy... your collision system detects a hit to the enemy's midsection... the enemy will go into the Midsection Injured State... that state will play the animation for the enemy bent over holding their stomach... now your player character may try to jump up grab the enemy and swing them overhead. When your player character jumps and the player presses the appropriate control to do the grab and swing overhead attack you check for enemy proximity and find that enemy... then you check the state of that enemy and you find that yes indeed they are int he Midsection Injured State.... and now you can set the player to Throwing Enemy Overhead State and set that enemy to Being Flipped State and play the appropriate animations for each. When those finish that state ends. The player will be in Landed State then moving to Idle State. The enemy will move to Ground Impact State which may have them hitting the ground bouncing slightly and sliding a bit. Then the Enemy will move to Getting Up From Ground State... and so forth.

Of course once you have all of this defined you can then look into tables to map the things kind of a state control transition table or whatever.

But it is all straightforward if you break it down step by step. All of that stuff seen in the game (or any game) is simply a sequence of very simple actions.

Once you get all of that added you can look into enemy AI management by adding 2 or 3 instances of the enemy at the same time. Look into the Battle Circle. Basically, your enemies will simply let each other know "I am engaging the player" and that will cause the other enemies to simply move around maintaining a certain distance from the enemy but not actually attacking the player. Only the enemy that is engaging will move to the player to attack. At some point (when knocked down or after a certain amount of time... whatever you decide) that engaging enemy will let the others know "I am no longer engaging the player" and they will move out. The other enemies... one will decide "I am engaging the player" and they will check to see if another enemy has already said they are engaging... if so they will not engage.... if not they will let the others know "I am engaging the player"... and so forth.

This is all a very basic overview but hopefully it helps.

Once you get all of that working... then you can look into adding breakable decorative items and then look into creating tile maps and scrolling levels and enemy placements.
blink0k
Moderator
11
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 20th May 2020 11:02 Edited at: 20th May 2020 11:02
ruckertheron
7
Years of Service
User Offline
Joined: 12th Nov 2016
Location:
Posted: 20th May 2020 20:20
I am doing top down but i understand your request as more like a fighter game plus a platform... I am very busy but i cam help here and there as I see it is hard to get help without people thinking you want them to do it for you.. Like Garbenjamin said break it down as much as possible...

I would use a system to load images that are already cut even though i know there is a better way.. When i asked i never got an answer...

So i have an old concept towards animation.
Ken_idle (1).png
Ken_idle (2).png
Ken_walk (1).png
Ken_lowkick (1).png

So the nomenclature for the system is
Charactername _ action _ frame


Then in paint.net or gimp i would add a layer to the animations and place hit boxes as shapes by where you want to hit and name them after the animation like
Ken_lowkick (1)_hitbox.png
Ken_lowkick (2)_hitbox.png

And then mark offsets where the hitboxes so you can match the hitboxes with the animations..

Of course setting all hitboxes invisible but doing collision checks ..
GarBenjamin
AGK Developer
7
Years of Service
User Offline
Joined: 30th Nov 2016
Location: USA
Posted: 21st May 2020 05:57 Edited at: 21st May 2020 05:59
64x64 resolution game. The video is very low quality so here is a gif showing how it actually looks...

blink0k
Moderator
11
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 21st May 2020 07:19
Brilliant!

Login to post a reply

Server time is: 2024-03-28 23:21:04
Your offset time is: 2024-03-28 23:21:04