Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!


1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


Tile-Based Games - Slope


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
6 replies to this topic

#1 Franks   Members   -  Reputation: 123

Like
0Likes
Like

Posted 07 August 2014 - 04:15 PM

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

Edited by Franks, 07 August 2014 - 04:17 PM.


Sponsor:

#2 dsm1891   Crossbones+   -  Reputation: 2003

Like
0Likes
Like

Posted 07 August 2014 - 04:27 PM

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.)


#3 KnolanCross   Members   -  Reputation: 1525

Like
0Likes
Like

Posted 07 August 2014 - 04:34 PM

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).


#4 SeanMiddleditch   Crossbones+   -  Reputation: 9893

Like
5Likes
Like

Posted 07 August 2014 - 05:21 PM

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/

#5 Oralordos   Members   -  Reputation: 602

Like
0Likes
Like

Posted 07 August 2014 - 11:45 PM

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



#6 KnolanCross   Members   -  Reputation: 1525

Like
1Likes
Like

Posted 07 August 2014 - 11:46 PM

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).


#7 fireside7   Members   -  Reputation: 209

Like
0Likes
Like

Posted 09 August 2014 - 12:25 PM

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






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS