Thursday, March 13, 2014

[REDACTED], Riftwars, and Bad Things

Tonight, I will discuss the status of the three projects I am currently working on: [REDACTED], Riftwars, and Bad Things Happen in Space.

[OMITTED]

This game is a [REDACTED] simulator with some interesting twists. I'm currently working on getting [BLEEP] to navigate the [NOPE] and do [BLEEPY] AI things, like wander around, avoid nearby [BLANK] and find [REMOVED] and sit down. For navigation, I'm currently using Unity's built in navmesh, but I've run into a few annoying limitations on how much it can be scripted... like you can't specify a certain set of obstacles for a certain agent, and you can't have an agent be something that's not a cylinder (not everything in the world is a cylinder, I know). So, I'm thinking about using Aron's A* project, because it seems to be much more configurable. Don't get me wrong, unity's navmesh is powerful and easy to use, but I'm not sure I can get it to do everything I'll need down the line.

To facilitate designing complex AIs for the [BLEEP], I've been looking into behavior trees. A behavior tree is essentially a hierarchical finite state machine with a fixed set of return states. That's probably over simplifying it. Check out the link if you want a better explanation. I've looked into two packages on the Unity asset store for dealing with behavior trees in Unity: Behave and Behavior Designer. Behave seems to be more sophisticated that BD in the sense that it compiles its own assembly and allows you to do anything you can imagine with that. Behavior Designer is a little bit more limited because you've got to work with their behavior manager, but it's also got a lot more documentation. I ultimately went with Behavior Designer because it was cheaper and it seems like there's more support for it.

Riftwars

We've got a lot of cool stuff going on in Riftwars, which is the current name of the VR Starfox meets Geometry Wars prototype thing I'm working on with James. We're using two tools along with Unity, which I am finding to be really great for collaboration and source control. Basecamp and Plastic SCM. Basecamp is an online collaboration tool where you can list tasks, discussions and deadlines. Plastic is a task based distributed version control system, which can even use github as a backend if you configure it correctly. It's much easier to use than git and has some features that are pretty useful for working with Unity projects.

Gameplay wise, we've got a ship flying through a trench and shooting and reticules and exploding cubes and cockpits and image based lighting and scattering and multiplayer. We're hoping to have a real game that is something with winning and losing and scores by time the next VR meetup rolls around. Here are some screen shots:



Bad Things Happen in Space

Ok! Well, I've got a power system working (badly) and the space ship is made of wood (because it came from the wooden planet). The current story goes something like this: Space is a bad place. Don't go there. Don't go to space. Space was invented to kill humans. Your punishment is space. You're in space because no one would go there on purpose, and you're being punished for doing something bad, down there on the wooden planet (Lumbria? Xulon?) and now you have to go to space.

Mechanically, I'm actually modeling radiative cooling of heatsinks with the Stefan-Boltzmann law and the specific heat of stuff with heatsink surface area and thickness, and density. It's probably waaaay more complicated than it needs to be, but I wanted to see if I could get it to work with physics before I hacked in something more video gamey. Power is generated according to the load which is needed by the ship. The power that is generated has an associated efficiency which splits the actual power into heat and useful energy. The heat goes to the heatsink, which heats it up, and the heatsink then radiates that energy away at some fourth power function of temperature. This isn't very fun, but it's a decent starting place. Here are some screen shots:

The beautiful wooden decor.

Wooden power system. 
Turn out the lights.