Tag: ludum dare

9 Months of Silence

Not long after my last post, I got offered a job answering email! I never would have thought that would suit me, but it’s working out really well, and has done me a lot of good. Hooray for gainful employment! Money-per-hour on that is so much better than I’ve managed with software development, but of course it’s not nearly as fun. It does mean that just about all the goals I listed were immediately thrown out of the window, but it serves me right for trying to be organised.

App 2 continues to be worked on as I find time. Recently I finally started reading The Pragmatic Programmer and it’s given me a much-needed nudge to try some new techniques. Right now I’m in the middle of rewriting all database-access code to use generated code, which I’ve been chipping away at for a month now. Is it the most productive use of my time? Probably not. But it’s a useful thing to know how to do, and it is helping to make many parts of the codebase simpler and more consistent. Plus it’s fun! But then I’m weird and find refactoring code to be very enjoyable. If anyone’s interested, I’ve uploaded the input file and result here. I’m using JavaPoet which makes manipulating code much easier than messing with Strings. I haven’t included the code that actually does the generation but maybe I will when it’s doneΒ β€” I hope to use it again in future apps.

Also, a few weeks ago I entered Ludum Dare 36 with my brother. It was the first time I’ve actually worked on a game with someone else, so that was cool and frustrating in new and exciting ways! The game, Boulderama! is not something I ever would have made on my own, and it’s much more polished than anything I ever produce, so check it out if you like casual/puzzle type games. I would like to apologise in advance for the music though.

I’m also now a moderator for an online game, Growtopia. That’s been an interesting experience too! As a shy person, suddenly becoming some kind of minor celebrity is super weird. Lots of kids get super excited to meet me or talk to me, or sometimes try to confide in me about their problems. It feels like an honour to be involved in it, but it’s also completely exhausting so I tend to hide a lot.

Growtopia simultaneously fills me with ideas for multiplayer games, and how I would structure the code… and also makes me never want to make an online game. There are so many complicated issues that come up, and the pressure of having 500,000 people log in every day, who all want different things from the game, makes it really hard for the 2 developers to please them. I’m also not sure I could ever actually finish a project that big and complicated, but that’s a whole other issue!

LD34: Ecosystem

Ecosystem

Another Ludum Dare, another little game! This time, by a coincidence, there were two top-voted themes, ‘Growing’ and ‘Two Button Controls’. I went with ‘Growing’, as I’ve wanted an excuse to make a little gardening game for a while now. And so, I present to you the unimaginatively-named Ecosystem.

Ecosystem is a sandbox where you plant seeds and then watch them thrive or die out. Sculpt your little patch of dirt, water it, and see what happens. As your garden grows, it’ll develop its own ambient soundtrack.

A lot of it is very rough. The audio gets messy when there’s a lot going on. There are bugs with how things float on water. It can’t handle underground sections very well. There are only three plant types. But it feels like a good starting point – I say this a lot, but I really think this game has a lot of potential as a background game that you leave running and just tinker with occasionally.

This game also is a bit of a personal milestone. It’s my tenth Ludum Dare entry, and I’ve made a game every month this year. Next year, I’m definitely going to work on fewer, bigger projects, but it’s nice to have done One Game a Month properly once.

Frankenstein’s Monsters, Inc. Post-Mortem

The Ludum Dare 33 results came out earlier this week, and it went really well for me. I beat my previous bests in 5 of 8 categories. I placed 87th in the Theme category, with 4.04/5 – my first score over 4. So yeah, I’m pretty happy. πŸ˜€ You can still play Frankenstein’s Monsters, Inc. on Itch.io.

I’m far from an expert on game jams, but I thought I’d do a post-mortem to share my experiences:

What went well

  • I spent some time before the jam considering each of the 20 possible themes and writing down ideas for them. I do this every LD if I have time – it’s a fun game-design exercise, but also means that I can get started right away and not stress about having no ideas. (Except when the winning theme is one I had no ideas for, which has happened before.)
  • I recognised that my idea was too big, and simplified it before I began. The biggest change was reducing the game down to a single screen. Had I divided things up into multiple windows or screens that you switched between, it would have taken longer to make and been more confusing to play.
  • I got things working quickly. The game was essentially complete by the end of Saturday, leaving Sunday for balance and polish. Much of the art was still rough stick-figures, and the balance was off, but the game fundamentally worked, and I could have submitted it then. I’ve found this is really important for motivation – I’ve given up in previous game jams when it’s Saturday evening and my game isn’t coming together (even though I probably could have completed it).
  • I prioritised what needed doing. I can’t remember where I got this from, but I always make a TODO list with a ‘Need’ column and a ‘Want’ column. (Sometimes also a ‘Like’ column for really unnecessary but cool ideas.) Working through the Need list first really helps me to focus. Even after I’d simplified the game as I mentioned above, there were still big features that didn’t make it in – if I’d not prioritised the really important tasks, I would not have produced a finished game.
  • I used familiar tools. I know it’s not fashionable to use Java, but I’m now familiar enough with it and the library I use (libGDX) that I can work quickly without spending a lot of time reading documentation. As for software tools – IntelliJ, GIMP, and to a lesser extent FL Studio – I’ve used enough that I could concentrate on making the game, not learning to use them.
  • I actually made some music! I still don’t know what I’m doing music-wise, but spent half an hour or so cobbling-together some notes in a reasonable-sounding order. It’s something I’m trying to get better at, didn’t take that much time, and greatly improves the overall feel of the game. Certainly better than silence.

What went wrong

  • No sound effects. I find sound effects quite difficult to do, and so kept putting off recording them. There’s also the issue of how to make them work in a game where you can be producing several monsters per second – how can I have sound effects without them overlapping and just becoming a horrible mess of distortion? So I made excuses, and audio was the lowest rating.
  • Last-minute checking. The last thing I did to the game was add detail to the background, and in doing so I made the text really difficult to read in some places. If I’d paid more attention it could have been clearer.
  • Odd balance. The monsters and human workers are almost equally effective in terms of work-per-cost, so the choice between them is a bit meaningless. The public outrage also scales in a way I’m not fully happy with – to decrease it costs money, which means selling monsters, but selling monsters increases it – but at the time I was just happy that the game was winnable but still challenging. If I was to spend more time developing it, I’d definitely need to reconsider how everything interacts.
  • No animations. Entirely a time issue. I wanted to have animate the departments that are working, for visual feedback and to make things more lively. Ran out of time, which means that the Jacob’s Ladder in the top-right looks like unfinished knitting.

LD33: Frankenstein’s Monsters, Inc.

Frankenstein's Monsters, Inc.

Last night I submitted my Ludum Dare 33 entry, Frankenstein’s Monsters, Inc. which besides being a bit of a mouthful, is a fairly minimal management game about running a monster-building business. The theme was ‘You Are the Monster’, and I think you’ll agree that digging-up bodies and sewing them together is pretty monstrous. I say it’s minimal because your controls are only to drag monsters and job applicants to assign them to a department, drag monsters to sell them, and click on buttons to spend money.

It was a lot of fun to work on! I’m happy with how it’s turned-out too – the only thing I didn’t get time for is more art, especially some animations for when each department is working, and more variety for monsters. It started out overambitious, but I managed to simplify the design a lot before I started. I even had time to do some music:

As with any jam game, there are things I’d like to add to it. My original idea gave the monsters statistics which affect how much money they’re worth and how effective they are at different jobs. In that way, you’d be able to gradually level-up your production quality as well as its speed. You’d have a PR department which would slowly reduce outrage over time, which would allow outrage to ramp up without being unbalanced. I also have some ideas about selling monsters – that they’d be sold automatically but only when there was demand, and you would increase demand by assigning workers to a marketing/sales department. I’d like to change how human workers behave too – at the moment, they’re 4 times as effective as monsters and 4 times the cost, so there’s no reason not to hire them as soon as they’re available. So, two different directions it could go in, really! Either more of an “idle game” that runs by itself, or a more detailed business simulation.

The Ludum Dare page is here, or you can go play it here.

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!

LD31 was my best yet!

The Ludum Dare 31 results are in, and Snowman Sumo has the best ratings I’ve ever had in all but two categories! I even managed to creep into 63rd place in the humour category. I’ve made a little graph of all my results, embedded below:

There aren’t really any patterns, so who knows how well I’ll do next time, but this is a lovely way to end the year. πŸ™‚

No More Games! Also, Here, Have Another Game

So, two things to talk about today. Neither of which is Quick Quote, because I’ve not had much time to work on it this week.

As I previously mentioned, last weekend I created a game for Ludum Dare 31. It’s called Snowman Sumo, and is… a game about sumo-wrestling snowmen. My game names are nothing if not self-explanatory.

This is my most polished jam game to date, and I’m really happy with it. You roll around, picking up snow to increase your size, then knock the other player’s snowman into the water. I won’t know how well other people liked it until a couple of weeks’ time when the voting period ends, but there are a couple of things I thin k went particularly well.

