Hey devs. I want to show off some of the technology under the hood of Gimbal. I'm quite proud of some of the tricks I used to make this game playable on modern computers, as a real time networked game.
This is an open thread. Ask me anything.
APIs
C# codebase
XNA for sound/graphics/input
DirectX for gamepad support
Lidgren for UDP networking
Tools
Visual Studio 2008 is my IDE
Paint Shop Pro 7 for art
Audacity for sound
Reaper for music
Lightworks for video editing
Some generally cool stuff...
Per-Pixel collision detection, optimized with bounding circles. All the parts of a ship affect the physics and handling. Ships are treated as rigid bodies, and collisions result in a semi-elastic response. For correct collision response, I calculate normals for all the outer surfaces.
Aerodynamics. Players can mount functional control surfaces to ships. Forces are calculated as a function of air velocity.
Custom GUI engine and widget kit. For typing input, I have to poll the keyboard. I had to implement word wrapping, which was a bit of a bear.
Motion blur on particle effects. This small effect adds a lot to the overall look. For Gimbal, I just stretch the sprites.
One aspect of the component-based physics engine: Missiles physically leave the launcher when fired, and free up some weight and drag on the parent ship.
Client-Server multiplayer network model. Clients send their input changes (deltas), and the server runs the simulation. Server sends regular vehicle state updates to the clients. I use the Lidgren networking library.
The physics engine is multithreaded and runs on N logical processors. I split the work across vehicles in the game world, which do not have direct dependencies on each other. When I calculate collisions, each thread computes a "pair" of possible colliding bodies.
There are more cool programming tricks in this game. I can speak to any part you are interested in.
The Tech of Gimbal
Very cool. Im voting to greenlight it on steam.
Thanks, dude!
It is apparently "58%" of the way to Greenlight, whatever that actually means, and very slowing rising.
Whoa, this looks pretty sweet. Once upon a time I was thinking about making a game like this (except with Geometry Wars graphics).
I'm going to sink some hours into the demo and vote for Greenlighting it!
I'm going to sink some hours into the demo and vote for Greenlighting it!
I just released a patch that takes care of some of the connection bugs by updating to the newest build of Lidgren (my network library).
And for the next 4 days, Gimbal is being featured on IndieGameStand.com. It's Pay-What-You-Want, which people seem to like.
And for the next 4 days, Gimbal is being featured on IndieGameStand.com. It's Pay-What-You-Want, which people seem to like.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement