Mavis Bacon Teaches Typing

Mavis Bacon Teaches Typing

A couple of days ago I released a free little typing web game called Mavis Bacon Teaches Typing. Give it a try – it only takes a minute or two to play.

I’m very pleased with how this turned out – much happier than I have been with a game for a while, so that’s built up my confidence a bit. I did hit a wall as usual, and almost released it without the food flying everywhere, but I’m really glad that I did, as it makes a huge difference to the feel of the game. I guess the lesson there is that silly little details and effects matter a lot. There’s a great talk about this called Juice It or Lose It, which I highly recommend to anyone making a game – it’s embedded below.

Meanwhile, I’ve mostly rewritten the rendering code for Impressionable to use OpenGL. Quite a lot of work, but it’ll be much faster, and allow things like zooming in and out, and special effects via shaders at some point. It’ll also mean way less fuss if and when I start working in 3D.

Now though, it’s back to work on App 2!

Potato Farming Manager 2000

screenie09

So, I’ve just released the farming game I’ve been working on this month, Potato Farming Manager 2000. It’s completely free, so go give it a play if you’re interested! The rest of this post is a bit of a post-mortem.

Firstly, a month of part-time work is not nearly long enough for a tycoon game. My original plans were for something more SimFarm-like, with a variety of crops, seasonal and weather effects, simulation of soil quality and humidity, and random events that you’d have to deal with. What I’ve ended-up releasing is an almost-arcade game about clicking on fields. Even when I’d decided on making it a less serious game, I still had plans for production chains which got cut. It wasn’t supposed to be a one-month game, but the lure of 1GAM and a lack of any other ideas for a quick game to make persuaded me to polish it up as best I could and release it.

The main goal in making the farming game was to give me some direction in making Impressionable, and that has been a success. I really need to write a proper renderer, a proper memory allocation system, a sound system, path-finding, some replacement for the mess of GUI code I have currently… A lot basically! It’s also shown me that writing C really isn’t so unpleasant.

As for what’s next, I’m not sure. The plan for Impressionable is still to make small, progressively more complicated games, but a month for each is absolutely too short, so for the next I’ll be aiming for 2-3 months. As for what game that will be, I have a few ideas lined-up: either a proper farming game like I originally planned, ‘fantasy tavern tycoon’, or ‘bridge constructor but you build castles to defend against invaders’. Or something else maybe! Whatever seems to be the simplest.

Dev Log 20th of June 2015

screenie05

This week I’ve finished implementing farm workers, apart from a couple of bugs. After hiring them, they’ll pick a job from what currently needs to be done: planting, harvesting, or carrying potatoes to the nearest barn. They’re the first thing to be animated, too. I’ve been quite enjoying watching them dash about to do my bidding!

screenie06

Then next task is going to be writing a proper renderer. You can see above that there’s no depth sorting yet, but what you can’t see is that the game lets you zoom, but zooming produces a horrible blurry mess with gaps between tiles. Switching from SDL’s built-in renderer to a full OpenGL one will allow me to fix these things more easily, and generally make life easier.

Quick Quote navigation drawer

As for Quick Quote, I’ve started on the redesign work by replacing the slightly-awkward main menu with a navigation drawer, shown above. That’s only the start, but I think it already makes a big difference, both in terms of appearance and it being much easier to switch between screens.

Dev Log 12th of June 2015

Farming Game

Above you can see the untitled farming game I mentioned last week. It’s been going pretty well – I’m getting more comfortable writing in C/C++, so things are taking much less time. You can build fields, barns, and your headquarters; fields have a little state machine implemented for planting, growth and harvesting (not visible above as I’m in the middle of changing it); there’s a game clock with speed controls; and you can hire workers, who don’t yet do anything because I’m in the middle of writing their code.

In other news, I’ve recommenced work on the Quick Quote update that I stopped in February, while waiting for feedback on App 2. Firstly, by cleaning-up the Frankensteinian project set-up,where I had 3 separate Git repositories! It’s now a single repo, and builds using Gradle so I can use the Android support libraries. Secondly, by taking a good look at each screen and redesigning it. There are issues with usability, both from inexperience, and from adding extra features without properly considering how they should be used. Not everything is decided yet, especially with some unimplemented features unaccounted for, but I can make a start on tidying it up soon.

 

April and May

A bunch of things to talk about, which is what happens when I don’t post at all for 2 months! Oops.

Food Fight!

Food Fight!

In April, Ludum Dare 32 happened, the theme was “An Unconventional Weapon”, and Food Fight! was my entry. It… didn’t turn out very well.

I was away from home, so was using my Eee netbook for development. It’s pretty limited in what it can do – OpenGL won’t work at all on it – so I chose HTML5’s canvas for the target. The big mistake though was deciding to roll my own framework rather than using somebody else’s. That seemed OK, until the deadline had passed, and people started reporting that the basic keyboard and mouse inputs were plain broken for them. Apparently they only worked on the exact combination of software and hardware I had been using. So, yeah.

Catsteroids

Catsteroids!

Catsteroids, however, I’m much happier with. I finished a new build of App 2, sent it off to my tester, then realised I had two days left in May and no game for 1GAM. So I made a really dumb Asteroids clone with cats in it, using Unity. Is it a good game? Maybe. Does it make me laugh whenever I play it? Yes. You should give it a try for the soundtrack alone.

Impressionable

Impressionable has progressed a little, but without much to show for it yet. I’ve rewritten it in C/C++ after getting annoyed with Java’s memory management, and I’m still getting used to low-level programming. A problem I’ve had is the aimlessness of making an “engine” rather than a game, so I have a new plan now: Make a series of small games, aiming to take around a month each, which will gradually expand the engine’s features. For instance, the first game is going to be inspired by SimFarm, stripped down to the basics of placing fields, planting them, harvesting, and balancing a budget.

BREAKPONG and Impressionable

BREAKPONG

Firstly, a new game! BREAKPONG is a mix of Breakout and Pong, where your paddle wears away every time you hit the ball. It’s an entry into MiniLD58, the theme of which was ‘Pong’, so there are a lot of free pong games over there if that’s your sort of thing!

I’ve been ill the last week, and as I tend to do, I started a side project! Continuing on from my previous attempts at a city-builder, this time I’m making more of an engine, rather than a specific game. I seem to have different ideas for city-builders every couple of weeks, but they have the majority of stuff in common, so I’ve figured-out what features they all need, and have begun writing the engine in Java, calling it Impressionable because puns. Don’t expect anything soon, but I’ll be putting a few hours into it here and there when I get stuck on other projects.

Early screenshot of Impressionable. Not much to see yet!
Early screenshot of Impressionable. Not much to see yet!

Dev Log 22nd of March 2015

So, it’s been a little while since I’ve posted. Rest assured, no news is good news!

Firstly, App 2 is continuing on well. I’ve just about reached the point where I can get people to test it – feature complete, but with some rough edges. There are just one or two bugs that need fixing first.

I’ve been dabbling a bit with designs for city-building games, both SimCity-like and Caesar-like. The current idea in my head involves mixing the two: a Caesar-like set in the modern era, with proper traffic simulation. I think it would be a good replacement for the traditional “walker” mechanic. Other city-builder designs include a near-future one set across multiple space colonies, and a casual browser-based SimCity-style thing. As you might be able to tell, this genre is a mild obsession of mine! One day I’ll make one, but it’s a huge undertaking for one person, and I’m not ready for that quite yet.

The next Ludum Dare is next month! I’m looking forward to participating again, and am in the middle of a MiniLD entry right now. The theme is Pong, and I’m making a fairly plain Pong game, but where the paddles gradually disintegrate as they hit the ball. It’s not much, but I really want to keep my 1GAM up.

Dev Log 28th of February 2015

This past fortnight, I’ve been working on something different again! Specifically, on an update to Snowman Sumo, which I was in the process of selling to a games site until I saw the terms of the contract, which I disagreed with. So, it’s now somewhat in limbo. Compared to the playable version, there are new single-player and three-player modes; you play multiple rounds, with the winner the first snowman to reach a certain score; and I’ve given the UI a complete refresh. Because of the previous interest in the game, I’m intending to put it up for sponsorship on FGL, and see how that goes.

For the sake of 1GAM, I spent a couple of hours this week quickly putting together a memory game. It’s nothing much so far, but I have some plans for it. Nearly 3 years ago when I briefly attempted making 49 games (I made 1. 😉 ) the second was to be this memory game. Now, I’ve never liked it as a game, so inspired a bit by Pongs, I thought-up 39 variations on it to make it more interesting… and then never actually made the thing! I was easily distracted, and arguably still am, but more so back then. I’d still like to make it, so maybe I will now that I’ve made a small start.

