Jump to content

  • Log In with Google      Sign In   
  • Create Account

FREE SOFTWARE GIVEAWAY

We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.


Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


The Tech of Gimbal


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
6 replies to this topic

#1 ColinShark   Members   -  Reputation: 118

Like
3Likes
Like

Posted 25 October 2012 - 11:31 AM

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.

Posted Image

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.
Posted Image

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

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.
Posted Image

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

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.
Posted Image

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.

Sponsor:

#2 Starnick   Members   -  Reputation: 1255

Like
0Likes
Like

Posted 25 October 2012 - 12:04 PM

Very nice!

#3 Slig Commando   Members   -  Reputation: 334

Like
0Likes
Like

Posted 25 October 2012 - 07:20 PM

Very cool. Im voting to greenlight it on steam.

#4 ColinShark   Members   -  Reputation: 118

Like
0Likes
Like

Posted 26 October 2012 - 07:47 AM

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.

#5 Giallanon   Members   -  Reputation: 1291

Like
0Likes
Like

Posted 26 October 2012 - 12:55 PM

Very nice!

#6 Nypyren   Crossbones+   -  Reputation: 4823

Like
0Likes
Like

Posted 31 October 2012 - 11:46 AM

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!

#7 ColinShark   Members   -  Reputation: 118

Like
0Likes
Like

Posted 05 November 2012 - 10:48 AM

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.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS