Tuesday, 7 October 2014

Learning Planet Design in 24 Hours

After a long time playing with all those images of planets from the web, I designed 14 new planets for using in the game. Many still need changes or touching up here and there. It was hard at first to understand what style I wanted and what would work well with the rest of the game. I think I downloaded all of NASA's available images of planets, asteroids and other celestial objects. Some of the planets are double-layered, so the SpaceMan and the Rocketship are shown behind the clouds, orbiting rocks or the rings of a planet. Here are some of them:


Grabbed from an old version on my iPad, for reference:

Tuesday, 30 September 2014

Space Editing

This is what the development level looks like in the editor. This is where I add one of every kind of object so I can try it out in the game:

And this is current level 2, where I've put a bunch of planets I copied off the internet to see what works and what doesn't work:

Friday, 26 September 2014

A Dash of Color

I had a go at painting the Rocketship. The Rocket was initially - maybe some two years ago - created in 3D in Blender, then exported to bitmaps; I loaded those into a vector graphics editor and drew it with black vector lines, and again exported that to bitmap form as a 4x3 texture atlas and yesterday I shaded and painted the bitmaps by hand. Here's what it looks like now with an unpainted image for comparison:

And with a passenger on board the lights come on and you can see a silhouette of a character through one of the windows:

This is the most basic addition to the set of objects: a Sprite. In this demo level I have it as a satellite but it can be any image or animation, static or moving. In SpaceEditor you can also assign a diameter and a density to it, so it will bump into the Rocketship and cause damage.

What you see here is a Teleport object! I added it last minute to the SpaceEditor and to the game. In the editor you create two or more of these, and in each you specify where it teleports the Rocketship to, so they can be linked in any way we want. Rocket gets in on one side, pops out on the other side with the same speed and orientation.

Monday, 15 September 2014

Flying Saucers with Freaking Lasers on their Heads!

The Lasers burn through your energy level, faster in Hard difficulty mode, slower in Easy. 

But you can shield yourself behind planets:

Friday, 12 September 2014

We are not alone.

Replaced the old sparkly sun flare with a new supernova shockwave style effect. This is because I quit the idea of colliding particles with planets so the Rocket could hide behind planets. This way, if he's in range, he'll get hit.

Added a Flying Saucer UFO! Flight from A to B always follows a wiggly nearly random line. It pitches and rolls too!

Thursday, 11 September 2014

A Couple of New Features!

The Rocketship turns red with heat from the Sun:

Showing the total score, running taxi ride fare (countdown), score multiplier and destination planet up at the top left, number of lives and fuel down at the bottom:

Picking up Stars give you score multipliers:

We can now see the little guy through the window when we a client has boarded the rocket:

Power-Up! Displays an image of choice with animated "electron" particles around it. Fuel goes up when picking it up. All these objects are configured in the SpaceEditor:

Black Hole object! Immense pulling forces drag the rocket into it: 

End of level screens with different buttons for when you complete or fail a level, in campaign or arcade modes:

Can start in Arcade (no lives, you can pick your own level if you've unlocked it) or Campaign (3 lives for completing the whole Galaxy sequence and score accumulates):

Objects like this planet can move and rotate, as configured in SpaceEditor: 

Devastating Comet!

Monday, 11 August 2014

I'm Back in the Game!

So now that I've pretty much given the SpaceEditor as nearly finished and very usable, I went back to the game code (C++ yey!) and have been trying to make it support all the objects and features that you can create on the editor. That means parsing the SpaceEditor files and implementing the objects and behaviours. So far I've got Rocket, Astronaut and Alien, Planets, Suns, SunFlares, Zoom Spots and image layers. Most of these can be triggered on a scripted condition like "add a new spaceman two seconds after the player delivers the previous spaceman" or "fire up some sun flares every 60 seconds". This lets me script the level quite nicely from the editor, load it up and watch it happen in the game.

I also added basic scripted movement: go from here to there at a given speed. This way I can make an object (Asteroid, Planet, UFO, PowerUp, anything...) run across the level under certain conditions.

The Sun objects are nicely rendered using a couple of particle emitters. I'm really pleased with the results of this, if a little processing intensive. Same goes for SunFlares. And the layered transparent star fields giving us a nice parallax effect.

Then I got bored of creating game objects (still missing the Comet, Flying Saucer, generic Sprite, Black Hole, Coin, Star and PowerUp) and went on to detect the collision impact of the rocket onto a planet. That triggers a small dust cloud particle emitter, but a very small collision will in fact lose the player a life so I need to make it into a full blown explosion.

But losing lives... this made me think I needed to get the full game flow together: main menu, options, level selection, pause!... The looks are far from final, but at least now I start to get the game vibe.

Monday, 16 June 2014

Save the World!

I can now save the worlds and load them back, mostly in the format that the game reads. However the editor has grown much more powerful than the game and many things the editor has aren't supported yet.

Objects can rotate and move from one place to another; most can be scripted on some events, and I've also added the ability to read keyframe animations from the texture and the editor will animate those as well.

These images show a couple of test levels that were just read back from file. I also moved the add-object palette up to the toolbar.