Snowman Sumo and Memory are both made in Unity. Unity is pretty amazing, just in terms of how fast it is to develop things, even without much experience using it. The SS update involved learning how the animation and new UI systems work, and they’re great! And with almost no effort, Memory works on Android. I’ve been hesitant so far about making a “full” game using it, but I’m gradually changing my mind… I’ve never been great at making decisions, and on the one hand, Unity is so quick to use; on another, Jonathan Blow’s language talks and Handmade Hero make me want to go low-level and use C++; Haxe and snĂ”wkit offer something in-between, but I’ve never really got them to work; and I’m most familiar with Java but it annoys me. That’s 4 hands, plus another for just using JavaScript if I’m making a web thing. Hmmm!

Edit: Turns out that all I needed to do was update my snÔwkit install and it all works, huzzah!

 

Dev Log 14th of February 2015

After spending January rewriting this website, going on holiday, and then working on Spacelunky, I came back to Quick Quote and realised that it’s not the most important thing I could be working on. It just plain doesn’t sell well enough. I’m not cancelling the 1.5 update for it, as I do think that resolving some of the issues it has will help sales, it probably won’t make enough of a difference to warrant more time spent on it.

So! What am I working on? It’s another Android app, specifically the one I alluded to back in August. Still keeping it under wraps for now, but development is going really well. Being able to start fresh after working on Quick Quote for so long is great, and I’ve been able to avoid a lot of the mistakes I made when developing that.

Feature creep has been a real problem for me in the past, so I’m focusing on the absolute minimum that the app needs to do, will get some people I know to test it, make any necessary changes, and then release. Only if it actually succeeds will I consider adding to it this time! Hopefully, as I have an actual target market, and I haven’t found any competitors, it has a good chance of succeeding.

Spacelunky Post-mortem

As previously mentioned, I’m attempting 1GAM again in 2015. My attempt for January is Spacelunky. Download it free from Itch.io.

Spacelunky

Spacelunky came from my admiration of Spelunky, and the fact I’ve not really made a platformer before. So at the beginning of the month I outlined my plans for what I thought was ambitious for my 1-week time limit, but felt I’d be able to complete a decent chunk of it. However… I barely finished anything. It feels like a 48-hour game jam’s worth of work.

What went well

Let’s start with the good! I tried to put into practice what Casey Muratori calls “compression-oriented programming“, where you don’t design the code in advance, but write it as simply as possible, and see what structure naturally emerges. The result is that I’ve written much less code than I normally would, but with the same effects. It’s quite liberating, but does take some practice.

I wrote music! It’s mutated a little as I converted it from in-my-head to on-the-computer, so it doesn’t really feel appropriate to the game, but it’s not actually painful for me to listen to, so I’m making progress from my previous attempts. Still very rough though, I hope to be much better by December.

I’m also pleased with the art. OK, the tiles are a bit horrible, but whereas I usually don’t animate things, this time I put some effort into doing so. The player and aliens have walk and death animations which I’m really pleased with.

Finally, and this will make more sense in a minute, I kept going, and made sure I had a playable game now, even if it’s not a very good one. I was really worried about meeting the deadline, and nearly just gave up on the whole thing, but I’m glad I finished something.

What went poorly

The first problem was over-scoping: the game design was too big. I knew this before I started, and hoped that as most of the design was optional, it wouldn’t be a problem. It wouldn’t have been as much of a problem as it was if it wasn’t for…

Having a terrible week! Many of you will be aware that I suffer from depression, and this week was not a good week. I don’t know why, but I just felt rubbish. I would sit down, intending to work, and just stare at the code with no idea of what I was doing. Not great.

I’m not at all happy with the generated levels. The algorithm I think is fine: it creates a 5×5 array of chunks, with connections between them, then slots in a pre-defined tile layout that matches the connections. (e.g. a chunk connects up, down and left, so it finds a layout for it with those connections.) The problem is the levels are dull and repetitive. Partly this is from the lack of available things to put in them, but also because of a poor decision I made early on that the layouts should be 10×10. This is much too small to fit anything interesting in, once the appropriate corridors are added.

What I would do differently

Definitely next time I will shrink the scope of the game significantly. In February I’ll aim for the sort of game I would attempt for Ludum Dare, and see how that goes. I’ll try to look after myself better and hopefully avoid feeling so low.

Anyway, if you want to check it out you can do so on Itch.io. It’s a free download, but does require Java.