#1GAM 2017 - Week 5

For February I'm rebuilding "Splodey Boats", a game I wrote for Ludum Dare in 2014. Mini Shinobi was a lot of hard work so I wanted something a little lighter for February. Splodey Boats seemed like a good choice for a couple of reasons:

  • It's a small and complete experience
  • It's a good candidate to get more practice with using entity/component systems
  • It has a lot of particle effects which I haven't built into my framework yet.
  • It won't take 70 hours to complete

Building a completely new game is far more exciting, but revisiting an old one is good practice too.

Visit the Splodey Boats 2000 hub page for a more detailed view of the project's progress.

#1GAM 2017 - January's Entry: Mini Shinobi

Mini Shinobi

Mini Shinobi is my first entry for #1GAM 2017. It's a platform game with collectible abilities and some very simple combat.

The aim is to explore the world and find the missing 4 artifacts (Earth, Wind, Fire and Water). Once these are recovered the door to the final level will open and the boss can be challenged (spoiler alert: the final boss isn't anything special).

Overall I'm pretty happy with how things turned out. I didn't get to add all the features I wanted, but there's a full game and I learnt some very valuable lessons. I'll be publishing an in-depth post-mortem later in the week.

Play `Mini Shinobi`

#1GAM 2017 - Week 3

Last week I set myself a couple of big tasks:

  • The full live/die/repeat game loop
  • Health increase and restoration powerups
  • Particle effects
  • Title screen
  • Switches and closed doors
  • Basic area transitions

Here's how it went:

The full live/die/repeat game loop

Not complete, but about 80% of the way there. The player now takes damage and will die once they reach 0 health. The user interface also updates when they are hurt. All that's left is to add some form of save and respawn system.

Health increase and restoration powerups

Both are working. The player can collect small hearts to restore health and giant hearts to increase their maximum health.

Particle effects

Animated sprite particles and basic pixel particles are implemented, but not as completely as I'd like. Ideally particle emitters will be able to:

  • Spawn a list of random particles (e.g. large and small chunks of rock)
  • Specify custom particle behaviour - especially particles that rise (for smoke) or that change colour as they rise (for fire)
  • Generate particles over time, rather than all at the start

The rendering and update code is all working, so hopefully I can add these bits of polish in before the end of the month.

Title screen

The title screen is all working and can launch the main game. There are also some placeholders for loading save games and viewing the list of credits.

Switches and closed doors

The sprites for the switches are really, really ugly, but the code is there. This took the most time out of everything I worked on.

Originally I was using a trigger & action system, but it quickly got bogged down once more complex things got involved. There's a huge gap in complexity between a switch that makes a door vanish and one that makes the door move.

In the end I replaced the trigger system with a full script system. Entities can listen for events and respond to them.

Basic area transitions

This was the only thing on the list I made no progress on.

I didn't get everything finished that I wanted to, but I did manage to cross some other big things off my list:

  • Entity collision – This took an absolute age to get working properly. Platform with just tiles was a fairly simple job, but once moving platforms entered the mix it got complicated.
  • Scripting – I hit a dead end with my first approach because I wanted to keep things simple. Turns out they were a bit too simple to actually do the job.
  • Enemies that hurt the player – Some enemies have spikes on top that damage the player. It's a small feature that adds some spice to the standard gameplay.
  • Accidental springs – This one was a fun accident. I updated to be able to set their bounce value when jumped on. A decimal place in the wrong spot made a very bouncy object.

Overall it was a productive week. There are now 6 days left in the month to get something playable up and running. A lot of pieces need polishing up, but at this point there are enough features to form a game out of.

Here's a bonus animated screenshot. Click to play.

Mini Shinobi - Death

Until next week!

Visit the Mini Shinobi hub page for a more detailed view of the project's progress.

#1GAM 2017 - Week 2

The majority of week one was spent coming up with ideas and building some of the backend for Mini Shinobi. This week I was able to focus more on designing and creating gameplay features.

Features added this week:

  • Moving enemies
  • Jumping on enemies to damage them
  • Animated tiles
  • Parallax scrolling
  • Double-jumping
  • Terrible sound effects
  • Transparent water that slows the player down

Here are some animated screenshots showing the features added this week (click to play):

Mini Shinobi - Waterfall and Enemy
Mini Shinobi - Taking Damage
Mini Shinobi - Parallax

This week I'd like to finish:

  • The full live/die/repeat game loop
  • Health increase and restoration powerups
  • Particle effects
  • Title screen
  • Switches and closed doors
  • Basic area transitions

It's going to be a challenge to get everything done before the deadline, but I'm happy with how the game is progressing.

Visit the Mini Shinobi hub page for a more detailed view of the project's progress.

#1GAM 2017 - Week 1

It's been a full week since I started working on my first #1GAM entry of the year. So far things have gone quite well, although there's still a long way to go.

January's game is called "Mini Shinobi". It's a platform game with a mix of exploration, combat and puzzles.

So far the following features are working:

  • Fully scrolling tilemap that follows the player
  • Walking, running and jumping (with animation)
  • Some basic collision detection
  • Entity/component system

Probably the biggest feature is the entity system. There aren't many entities in the game at the moment, but it's possible to add more without recompiling anything which is a huge time saver. Expect there to be a few follow-up articles on how it works and why I built it.

Screenshots are more exciting than technical details though, so here's how things currently look:

Mini Shinobi - Week 1

One thing that has been a huge help is using art from OpenGameArt.org. I'm not much of an artist, so it's allowed me to spend time building the game rather than worrying over pixels.

There are more detailed notes and statistics on the Mini Shinobi hub page. It's updated regularly and is the best place to see how development is progressing. I'll probably end up writing about how that page is generated at some point too.