Firstly, using my voice for sound effects and music was much quicker than doing it “properly”, and hopefully makes it funnier. Every LD, I make the mistake of jumping into a music program that I haven’t tried to use since the last jam, and inevitably get confused and waste time, before giving up. Going a cappella is much simpler for me, and next time I’d like to do something more interesting with the music.

Second, I used Inkscape to draw the game logo and other text. Usually I scrawl something in GIMP, which generally looks horrible. I’m not hugely comfortable with Inkscape, but it’s so much easier to get some text that looks nice, with a gradient and outline. Makes things look much smarter.

I cheated a little with the 3D models… I’ve tried to use Blender and Milkshape before, and failed miserably to get anything usable. So, I ended-up constructing the land, water and snowmen out of Unity’s prefabs, and texturing them with materials. This worked better than I’d expected, but I really need to spend some time learning to create models properly before I attempt something 3D again. I happened to get lucky with a game that didn’t need anything complicated.

Making such a simple game meant I had a lot of time for polish, and to explore Unity features I wasn’t familiar with. SS has particles, sound effects, physics, the input system, and even a shader for the water, none of which I’d tried before.

No More Games!

With regular game bundles and dramatic sales, it’s easy to build-up a backlog of games you’ll never play. I think this is even worse when you develop games, as you get exposed to a lot more of them. Mid-November I decided enough was enough, and it was silly to keep spending money on games I’ll never get around to, so I decided not to buy any more for the rest of the year, regardless of any sales. I’ve now decided to continue this for all of 2015. This is partly because I’m going to spend the money I would spend on games on a new graphics card to replace my ageing one, but I think it’s generally a good thing to try. It’ll force me to finally play some things I have been meaning to for years. Let me know if you’re going to try this yourself,I think it would be fun to all do so together!

Dev Log 5th of December 2014

This week, it was back to work on Quick Quote. There are a bunch of improvements I want to make with how quotes are handled, such as adding customer details, and marking them as an invoice. On Monday, I added the ability to attach a note to a quote, which appears when the quote is sent to the customer. However, when starting on the other features, I ran into difficulties with the way quotes are stored internally. It’s caused me problems in the past, and I’ve finally decided to spend time reorganising things.

Technical Debt

“Technical Debt” is a measure of how awkward the code is to work with. When developing software, often you don’t fully understand a problem until you’ve already solved it once. At that point, the solution works so you move on, but it might be overly complicated, or slow, or less versatile than it should be. As this debt builds-up, development takes longer and certain tasks become impossible. Paying-off this debt takes time, but makes things easier in the long run.

In this case, when I began on Quick Quote, in my inexperience I decided to store quotes as XML files, rather than in a database, as it would be simpler. Up to a point, this has worked well – I’ve been able to gradually add new things to the quote files in a backwards-compatible way without having to do potentially messy database changes. The downside is that files have limited metadata – they have a name, and the last time they were edited, and not a lot else. For the saved-quote list to display or sort by anything else, such as whether the quote is an invoice, it would need to read in each file and process it, which could be very slow if there were a lot of quotes. This is the main reason I wanted to switch to a database, the other being that Android’s data-synchronisation system is poorly suited to working with files, so I’ll be in a better position to implement that in the future.

The biggest hurdle for this change is that everything needs to be converted the first time that Quick Quote launches, and that’s what I’ve spent the rest of this week on. It’s been slow work, as there are lots of things I’ve not done before, but it’ll all be useful for when I make future apps.

Ludum Dare

This weekend is Ludum Dare 31! LD is an online event where people create a game from scratch over a weekend. I’m hoping to participate, in which case I’ll have a new game for you by Monday. I’m hoping that the theme will be ‘Deep Space’, so I can make a rocketry game, but we’ll see.

LD30 is Over!

So, the results for Ludum Dare 30 are in! Lorries in SPAAAAACE! did well enough, though nowhere close to the top 100. (Though being #68 in the Humour(Jam) category is nice.) Considering it’s not a very original game, and lacks polish, I’m pretty pleased.

The two big take-aways for me are 1) I can actually make games that people enjoy! (Judging by the positive comments I received.) This was so important, as after F!shing flopped I was wondering if I’m even any good at this game development lark. 2) Unity really is as quick and easy as I’d hoped! This is also encouraging, as the games I want to make (strategy/management/city-building) are quite large, so I need to be able to work quickly if I have a hope of finishing one. I’m not yet ready to embark on an epic, multi-year project.

As for Lorries in SPAAAAACE! itself, I do have some plans to expand it into a full game, but as always I have other projects to finish first. πŸ˜‰ If only I had infinite time, maybe all the games in my head would get made and released.