Monday, March 31, 2014

Game A Week Challenge: Week One

If you follow my tweet or face machines then you probably already know that I am going to be embarking on a video game making challenge. If you haven't heard: I am going to be embarking on a video game making challenge! The goal is to make one game each week, from start to finish. Included in that are menus, win and loss conditions, assets, and game mechanics. The point is to become experienced with making all the parts of a game, which is something I have failed to do thus far. In fact, (with the exception of game jam games) I have failed to actually make anything someone can play from start to finish in the past year and half of this weird game dev experience.

Btw, I'm still working on Seth's secret game, and Bad Things Happen in Space has been put on hold, but is not cancelled. When Bad Things reawaken, it might take a different shape, but I still have the dream of making a multiplayer-space-panic-intrigue-simulator. Also I applied for a Unity dev job somewhere in Boston, but who knows if that will actually happen.

Beeminder

Here it is! https://www.beeminder.com/pyromuffin/goals/game 24 hours a week, or four hours six times a week. At least. I expect I will probably exceed this.

Things that I will probably do

I will probably make all of these games in Unity. That's what I'm familiar with, that's what I feel most competent in. It may be interesting to later try to make a game in UE4, but that is not something I am going to do just yet.

I would like each game to be able to be played in VR and RR (regular reality).

Reusing assets, frameworks, tech is allowed. Reusing games is not. 

I'd like to put all these games on my wobsite with Unity webplayers.

I'd like to make all of these games open source (though, they might be missing proprietary plugins).

I would like to make all these games weird.

Phases

I plan to split the time into these buckets:

Game design and concept
Programming!
UI
Asset creation
Juice
Testing and release

Ideas

Here is some stuff that's been floating around in my head. I will likely choose one of these ideas and begin working on it today!

QWIP: control your mouth in great detail. Try to say a word. Uses echobox for sound propagation and calculation.

Bad Things Happen in Plane: Flatland the video game.

Vlambeer game clone mashup! Super Nuclear Ridiculous Crate Fishing Thronerausers.

Intrigue: multiplayer sandbox where every player has a different goal.

Some game that makes fun of the fact that the way that most people interact with most things in video games is through killing.

Some kind of third person action clicker.

Puzzle game?

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.