Platformer concerns

For questions about using Classic.

Post » Wed Oct 01, 2008 4:44 am

Alright, so I'm considering using Construct to sculpt out an engine for a platforming game. It's been a while since I've used construct and the last time I did, platformer support wasn't so great.

There will be moving objects in said game and this is where most platformer problems start out. Before anything, the example source and exe.

http://www.mediafire.com/download.php?tgzfn4mjtzn

Two minor things, one is that default collisions from the side/below a moving object still feel a bit buggy in the sense that you will detect a collision half of the time and in the other you will shoot upwards through the platform. Second, I'm guessing the engine is trying it's hardest to match the player's x,y coordinates with the platform but you end up with the player sliding to the left of the platform and if it's moving up and down you get juttering. I'm aware that you can throw in every dectector trick in the book to get this working right but this should have been built in really, that or I'm not aware that you can give a platform a moving behavior without that heartache. (Honestly I'm not too familiar with the new detection methods that Construct can use so if someone can toss me a bone there that'd be helpful as well)

Now for something major, as an unintended side effect of moving the window around this will actually affect the platform's behavior ingame. You can try it, grab the window and the game itself will pause as it should but it appear that the variables don't. When you let go you'll see that the platforms will have moved to new coordinates and this is pretty game-breaking. I'm sure you can force people to play fullscreen to stop this but the option of playing in windowed mode is always sought after as well.

Those are just some concerns so my questions are:

Is it possible to use Construct in a production type scenario for a platformer game.
If yes, how can we remedy these issues?
B
1
G
4
Posts: 1
Reputation: 1,027

Post » Wed Oct 01, 2008 5:13 am

I was about to integrate that into my game so we're in the same boat...
Anyway, I still had to use detectors for other stuff such as ladders and jump-through platforms and it hasn't been too complicated yet.

I'll try some stuff with moving platforms now...
B
2
S
1
G
4
Posts: 92
Reputation: 1,384

Post » Wed Oct 01, 2008 7:04 am

Some of these things are issues that are being dealt with, some are bugs, and some are things that will probably never be implemented in the default behavior so you'll just have to code your own method.

Ashley has mentioned the possibility of changing the push-up routine of the platform object so that it pushes out of solids in the direction it went in instead of always defaulting to up.

As for the window dragging, it's a bug. I believe I reported it a while back, but that might have been for the sound object messing up when dragging the window.

I've never had much success with vertical moving platforms. I've always had the jittering effect you described. But... the last time I tried making a vertical platform was before the introduction of adjustable gravity settings at runtime and the ability to set the velocity of the platforming character manually.

The method I've been thinking of (but haven't actually gotten around to trying yet) goes like this:

1. Measure the distance from your platform sprite's hotspot to the bottom edge of the sprite in pixels.

2. For your vertical platforms, make an image point exactly that number of pixels above the top edge of the platform.

3. Make a foot detector for your platforming sprite.

4. When the foot detector is overlapping the vertical platform (and the character isn't jumping) do the following:
[list:12x1ysqs]
[*:12x1ysqs]Turn gravity off for the platform object.[/*:m:12x1ysqs]
[*:12x1ysqs]Turn Ignoring Input on for the platform object.[/*:m:12x1ysqs]
[*:12x1ysqs]Set the platform object's xy to (self.x, (platform.ImagePointY(1))[/*:m:12x1ysqs]
[*:12x1ysqs]Manually intercept the controls for Left, Right, and Jump[/*:m:12x1ysqs]
[*:12x1ysqs]If Left or Right is pressed, manually set the horizontal speed accordingly[/*:m:12x1ysqs][/list:u:12x1ysqs]

5. If Jump is pressed, or if the detector is no longer in contact with the platform, turn gravity back on and Ignoring Input to off.

It might need a little tweaking, but I think it could work. Possibly. Theoretically with no gravity to fight against the jitter will be eliminated.

As for intersecting the sides of horizontal moving platforms, you'll have to code your own push-out routine to avoid being popped to the top automatically by the platform behavior. At least, until the new push-out method is done.

Finally, as for your question about whether or not Construct can be used in a production type scenario for a platform game. I'm assuming you mean "can you currently make and release a bug-free game of commercial quality." Well, probably not. Construct is still in beta. Either you can wait for v1.0 or you can help out with bug testing and wait for v1.0.

It is however quite capable of making playable games, if not perfect ones. You just need to be aware that things will probably be a little buggy for a while.
Moderator
B
5
S
2
G
6
Posts: 4,348
Reputation: 10,971

Post » Wed Oct 01, 2008 8:51 am

Turning the gravity off for vertical moving platforms, that's exactly what I was going to try.
It's really late now, so I'll do it tomorrow :)
B
2
S
1
G
4
Posts: 92
Reputation: 1,384


Return to Help & Support using Construct Classic

Who is online

Users browsing this forum: No registered users and 4 guests