Hey, so I had to record some footage of my game to use as a school project a few days ago and I figured why not upload them to youtube too so you guys can take a look. I didn’t record sound as they were used as a background for the presentation. Here’s the entire playlist and here are the separate videos:
Spacestation interaction:
Collision sparks:
Planets/Nebulas (also with wireframe)/Warp drive
Camera movement:
Battle:
Billboard advertisments:
Special relativity (sped up accelerating to lightspeed):
Loading/saving ships:
Ship assembling:
Anyway, I’d like to hear any comments/suggestions you might have and if you’re curious about how stuff works feel free to ask and I’ll try to explain the best I can.
P.S.
There’s this new billboard I made that’s a reference to Futurama:
I finally found some time to look into the videos. Amazing!
I have noticed, that in “special relativity” you can reach almost light speed. (As a consequence, the mass in the inertial frame should increase. I noticed, that it does not, which I don’t care, as it is a game and it looks really fun to play! However, how do you determine “fuel consumption” to reach 0.99 c? I think that this should be much more fuel mass than the spaceship’s mass.)
This kind of realism is a lack that many, or all, games have. I don’t know if it would be that much fun to play, if you would design all the physics realistically. You’d probably only be able to do a few orbital maneuvers circling the planets before you run out of fuel. This would make space combat very difficult. Maybe you can give me your opinion on realistic physics vs. fun to play. I thought about it a couple of times too and I will give my opinion on this, but I don’t want to induce an opinion in your mind.
There are some orange spots on the cubes that make up the ship. I assume that this is the damage in that section. I think it would be cool if you could make the cubes look as if they were cracked. You could also use 3D Perlin noise to lign up the cracks from neighboring cubes, but that would possibly be overkill. Don’t know if you like this idea.
Once again: amazing work! I’m looking forward to your reply.
But of course, here you go The zip file contains the mesh and a texture I used with higher opacity so it’s more visible. The one I actually use is so transparent you almost can’t see it with an image editor. I’d suggest you adjust it to your preference.
Also see here for more info:
Check here and tell me if you still have any questions:
I thought this might interest you! Yes the mass should indeed increase, but I read somewhere that changing an object’s mass in Bullet isn’t quite possible so I figured I’d need to reattach the physicscontrol to the physics space to do it and I didn’t even try it out. What I did was override the applyCentralForce method and made it calculate added forces with the lorentz factor. So the engine “fuel consumption” stays the same, they only produce less thrust.
Thank you for reminding me about it though, I’ll test if one can increase object mass in a simple way right now.
Also all engines in the game run on electricity produced by the ship reactors and don’t actually use any propellant. At first I thought about having them be some sort of fusion rockets or a vasimr, but now they appear to all be the phantom microwave engines pushing onto the quantum vacuum. Or something. [insert technobable here]
Note that you are asking about fuel consumption in a game where ships have no rcs thrusters and rear facing engines make the ship go backward if needed .
Yeah well it’s always a trade of between realism and gameplay which is why no planets actually have gravity here, only the black holes currently attract ships as the trope requires it. I like to be as realistic as possible while the gameplay stays good, but often I have to sacrifice realism in order to make things play better. I just wanted to add relativity since it’s something I haven’t seen in any space game yet and was interested how it’d look and work.
I had some idea to implement red/blueshift too but I’m not competent enough in filters yet to attempt it.
They are damage textures overlayed over the diffuse map using mix in shaders. The problem of using any seamless effects is that almost all modules reuse their main texture a ton of times for higher resolution so everything would display on all sides of a cube for example. Otherwise I’d be using something like that one guy’s texture painting thing.
Well, I had an exam about special relativity a few weeks ago. It is just not trivial. There are a number of Lorentz transformation formulas, which can be used to calculate time dilation, length contraction and also relativistic forces. As far as I remember, transforming forces is not that trivial too. In your case the situation is simplified a lot because your planets are “real inertial” frames and you could express all the Lorentz transformations between all spaceships in that frame.
If you cannot even change a mass in bullet physics, then it is probably not the right thing to use for realistic physics. I have also seen a couple of “flight simulator” games using bullet physics, and all the aircraft behave wrong. I don’t know, if it is possible to design proper flight dynamics with bullet, but this is what I would need. So without further investigation I wrote my own physics engine.
During that time I was thinking, if I could also make a game with realistic physics. I think it would add a great amount of fun too. But unfortunately not for a space combat game. Who cares waiting for hours orbiting a planet until coming into weapon range for just two minutes? Probably nobody.
I think you’re just doing the right amount of trade of between realistic gameplay and great gameplay. Keep on the good work, I’m looking forward to that game.
One more thing regarding the damage spots came into my mind. You could make the damage spots flicker in orange for a while until they become black. This may appear like fire that will be extinguished within a certain time after the cube has been hit.
Funny you should mention that, I actually had a class yesterday where the professor “explained” (kind of very poorly) transformations, time dialation and length contraction. When designing this I knew only what I’ve learned from PBS Spacetime at the time so it’s trivial at best.
Wow, great job! I thought your simulator was running on Bullet. Wouldn’t it be easier to adapt something like Havok or Physx instead of writing an entire new engine? I’d say the flight dynamics in for example kerbal space program work quite well (especially with additional mods) and that’s on unity with physx.
Hey that’s a great idea and I think I’d be doable without too much effort. I’ll put it on the todo list.