July update on my projects

It looks like this month I can spend some more time on coding and stuff for my games. Additionally, as my Raspberry Pi arrived last week, I have some extra motivation to make my pygame based games run on it.

Bottlecolonies running on the Raspberry Pi.

The latter is not as easy as I thought initially. With its rather limited hardware the Pi provides quite a challenge for my game Bottlecolonies to run in an acceptable speed. So I started profiling and optimizing my code which is quite an interesting experience so far.

For example, I was able to make blitting my number font three times faster by removing an unnecessary surface copy in every call. With that success I will continue to search for bottlenecks in my code to remove them. On a standard PC I wouldn’t even have noticed.

This is the hardware I’m talking about. Runs Linux.

There is a second project I haven’t forgotten yet, which makes most of the traffic on this blog. That is my Experimental Gameplay Project prototype “Infinite Floating Islands“. The prototype has been made in less than a week and was quite buggy but has over 100 downloads so far and I really like tha basic idea of it. (Just for comparison, Bottlecolonies’ postcompo versions, which are much more “finished”, have a cumulate download count of about 15)

I tried to remove the bugs of the prototype by heavy refactoring but haven’t gotten that far actually. So it looks like I have to start this again from scratch to make it stable and expand on the idea.

Still extremely buggy.

So that’s it for now. Expect some more regular updates on this blog about those projects.

Working on the post-compo version of Bottlecolonies

I’m really happy with my entry for the actual Ludum Dare event. The game itself feels very consistent and the feedback is very good so far. Hence I’m actually working on a post-compo version of the game. It is in open beta at the moment and shall become a free puzzle strategy game for Windows, Linux and maybe Mac PCs.

I will post development updates on this blog with some spare additional posts on the Ludum Dare site.

Here is a link to the game’s page.

And to give you an impression of the newest map in the game:

Bottlecolonies – A post mortem

– This is a cross-post from the Ludum Dare Compo page –

So finally I’ve found some time to write up my impressions of the past Ludum Dare event. As ever it was a big pleasure to participate and I’m really impressed with the sheer amount of games being made and the overall quality which feels a little higher than the last times.

Now about my game “Bottlecolonies” which you can play here.

The good

  • I finished everything I planned to minimally have in the game in time.
  • The creation of a windows executable with py2exe worked immediately this time, thanks to experience from past Ludum Dares.
  • I’m pretty happy that I really took my acoustic guitar to make ingame sound and music.
  • I managed to make a game with quiet a consistent style and feel due to the hand drawn graphics.
  • I’m totally happy with the game I’ve made. With my third LD this time I noticed how much my self-organisation and the outcome progressed from event to event.

The bad

  • I totally underestimated the effort even to record only a small music track with a real instrument.
  • There are still some small issues that could have been solved within time (especially some sort of marker where one builds).
  • To solve the challenges stated in the levels requires more training and strategic thinking than I expected. It’s the standard issue that usually the developer himself is the most experienced player of his game and tends to make it too difficult.

To sum it up

You can see I’m really glad with my LD entry this time. I’m very confident now with my tools (especially python/pygame) and know roughly how much time different steps in development needs and what I’m able to achieve in 48 hours. I think that is the most valuable experience you get from an event like this.

Already put a marker for positioning in the post compo version.

Additionally the reception of my game has been quite positive. Hence I’ll put some more effort in a post compo version which shall at least include:

  • A marker for the building position (done)
  • Additional music (one new track already recorded)
  • More levels
  • Highscores of past plays

As I’ve already written two teasers for this post mortem I’ll stop here and just give you a visual impression of the development details:

From first prototype to post compo – with handdrawn graphics and self made guitar music.

Want to try and rate ?

Background Facts and Future Plans

In this post I want to give some background information about the Experimental Gameplay Project February entry “Infinite Floating Islands“. These will cover some of the unrealized ideas and features of the game and some technical background. Additionally I will sketch some possible future plans what to do with my proof of concept.

The basic idea

The idea to make a 1,5D sidescrolling game for the infinite game world theme came quite early. I thought more about technical limitations of an infinite game world than game mechanics in the first place, so a 1D approach where the player only can travel left and right seemed appropriate.

