Category: Game Programming

More Heroes!

Wow, I can’t believe I forgot these guys. Mike Hommel and Seth Robinson are two friends of mine who I got to know better during the Indie Conversation.

They have conspired to create a game called Growtopia, which is a collaborative creative MMO on iOS and Android (Seth claims desktop versions are Coming Soon). It is apparently the business and has generated tons of sales for them, which makes me very happy. Seth wrote an excellent postmortem for it, which you can read here.

Andy Moore, who is apparently the only remaining contributor to the Conversation, also had a recent big hit with Monster Loves You. MLY is published by Dejobaan Games, one of my favorite “indie” publishers. (I still want a sequel to A Reckless Disregard for Gravity, guys.) Again, you can read a postmortem of Monster Loves You here on Gamasutra. He also took MLY to Pax and wrote up a great article on how to take your game to Pax if you’re an indie.

So, while I was unemployed and feeling sorry for myself, my friends were out doing great things! I should follow their example.


Planitia Update 44: A New Beginning

So! The Steam Greenlight Concepts site is up…right here!

Sorry this took so long; I decided I didn’t want to just do a video; I wanted to make a new demo version of the game…which you can get right here!

I am seriously thinking about trying to kickstart this game and the feedback I get from the various places I’m going to post this will probably determine whether or not I do.

If you have any problems or anything else to say about the game, you can leave a comment here or email me at anthony.salter@gmail.com.

Have fun!

EDIT: What the heck, I’ll inline the new video:


Planitia People (Planitiople?)

“My deadline for this is end-of-day Monday. By then I want this game up on Concepts. I’ll be blogging the process. Wish me luck.”
~cough~ It’s beginning of day Monday. Where’s the blogging? How’s your progress?

I’ve had the nose to the grindstone, pretty much. I’ve fixed several performance problems with the game and spent about a day trying to get animated 3D models into the game. That’s going to take longer than I’ve got so as a stopgap measure I had Mrs. Bogue render out frames of animation for each direction (thus making classic eight-way sprites) and I’ll be using those.

End-of-day today may be a bit premature; there are a couple things (like trees and rocks) I want to get in to make the terrain look better. But it should be very soon and I’ll be updating at least once a day.


Pushing Planitia

So Steam has this new thing on Greenlight called Concepts. It allows you to get your game in front of the Steam community. It doesn’t help you get your game greenlit, but it’s also free, and free is about all I can afford now.

I want Planitia up there. The majority of people I’ve told about the game have been very encouraging; I want to gauge that reaction on a wider scale. With the hope that I might be able to roll into a Kickstarter or something similar if there’s enough interest.

Well, according to Steam, to put up my game I should have:

  • A square branding image (similar to a box cover) to represent the game in lists and search
  • At least 1 video showing off the game or presenting your concept
  • At least 4 screenshots or images
  • A written description of the game along with the tentative system requirements.

That seems simple enough. Of course, I can’t do anything to promote the game (really) until I get the temp art I’ve been using out. (Icons from Populous II are a leetle too easy to spot, you know?)

So, in addition, here’s what I feel I need to get Planitia in visible shape:

  • Get animated villagers in.
  • Swap out in-game icons for the god powers and soldiers for ones either I’ve created or (better) are free.
  • Get rocks and trees in (fortunately I already have these models).

My deadline for this is end-of-day Monday. By then I want this game up on Concepts. I’ll be blogging the process. Wish me luck.


Star Revolution UPDATE!

You can follow me on twitter at @ViridianGames, or you can actually watch what I’m doing at http://www.twitchtv.com/viridiangames.


My Own Private Ludum Dare

Okay. So I’m sitting here, right? I’m sitting here looking for job offers and waiting for phone calls. And the situation is getting increasingly dire.

So I’ma make a game.

Inspired by Ido Yehieli‘s success porting Cardinal Quest to Android, I’m going to write an Android game.

In three days.

I have until Monday morning to get this game done and get it on Google Play, where hopefully it can help us dig out of our current hole.

It’s going to be called Star Revolution. Yes, I know, I was going to use that name for my huge RPG with tactical space and ground combat…but I’m starting to think it might be a bit hard to write that game myself.

So Star Revolution has been reinvented as a 4X game for Android phones. If you’re not familiar with the term, TV Tropes does a good job of explaining, as usual.

The problem with 4X games I’ve played like Civilization, Master of Orion, and Galactic Civilizations 2 is that they just blow up to become these huge things as you play them. Now, that’s a feature…until it’s time to sleep. Then the game state that you were carefully maintaining in your head during play gets lost, and when you come back, especially if it’s days later, your first thought will be “What the hell was I doing? Why am I researching Improved Toenail Clipping? Why is my fleet on the other side of the map? And why did I think allying with Montezuma was a good idea?”

This may suggest that there aren’t many 4X games on mobile platforms because of the inherent stop-and-start play of portable devices. But I think that by pulling the scale of the game back a bit I can still make a fun game that players can pick up and put down as needed.

I’ll be prototyping the game in C++ using my own development framework, but I’ll be writing the final game in Haxe and NME. And I’ll be blogging and tweeting the entire process.

Wish me luck!


Lots of Closed Doors Recently…

And here is a window.

I have a chance through Kickstarter to become the lead programmer of a great real-time strategy game – Conquest 2: The Vyrium Uprising! This would allow me and my family to get back to Austin, and would help me to get back into an industry I love but I feel has been very abusive lately.

