Trial and Epic Fail

Ventures of an indie game developer

Project planning

  1. Refactor some code to simplify the simple;
  2. Generate roads, estates and vehicles;
  3. Implement game fun: steering, driving, camera, shooting, killing, dying, looting, resource extraction, dumb bots, etc.*;
  4. Simple chat is a must;
  5. Vehicle editor;
  6. Estate editor;
  7. Economy**;
  8. Network infrastructure, security and distribution***;
  9. Managing of user accounts and built stuff;
  10. Keeping and distribution of world data from a master server;
  11. Menus, UX, music;
  12. Port to iOS;
  13. In-app purchase. Limitations, such as time limit per day unless paying;
  14. Testing, refining, polishing, optimizing;
  15. Wait 2 weeks;
  16. Build, deploy, release;
  17. As a gimmick, I'll give away my other games for free. So update, build, release those as well. Peuh!
  18. Go travelling.

* This is where you start to realize that the actual game is only one step of 16, or about 6%. This is also where you make touch controls fun.

** Loot and resources will have to be balanced in an MMO, both to evade inflation and to prevent overly large vehicles. On vehicles and houses/stuff in the yard I'm thinking polynomial cost on dimensions and parts. The dimensions needs to be restricted, or people will build huge, flying penises that will get stuck between skyscrapers, or 10 km tall buildings. The parts would cause bandwidth problems and lag whenever someone decides to put 1M bubbles on the back of their hovercraft.

*** This is the hardest part from a technical standpoint. The other standpoints I don't want to think about (they resemble BDSM to me).

Let's just imagine the vehicle editor. I want to let the player combine any capsule, cuboid or cylinder at any size, angle or distance. Motors, canons, lights, materials. Sky's the limit. Ok, let's not get carried away just yet. But the Lego feel definitely will be there.

Well, I'll start out by treating the above bullets as milestones, and I'll take some time in between each to let it sink in. Nothing has to be perfect, but all parts need to be fun and easy for the user. Even if I epic fail on the Elon Musk part of things, I'm going to feel really proud of myself if I manage to pull this off. But OMG! THAT'S A SHITLOAD OF WORK!!!

And when this game is done, it's not done. There are infinite possibilities: trading, bridges, water, clans, skill system, more weapons, monsters, forests, seasons, day/night cycles... But I still believe that if I make a game that I and a bunch of others will enjoy, it will be pretty fun to build on some more.

The City

I let my previous idea cook for a bit, but realized it would fail on the world itself. I don't have what it takes to build a living world to fly/drive around in just yet, so it will eventually fail on the barren landscape. Terminal Velocity wouldn't work today, even in multiplayer.

The good news is I came up with an idea that will work a whole lot better. Think MMO GTA 1 without people, or possibly Smash Bandits Racing - but really ugly - where you instead can build your own house and vehicle. Your lawn can house a cemetery or a skyscraper. Your vehicle could be a bus or a space ship. Mount canons. Voilà!
There's no way this could go wrong; I have everything I need for hoarders, builders, explorers, socializers and killers.

But exactly how difficult is this beast going to be to develop? Hm. I need two really good in-game editors. A pre-generated, enormous city. The MMO servers would have to be offloaded to the users, because if the game becomes really huge I couldn't afford the server cost. Everything would have to synchronize all the time - including all estates and vehicles. The estates and vehicles would have to be saved on some central database, with user accounts connected. Local caching to reduce network traffic and lag.

Last but not least the gameplay itself must rock insanely.

Something tells me I have some work ahead of me, but I'm a lot more confident about this idea than I've been about any gaming idea lately. Better start working on it before I find a flaw!

Haskell and choice

I'm trying to broaden my linguistics ski11z, but the Haskell literature I've come across so far seems to assume the learning curve is very steep, and to some extent it is. My previous knowledge of Python's functional stuff helps, but I sure can't read real code. But it's kind of dull to read about the type system when it's only sprinkled with very little intriguing shit.

I decided, more or less, what I'm going to do instead of a Tetris clone. A vehicle MMOG! Hm. Building the networking code and infrastructure sure is going to suck, but tech is pretty much only what I've got going for me. I can't build a single player game with amazing content. Hm. Hm. You did see my bird, right. So networking, physics, MMO; that's probably the only way where I can create a game that will entice me and keep me coming back for more.

First I should build some prototype to ensure it's fun. If it is, and I'm pretty sure it is, I'll build the infrastructure. On the plus side, MMO it will allow the omnipresent wish for viral spread to grow.

