Advertisement

Tile-Based Games - Slope

Started by August 07, 2014 10:15 PM
5 comments, last by fireside7 10 years, 5 months ago
Hi all,

I'm trying to implement slope in my tiled game but I have a lot of glitches.
I read a lot of theory about slope tile but nobody explains in practice.

My slope looks like :

untitl10.png

I use my wall collision detection for implement slope collision. It works but I have a glitch when I walk between two slopes.
It's normal because the detection catches the wrong tile.

untitl11.png

How to solve this problem ?
Do you have full exemple with tile collision ?

Thank you in advance

Hi,

I am unsure if this will fix you're problem, it has been a long time since I read the article, but I found this article (http://www.gamedev.net/page/resources/_/technical/game-programming/the-guide-to-implementing-2d-platformers-r2936 ) very useful when creating tile based games

Mobile Developer at PawPrint Games ltd.

(Not "mobile" as in I move around a lot, but as in phones, mobile phone developer)

(Although I am mobile. no, not as in a babies mobile, I move from place to place)

(Not "place" as in fish, but location.)

Advertisement

What are you using for collision? The easiest solution I can think of is turning off the collision detection for the wall tile.

Personally I would save myself the trouble and just use box2d to handle the collisions.

Currently working on a scene editor for ORX (http://orx-project.org), using kivy (http://kivy.org).

Personally I would save myself the trouble and just use box2d to handle the collisions.


http://www.learn-cocos2d.com/2013/08/physics-engine-platformer-terrible-idea/

Sean Middleditch – Game Systems Engineer – Join my team!

You might try looking up "Reconstructing Cave Story" on youtube. It has the solutions to lots of those finicky details for platformers. Including slopes.

Personally I would save myself the trouble and just use box2d to handle the collisions.

http://www.learn-cocos2d.com/2013/08/physics-engine-platformer-terrible-idea/

Nice reading, and great points. Still I keep my opinion, assuming I would be using the engine I am used to - orx, which uses box2d - I think it is far easier to use the custom tools. Here is my view on each of the topics, considering my former experiences:

Moving Platform Hell - Indeed, platforms are hard to code, two things I would point is, you can have a collider that is not solid, so you are just informed that a collision occoured, using that would allow to determine when the character is on the platform (touching and falling, ok, stop) and code gets easier. Other than that, most engines have the option the reparent an object to another, and they will move together, on orx it is called attach.
Finally, I would like to point that programming it from the scratch would not be easy too.
Walking on Sunshine, Not - Pretty easy to create a fill algorithm to determine the collision forms in your scenario assuming all your slopes are in the same ratio. Use a mesh instead of loads of boxes and you avoid the corner collisions (in all fairness I did had this problem once*).
Tilemap Collisions Ain’t Easy - Same as above.
Physics contact detection is expensive - True, but is not likely it will bottleneck your game. At least in my experience, heavy use of transparencies and particles would kill my performance, not physics simulation.
Physics are alwaaa-a-a-ays glit-tch-tch-tch-y - Tell me again how your new code of collision detection, jumping, running, gravity is guaranteed to be 100% bug free.
There’s got to be a speed limit on everything - Using a set speed instead of adding forces solves this problem, or at least solved for me.
Tweak the hell out of this world - Same as above, and again, you can simply detect collisions and turn off the auto solve part of box2d.
Speaking of Movement - Not sure what to say here, yeah the lib won't read your mind and create exactly what you want outside the box, I guess this is expected. Also, not using the engine, you will have to code things anyways, so I don't see the huge advantage. Finally, his main example of bouncing is just about setting variables to 0 (and in orx case, they default to 0).
Is it too early or too late? - Not much to say, you can set highspeed flag to solve the problem he described.

I can understant the guy's points, I had a lot of trouble using the built in physics the first time (reading this articles, I remembered most of them). But still, I solved them all, and they mostly were because I was using the lib wrong and now that I learned it, I wouldn't imagine creating code for things like collision from ground zero. And even if you don't like the physics simulation, as I said, just turn it off and just use it to detect collisions.

* Video here: https://drive.google.com/file/d/0B0UdeUM9pB-nUk8wVmJMTE4xSmc/edit?usp=sharing

Currently working on a scene editor for ORX (http://orx-project.org), using kivy (http://kivy.org).

Advertisement

Look up a tutorial for SAT, separating access theorum, or find a library in your language.

This topic is closed to new replies.

Advertisement