Most of my time has been spent preparing a game for submission into the Independent Games Festival at the Game Developer’s conference. It’s called Gravmari, a game about gravity and the universe, roughly described as “Katamari in space”. The submission deadline is Nov 1, so we are working pretty hard to get it in tip-top shape. A demo version will go on the website shortly after that date.

I am very happy with the game so far. It is very polished, but remains simple and elegant. We have a lot of patience with our features, introducing new dynamics, music, and art gradually throughout the whole game. I am occasionally hit with the haunting sense of grand scale we are going for, and I think it will be very effective on people who don’t know what’s coming.

The other developer, Max, and I have informally started a studio together (we will register soon) called Hubris. This is our first game, and we hope to make many more. I am excited about this game company for two reasons:

  1. We are rejecting the typical working of the game industry and moving more toward the film industry, in the sense that our games have a director with a unified vision in mind, and the rest of the crew is there to help the director achieve his vision. For exampe, the idea of a “team” of game designers is pretty absurd in this context. Gravmari doesn’t have a director, but the soul is there: the game is a work of art as its whole — the execution of a unified vision — not an idea and a list of features.
  2. We are both scientifically-minded, principled individuals. A couple of indications of my little joys: Most game developers know that you shouldn’t hard-code numbers, but abstract them out into named tweakable parameters. But you can do better than that: do some math and discover what the right answer is, so tweaking doesn’t make any sense. Eg. you could have a tweak parameter for the speed of an orbiting ring galaxy, but better is to write down an equation and find out at what speed a stable orbit forms. This approach has worked wonders throughout this game. Another joy is that we fully embrace our 2-dimensional environment, so much so even to change the equation of gravitational attraction. In 2 dimensions, gravity ought to follow an inverse law, rather than an inverse square law (I can explain why later if someone asks). This has the side effect of creating much more math for us to do, because everything you find online applies to the inverse square form.

All in all, I think the game and the studio will be great. I’ll make another announcement when you can try it out.


14 thoughts on “Gravmari

  1. Long as I have been an open source advocate, the game will not be open source, unfortunately. We are trying to bootstrap a game studio, and we need money to build our future games. So, use this one to fund the next one (and show off to investors, etc.). The usual ways of making money with open source are pretty much inapplicable to games.

    Thanks for the link to Osmos. We came across it half-way through development, and note the similarity. But Gravmari puts much more focus on many-particle gravitational dynamics and scale. We hope the IGF judges won’t see it as a rip-off.

  2. You mention using equations and tayloring them to your needs, you mention abstracting things away, but you don’t mention what tools you use (C,C++, ocaml, haskell, opengl, openal, sdl, ogre, …). That would be interesting too :-)

  3. I’d like to reword question about open sourcing. Will game be open at some point in the future?

    BTW When you changed law to 1/r you lost some nice properties of orbits. They are no more closed curves.

  4. Snark: Ah, it is an XNA (C#) game. So we are forever tied to Microsoft :-(. Our main working toolset is XNA for code, Gimp for graphics (our artist uses Photoshop I think), and Reason for sound effects and music.

    Shimuuar: Could you expand on what you mean by that? I believe it, a lot of things change with the new equation. There is no longer such thing as an escape velocity, and consequently objects have infinite gravitational binding energy. However, some interesting things emerge, too. Scale invariance is a big part of this game; i.e. we need to make everything smaller by some factor without anybody noticing (so that we can keep growing forever without running out of floating point bits). Only in 2D is the gravitational constant scale-invariant. That hints to me that gravitation in 2D is more self-similar than in 3D.

  5. For F ~ 1/r^2 objects which are bounded moves in periodic fashion in ellipses. This is case for F~r (harmonic oscillator) too. If one any other dependency motion became aperiodic in general case. I.e. object will never come to same point with same velocity.

    What do you mean under scale invariance? Gravitational constant for 2D isn’t dimensionless it’s cm²/(g¹ · s²) so it will change is you change dimensional scale.

  6. C#? should be using F# …

    was going to mention osmos as well :P (the initial demo did nothing for me, but people who’ve played it through have said very very good things about its overal form)

    I hope it works out and is generally fun.

    Let us know if you’re ever looking for testers, eh?

    (funny: a lot of blogs I’ve been reading recently have started getting involved with the discourse around games. this is as heartening as one might imagine)

    also, you’re probably not as tied in as you think you are to windows with c#; mono has an xna library, i believe. Have never used c# though, so it might not work (okay i did for the first time last friday).

  7. First… Great game. If I didn’t like it, I wouldn’t be commenting.

    Great graphics, good soundtrack, great controls, yada yada….

    However… it is missing a couple of things.

    First feature I would love to see is the ability to pause. (Or, if the feature exists, documentation on how to implement it would be a must.)

    Second, I don’t understand the “death” mechanics. I understand that the playertoid has limited energy, and that it regains energy as it absorbs mass. However, I don’t understand how or why the energy is used… Is it a function of propulsion, a function of time, or a combination of the two? (It seems to be more a function of time, with a fairly constant drop-off rate, with any function of propulsion being minimal if it exists at all.) Do the blobby nebulae have any bearing on the rate of energy loss?

    The way to express the amount of energy needs some work… It is expressed based on the color of the ‘veins’ on the playertoid, but my first impression is that I can’t tell how low the energy gets, until it is too late to get to more matter to replenish. I’m happily travelling to a cluster of matter, when suddenly I hear the warning sound, then the veins turn dark, and shortly after, my playertoid is dead.

    Showing the energy as some sort of bar with obvious upper and lower bounds would answer these questions in-game, and remove a lot of the frustration I have. (Or, at least a relative upper bound, set at the max energy a player has accumulated, if there isn’t a “hard” upper bound.) Seeing how quickly the energy changes, based on different actions (i.e., changing my vector, entering and leaving a nebula, absorbing different masses) would help me make more informed decisions, and would be much easier to see my status, rather than relying on the hue of the veins. (Don’t get me wrong, the hue of the veins is a great graphical addition, and shouldn’t be removed, but make for a clunky measurement of the playertoid’s actual energy level, that doesn’t actually allow new players to grasp the consequences of their actions, or lack of action.)

    Anyways, great game, and I look forward to future versions.

  8. Uh… I’m in the same seat as Adam.

    Everything is sweet and cool… but I can’t get around the rules of the game! Also, there seems to be no way to configure controls (really, not everybody use an xbox controller…) or it is hidden very well.

    Other qualm: where in the hell did you install the game? A “choose your directory” would have been polite.

    Gravmari has GREAT potential… help me enjoy it!

  9. Adam, Tracian, thanks for the comments!

    Adam, when you’re not using an xbox controller, pause the game using the “p” key. It is in small print at the controls help screen that comes up at the beginning. I’ll see if I can make it more obvious… or change the control to something less obscure (like spacebar maybe? what did you try?) If you are using the xbox controller, just press start.

    We will definitely think about and fix the fuel indicator, as there has been a lot of confusion about that.

    Tracian, unfortunately we can’t really do anything about your other comments. It was developed using XNA, which has its own rules about install locations. Also it only supports the 360 controller :-(. I think you’re stuck with the mouse.

    Adam, since you entered your email, I attached the fuel indicator bug to you, so you’ll know when we fix it. :-)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s