And you get a great game to boot!


Using SVN Or Other Version Control With Unity

Okay, finally figured out how to get Unity 3D (non-Pro) to work with source control. Here’s the steps.

First, in your project, you need to switch to metadata mode. This creates external text files that allows your in-scene objects to stay linked to their prefabs. So unless you like seeing a bunch of red objects in your project hierarchy after committing, go to Edit->Project Settings->Editor. In the inspector pane, change the Version Control Mode to “Meta Files”. You will have to do this for each project you create, unfortunately.

Save your project so Unity can create the metadata files.

Now, commit your project folder to your version control repository except the Library sub-folder. Indeed, if your version control supports marking folders as “Ignored”, do that for the Library folder. There are no assets in this folder and If it gets deleted Unity just recreates it on next project load anyway.

Now, you should be able to delete your local folder entirely, pull down the version from source control and open it in Unity, where it should look just like you left it. Needless to say, I would recommend doing this with a test project first.

Finally, you must remember to add all assets you import or create to the repository on subsequent check-ins.

This should allow you to keep a working copy of your Unity project in a safe place and under source control.


Okay, back to work.

(Not to work-work; I can’t go back to that until I’m cleared by my doctor and I’ve no idea when that might happen. I mean Planitia-work.)

One of the things I want to get done (and get done quickly) is to create a playable alpha version of Planitia, as well as create a trailer. That will make my funding and marketing push more effective.

“But Anthony!” I hear you say. “You already have a playable alpha! I remember you posting it on your blog! With source code, even! Here, even!

This is true. But that version has a terrible bug in it that I just cannot seem to track down – after about ninety seconds of play, the frame rate instantly drops from 60 to 30 and then descends from there. All my attempts at profiling have met with failure.

Basically, I fought code entropy and code entropy won. I’m pretty sure that my framework, which I’ve been using for years, has some rather terrible bug in it and the code is just too overgrown to track it down. Of course, that was the first game framework I ever wrote, so of course it was krep. Before you say anything, It’s not just Planitia that is making me think this, there are parts of Inaria that bog down as well. Both of these games are so damn simple that they should run at about a thousand frames a second on a TI-99/4A, for crying out loud.

I talked to my friend Jari Komppa about this (who was recently called a god of the indie demo scene, by the way) and he had this advice:

“Code like it’s 1999.”

I also stole his base code, which you can find on his site here.

So how were we coding in 1999? Well, procedurally, for one thing. OOP hadn’t really penetrated game development yet. Game engines were usually just collections of functions rather than interlocking game objects. Classes were rare, and inheritance non-existent. Very much KISS territory (the design/programming philosophy, not the metal band that saved Santa).

Jari’s code is just like that. There are no classes. There is no inheritance. There’s just a bunch of functions – all in one source file, even – that do practically anything you might want to do in a 2D game, and lot of the stuff you’d want to do in a 3D one.

So I started over. While I do sort my functions into different source files, they’re now standalone functions rather than class methods. I added code I needed from my own framework (configuration file reading, logging, industrial-grade RNG, etc) but I only made objects out of things that there can be multiple instances of, like fonts and game objects.

This took me about eight hours worth of work. I now have a framework that’s just as functional as my current one but with (let me count) about 1/4 the lines of code.

I’m actually kind of eager to see how quickly I can recreate the gameplay of Planitia using the new engine. It could turn out to be a mere 40-hour project.

Updates to follow.


What I Learned Watching Notch Code

I’ve read a couple articles about Notch’s entry into the most recent Ludum Dares. Both of those articles are worthwhile and I suggest you read them both.

Apparently Notch is just incredibly prolific – in a 48-hour period (while making Prelude of the Chambered) he coded for about forty hours and slept for about eight.

If you watch this timelapse, at no point will you see him goofing off on web pages. At no point will you see him checking on his World of Warcraft auctions. He watches a little YouTube and plays one game – Quake – for about an hour while he’s eating his lunch.

And if you don’t trust that, you can watch almost the entire 48-hour period in real-time over on Twitch.Tv. The man has the most amazing work ethic.

Some of the tricks he uses during the making of Prelude of the Chambered:

* He draws all the graphics in the game in greyscale, then uses vertex colors to actually color them in game.

* All of his graphics are 16×16 PNGs, even the wall textures.

* All of his levels are PNGs created in Paint.NET. The PNG contains every bit of information about the level, including which block to use where and what color to make it. The alpha channel information is used to place objects and triggers. His Paint.NET is set up to never ask him what format he wants the image in; it just always saves as 32-bit PNG. You may think, “What’s one more click?” but it adds up.

* He uses SFXR to create his sound effects.

But that’s only part of it. He’s also chosen a platform that makes projects easy to set up, allows altering of code while the program is running (thus reducing the amount of time it takes to debug), and allows people to play his game almost instantly – no installing, no configuring, just give them a URL.

Notch uses Java for pretty much everything he does. I’ve been resistant to change for its own sake, but this isn’t for its own sake. Making my games browser-playable means more exposure and better feedback. So I’m going to be learning Java and Java3D, and I’ll be writing a new prototype of Planitia using it.

Oh, and if you want a nice history of how Minecraft progressed, here’s the thread where Notch announced it for the first time. It’s fascinating reading.