The Tech of Gimbal

Started by
5 comments, last by ColinShark 11 years, 5 months ago
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.

email_triscreens.jpg

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.
hit_detect.png

Aerodynamics. Players can mount functional control surfaces to ships. Forces are calculated as a function of air velocity.
aero.png

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.
gui.png

Motion blur on particle effects. This small effect adds a lot to the overall look. For Gimbal, I just stretch the sprites.
blur.png

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.
missiles.png

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.
Advertisement
Very nice!
Very cool. Im voting to greenlight it on steam.

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.
Very nice!
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 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.

This topic is closed to new replies.

Advertisement