The game thus far...


I've been working on this game for about three months or so now, off and on, picking at a little each day. I'm finding it a joy to create, and the simplicity of it is keeping it from spiraling out of control. The RPG I was working on before had definitely blossomed larger and larger, based on just how much content and custom code I had to write for it. Since I was also using a pre-baked engine, I had to work around that engine itself, hack it a bit to get it to do what I wanted it to do, all leading to more complexity. When I sat down and planned out what was left to do, I saw I had 2 more years or so of work.

Which isn't a bad thing. Big projects take time, but I also wanted to get a game out this year. Something interesting, something unique, something I haven't really coded in ages. A platformer, for certain, that I knew. But should I got the normal level by level platforming type, or do something more unique and interesting?

Some of my favorite NES games broke the mold of the genres they were in. Castlevania 2, for example, Zelda 2, or even the adaptation of Strider for the NES. Blaster Master is another one, I could go on and on. River City Ransom! All sorts of games that were learning what they could do on this system, and how just replicating an arcade experience wasn't quite good enough anymore. They needed to put more in their games, and it was all fresh ground, requiring experimentation.

So I decided to list all of my favorite games, and see why they worked for me.  I kept coming back to Ico, Shadow of the Colossus, and the Castlevania games. What appealed to me was the themes of the games, the atmosphere, and the simplicity of the game mechanics. I watched a youtube video about Ico, and how the creator decided to do game design by subtraction, to get down to the bare details of the gameplay and go from there.

I decided that would be the way to go, combined with everything else. I wanted to get to the bare bones of the gameplay, keep the interface and controls simple. The original idea didn't have any Head's Up Display at all, you just had three magical powers, done with a different button. Using that drained your life, getting hit drained your life, and there would be no life bar or anything.

This was frustrating, boring, and not fun to play. So I went back and thought it out some more. I liked adventure games and exploration and puzzles. Exploration was key to the original LoZ, and I remember as a kid and exploring the woods near my house, and realizing that he captured that feeling of exploration *perfectly*. I even imagined this one place, with rows of bushes and the ruins of a basement with a pond inside it filled with leaves as an area in zelda- and I wanted to have that.

Other games had this feeling, too, but they all seemed to work in about the same way. You explore, you find items, the items open up new areas, you explore some more. I decided to use that basic setup, but boil it down to the bare bones of the interface. You have only two items and no item screen for switching them in and out. Coding one of those would be a bear, and going this route would also creating interesting problems for the player. Which item to take where? It would also help them memorize the landscape easier, and not get as lost in the maps. Your mind remembers where you stored things.

But here was the tricky bit- how to keep the control scheme simple? One button for dropping/picking up and item, one for using? That felt like it would get confusing, a mess. I was still coding while I was thinking of this, and one of my test plays I used down+item button to pick up an item, and I was like, oh yes, I could do the same thing with dropping up an item. That keeps the controls simple, intuitive, and keeps the buttons to a minimum. Just three buttons and that's it, it doesn't need anymore. Well, three buttons and a D-Pad. It's funny, until this point I had tried millions of ways to pick up items. Pressing up (no button), having a separate pick up button, etc, etc. I guess that's the joy of incremental development, you try stuff and see what works. If it doesn't work, you go back and try again, until the game *feels* right. Another benefit of creating an engine from scratch.

Once I figured this out, everything else started snapping into place. I was discussing folklore with a fellow writer friend, and it gave me some ideas on what to do with this game. To make it folklore based, and to ditch the art I'd done so far that was more science fiction in nature. Sure, this set me back a little? But it was well worth it in the end.

I also made the item system and enemy system heavily object oriented, and allowing me to quickly create enemies and just modify their patterns, or create items and just add changes to the way they worked in update or button press. This made coming up with new items and enemies a pretty painless and quick ordeal. And, it allows me to easily use incremental development with this portion of the engine as well. If the enemy doesn't move quite right, scrap that idea, and try something else. Fun is of the utmost importance in this game. Fun and simplicity.

Both require solid controls. Coyote jumping and a few other techniques got those pretty square. I'm still messing with this, but you know how it is. I'll probably still be tweaking the controls until the game is shipped, that's just how it goes.

So, I think that's the key to getting this game done in a few months time. Simplicity, extensibility, incremental and rapid development (and yes the last two are combined, not an oxford comma mistake). For level design I'm using the amazing TileD, which allows me to specify lua scripts and etc inside the editor itself for various objects and tiles. This allows me to really build levels fast and painlessly.  I'm an old hand at C++ and Allegro (and a lot of this code was originally written for both, and ported to Love2d and Lua- the weather effects, the night and day cycles), so I'm using Aseprite for graphics and animations. For Tiled integration into Love2d, I'm using Simple Tiled Interface. For collision detection I'm using Bump.lua. I do miss using Allegro's pixel perfect collision detection, but hitbox based collisions work perfectly a-ok.

I'll add more to the devlog later, like talking about how simplicity and incremental development led to some bugs being turned into interesting features that works excellently in the game itself.

Get Emberglass

Buy Now$5.99 USD or more

Leave a comment

Log in with itch.io to leave a comment.