Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411630 Posts in 69393 Topics- by 58447 Members - Latest Member: sinsofsven

May 12, 2024, 03:14:43 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Beat-em Up With Multileveled Platforming
Pages: [1]
Print
Author Topic: Beat-em Up With Multileveled Platforming  (Read 7591 times)
MrColossal
Level 0
*



View Profile WWW
« on: January 02, 2010, 11:19:52 PM »

Hello everyone, long time reader first time poster.

My name is Eric and I want to make a game! More specifically I want to make a Beat-Em-Up with platforming. Something like the movement and jumping of Battletoads but with platforms over platforms.

It's a little tough to describe this so here is the GM file I have currently:

http://kafkaskoffee.com/SpaceMan/platformingProblem.gmk
I used GM 7 pro but I don't think you need Pro to run this file, I didn't use anything fancy in the GML.

Basically what happens is that I store the relative Y of the player on each collision tile, when he jumps I just make sure he lands on the relative Y each time. If he isn't at the relative Y of the collision under him I keep adding gravity. This way if you stand farther up a platform or into the Z of the scene and jump to another platform you will land at the same Z. Make sense?

There are known bugs with this current .gmk:

Known bugs:

Jumping from below half of the collision causes you to miss collision above you. I do not understand this.

Falling from one collision to another does not make you fall at the correct y. I know why this happens, the new relative y isn't set when you just walk off of a collision.

You can stand in mid air on the middle diagonal platform because of the way I'm checking collision. I'm not looking forward to solving that problem! This will also cause a hang up sometimes.

I have no idea how I'm going to do certain things like collision with wall pieces.

Any help at all is so greatly appreciated, I posted a thread about this on the Game Maker forums and one person tried to help but their sentence structure was so bad I had no idea what they were talking about. 2 months later not a single person has offered help after that. I have been stuck on this for so long.

Eric
Logged

Yes.
bateleur
Level 10
*****



View Profile
« Reply #1 on: January 04, 2010, 01:25:40 AM »

Any help at all is so greatly appreciated, I posted a thread about this on the Game Maker forums ... 2 months later not a single person has offered help after that. I have been stuck on this for so long.

Part of the problem might be that you seem to be doing something fairly ambitious, are stuck on multiple things and appear to want someone to write your program for you. That might be putting people off.

If you make a post about one, specific problem and paste the relevant code section directly into your post, explaining both what you thought it should do and what it actually does then it will be way easier for people to help and consequently you might get more replies.

(Unfortunately I can't assist you here anyway since I don't use Game Maker.)
Logged

Hima
Level 4
****


OM NOM NOM


View Profile WWW
« Reply #2 on: January 04, 2010, 02:41:44 AM »

Maybe you could try GrandMa engine and see how they deal with the collision?
http://forums.tigsource.com/index.php?topic=5790.0

Or maybe you could even use it. It's pretty great for a tile-based platformer.
Logged

MrColossal
Level 0
*



View Profile WWW
« Reply #3 on: January 04, 2010, 08:50:24 AM »

Part of the problem might be that you seem to be doing something fairly ambitious, are stuck on multiple things and appear to want someone to write your program for you. That might be putting people off.

Hah oh man, in no way do I wish to come across as wanting someone to write it for me and I hope that other people don't feel that way.

I will explain my problem through a visual aid:



A and B work fine C is where things get a little tricky. It only works if you jump from the middle or up. If you jump below the middle he falls through the ground.

I do not have access to Game Maker at the moment but the .gmk is 18kb and the code is very short.

Hima:
I will check it out, thank you you posting.
Logged

Yes.
pgil
Guest
« Reply #4 on: January 04, 2010, 09:20:42 AM »

Hey I think I remember you from the AGS forums.

Even though you're working with 2d graphics, you're really making a 3d game. I think this would be easier if you think of every object as being in a 3d space. If x is left&right and y is up&down, then z is the distance from the "front" of the screen. Pressing the arrow keys only changes your x values (left and right) and the z position (forward and backward), while jumping will only change the y position. I noticed you talk about z space, but I don't see any variable that actually represents the z position of any object.

Anyway, That's my opinion. I've never made this kind of game, but I'm interested in learning how they work. Good luck  Beer!
Logged
Richard Kain
Level 10
*****



View Profile WWW
« Reply #5 on: January 05, 2010, 08:46:34 AM »

pgil is right. You are essentially trying to construct a 3D game. (in terms of the mechanics) You'd be better off doing this with a 3D engine as opposed to a 2D engine like GameMaker. It is possible to do what you're describing, but you have to basically code a rudimentary 3D hit detection system to do it. This is something that Rare excelled at back in the day. They produced games like Battletoads and Snake-Rattle-And-Roll that used faux-3D gameplay using 2D sprites.

Personally, I would advise against making a game like this. Although Snake-Rattle-And-Roll was pretty good, a lot of people don't enjoy looking back at Battletoads. The general gameplay of a faux-3D beat-em-up just isn't very much fun to play. The combat usually suffers because of the platforming, and the platforming suffers because of the combat.
Logged
pgil
Guest
« Reply #6 on: January 05, 2010, 09:27:29 AM »

There's no reason you can't do this in Game Maker. I'd just recommend getting familiar with the engine first. Make a few small, simple games before you jump into an ambitious project like this.
Logged
MrColossal
Level 0
*



View Profile WWW
« Reply #7 on: January 05, 2010, 11:40:09 AM »

I guess the problem[?] I'm having is seeing this as ambitious.

The majority of what I have works well and what I'm missing I just haven't tackled yet.

I do not have wall collision yet and and walking off the right side of slanted collision isn't properly implemented.

The only problem I'm having is a bug where jumping from one height to the next produces unwanted but repeatable results. That is what I need help on.

After these 3 things are done I'm pretty much finished with what I need.

pgil: Z depth, I used that term in the image because that is the term people use when discussing this type of game. In the .gmk the idea of z depth is represented by the landingY variable [I think that's what it's called, again no game maker at work]. landingY is the Y that the player must be at in order to be considered on the ground in proper "z depth". It is stored before jumping so that they will land at that relative y again upon landing.
Logged

Yes.
Richard Kain
Level 10
*****



View Profile WWW
« Reply #8 on: January 05, 2010, 02:05:51 PM »

Yeah, part of the problem in your description is how you are addressing terminology.

In most games, the Z-axis is the axis that points toward and away from the camera. Z-sorting is used to describe the order in which things are rendered, relative to the position of the camera. So something with a higher z-index will be rendered on top of something with a lower z-index.

What you're talking about is detecting differences in the Y axis. (height) And of course, since you are dealing with a 2D engine, one of those two axis are going to be purely theoretical anyway. The only real way to have this work the way you want it to is to literally have a pseudo-3D engine in the background to handle collision detection in the environment.

This is possible, even in an engine like GameMaker, but it does add quite a bit of complexity to your project.
Logged
Hima
Level 4
****


OM NOM NOM


View Profile WWW
« Reply #9 on: January 05, 2010, 08:00:38 PM »

Objects in game maker has depth variable which decide the rendering order. You could use that as a part of collision detection, use it to simulate the z axis in 3D.
Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic