Tom Robson

LD 40

Squares & Hexes - My First Ludum Dare Game

Hi everyone! I decided that I would write a post about the development of my entry for LD-40: Squares and Hexes!

It has been quite the journey from when I started the game to when I published it, and I feel that I've improved a lot as a developer as a result. I'm a game development student, and I've only been developing for 3 months, and this Jam has been such an amazing learning exercise, from which I've produced a game I really enjoy.

Before I get into the post, you can play my Ludum Dare entry in your browser, here: https://ldjam.com/events/ludum-dare/40/space-hexes. (The name on the link is a little off, I titled it wrong when I submitted it at 1AM, whoops)

Screen_03.PNG

Summary:

Squares and Hexes is a reflex-based precision game, in which you must navigate 10 levels without hitting any hazards, as doing so would cause your death, and you must then restart the section of that level. However, there are also 3 hexagons you can collect throughout the levels, which will boost both your final score and your speed, increasing the risk and the reward.

However, the game wasn't always like this, and through a bunch of small tweaks, I managed to produce a game infinitely more fun and polished than what I had initially planned.

Day 1 - Getting a Foundation:

Due to living in the UK, I had a bit of a late start to the jam. The theme was announced at 2AM on the Saturday morning, and I didn't stay up for the announcement. However, I was fortunate enough to be able to have some idea of what I wanted to do as soon as I read the theme. With 'The more you have, the worse it gets' in mind, my first thought was some kind of platformer, in which you had to collect a certain amount of an item to progress to the next level, but the more of these you got, the faster you went, making you more likely to hit hazards and die, subsequently making it harder.

The idea seemed pretty good, it was simple to do in 48 hours, I could do it despite having only been developing for 3 months as a student, and it was flexible enough to change things if I felt it was necessary. With a very simple design idea in mind, I jumped straight into Unity, and got working. I quickly got a prototype up and running with just 2 scripts, and one level. That prototype looked like this:

Ld-40 Prototype Mk.1.gif

It had some promise, but there were a few issues. The level required you to collect everything in one swoop, without dying, in order to have a decent chance of completing the level. You would easily collect the first hexagon, and maybe you'd get the second, but getting the third was too much of a jump in difficulty, as you'd die way more often than you should, through no fault of your own. And, honestly, it just didn't feel fun. Something about the way the player navigated the level was just, off, and I needed to fix that before doing anything new.

My solution was to make the player only do one thing: jump. The player would then move automatically, and would only have to worry about when to jump, which I found preferable when testing, as you didn't then get the chance to correct any mistakes mid-air, you had to live with your decision. This was the result:

Ld-40 Prototype Mk.2.gif

It was certainly more fun, but the same issue as before reared it's ugly head. Once you had all but on of the hexagons, you just couldn't get the third. It was an issue with the speed at which you went, and the placement of the hazards in the level. But no matter how much I changed values, no matter how much I changed the hazard placements, nothing worked. It'd feel too sluggish, or perhaps the level wouldn't be challenging enough.

It was at this point that I started to worry. My idea wasn't working, I had 34 hours left and still hadn't sorted my basic mechanics or made one proper level, and I was out of ideas. So I do what I usually do: I played some games for an hour,. and see what ideas I'd get from playing other games. One of those games was Super Mario Run, which, a lot like my game, only really has the player controlling when to jump. It was when playing that that I realized that I shouldn't have the open ended level format I currently used, but a linear series of levels which the player has to complete. With that in mind, I then decided that I should scrap the light platforming in favor of more reflex-based precision gameplay (which it had already become in my second prototype).

And so, I took my scripts, and made this really simple level, which shows all of the basic mechanics in one simple level:

Ld-40 Prototype Mk.3.gif

It was quick, simple, and right there showed that I had something good. that right there was my baseline, and using just those simple components that made this level, I went and made a total of 5. They were fun, and served as a good introduction that everything the game would involve. And it wasn't just me that thought that, I had people play that demo, and they liked it, their only complaint was the lack of visual appeal, which I was planning to fix right away.

Initially, I had it in my mind that I'd do some kind of dungeon for the backdrop of the core gameplay, using a pixel art style for the visuals. But, by the time I had a playable prototype, I was having second thoughts about that style. I only had a few hours of the first day left, and I knew that I'd not have much time to work on it the next day due to other plans. I decided that a simpler style with more work on certain bits of polish such as particle effects and camera shake would be ideal.

And so, with that, I chose a few shades of red for the level colours, and used oranges and yellows for the player and the hexagons. I made a few simple particle effects for certain occasions, and I scripted in camera shake upon death. It was starting to get more polished, and was far more appealing. Only an hour later, I had this:

Ld-40 Mk.1 LowerFrames.gif

That was so much better, and from there, I had a solid baseline for my game, that if all else failed, I could at least have something worthwhile to show for my efforts. And so marked the end of my first day, and I was left certain that I could get it finished the next day.

Day 2 - Trying to get it Done:

With 14 hours left before I wanted my game submitted, I knew exactly what needed doing for the day: UI, menu, and the score screen. If I could get all of that done, I had completed my goal of submitting the game for the Compo. But, the 5 levels I had didn't feel like enough. The theme was 'The more you have, the worse it gets', and yet I had only one of the collectible items in all of my levels. And so began the process of getting an extra 5 levels made. I like to think that I'm somewhat efficient at making levels, however, with the type of game I was developing, levels take so much longer to make. You have to ensure that it's challenging yet possible, and you have do that for every speed at which you're going to account for if players managed to avoid picking up the hexagons. It's slow, and took all of my development time on the second day.

I managed, but with how little time I had that day for actual development, it was all I managed to get finalized. I did start on the menu, but it was nowhere near polished enough to be in a released version. And with this, I ran out of time. I had 10 finished levels, but no menu, no score, no sound, no UI, and it just simply wasn't at a good enough level to submit for the Compo. Feeling just a little bit defeated, I closed down Unity, and decided that I'd submit the game for the Jam when I finish it the following day.

Day 3 - Finishing What I Started:

I was determined to get this thing finished by the deadline for the Jam, there were enough levels, they were fun, I just had to get a few essential features in and polished. Form there I could do whatever else I wanted/needed to afterwards. I got to work as soon as possible, and immediately finished off my main menu, integrated a scoring system, and got UI working. It only 2 hours, and I had a polished result that I was happy with. This meant that I could then focus on whatever else I wanted to add, which for me was a slight change in the look of the game. All I wanted to do was produce a slight outline around the floors and hazards, making them a little more noticeable and appealing. I also wanted to change the shape of the player. Everything was a square in the game apart from the hexagons, and so I decided to make the player a hexagon too. It was certainly an improvement, and slightly separated the game from other games similar to this one. Add in a few more particle effects to the background for bonus style, and I have a much better looking game, which looked a little like this:

Screen_01.PNG

The final thing was to add sound. Creating sound effects for jumping, landing, and dying was easy enough, the hard part came from making the music. I'm not a musician, not even close. But I wasn't going to settle for a game with no music, as I personally really dislike it when a game lacks this. I tried various resources for making any kind of music, from online chiptune synths to procedural music generation with a bunch of effects layered on top, I just couldn't get it done.I honestly tried for hours to do this, and nothing was working, and so as a last resort, I found some suitable royalty free music from incompitech.com, and that was that.

With my game finished, and 3 hours to go until the final deadline, I got to work on building the game and getting it live on itch.io, and submitted for the Jam. And 1 hour before the deadline, I was done, my game submitted and playable in-browser, happy with the result.

Conclusion:

Overall, I must say that I've surprised myself with how much I managed to get done in such a short amount of time, and the degree of quality I've managed to produce that content at. I don't really see myself developing the game further, as I'd rather pursue other projects that are new and fresh, but I must say that this has been a great way for me to progress as a developer, and the feedback has been just amazing.

Thanks for playing my game, and thanks for reading this post.

Now, since I've finished that, I'm going to go play the countless amazing games I've seen over the past two days!

LD 41

Regarding the Use of Standard Assets?

Hi there everyone! I hope everybody's games are coming along well!

I wanted to quickly ask whether or not it would be within the rules to include Unity's Standard Assets and Post Processing stack into our project? The rules say that we would be fine using 3rd Party Assets as long as we opt-out of the appropriate voting category. But does that still apply to assets that come with the engine, such as lens flares?

Thanks in advance! Good luck with your game! :)

Ludum Dare 47

Required "I'm in" Post!

I'm in!

This is my 7th LD!

I'm a little bummed out that I ended up with a pretty harsh work schedule, alongside have to help family move - but I suppose it balances out the crazy amount of free time I had for LD46.

I'm still going to try to get submitted, I'll just have to keep an eye on that pesky scope...

I'll be using:

-Unity

-Photoshop

-Piskel

-Audacity

-GarageBand

And all on a brand new PC!

It's an exciting jam! Can't wait to play everyone's entries! Best of luck!

Ludum Dare 48

Day 2 Art Pass

Happy Day 2, everyone!

We managed to get pretty much all of our gameplay made yesterday, including all the animations that go with it - and it's super fun, I can't wait for people to play it!

LD48 - Prototype.gif Build with all gameplay.

LD48 - Player In.gif Build with player animations.

Today is pretty much just me doing an art pass, while my teammate goes about implementing a main/pause menu, and anything else we can think of.

This is going well! Too well...

We've hit our (very) Vertical Slice!

My teammate and I have managed to get everything we need into the game: fun movement, enemies, health pickups, and even some basic environmental art!

LD48 - Vert Slice Sm.gif

While he's working on the menus, I'll be toiling away making some juicy FX for the combat, before doing a big asset dump, so I can start working on levels.

We did it! Hellfall is now LIVE!

With just under an hour left in the Jam, my teammate and I managed to get our game 'Hellfall' finished, published, and submitted for the jam!

It's 1AM here and I have a class in the morning, so I need some sleep - but for now, here's the link!

https://ldjam.com/events/ludum-dare/48/hellfall-1

Div.png

LD48 - Submission 4.gif

Div.png Good luck to everyone still going! You can make it!

Animating Hellfall

Hi everyone! Hope we've all recovered from our favourite crunch-fest.

We've had plenty of glowing feedback on our game, Hellfall. Pretty much everything from game feel to level design, art to difficulty. To say I'm proud of what we achieved is an understatement! And while I can't write a full post-mortem without it being akin to a Pixel Prophecy-styled documentary, I did want to do a post about the animation in Hellfall, as it's something that gets constantly brought up in our comments, and is something I surprised myself with.

Div.png

So, in case you haven't played Hellfall yet, here's some gifs to show off what it is. It's a fast-paced downwards platformer, where you play as a demon trying to get back to his coffin in hell.

LD48 - Blog, Anim Example.gif LD48 - Submission 4.gif

Div.png

If you haven't played Hellfall yet, and think it looks fun, give it a play here: https://ldjam.com/events/ludum-dare/48/hellfall-1

Div.png

Throughout development, we put a huge focus on fluidity. This game was going to be wicked fast, and quite tough, so we needed every second that the player was in control to feel good. This is something that I've tried to get better at with every game, but a problem I've had for most of my games is that, I can have a really fluid feeling prototype with a white square, but the second I put animations in, it feels terrible. So, for Hellfall, I wanted to make the character controller use animations from the get go.

But, if you do all your animations first, and find they don't quite match, that's such a waste of time to go and redo things!! Precisely, so what I chose to do instead was work with super simple silhouettes first, with as few frames of animation as possible, and then tune the controller around that. This let me get an idea for what the animations would look like in practice, but also made it easy to go back into Piskel (my pixel art canvas of choice), and tweak things.

This first character prototype looked like this.

LD48 - Prototype.gif

As you can see, that already looks super fluid, and I worked on that for maybe 30 minutes?

This was such a good foundation, in fact, that during a discussion about how I was struggling to come up with a character design I liked, we almost considered just using that. Luckily, we settled on a design...

Div.png

Okay, but what about the animations themselves? Well, they're nothing special, actually. There's only about 11 frames of animation for that character. Yes, 11.

Here's the entire sprite sheet for that character:

LD48 - Player Controller - Silhouette.png

The reason we have so few frames of animation, is the way I approached animations from a conceptual level. Given Hellfall plays at such a fast pace, the player will near constantly be going between states, and won't stay in any one animation for long. As such, animations are less about depicting an action, and more about transitioning between poses. For example, the slide animation:

LD48 - Slide.gif

Here, it looks pretty boring. It's 3 frames (with the idle added for demonstration), and the most extreme frame being held for the majority of the action. But in game... Well you saw the gifs, it feels awesome!

The jump is another good example, because the jump is pretty much just two poses (a rising and a falling pose), with the rest just being transitional. That transition to the falling frame only happens when the upwards velocity starts to taper off.

LD48 - Jump.gif

Again, nothing special here, but when applied in game, it feels awesome.

A last point on the individual frames, and this is less of an animation tip and more of a practical one, but: each frame is 16x16 pixels. While for some, this may be an artistic choice, for me, having this super small canvas size made animating that much easier. There's only so much you can do with 256 pixels, so it made not only blocking out, but also polishing my frames, that much easier.

Div.png

The last technique I used to make the animations feel fluid was to not focus purely on the animation frames. They're essential to animation, of course, but they're not the only thing we can use in games. There's a few, but the one I'm going to talk about is the ember trail.

The ember trail is pretty simple - it's just a particle system in Unity that simulates in world space, leaving a trail of particles behind as we run. It's a simple effect, but it really helps add to the fluidity, really making you feel fast and agile. It's similar to the smear frames you'll see a lot in animation, but the effect lasts much longer and doesn't look strange when you pause it. This effect is super common, too; from Celeste to Symphony of the Night, games have been using this for years now.

LD48 - Submission 2.gif

Div.png

There we are, that's the thought process behind all the animation work in our entry, Hellfall! If you have any extra animation tips, I'd love to hear them!

Once again, if you haven't played Hellfall, check it out here: https://ldjam.com/events/ludum-dare/48/hellfall-1

Div.png

What inspired your games?

Hi everyone, hope the ratings are going well so far.

I've played and rated a few games already, and it's been a blast! There's been some awesome games released this jam, with some of my favourite LD games EVER coming out of it.

But, something I've been curious about: what inspired your games? Beyond the theme, or course.

Was it just a spur of the moment idea? Was there a specific game you wanted to emulate? Was it just a stew of all your favourite games in one? I'm curious!

3f011.png

