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.

Testing the island generator

Finished implementing the island generator, made some assets and built a testing module to view the results. Here are results for four different seeds composed from actual screenshots:

By the way, the island in the middle is the island generated in the last blog post.

Next step is to generate neighboured island and connect them to create a game world.

Generating an Island

Not much to show of yet but there is some progress on the procedural generation of the game world. So far you can put in a seed and with that size as well as buildings, npcs and decorations are generated with their individual type and position on the island. For testing purposes I write some information into the console which looks like this:

Island size: 12
Number of Buildings: 7
Number of NPCs: 1
Number of decorations: 2
Deco type 1 position 1
Building type 3 position 2
Building type 4 position 3
Deco type 3 position 4
Building type 3 position 5
Building type 3 position 6
Building type 2 position 7
Building type 2 position 8
Building type 1 position 9
Npc type 0 position 10

Just noticed I didn’t had two blocks wide buildings in my mind. Looks like I have to put in some additional work for that. Also the randomly generated look of the island’s bottomside is not yet implemented.

Experimental Gameplay Project – INFINITE WORLD

Today I start with my one week development cycle for the experimental gameplay project February challenge. The theme is “Infinite World” and I have an idea for an 1.5D exploration game. Here is a quick mockup of the main gameplay screen:

The game world will be randomly generated, persistent and practically infinite in two directions (left/right). Floating islands make the explorable content with different buildings and NPCs. Most probably I will make a fixed seed for the challenge version so every player gets the same world with optional reseeding.

For the record: My personal deadline will be 21st of February at 22:00 CET (UTC+1).

Progress with the editor user interface

Still not fuctional but the look of the editor’s UI is shaping up:

So what do we have here:

  • Create new level
  • Load level
  • Save level
  • Place kittens start area
  • Place obstacle
  • Place goal area
  • Level settings
  • Delete object
  • Place wall

I will try to keep this editor convenient to use. For example, if one wants to place an obstacle, the mousewheel switches through the variants. Also the unplaced objects is shown at the mouse position to have full control over the placement.

Bitmapfont is there, ideas are shaping up

Below you can see a screenshot in which I’ve beaten the test level (which is not that easy) by rescuing 52 kittens. It is necessary to save at least 50 and you start with 100. So that was really close. Somehow the scale2x algorithm of pygame doesn’t work as intended. Looks like I have to do it differently, maybe even scale the bitmap font beforehand.

For the level design a new idea is shaping up. For a campaign mode I would like to connect separate levels with entry/exit-areas to have some Metroid-like world of single screens connected. With that approach I can place “powerups” for changing swarm density, refresh time of bait, speed, etc to make later parts of the world solvable.

Nevertheless, next step for me is to make a level editor. Planning how it will work at the moment.