Large starship combat/collision detection
by Jack Stone · in Game Design and Creative Issues · 06/12/2005 (11:31 am) · 10 replies
I am planning on making a space combat sim game involving large battleships and cruisers, with fighters being just a secondary, ai-controlled addition.
I intend to add a more tactical element to the combat, where your ships manouverability and sub-light speed is restricted by its size, resulting in slower-paced battles, where you have time to line up weapons, repair systems, plan strategic moves, and generally think about the battle.
Its going to have a star-trek style theme, where you will receive detailed damage reports of specific systems damaged in battle, and where you can inflict and receive damage to specific sub-systems, resulting in, for example, a port side thruster being disabled while the starboard one is not, greatly hindering manouverability and sending the ship into a spin.
I havent started on the raw coding for the project yet, I intend to make a quick FPS style demo game first to teach myself torque, but I immediatly forsee a problem with my damage system.
In torque, I understand my DTS shape starships can only have 9 collision meshes. This means that I can only have 9 subsystems, which isnt nearly enough.
If youve ever played the silent hunter series of submarine simulators, you will know the kind of combat and damage I want. You have a damage screen, with a picture of your ship. Systems and compartments would be damaged in the battle, and you would have to assign crews to repair them.
Also, I want an interior to the ship, so that you can go around to each section and view damage after the battle. So if you sustained a hull breach to a particular deck, you could go down to that deck and see the forcefield or bulkheads that are in place over the hole in your ship.
I think I can implement some kind of DTS to DIF changeover in my game, because the bridge view (first person, shown from within the ship with crew members that you can intereact with) is seperate from the interior. What I mean is that the player would never (and in fact, wont be allowed) to leave the bridge during combat. Therefor the interior need not be rendered. When the player leaves the bridge, I could have a DIF shape loaded.
So what I want to know is:
How do I solve my collision problem, and
how do I make a bridge for my starship? Think USS enterprise here. (I mentioned Star trek bridge commander in a previous post, if anyone has played that) You are in a chair, clicking on crew members, getting different menus, etc etc. And you can also switch to a third person view and see the battle from the outside.
Thanks for any advice.
JS
I intend to add a more tactical element to the combat, where your ships manouverability and sub-light speed is restricted by its size, resulting in slower-paced battles, where you have time to line up weapons, repair systems, plan strategic moves, and generally think about the battle.
Its going to have a star-trek style theme, where you will receive detailed damage reports of specific systems damaged in battle, and where you can inflict and receive damage to specific sub-systems, resulting in, for example, a port side thruster being disabled while the starboard one is not, greatly hindering manouverability and sending the ship into a spin.
I havent started on the raw coding for the project yet, I intend to make a quick FPS style demo game first to teach myself torque, but I immediatly forsee a problem with my damage system.
In torque, I understand my DTS shape starships can only have 9 collision meshes. This means that I can only have 9 subsystems, which isnt nearly enough.
If youve ever played the silent hunter series of submarine simulators, you will know the kind of combat and damage I want. You have a damage screen, with a picture of your ship. Systems and compartments would be damaged in the battle, and you would have to assign crews to repair them.
Also, I want an interior to the ship, so that you can go around to each section and view damage after the battle. So if you sustained a hull breach to a particular deck, you could go down to that deck and see the forcefield or bulkheads that are in place over the hole in your ship.
I think I can implement some kind of DTS to DIF changeover in my game, because the bridge view (first person, shown from within the ship with crew members that you can intereact with) is seperate from the interior. What I mean is that the player would never (and in fact, wont be allowed) to leave the bridge during combat. Therefor the interior need not be rendered. When the player leaves the bridge, I could have a DIF shape loaded.
So what I want to know is:
How do I solve my collision problem, and
how do I make a bridge for my starship? Think USS enterprise here. (I mentioned Star trek bridge commander in a previous post, if anyone has played that) You are in a chair, clicking on crew members, getting different menus, etc etc. And you can also switch to a third person view and see the battle from the outside.
Thanks for any advice.
JS
#2
06/12/2005 (12:11 pm)
I don't know anything about the programming specifics of torque, but can you have collision boxes for attached models? In that case you could build you ships by mounting your "systems" on a base ship model. This would be good for several things actually, change or upgrade specific systems, no problem. Blow up a system; no problem, just remove the mounted model etc.
#3
I dont know if its possible though, to add together models/collision meshes like that, wouldnt mind hearing from a more experience programmer on that one.
I dont think a random number generator based damage system would work on this project, since I would need the player to be able to damage specific location on an enemy ship, such as the engines, to slow it down for a boarding party to get aboard.
JS
06/12/2005 (12:24 pm)
Excellent ideas, thank you! specially your Magnus, using attached models, that would be perfect! I could have visible changes to the hull configuration as models are removed, instead of just a decal or something being applied, thats a great idea... I dont know if its possible though, to add together models/collision meshes like that, wouldnt mind hearing from a more experience programmer on that one.
I dont think a random number generator based damage system would work on this project, since I would need the player to be able to damage specific location on an enemy ship, such as the engines, to slow it down for a boarding party to get aboard.
JS
#4
06/12/2005 (1:30 pm)
If I remember correctly you can have collision boxes on mounted objects. So in theory yes you could take abunch of models with there own collision boxs and mount them togeather to create one big object with abunch of collison boxs. Though it should be noted though that the more collision boxs you start dealing with the slower your games preformance will get. But then ageain this was all 1.1 Torque stuff so there might have been changes and stuff since then.
#5
06/12/2005 (3:10 pm)
As an FYI, TGE 1.4 removes the collision hull limitation per dts shape (can be unlimited). Since they are not BSP optimized, you'll want to watch your performance, but you can increase your hitbox code accordingly.
#6
JS
06/12/2005 (6:58 pm)
Great, so I could do either? Im not sure how exactly to increase my hitbox code, but im sure Ill figure it out when I actually start seriously working on the project. Thanks.JS
#7
06/12/2005 (7:04 pm)
I still like Magnus's suggestion. It seems the most scaleable solution.
#8
1) Damaged individually
2) Swapped out (a major portion of the game will be the player reconfiguring their peacful colony ship into something a bit more... agressive).
06/13/2005 (10:30 am)
We're actually aiming for something similar (with a more "arcade" feel), and I've been thinking in terms of a main chasis with various mounted systems for engines/comm/weapons/etc. That way they can be:1) Damaged individually
2) Swapped out (a major portion of the game will be the player reconfiguring their peacful colony ship into something a bit more... agressive).
#9
Mark I would be very interested in hearing more about your game, Im really not sure how to get started at all. Do you have a website or anything?
JS
06/13/2005 (12:22 pm)
Yeah I prefer Magnus's ideas as well, although im not sure how difficult itwill be to implement. It give the most realistic results I think, because instead of just getting a message about your port gun being destroyed, you would see that the gun is missing from your deck. I remember one of the most rewarding moments in Star Trek Bridge commander was looking at teh cinematic view as I returned to StarBase 12, and seeing all the holes and tears in my deck, it really looked fantastic. I dont know how close I will eb able to come to that effect, (In ST:BG you could actually fire a weapon THROUGH a ships hull, ans see right through to the other side) but it would be worth a try.Mark I would be very interested in hearing more about your game, Im really not sure how to get started at all. Do you have a website or anything?
JS
#10
06/13/2005 (12:42 pm)
Actually, I personally suggest you strip the Torque convex collision system, and implement some kind of polygon soup collision.
Torque Owner Philip Mansfield
Default Studio Name
If you take a hit on the port side, just do some random number stuff to generate the system that actually gets hit. Larger systems would have a greater chance of being hit, so maybe it's the thruster, maybe it's the weapons on that side of the ship.