First mockup of the game.

I had a very clear idea how to implement storage of the world data to make a persistent game world. This was supposed to be procedural seed-based with an additional data structure for the actual state of the world. The sketch for the save looked like that:

global_seed
list_of_islands: (local_seed, id, global_x, local_x, y)

The coordinates should be saved for faster access in minimap creation. Every other attribute of the islands could be re-generated based on the seed with the island's seed saved for faster processing. Unfortunately I didn't manage to implement any saving of the world data within the week of the challenge.

Missing features

Aside from saving the world there were some other things I initially planned to implement during the development week. The most important one would have been some sort of local biomes so that the player would reach different areas while travelling. These areas would have a different randomized setting for the procedural world and island generation with alternating sets of sprites and background colours. I think this would have made the exploration way more interesting.

Additional missing features are more of a visual nature. One should have been an open cable car to travel, similar to the one on the mockup above.

Future features

Thinking about expanding the game idea I have some more features in mind to make this into a real game.

  • Dungeon exploration (one or more persistent dungeons/caves can be found on the island)
  • Warring NPC faction which the player can help or sabotage
  • Economy
  • Resources becoming more and more sparse the further the player travels
  • Skill-based RPG on the player's character with three different win conditions for the game (master huckster, master archaeologist, master schemer)
  • No direct fighting

Reception of the prototype

At the time writing this there have been 55 downloads of the game archive. I didn't get any direct feedback by now but this number is quite impressive for my personal context. For me personally this one week challenge was a great experience about how far I can come within these constraints. So I'm quite motivated to expand this game idea which brings me to the final part of this post.

Next steps

Admittedly the actual release of the game prototype is quite buggy. I plan to remove the bugs which mainly were caused by dirty coding under time pressure. Additionally I'd like to add distinct areas the player can reach while travelling. This improved version I would like to post to a broader audience for some feedback (TIGsource forums for example).

At least this bug is already sorted out.

Let's see what will evolve from the Infinite Floating Islands.

Infinite Floating Islands

Note! This blog and content is now hosted and continued at
 blog.rustybotgames.net !

And it is finished!

After a week of regular evening game development, my entry for the experimental gameplay project's February challenge is finished. You can download a windows executable here (Unzip and start 'island.exe'):

Infinite Floating Islands

[Update:] Here you can find some background information and future plans for the game. [/Update]

This is rather a proof of concept than a real game, but I am quite happy with the basic concept. There is potential to make more out of it.

When algorithms fail

As you can see on the screenshot below, the first test in creating new islands on the fly caused the connector algorithm to fail hard. It’s to late today to investigate this problem any further. As my personal deadline for this one-week challenge is in 23 hrs and as I am going to sleep now, chances are rather bad to get this game finished as intended. Nevertheless, I will try to fix these issues tomorrow.

Code is getting messy

Made some progress today with implementing an animated player and movement to another island. As suggested by my wife, the player character is a monkey. The movement as shown in the screenshot is rather symbolic at the moment. My code is looking quite messy now and working as tired as I am actually doesn’t help. Probably tomorrow I will regret working on the game so tired. Next milestone is to enable on-the-fly creation of new floating islands.

The world is shaping up

Worked on visualising the gameworld today, which yesterday only existed as numbers. Also scrolling works now. The two screenshots show the starting point of a world with the first few generated islands. Making additional islands on the fly is not yet triggered but one of the next steps to come. Further steps to implement are a moving player to explore the world and some fancy description texts for the stuff one finds.

On the screenshots you can also find one of the two new npcs I made today as requested by my 2,5 years old daughter. This one is a robot and the other one (not on these screenshots) is supposed to look like a pirate.

World generator and graphical improvement

Not much to show today. I’ve been busy making the world generator building islands on request to make the world explorable. So far I’ve just checked the numbers and they look okay. Next step is to figure out how to make the computer display the actual part of the world while enable fluid scrolling. Also the connections between island have not yet been established.

Additionally I reworked the dirt blocks of the floating islands to look less boring.