Here's what I'm thinking at the moment:
  • Generated, infinite terrain; overflowing with caves and tunnels.
  • Vehicles; at least space ships. Possibly tanks. Think Terminal Velocity.
  • Vehicles can be configured in any way. Canons mounted.
  • No rules!!!
  • When a vehicle crashes/explodes, x% of the value will turn up as loot on the spot.
  • Distributed client/server model, placing most of the server load on the users. (Building this is going to kill me.)
  • Master server in the center. It controls accounts, bans; stores vehicles; whathaveyou.
  • Pricing: play x minutes for free per day. Pay to unlock more minutes.
I have a few more ideas, but mostly this is it. It's going to be hell building. But if I manage, this is going to be Ruzzle for space ships! (And I'm going to be able to buy more than a chewing-gum from the revenue this time around. Ahhh. The joy of sipping Piña Colada. Ok. Maybe not that.)

Nice cow... nice cow...

Today when I was out jogging I saw the most peculiar thing: a cow that had hung herself between two tree trunks. It looked as if though she'd stuck her head in, and then slipped with her hind legs down a steep slope. Either she broke her neck or choked, I didn't stick around to check. I ran to the house and told the framer's son what had happened. I bet not a lot of people will ever see that.

I don't usually eat red meat, but perhaps I should have taken a bite to not let it get spoiled. Well, perhaps next time.

Three crooks and a fourth

The Economist talks about organisational complexity, meetings and e-mails as debilitating clutter. Interestingly a lot of people work for these types of companies. Are we just born dumb, or is it something we become as we start working? I believe the latter, but guess it's part of a trade. Bigger company = less stress/more clutter, smaller company = more stress/less clutter.

It would be great to at some point work in a relaxed, uncluttered, small company. And if they were developing something fun it would be fantastic. But that would probably be unlawful, and certainly violate the laws of nature.

After my last post I realized that The Tetris Company probably will sue if I make a clone, even though would probably be an invalid claim. They've won in the past. Hm. I might have to think of something else.

Less is more

For my next game I've been indecisive weather I should make a bit more complex game, or a simpler one. My main concern is that I want to make a commercially viable game, I don't want to make another "learning experience." So what makes people buy games? Well, they need to be good. That's pretty much it. Does it matter if the game is simple or not? I'd say no. But I've always wanted to build complex games. On the other hand I could always do that later. And it's far easier to make a simple game shine, like, say, Hundreds. And it's never/always too late to build something utterly complex.

So after a long vacation and allowing my mind settle on the topic I decided to run with a very simple game, but on a large scale, i.e. multiplayer. I also feel that real-time multiplayer can kill the casual part of gaming. I loath causal gaming.

The game I decided on is a game I've tried before and know rocks: multiplayer tetris.

We played this game in college and I was the worst player in our class, but I liked it the most. When you get two or more rows in a single move, you push as many "crap" rows to the bottom of one of the opponent's matrix. The goal is of course to be the last man standing. It's a fantastic adrenaline rush. Which is also to say that it is exhausting. "Exhausting" does not make successful iOS games in the long run, but I think it will get me a bunch of buyers when it goes viral. And if it's half as good as I remember, it will.

The original Xtris source code is only 3047 lines of C. Unfortunately I'll have to rewrite it, because I want peer-to-peer networking with UDP/STUN. Which means it'll scale immensely well, as all my servers have to do is to help blow some holes in everyone's firewall. I'll buy some type of Virtual Private Server for this. I'll also implement some different types of bots which will make it seem like there are actual players online (until I reach critical mass). These bots can run on the VPS as well. Hm. Or maybe I'll just run the servers on the VPS, and skip P2P. In that case I wouldn't have to rewrite much. But my minimum requirement is 15k simultaneous players, I'll let some early performance tests decide.

Perhaps I'll use Amazon's VPS solution, it's only $0.05 per "VPN Connection-hour." Hard to say what that means, but anyhoo. I'll steal controls from EA's Blitz. They're certainly better than anything I could come up with. Regarding payment model, I'll give X multiplayer matches away for free per day. If you want to play more multiplayer matches, you'll have to pay a one-time fee (tire 1=1 USD).

I looked back at my old postmortems in this blog to see if I can foresee will go right and what will go wrong. One obvious thing is of course that a lot of people hate tetris. On the other hand there are plenty of people who thinks otherwise. Myself I used to hate it before I tried the multiplayer version in college. I'll balance the difficulty through some automatic ranking system, so the common problem of making a too difficult game pretty much goes away (especially if I run some bots at both ends of the scale). The only problem I'm unable to solve is the intermission from when you've lost a match until the next one starts. Hm. I'll think about it, but apart from that I really don't think I can go wrong with this game.

I'll start working on MMO tetris in a few days. First I'll do my load test to see how many players I can support in a client/server architecture.

Great filter behind us?

Ever heard of the Fermi Paradox? Well worth a read.

About the author

Min bilder
Gothenburg, Sweden