Jun 19

King Battle!

I'm pleased to announce my first Gamejam game, King Battle!

King Battle is a split-screen platform game for 2 players. You and your friend must race your respective kings across a short scrolling platformer-like level to get the crown. Simultaneously, you must prevent your friend from getting to the crown before you do. In order to stop him, you can fire bullets at him. It turned out pretty well!

You start out in the level selection screen -- jump on a crown to select a level. You can return to this screen at any time by hitting ESC.

As you kill the other king, or when you get the crown, your score (upper right hand side) increases. When you get shot, or when you fall into a pit of razor-sharp spikes, your score decreases -- but it never goes below 0. A king's gotta have some pride.

Player 1 keys: A and D to move left and right; W to jump, left shift to accelerate / shoot bullets.

Player 2 keys: Arrow keys to move; up arrow to jump, right shift to accelerate / shoot bullets.

If it's easier, you can also use left alt and right alt to accelerate or shoot.



There are no restrictions on what you can do with King Battle's code and sound. You can do anything you like, up to and including selling it yourself without crediting me or providing source code (and good luck to you :). Some of the graphic files, however, require credit and links. Check the credits file (see below) for details.

Technical stuff

I wrote most of this game last weekend for a game jam. Unfortunately, I didn't finish it in time, so I spent this weekend polishing it up. This was my first gamejam, my first "real" game, my first use of the Love 2D framework, and my first real use of Lua (the language of Love). There are still lots of bugs and clunky sections, which I probably now won't have time to fix.

Even though I didn't finish in time, it's not that easy to come up with a game jam moral, such as "know your limitations" or "plan a very simple game". I already knew these things, and still didn't make it. Writing a game to a very tight deadline is not something you are going to know how to do in advance. My advice is just to try it, to (probably) fail, and to do it again.

Most of the problems I had were due to my being new to writing games, and new to the Love 2D framework, but I developed a legitimate dislike for Lua. It seems like it was developed by well-meaning people who then never actually used it. For example, retrieval from a dictionary always succeeds with the special value "nil". I never want this. Another interesting choice is that, in Lua, arrays start from 1. This is really silly, especially when you are dealing with, say, screen co-ordinates, which start from 0. Using 1-based indices also defies a fairly well-established convention for no good reason. Adding to the annoyance is that using a zero index works, and returns -- wait for it -- nil. There are various syntactic inconsistencies, especially around array construction. There is a special "length of array" operator, which works unless you want to store "nil" in your arrays -- if you want to do that, you have to use a special function instead. OO is very messy. And so on.


Here is a full list of credits. Thanks especially to Catie for level writing and play testing.


I'd love to hear from you. If you want to tell me anything about King Battle, send email to wzdd lardcave net.