About GarrickWinter (twitter: @GarrickWinter)


Ludum Dare 29
MiniLD 49
MiniLD 45

GarrickWinter's Trophies

GarrickWinter's Archive

Gonna Solo It

Posted by (twitter: @GarrickWinter)
Friday, December 9th, 2016 11:30 am

So I haven’t done LD in a while, but I’m taking time this weekend to try and crank something out solo. I’ll be working in Unity, probably 2D but it depends on what the theme ends up being. Already trying to brainstorm ideas for all the theme finalists, since I won’t have a full uninterrupted weekend to do this.

Best of luck to all!

Looking Forward To This LD

Posted by (twitter: @GarrickWinter)
Thursday, August 21st, 2014 12:45 pm

So I intend to participate in the 72-hour jam again this time. This will be the third time I participate, and I’ll be doing it solo for the first time (still using Unity). I also likely won’t have the full 72 hours, because I have to work on Monday and have a brief appointment on Saturday, but we’ll see what I can manage!

Some thoughts on the highest-ranking themes from the first four rounds:

  • Connected Worlds was the leader in the initial rounds, and it’s an interesting concept, but I can see literal interpretations being fairly challenging. I don’t really fancy crafting two or more intricately connected worlds, and I would guess that this would give rise to lots of alternate-universe-switching puzzle games. But there are other interpretations available, luckily. What about a game themed around the interconnectedness of seemingly separate ecosystems, or a game about a poor thief and a rich princess teaming up to achieve some common goal?
  • Day and Night is one I like, because even the literal interpretation is too bare-bones to dictate “obvious” mechanics. It’s easy to even ignore the literal interpretation and simply focus on some kind of high-contrast theme. I think this was a close runner-up for the last event as well, and it’s in second place now, so we’ll see how things turn out.
  • Don’t Stop Moving is one I initially disliked, because it seems to describe a straightforward mechanic and doesn’t have quite as rich symbolic potential as other themes. But the more I think of it, the more I think that there’s still a fair amount of variety to be had in this one. What happens if you do stop moving, for example? That would have to be a significant consideration, and the answer could basically be anything
  • Break The Rules seems really tricky. I’ve never made a game where the player is able to break the game’s apparently rules, but I imagine it’s a fairly complex task, since you need the first set of rules, and then a second set of rules to support breaking them. It’s certainly doable, and there’s no reason not to make a game where this is more of a narrative theme (like any game about criminal activity), but of the top five, this is the one I have the fewest practicable ideas for.
  • Isolation rounds the list off with a nice, broad theme that can be just about anything. I’ve had a few mental pitches for ideas just typing this, and I’m sure it would be easy to come up with more. A multiplayer game where all players must cooperate while isolated from one another? An RTS where you only have one unit versus your enemy’s horde? A game about hiding in a bunker without a clue what’s going on outside? Isolation is such a broad theme that it would probably give us the greatest variety of the themes on this list – though of course, the participants in Ludum Dare inevitably surprise with how far they can run with the themes.

Just some idle thoughts while I eat lunch. 😛

In any case, I’m really looking forward to doing the Jam this summer! Best of luck to everyone else participating.

My MiniLD #49 Game – Now on the Google Play Store!

Posted by (twitter: @GarrickWinter)
Sunday, March 9th, 2014 3:22 pm

Star Prober on my Nexus 7

So during last month’s Mini Ludum Dare, I created a one-button game called Star Prober. It was a simple little game, but I rather liked it and so did several of the people I showed it to, so I decided to go all the way and figure out how to turn a tiny little game into a commercial release! You can now download Star Prober on the Google Play Store (I think? Conflicting reports from friends as to whether it’s actually available). It’s free, with a small handful of IAPs thrown in for kicks.

The gameplay itself is identical, though I touched up the graphics a bit and expanded on the interface. Most of the changes went into expanding on the GUI and fitting it to Android devices, and setting up an IAP system for a few small gameplay bonuses. I didn’t actually change the gameplay balance to accommodate the IAP scheme – the game is perfectly playable without them.  Instead, they basically just make the game easier, if that’s something you’re interested in.

I spent a lot of time struggling with the whole in-app purchasing thing. I used the OpenIAB plugin for Unity, which has a few issues – it’s hard to figure out when OpenIAB is ready to start performing billing and inventory operations, and the event-driven structure means that there are delays involved in getting feedback from it, so you need to use round-about ways to get information at the right time relative to the rest of your code. Since it’s fairly new, the documentation isn’t yet completely clear, though that’s something that the developers seem to be working to fix. Took me about a day and a half to get running properly, a more experienced developer will be able to figure it out sooner.

