Collision Solving System for RTS

Started by
2 comments, last by Jonoson 22 years, 7 months ago
I''m writing my own 2D RTS game based in Isomatic Tile-based, I interested in how AOK and SC ( even RA2 ) can make units so well that will avoid obstacle and solve the collision event automatically, and perfect. I tried to wrote the such Collision Solving System that records the event when the collision of two units occurred. Then it can solve these two units to avoid the collision, it may let one of them just move away to avoid the path of the other. That what I think. I had studied the Collision Solving System of those game above for a few while. SC has no such system. If I let a marine ( which is the solider of Terran ) stand in the middle of a group of several marines who stand around as cyclic. The marines outside won''t move away to let the one stand in middle out when he want to. let''s focus to the SCV now. when there''re lots SCV extracting resources, they won''t get collision because when it won''t check collision with SCV who is extracting. This way makes it having less collision problem. I felt it''s unreality, but it''ll get lots collision while the worker ( such as SCV ) extracting resources... Now focus to the Group problem. In AOK, who has the best group system in RTS games, I''m not sure if it has Collision Solving System or not. When the group of several ( or more ) soliders are grouping, they won''t get collision neither. This makes less collision occur as the SCV extracting in SC. So I wonder that can''t we check collision as reality in everywhere ? I wouldn''t like to make a game which is unreality , which is just like a Cartoon. BTW, How to solve the collision of two units as well as we can? I meant, what''s the best way to determine who move away and who don''t have to. The collision event are in several case, such like Unit1(Moving) to Unit2(Moving), Unit1(Stop) to Unit2(Moving), Group1(Moving) to Group2(Moving), Group1(Moving) to Group2(Stop) ... etc. How to determine which way to solve these event? Besides, I hope you guys can understand what I''m talking about while I have a poor English ... and, Thanks anyway.
Advertisement
I suppose a good answer would be an article by the guy who wrote Age of Kings , so here they are:

Coordinated unit movement:
www.gamasutra.com/features/19990122/movement_01.htm

Implementing coordinated unit movement:
www.gamasutra.com/features/19990129/implementing_01.htm

hth

Trying is the first step towards failure.
Trying is the first step towards failure.
My advice is don''t do the above till you have check out these links. The guy that came up with this stuff is a genius in that he made such a difficult topic simple.

This is a discussion. All hail Craig Reynolds!

http://www.red3d.com/cwr/steer/


This is the same but with indepth explaination of the physics
and it has C++ code. All hail Robin Green!

http://www.red3d.com/siggraph/2000/course39/S2000Course39DemoGreen.zip
"I am a pitbull on the pantleg of opportunity."George W. Bush
quote:Original post by Jonoson
BTW, How to solve the collision of two units as well as we can?
I meant, what''s the best way to determine who move away and who don''t have to. The collision event are in several case, such like Unit1(Moving) to Unit2(Moving), Unit1(Stop) to Unit2(Moving), Group1(Moving) to Group2(Moving), Group1(Moving) to Group2(Stop) ... etc. How to determine which way to solve these event?


Well i suggest, that u have a variable in each unit class, determinating the importans of its movement/job. Maby u could also consider, that the unit, that have had the straightest line of movement, should be the one not to stop, as it i reality, would seem powerfull and determined - wich by human beings, would result in letting it pass - purely of respect for the units determination. If both these equal, u can invent other actions/states, that will determine wich one will pass, or u could end up doin a simple random roll...
Hope this is usefull

-------------
E-)mil
http://eej.dk

- Just another crazy dane
Emil Johansen- SMMOG AI designerhttp://smmog.com

This topic is closed to new replies.

Advertisement