0

Ludum Dare Post-Mortem

posted 24 Apr 2012

So last weekend was the 10th Anniversary Ludum Dare and I actually took part in this one. The theme this time round was Tiny World which was one of the themes I was most looking forward to.

Ludum Dare was good fun and I learned quite a lot about game development and would do a few things differently if I ever submit an entry for another Ludum Dare. The community was very active and was interesting to just sit on the Ludum Dare IRC channel throughout the event.

My partner for the Jam was Dan Bell and he managed to come up with the base idea for the game within 20 minutes after the theme announcement on Friday. We quickly started bandying about ideas for an Osmosis like game but more based around planets.

Starting as a small comet you must collect other comets and avoid asteroids to build up your mass to gain planet status. Then you can work on collecting an atmosphere for your planet, while avoiding boiling off all your water by going too close to suns. Third stage you have to ensure that your inhabitants aren’t crushed by comets and asteroids and aren’t frozen or burned to death, so you need to stay in Goldilocks Zones.

This was our intention but we didn’t manage to fully finish the first stage. We were plagued by strange bugs that were connected to some badly written code by me and quirks to the game library we were using, PlayN. We also used JBox2D to handle the physics for the game. (This is packaged in PlayN)

After all these I spent a day trying to work out how to package the projects as something other people can play, which neither Dan or I had ever actually attempted. After hours of messing around with Maven I found a plugin for Eclipse called: Fat Jar which built the project into a nice executable jar.

It would have been nice to release a HTML version, as that’s the whole reason PlayN exists, but we just couldn’t figure it out so there’s just a jar you use to play.

My only condolence is that we actually released something, which wasn’t fully fleshed out or working properly at all, but it can be “played”, which is enough for me.

Ludum Dare Entry Page: here

Just run it in Java, and it should work, there’s a LONG list of problems though.

If you’re interested in game development, I recommend Ludum Dare, it’s just a good goal to get something finished. I think this is one of the only projects I’ve ever gotten to a state where I can publish it.

Here’s a graph of how long I used programs over the weekend.

Selfspy Program Graph

And here’s the data:

Prog. Name Time Spent
Lxterminal 1 days, 4h 49m 28s
Eclipse 1 days, 3h 5m 50s
Firefox 14h 10m 43s
Pidgin 6h 30m 15s
Gnome-mplayer 1h 34m 49s
Meld 47m 5s
Android SDK Manager 46m 6s
Inkscape 25m 30s
Viewnior 21m 40s
Hotot-qt 17m 39s
Deluge 13m 29s
Wine 9m 16s
Thunar 8m 38s
Gimp 6m 27s
Shutter 3m 2s

I forget to turn on Selfspy for 12 hours at one point so it’s not 100% accurate. t also doesn’t show what I used in the terminal, like vim for editing git commits.

0

Ludum Dare 23

posted 18 Apr 2012

This weekend is Ludum Dare 23, the 10th anniversary of one of the best known “build a game in 48 hours” competition.

I’ve always meant to give it a try, and this seemed like the perfect time to give it a go. I’m not completely confident in my game development skills so I’m doing the much more lax Ludum Jam.

The jam is the same basic competition and has the same theme as the proper Ludum Dare, but it’s a little more open. Firstly, you can do it in a team. Which suits me as I’m doing the jam with a friend from University who has a little more experience with game development than myself. This is the main benefit, but the extra day and being allowed to use other code and libraries are just little things that make the Jam more open to everyone.

It’s going to be a long weekend but it should be fun and should get a decent game out of it.

Over the week I’ve been playing with PlayN and jBox2D, which are the two tools we’re using over the weekend they seem very straight forward to use and I’m familiar enough to not be staring at documentation for the entire 72 hours.

I will probably be blogging during the jam, but I’m not yet sure where. I’ll probably link to it here and on Twitter, so do check those on Saturday morning.

Have fun.

0

A Brief Update

posted 02 Mar 2012

Well I’ve fallen out of updating this every week/month, but I should really get back into the habit of writing a blog as it reminds me that I actually do things and that I need things to talk about.

So lately I don’t have that much to talk about. University has kept me busy lately with coursework, but I’ll admit I’ve spent the majority of my time just playing Dwarf Fortress again, as there was the first update in a whole year. These are reasons I’ve not been productive for the past 2 weeks, not really sure what I’ve been doing between January and now though.

Oh, yeah, I was trying to set up a Ganeti cluster but I had terrible problems trying to bridge my wireless network into my room, as I’m not allowed to run cable in my house. After about 6 hours of trying to debug that I realised that I could just move the machines to the room with the internet connection and router, as I really only need an Internet connection to update some software and download the necessary things to get Ganeti working.

My plan for setting p Ganeti will also force me to learn Puppet and PXE booting , which I should probably have set up sooner as they seem very useful in the administration world and will make setting up my two machines for Ganeti clustering a breeze.

So after my disaster with bridging I gave up on Ganeti for a bit as I’m trying to find the right time to just install three computers in the computer room of my house without my parents getting on at me.

But I did manage to complete something I’ve been meaning to do for a while. I finally converted my netbook to use LVM (Linux Volume Manager) . I was thinking it would be a daunting task as my Arch Linux install was across 9 partitions (really, don’t ever do that) but it ended up not being very painful at all and I managed to keep all my data. Huzzah!

The process was simply this:

  1. Backup whole Linux install to an external HDD (I used rsync for this)

  2. Create a new partition on the disk and set it to LVM in fdisk. I had a spare media partition which was very useful

  3. Create the LVM on the disk.

  4. Create a volume group for the disk

  5. Create 3 new logical volumes in LVM (root, home, swap) Swap is a little tricky you need to make sure it’s a continuous block

  6. Use mkfs on my new logical volumes. I just used ext4 as it seemed the most suitable

  7. Mount the volumes and transfer my Linux install across

  8. Recompile the kernel to have LVM flags set (important!)

  9. Re-configure grub to find my new LVM

    • I had to install Grub2 at this stage as Arch Uses Grub1 for some reason.
    • This meant that I completely broke grub, but fixed with Live CD’s.
  10. Good to go

One thing I didn’t mention is the necessity to have a separate /boot partition. I don’t mention that above because I already have a separate /boot so had no problems with that. If you don’t have a /boot grub won’t be able to load from it, so you’ll be stuck.

I think I was just lucky that the whole thing worked with only one hitch, but that’s because I don’t like Grub1 and had never gotten round to changing it before now.

So now I’m very happy as I can live-resize my disks with ease and can easily play about with partitions without having to muck around in fdisk, which has caused me many problems before.

So that’s pretty much everything I’ve done. I haven’t touched MazeOtaur nor anything else programming related except University stuff so I’ll really need to get back on track with that.

Anyway, have fun.

0

Winter Development

posted 06 Jan 2012

Over my 3 weeks Winter holiday from University I’ve managed to get a fair amount of development done for my game, MazeOtaur. It’s still quite a way off from being published or even in a playable state, but it’s getting to a playable point and I should be able to put it up for testing in the next month or so.

A few of the things I’ve been working on are rooms, braided mazes and torches. These are some of the important defining characterists of my game, to make it somewhat unique.

Rooms weren’t too much trouble to implement. I simply generated a few sqaures on the map, then let the maze algorithm connect them together. I made this hard for myself because I wanted a limited number of entrances to a room. Eventually I gave up on this, but my braided maze code saved the day for getting this to work.

Braided Maze with Rooms

Braided mazes are mazes which have no dead-ends. This means there are plenty of loops throughout the maze, which makes the stealth aspect of my game more interesting, as before there was only one path. My braid implementation isn’t perfect, there are still a few dead-ends, but it does look and play much better as there are multiple paths. My braided maze algorithm works by simply giving a weight to every, that states how many corridor tiles are adjacent to it. Using this and Primm’s algorithm I can check the weight of each tile, and if it’s small enough I can connect to it and possibly make a loop.

That method was the simplest to implement but other methods like finding dead ends and just knocking out a wall would also work, and would give you a fully braided maze, unlike my partially braided maze.

The last thing I’ve implemented over the past few weeks is torches. These have been the main element I wanted to play with since I came up with the idea for the game. I basically wanted the player to only see parts of the maze, making the maze much more difficult and more interesting. As without torches the game simply becomes Pac Man without the Cherries.

Initially I thought lighting would be a difficult thing to implement, but the approach I took was very simple and worked quite well. I simply gave every cell a lightLevel value of 0, and when there were torches, I would simply increment that level. To get a nice spread of light I used a limited depth first search to find all the cells adjacent to the first, torch node. This worked quite well as you can see from the main picture on this post.

Breadcrumbs are a small feature I added to try and make the maze easier. A friend suggested this, but he also suggested making the Minotaurs eat the breadcrumbs as they walked along their patrols. Which is an interesting idea, but would be horrible. Perhaps if I have a hard mode I can introduce this. Breadcrumbs took 10 minutes to implement so I’m not going to talk about them.

You’ll probably notice from the images that not all my features are in all the pictures. This is because I’m trying to learn how to use git properly, by branching all my implemented features, then merging them into a development branch. After some bug fixes in development, I can then merge into master.

This idea was working well, until I started putting bug fixes in random branches, rather than making a seperate branch with the fix then merging it to all my development branches. This was fairly annoying as one of my bug fixes was to ensure the display actually displayed things, as sometimes it set it’s height to 0, which was very annoying.

Another thing I was playing with was Sonar which is a static code analyser. It’s been very useful, but was horrible to set up.

Next time I’ll probably talk about Sonar or my git setup, but I’m sure my git setup is horrible and could do with improving.

0

Weird Vampire Dream

posted 23 Dec 2011

I don’t have dreams very often but the one I had last night was just bizarre. I was turned into a vampire for some reason, but it was in a sort of futuristic setting, as I had to go and join the local Vampire cult. All the new vampire candidates were sitting at the front of a large press-conference type thing, but we never had a chance for speeches as suddenly the elder vampire had something important to say.

Now normally, the young vampires would be taken to the backroom and told the news. But in my dream all the young vampires went to a games room to play arcade games. As a new vampire I had no idea what they were doing, turns out vampires have to play videogames to replenish some poison sack on their arm. I have no idea where on Earth this idea came from, it’s just stupid.

I was playing a sort of Time Crisis style game, where my dream made the game very buggy and didn’t let me shoot half the time. The gun I was using had about 9 buttons all over it and just seemed far to complex.

So after this gaming session the elder called all the vampires together and said that we were going to war. I don’t remember the start of the dream so I’m not sure who the vampires are at war with. I’m not even sure I knew at all.

So all the young vampires vacate the room to prepare, but I stay back as I am a fresh vampire. The elder vampire asks for my name and I panic as I need a new ‘cool’ vampire name. After a few taunts from the elder and a vampire saying I was only one day old; I came out with the name “Thrall”. The giant of a vampire laughed at me and so I punched him in the face, which wouldn’t be my reaction in the real world, but this is crazy vampire dream world, so whatever.

The burly vampire doesn’t like being struck so pretend to hit me back. For some reason I fall to my knees and say to myself: “The idea of the punch is more powerful than the punch itself”. What?

After I recovered my imaginary beating I was led by the burly vampire out into this huge futuristic hallway, that reminds me of the Vampire stronghold in Blade 2, where the burly vampire leads me to a laptop to show me a game of pong.

Across the table from the computer are two vampires with wads of money telling me the burly thrall is playing 2000 games of pong at once in his mind, and his challenge to me for sullying his honour is a game of pong.

Now, my memory from here is gone, I remember there being some dispute and then the burly vampire just starts to fight me, then I woke up to my alarm. I don’t really remember what happened to the pong game, it just stopped happening.

Well, that’s my weird vampire dream. It’s much more interesting than my usual dreams where I simply have a conversation with a friend.

0

December Time

posted 05 Dec 2011

For the past few weeks I’ve been concentrating mainly on my University coursework, and a little (lot) of Skyrim. Thankfully all my coursework is now finished and out the way, but I still have a few exams coming up in the next 2 weeks so probably won’t be able to do any coding until after that.

I still have plenty of ideas for MazeOtaur and for a few other projects. Because I still don’t have any kind of proper job, I’ll hopefully be able to get started and maybe even finish a few of these projects as I still haven’t officially ever finished a project.

The only thing I’ve ever really finished is my own custom lightbox for my gallery, but in looking at my gallery I’ve found the layout of the gallery to be quite horrible and in need of a fix.

Over my 3 week holiday I’ll try and get this website finished as I’ve never gotten round to making the other sections of the site or finishing off the mobile version I had been playing with. Concerning the mobile version, hopefully a few lines of CSS should get it sorted out, as the base theme for it does work. My main concern however will be MazeOtaur. Hopefully I can get it to a workable and testable stage before I start my next semester at University.

Will hopfully have something worthwhile to say in a week or so.

0

Skyrim Blues

posted 13 Nov 2011

This weekend all I had been planning on doing was playing Skyrim. But alas, it has yet to arrive. Without it, I should really have finished all my Uni work to prepare for Skyrim arriving tomorrow. But I really don’t have that much drive at weekends.

The header image relates to another matter. Without Skyrim I’ve ended up just playing The Binding of Isaac all weekend. And have yet to get any further than the second last level. It’s a brutally hard game and it’s very unforgiving. You play as Isaac, a child who’s mother was told by God to murder, so he ran into his basement to find safety.

All you really do as a player is try and clear each room from monsters and defeat the bosses. I’ve not reached the final boss yet, but I assume it’s Isaac’s mother. What makes Binding of Isaac so replayable is everything is randomly generated. Each individual room is randomly generated as are the monsters and items within it. Even the hundreds of different items you collect are randomised which makes the game feel quite different each time.

Between two plays I had one where I had about 10 heart containers, but could never find any hearts to fill my bar back up. Next play I found dozens of hearts, but never found any heart containers to need them.

The game looks great, and disgusting. Because it’s a basement and the monsters are just frightening things a child would think of, they are pretty horrible monsters. The creature I hate the most are zombie like, but their heads extend off their body, which is rather frightening.

I think I burned a good 7 or 8 hours on the game and I’m still finding plenty of new creatures and items to fight and collect. It’s really a great game, and I don’t think it’s that expensive at all. I personally picked it up in the Humble Indie Bundle but I think that will be finishing soon.

Right, let’s talk about the main image. As you can see, it’s YouTube; this has been my main media player for the past few weeks because I don’t own much music and Spotify’s limiting 10 hours a week put me off using it. Grooveshark, I don’t like because it’s crowd sourced. The song titles can be inaccurate and there are plenty of times where albums have the same songs 3 or 4 times.

Because of this, I decided that I’d go for YouTube. It’s fairly reliable, all the music I like is there somewhere or another and it has playlists. My only main issue with the Cosmic Panda interface in YouTube is that you can’t shuffle songs, but I prefer this interface over the default, so I just shuffle the songs randomly every week or so.

I’ll admit that it’s not ideal, but it works for now. I should really just swallow my pride and subscribe to Spotify, but I don’t like being tied to subscription based services. And I prefer the freedom of streaming, as I grow tired of songs quite quickly and barely ever play any songs in my personal collection.

That’s pretty much everything I’ve done this week, might write a post later in the week about my Arch Linux setup, but I doubt that would interest anyone.

0

Coursework

posted 01 Nov 2011

I’d like to say that I’ve not been doing any game or website development in the past week because I’ve been really busy with Uni coursework, but that would be a lie. Yes I’ve spent 2 days in the past week doing coursework, but that’s really no excuse for me not doing more of it, or even doing some side-projects.

Last week I got a new graphics card so I’ve been re-playing a lot of my games with improved graphics. The jump is pretty much from Medium detail to High and Ultra detail, so I’m very happy. Photo editing might be a little easier now as well, but I didn’t really buy that card for that, although it’s how I convinced myself to get it.

My game hasn’t moved anywhere at all. I have been spending a lot of time in my maths lectures detailing what needs to be done, but I’ve not gotten round to programming my physical notes yet. I’ll maybe find some spare time to get it done, although I have 5 pieces of coursework due in the next couple of weeks, so I should probably prioritise on those.

Kongregate is also something I fritter my time away on. Lots of really nice games, and you can get achievements for the games to make it all that more addictive.

I saw The Rocky Horror Picture Show in cinema last night and really enjoyed it, was pretty much everything everyone said it was going to be. I also saw Tintin and Real Steel. Tintin was pretty good; funny throughout and worked really well. I’m still not a fan of movies that are fully Motion Captured, but I can see past it.

Real Steel was what I wanted: lovely cgi fighting robots and not much of a plot. Overall it was a fun movie, nothing fantastic but it was a bit better than I was expecting the Rock ‘Em Socl ‘Em Robots movie to be.

Well, that’s really all I’ve done in the past week.

0

DwarfFortress

posted 09 Oct 2011

(For fullsize click: Here)

I was hoping to have something interesting to say about my game this week but sadly I’ve grown completely addicted to Dwarf Fortress.

If you don’t know what Dwarf Fortress is, I’ll try to explain it. Although it’s technically a game, the level of detail makes it more like a Dwarf Simulator. My favourite level of detail is the combat. Dwarves can lose finger, have organs bruised and ruptured and can even (rarely) have their eyelids torn off by the many horrible beasts in Dwarf Fortress.

The main explanation I see of Dwarf Fortress is the sheer depth. In the screenshot, all the menus on the right have multiple sub menus and some have hundreds upon hundreds of configurable options and decisions. The game is micromanagement at it’s best. No telling a group what to do, you have to instruct individual dwarves what tasks you need done. This gets a little bit crazy when you have more than 50 dwarves, so I’d recommend the Dwarf Therapist tool, it just makes sorting out your Dwarves preferred jobs much, much easier.

The fact that a game needs a tool to actually configure the damn thing just shows the complexity involved. I really love this game as I’m a huge RTS and management type game fan. Rollercoaster Tycoon 2 and Sim City 4 are probably two of my favourite games ever. Simply managing a city/theme park/etc is immensely enjoyable to me.

Once you get over the complexity of Dwarf Fortress and get your first fortress running, there aren’t too many tasks to keep yourself overly occupied. (Always, always cehck you have booze and food). But every few in-game months, some kind of creature or goblin ambush will come along and threaten your fort, so you need to build defences and hope that your military can defeat the giany eyeless magpie that spits ice at you (Yes, I had to fight one of these, a poor Dwarf was strangled by it).

A lot of people though don’t like playing Dwarf Fortress but like listening to stories about it. I don’t have anything very interesting to say about my current playthough, but might keep a better diary of my next playthrough as I grow tired of my current fortress.

I should be bored of Dwarf Fortress by the end of this week, so will hopefully get some more game development done, or even start another little project I have in mind.

And remember, Losing is Fun

0

MazeOtaur

posted 28 Sep 2011

Last week I started building my first game. Well, I’ve attempted to make games before, but generally they just fail and I gave up after a few hours. This project is something I’d like to play, and should hopefully be finished within one month.

The concept is a simple rogue-like dungeon crawler. You’re in a maze and your objective is to get out of the maze. By the end I’d like to have Minotaurs, light radii to control how much of the maze you can see at any time, and a breadcrumb system for finding your way around.

After one whole week of writing something every day, I’ve managed to generate a labyrinth and move the player through it. The movement at the moment is a bit shakey, but that’s mainly due to the game speed being a little too fast for the keyboard input. I’m still working on a fix for that.

Right now I’d like to move on and try to get some AI going for the minotaurs. I have a rough idea of how I’m going to do this. Going to go for a simple patrolling AI, until the player is “seen” by the minotaur. How I’m going to do line of sight has only just struck me as being an interesting thing to look into in a maze.

The maze generation itself was fairly easy, I used Prim’s algorithm for generating the actual maze, and stored it in a multi-dimensional array. I built a cell class, that is either passable or non-passable, I add a random cell to start, then I add all the adjacent cells to that one, then pick one of those walls, and set it to passable and add it’s walls, and so on.

The maze is very random, but I’m going to do some tweaking in the next week to try and add some loops and rooms to the maze, as at the moment there are no loops and there is only one solution to the maze. Trying to get around a patrolling AI with only one route obviously has a few design flaws, so I’ll really need to try and get that sorted if I want the game to be fair and playable.

I chose to make the game in Java as it’s fairly easy to implement on multiple platforms, and Swing seemed like an easy enough basic graphics library to get started with.

02 October - Okay, this is just me getting ready to upload the post, I am disappointed it took me this long, and I haven’t touched the game since I updated this. Perhaps this will be a bad omen. I think I have started re-writing the input methods, but it’s currently incredibly buggy and nowhere near what I would want, will hopefully get it sorted out in the next few weeks, but my current addiction to Dwarf Fortress will probably hinder my time updating the game.

I apologise for any grammatical mistakes in the article, I did write it at 6am after a night out drinking.