The game was tested on Nexus 4, 7 and 10 devices, and has screenshots uploaded for each of those screen sizes, but I still get the “Designed For Phones” tag, and I don’t know why, so that’s something I need to figure out. Sometimes there are also stuttering issues, which I still want to get to the bottom of, though they don’t appear to impact gameplay all that much.

Overall though, I’m happy that the game works and is out there. I decided to release it mostly as an experiment and as a learning exercise – how do you make Android games ready for release? How do you actually build an IAP scheme into a game? How do you Beta test and publish using the Google Play Store? I feel I’ve learned a good deal with regards to all these questions, and that’s really what I set out to do, so I’m happy with that.

I hope Star Prober brings you at least a few minutes of entertainment!  Once I’ve waited a bit to see if there are any outstanding issues for other users, it’s off to the next game. Maybe MiniLD #50? 😀

Day 2 – Space Prober

Posted by (twitter: @GarrickWinter)
Sunday, February 23rd, 2014 12:20 am
The probe crashes through an asteroid, hurtling towards the sun.

The probe crashes through an asteroid, hurtling towards the sun.

So today I got a bit more work done on Space Prober, including deadly asteroid collisions, planets, infinite universe generation, and so on. Most of the gameplay is already in place; from a design perspective, all that’s missing is some kind of time pressure that forces the player to keep moving. I have a few ideas!

Otherwise, I hope to spend tomorrow focusing on polish – adding sound, particles, touching up the graphics, improving the GUI, tweaking the numbers, etc. Hopefully, by tomorrow evening, I’ll have something that’s at least somewhat juicy and is fun to play around with for a few minutes!

Anyway, we’ll see how that all goes. For now, I need to go get some sleep.

Space Prober – Day 1

Posted by (twitter: @GarrickWinter)
Saturday, February 22nd, 2014 1:01 am
This shows the space probe orbiting a star

This shows the space probe orbiting a star

I have successfully worked on my game, Space Prober, today! I’ve actually already got the core mechanic working, though it needs a lot of polish. The probe swings around through space and starts to orbit any planet it hits.

Tomorrow’s work will be implementing planets, asteroids, battery usage and recharging, and otherwise getting the core mechanics working. Sunday will be for polishing, tuning, and making the game look and sound nicer!

I’m already liking the swoopy feeling of slingshotting the probe around, and I can’t wait to get down to really making it feel right!

Get some rest, everyone, and enjoy the jam!

As usual, I’m cross-posting to my blog.

Space, Here I Come!

Posted by (twitter: @GarrickWinter)
Friday, February 21st, 2014 8:05 pm

So yes, I am participating in this month’s Mini Ludum Dare! And I’m quite excited, if I may say so.

My game, which I’m tentatively calling Space Prober, is a game about a space probe slingshotting itself between stars and planets. You are trying to explore as many planets as you can while keeping your battery levels up by slingshotting close to active stars.

It will be a fairly simple game, all things considered, and I am planning on porting it to Android if I have the time to do so. It will be built in Unity, so I should be able to publish it for browsers as well as Windows.

I will try to post a screenshot tonight, but I already have the core slingshotting mechanic working! Yay!

Good luck everyone!

A Postmortem for Mama Is Sick

Posted by (twitter: @GarrickWinter)
Tuesday, December 17th, 2013 12:38 pm
Mama Is Sick

The main game interface for Mama Is Sick

So the 28th Ludum Dare marks the first time I have participated in the mainline Ludum Dare event, though I was previously a participant in the Mini Ludum Dares 44 and 45.  Myself and a teammate, JaymeeMak, made a game called Mama Is Sick (submission page here) and submitted it yesterday afternoon after 72 hours of mostly work and a little sleep.

Mama Is Sick is a resource management game in which “You Only Get One” dollar a day with which you must try and feed yourself and your family, as well as pursue an education.  It was developed entirely in Unity, using Unity’s GUI functions; I was the programmer on the project, while Jaymee handled narrative design, art, and audio, and we shared the tasks of gameplay and interface design.


The development process was really fun; this is my fourth game jam this year, and the whole concept is really starting to grow on me.  By Friday night, a few hours after the theme was announced, we had a basic prototype of our game, and by Monday morning it was mostly bugfixes and polish that we had left to do.

Of the things we did well, I think scope and planning was definitely one of them.  Going with an entirely menu-driven game was a better choice than implementing some kind of game world behind the menu, as it helped us focus and flesh out our mechanics without getting distracted.  The mechanics we had were just enough to keep us busy for the better part of two days, but not enough to overwhelm us by the time the jam ended.

We also did well with working as a team with complementary skillsets.  The fact that each area of the game was being looked after by the person in a best position to perform those tasks really helped us keep things on schedule, and made sure it all worked out in the end; we also did a good job at effectively communicating what we were doing and what needed to be done, to make sure we were mostly synced up during development.

Finally, I think we did a good job at integrating the theme in our game; it’s not a strictly one-thing-forever scenario, but the whole concept of living off only a dollar a day has a strong presence in the public consciousness, and I think we ended up with a pretty interesting game for it.


As for what we could improve, one of the things we concluded was that we needed a better introduction to the game mechanics; most of the difficulties players had with the game involved not knowing exactly how the mechanics or interface worked.  Instruction screens are nice, but ideally we would have had some kind of in-game tutorial, which we unfortunately didn’t have the time to implement.

Along a similar vein, I think we could have made an interface and game that felt more responsive to player actions.  We tried to make an audiovisually responsive interface, and succeeded to some extent, but there is definitely room for improvement on that front.  Buttons could change color when hovered or clicked on; the upgrade mechanic could have been clarified through more obvious feedback; etc.  We thought a lot about these things during the game and are confident that we’ve learned lessons that can be applied to future projects we work on.

Finally, from my programmer’s perspective, I didn’t do a very good job at making modular code.  As I was assembling everything very quickly, and needed to work within Unity’s still somewhat unfamiliar framework (me being used to the much more blank-slate approach afforded by raw C++), I could have spent a bit more time making more reusable and modular functions for different kinds of buttons, actions and resources.  This would have helped a lot on Monday, when I spent a lot of time fixing or debugging problems that stemmed from the game mostly being run through a few very large functions.  On future projects I will definitely keep that in mind.


This was a really fun and instructive experience, and however the ratings may fall, getting the game out the door and seeing people’s initial and mostly positive responses is a great feeling.  I hope to take the things I learned making Mama Is Sick into future projects, and I can’t wait for the next chance to take part in a game jam (Mini Ludum Dare #48, I am looking at you!).

I should also thank our two playtesters from before we submitted the game, as well as everyone who takes the time to play Mama Is Sick and provide feedback for us; as game design students and future developers, these jams are really important learning experiences for us.  And a big shout out to everyone who managed to get a game in there, big or small; 2065 games made over the weekend!  Wow, that’s really incredible.

Of course, though, my greatest thanks go to my teammate Jaymee, for bringing her great talent, spirit and work ethic to the game (as well as for keeping me away from the game’s art).  Alone, I could only have made something lesser than what we managed to create as a team.  Thank you!

Monster’s Maze – Day 3 – Submitted!

Posted by (twitter: @GarrickWinter)
Sunday, September 22nd, 2013 8:44 pm

So I just finished Monster’s Maze and uploaded it to the main thread!  This has been a very whirlwind experience, since I didn’t at all expect to participate in this MiniLD, especially not since it only lasted 3 days and I had other work to attend to.  And yet here I am, and I think I can say with confidence (I hope!) that Monster’s Maze turned out even better than my MiniLD #44 entry (Jumpstarter).

The development process was incredibly smooth, with only a few major blockages.  I think it helped a lot that I chose to make such a heavily restricted game world; that helped me focus my efforts on gameplay and balancing.  I’m happy with the end result; it may be a little too hard (I can’t even survive until unlocking all weapons!), but it’s frantic and hopefully fun.

I also learned a few things.  Diffusion-based pathfinding is amazing, really, and I will have to pay close attention to my future projects to see if they would benefit from an implementation; it’s such a useful technique, that alone was worth getting into this MiniLD for.  I also learned about using cellular automata to create mazes (and how to deal with the mazes if they aren’t completely navigable – interestingly, diffusion-based pathfinding really helps fix broken mazes!), some minor SFML details, some debugging techniques, and had my first real clash with the need to balance numbers in my game, both directly and algorithmically.

Great and rewarding fun, all in all, and I hope everyone else enjoyed their time too!

Promotional 2

As usual, cross-posting to my personal blog!

Monster’s Maze – Day 2

Posted by (twitter: @GarrickWinter)
Saturday, September 21st, 2013 8:52 pm

So today I got most of the fundamental gameplay in place for my game.  There are now two enemy types who pursue the player, one which shoots at the player and the other which tries to swarm the player at close range.  The player also has three weapon types, though two of them are effectively identical at the moment.  There is also a rudimentary GUI that tracks player health, monsters killed, and weapon type current equipped.

Tomorrow I am going to focus on adding content and creating a progressively increasing difficulty curve.  I am not sure whether to add audio, but if I do, it will be fairly primitive.  I am actually having quite a bit of fun with this, which is probably helped by the fact that I chose a super low-scope game to build.  Hope everyone else is also enjoying their MiniLD!

As usual, I cross-post this to my personal blog.

Monster's Maze (2)

MiniLD 45 – Day 1 – Monster’s Maze

Posted by (twitter: @GarrickWinter)
Friday, September 20th, 2013 8:34 pm

So against my better judgement, I decided to participate in this month’s Mini Ludum Dare!  I will be building a game in C++ using the SFML framework, and creating my game assets in Paint.NET.  Unfortunately, I don’t think I’ll be able to get a whole lot done, since I also have homework to attend to, so I am scoping very low for this project.

My game will be a one-screen, top-down monster shooter set in a labyrinth; nothing fancy on the experience side.  However, I am using this as an opportunity to teach myself new things, in the spirit of the compo.  Specifically, I implemented a new AI pathfinding method I’ve never tried before, use cellular automata to generate my levels in a way I’ve never done before, and am going to try to practice my pixel art a little more.

The following screenshot is a debugging view of the pathfinding technique I mentioned.  It is essentially my own implementation of the technique described in this article, where it is called “diffusion-based pathfinding”.  The brighter the tiles, the nearer they are to my player character, as you can surely see; the data is updated constantly, in real-time.  Monsters will use this diffusion- or scent-based grid to navigate towards the player at all times.

Scent-Based Pathfinding

Hope everyone’s having fun, and getting their proper rest!  I’ll be cross-posting to my personal blog as well.

Jumpstarter, Day 7 – Finished

Posted by (twitter: @GarrickWinter)
Sunday, July 28th, 2013 9:20 pm

So here it is, then – Day 7 of the 44th Mini Ludum Dare.  As this is a 7 Day RTS compo, that makes this the final day – and about time, too, since I really need a break.  I am, therefore, done – here is my first LD submission.

My game, Jumpstarter, is nominally about taking the reigns of a rebellion against an Empire, using crowdfunding (tied to public approval rating) and trade route raiding as a main source of income.  In point of fact, the theme is rather thin; most of my work was concentrating on coding a working RTS, and in that respect, I think it’s a moderate success.

There are several issues remaining – not as many selection modes as I’d like; a bug that crashes the game if you exit to the main menu and try to start it again from there; homing missiles are a little wonky; and the balance of the enemy AI is iffy at best, swinging between hilariously incompetent and ruthlessly efficient.  I played against the AI’s current design and won a few times, but I am generally terrible at RTS games (despite them being a favorite genre), so I upped the difficulty a little bit above my level before uploading it, and I can’t consistently beat it as it currently stands.  Also, ship costs are mostly arbitrary, and are probably not properly balanced.

The game uses fairly standard RTS controls.  You drag-left-click to select all units within a box, or single-left-click to select one unit.  Mouse wheel zooms in and out, WASD pans the camera around..  Right-clicking issues orders, either to move, attack or invade.

There are three ship types and three station types in the game; the main difference is that ships are mobile and stations are locked to their parent planet.  The ships are (in the same order as the build menu)

  • The Cruiser, a powerful but expensive ship;
  • The Interceptor, a fast and cheaper ship;
  • The Dropship, a weak ship that is capable of conquering planets;
  • The Shipyard, which is required to build ships;
  • The Repair station, which repairs nearby ships and stations fairly quickly; and
  • The Turret, which fires homing missiles at nearby targets

To win the game, you must capture all the red Empire’s planets; to lose, you must lose all your planets and ships – that is, you can live on if all you have are ships (but you effectively cannot win if you have neither planets nor Dropships, since you can’t capture any planets).

Tomorrow, I will consider doing a more exhaustive post-mortem on how the development of Jumpstarter went, but for now I need some rest.  Good night everyone!

Cross-posted on my personal blog.

Jumpstarter, Day 6

Posted by (twitter: @GarrickWinter)
Saturday, July 27th, 2013 8:15 pm


The penultimate day of the 44th MiniLD compo comes to a close, I’m happy to report that the game is more or less feature-complete.  I didn’t get the chance to include all the features I would like to include, but I’ve managed to implement all the core functionality I wanted to include, including:

  • Spacecraft and immobile space stations
  • Unit selection (single and box-based) and command
  • Combat
  • Income according to public approval rating
  • Income from raiding trade routes
  • Capturing planets
  • Enemy AI
  • A win and a lose state
  • Basic sound and particle effects

This is great.  Tomorrow, then, I will focus on solving the game’s remaining problems, including a fixing a few bugs and adding missing features regarding unit selection; softening the extremely difficult enemy AI (the AI doesn’t even cheat! If anything, it is handicapped.); adding more sound and particle effects; balancing unit costs; fixing population limits; and generally fixing bugs and trying to track down and prevent the mysterious random crashes I experienced earlier today.

Good luck to everyone else on the last day!

Cross-posted on my personal website.

Jumpstarter, Day 5

Posted by (twitter: @GarrickWinter)
Friday, July 26th, 2013 9:26 pm


Today I managed to get lots of little tweaks done, such as fixing crashes, implementing population limits, fixing bugs, adding the minimap and tooltips, and adding particle effects and more visual feedback, and so on.  The game is basically playable, with the glaring exception that the AI is not yet implemented.  I’ve started working on the basics, but it’s rather daunting, as I’ve never done anything like this before.  The weather was also awful today, sunny the entire time, and as a result I feel like I’ve been beaten up by somebody with a hot iron, so I wasn’t at my most productive.

I’m going to try and get some extra sleep tonight, and hopefully wake up fresher and able to tackle the problem that is AI.  I’ve got two days to get it done, really, though I’d like to continue tweaking the game and adding gameplay features as well.

Cross-posted on my personal blog.

Jumpstarter, Day 4

Posted by (twitter: @GarrickWinter)
Thursday, July 25th, 2013 10:26 pm

So today I had very little time to get things done, compared to the rest of the week so far.  I managed to get unit production up and running without much trouble, though, and also implemented planet capturing.  That means that the fundamental ingredients of the RTS game here – unit command, territory control and economic management – are in!  Yay!

Unfortunately, I am going to bed tonight with an unsolved crash related to particle effects.  Hopefully my fresher eyes tomorrow morning will help solve that.  Afterwards, there is some tweaking to be done, particularly to the interface, but the last major feature to add is enemy AI.  I hope to get basic enemy AI implemented tomorrow, as well as interface fixes and improvements; and I hope to get complete AI and basic sound implemented by Saturday night.  Sunday, then, will be a day for adding fun extra features, if all goes well.

I’m really enjoying the #7DRTS so far, but it is a definitely a bit exhausting, and I look forward to a code detox once this is over.  At that point, I think I’ll sit down and play Shadowrun Returns.

Cross-posted on my personal blog.

Jumpstarter, Day 3

Posted by (twitter: @GarrickWinter)
Wednesday, July 24th, 2013 9:21 pm

So I decided to slightly tweak the theme of my game.  Only slightly.  Now, it’s not just “public approval” you are gunning for; that public approval is reflected in the revenue pulled in by the crowdfunding campaign you are running to fund the rebellion.  Correspondingly, it is no longer called Insurrection, but rather Jumpstarter.

Otherwise, today has been a productive day, but sadly not as productive as I would have hoped.  I managed to get trade routes and resource gathering up and running, tweaked combat code a bit, and I’ve started implementing the interface structure for unit construction, but I haven’t actually started implementing unit construction yet, which is a big deal.  I was hoping to at least get started with that.

Still, there are 4 days left in which to implement production and enemy AI before getting to the more unique stuff, as well as possibly polish (though frankly, I don’t think I’ll have time for much of that).  Tomorrow will be ugly, because I have a really full day of classes, but I’m sure I’ll find a few hours to work on the problem, and starting Friday things are calmer.

Cross-posted on my personal blog.


Insurrection, Day 2

Posted by (twitter: @GarrickWinter)
Tuesday, July 23rd, 2013 9:40 pm


So the second day of MiniLD #44 draws to a close, and I have made some good progress today.

First, I added a lot of art to the game, though it is still pretty fugly.  I also tested out an equally fugly random music system I had lying around somewhere.  We’ll see what comes of that.

On the gameplay side, I implemented combat and an enemy faction, space stations, and the fundamentals for resources (no spending or gathering yet, just numbers, functions for changing those numbers, and interface elements), and the fundamentals for collision detection, though for now the only meaningful uses of that are 1) tracking where shots fall, and 2) scanning for nearby enemies.

Tomorrow, my goals are to get trade routes, production, and resource collection up and running, and maybe implement some rudimentary enemy AI (i.e. enemy player AI, not enemy ship AI, which already exists).  If I have the time, implementing placeholder sounds for things like weapons fire and ship explosions might be nice, as well as implementing the graphics for ship explosions.

Good night, and see you all tomorrow!

Cross-posted on my blog.

[cache: storing page]