For my game, Hellfall (https://ldjam.com/events/ludum-dare/48/hellfall-1), it was a mix of inspirations for all kinds of different mechanics, but the most obvious one would be Downwell.

LD48em-/emSubmission_4.gif

If you're familiar with the game, you can probably see it... In fact during development I lovingly called this thing 'Downhell', before I settled on 'Hellfall' with my teammate.

There were definitely other influences though! Mario was definitely one, with how we tried to always be introducing something new (though this got harder as the levels went on...). I even took inspiration from my last LD game, Agewalker, where I used no more than 4 colours per sprite (the entire game, in fact!), which ended up giving Hellfall it's clean look.

3f011.png

So, what inspired your game? Drop a link and what inspired them below, I'd love to play them!

Best of luck with voting!

What's a cool moment from your game?

One of my favourite things to add into games are moments that are just there to make the player feel cool. A setup for a cool combo, or maybe a combat arena that's more style over substance, anything like that.

3f011.png

For my game, Hellfall, there's loads of little moments like this, but one of the first ones was in our second level. We have sections later where the player has to chain jumps between enemies to clear platforming challenges. But, to hint at that long , I added this little combo opportunity.

LD48em-/emKey_Moment-1.gif

It's optional, and a little tricky. But when you pull it off? MAN does it feel cool!

3f011.png

If you haven't already please play and rate Hellfall here: https://ldjam.com/events/ludum-dare/48/hellfall-1 This has been one of my most successful Ludum Dare entries, and I'd love to see how far we can push it!

3f011.png

So, what cool moments do you have in your game? I'd love to see some!

Some Key Art for my Entry

With just over a day left for ratings, I thought I'd do a quick piece of key art for our game, Hellfall. I loved working on the art from the game, and it was great fun revisiting the style for this piece.

Div.png

Hellfall Key Art.png

Div.png

I'm seriously proud of the game we put together, and I'm super excited to get the ratings back!

Shameless plug, but if you haven't played it, give Hellfall a go! https://ldjam.com/events/ludum-dare/48/hellfall-1

Ludum Dare 49

I'm in! With an apprentice...

Happy LD49 everyone!

This is my 9th Ludum Dare - I haven't missed one since LD40! The jams are awesome and even if I don't finish, I always have a blast! This time though, I'll be jamming with my girlfriend, and it'll be her first game! I'm super excited to make something with her, it'll be super fun jamming with someone who's so new to the game dev.

Div.png

Here's what we'll be using:

Engine: Unity (if we're making a 2D game) / UE4 (if we're making a 3D one - Blueprints are awesome for beginners)

2D Art: Photoshop, Piskel

3D Art: Blender

Sound/Music: Audacity, Garage Band

Div.png

I can't wait for this weekend - it'll be a jam to remember!

We made it!

This was yet another great jam!

This time around, I brought my girlfriend in to jam with me, and it was just as fun as I thought it'd be! She'd never made a game before so there was a lot of learning to be done, but in the end, we made something that we really love!

UI_Stroke.png

This time around, we ended up making something with a local multiplayer focus: Shinobi Rivals! A silly little brawler where two Shinobi Warriors battle atop of unstable platforms to decide who is the greatest Shinobi of All Time! Local multiplayer isn't all that wise for LD, as it limits who can play our game, but if you have someone you could play our game with, it would mean the world to us!

Play it here! https://ldjam.com/events/ludum-dare/49/shinobi-rivals

LD49 - Gif Sm.gif

UI_Stroke.png

I'm really excited to play everyone's games over the next 2 weeks! Congrats to everyone who submitted!

Web, MacOS, and Linux Versions of my game are available!

I usually do this during submission hour, but this jam was a bit more hectic than usual... But having finally found some time, I managed to finally get these builds put together! Better late than never...

Div_Long.png

What actually is the game though? Shinobi Rivals is a local multiplayer fighting game where you and a friend must knock each other off of unstable platforms. Making a multiplayer game of any kind for LD is a pretty big limiter of how many people can play our game - so if there's someone you live with that might want to have a game, please give it a try if it looks fun!

LD49 - Gif Sm.gif

Div_Long.png

https://tomrobson.itch.io/shinobi-rivals

Other Multiplayer Entries! How you guys doing?

So, we made a multiplayer game this jam... I knew it would limit how many people could play our entry, so I'm not surprised that the ratings aren't coming as fast as they usually do. But I'm curious if any other multiplayer jammers are around, and how they're holding up? Anyone make it to 20 ratings yet?

Div_Short.png

As for everyone else - how do you feel about multiplayer games made for the jam getting an AI opponent option during the rating period? It's something I'm considering since somebody in my comments mentioned it.

Curious what the LD Community Etiquette is!

Div_Short.png

Shameless self plug: if you have a friend or family member over and you want to have some local multiplayer fun, check out the game I worked on this jam: Shinobi Rivals!

https://ldjam.com/events/ludum-dare/49/shinobi-rivals

LD49 - Gif - Super Small.gif