hexagore

LD29

I’m in!

Chuffed to bits to be doing LD29. My first Ludum Dare! Hurrah!

I’ll either be hacking directly into browsers using:

  • Vanilla Javascript
  • Three.JS for WebGL
  • Web Audio API
  • Various Open Source animation/easing/music libraries of my own (as per the rules these must be declared!)

Any art assets will be made with

  • Adobe Illustrator
  • Blender

Any music or sounds will be made with

  • Reason

OR, depending on how the next few days preps go, I may just forget the hacking into browsers directly and use Unity instead.

Good luck everyone!

First Update!

Having had a good sleep I discovered that after an hour with Unity my plan wasn’t going to work. Plan B activated!

Also instead of Unity, I went to good old Three.JS. It might do a lot less for you in terms of games but you get post-processing effects, Blender imports and it’s all in the language I use every day anyway.

Currently working on getting the right look and all my modelling in Blender done. I *should* be working on the gameplay but that’s the bit I’m less worried about. Here’s a Vine of my progress so far!

Tags: first progress, ld48, three.js

Screenshot!

Mental note to self: Less time on particle effects. More time on the actual game part of the game.

Screen-Shot

Tags: screenshot, three.js

Finished!

My first Ludum Dare compo entry, complete with many minutes to spare!

Lessons learnt:

  • Gameplay first, shiny later.
  • GAMEPLAY FIRST, SHINY LATER.
  • This is way better than NaNoWriMo.
  • WebGL is amazing.

In the end I think the decision to use Three.JS meant I got the look I was going for, but it made it pretty hard to deal with entity management, sound and all the other things not related to 3D graphics. I’d still use it again tomorrow though.

Here’s a picture of a virus (our protagonist) about to get scoffed by a white blood cell.

zoomed-in

Looking forward to playing and rating as many games as I can now. Congrats to everyone else who’s finished and good luck!

Tags: javascript, progress, screenshot, three.js, webgl

In The Blood – 48h Compo Post-mortem

It’s been a few days and since then I’ve seen how people actually play my game. Time for a Post-mortem!

The game has you playing a virus inside a blood vessel. The idea is that people avoid the small grey taggers because the more tags you have, the faster the big white blood cells can catch you. To help you out, any tags you have can be passed on to passing green bacteria, if you can catch them. The gameplay is inspired by how the immune system actually works (although if you had bacteria floating around in your blood you’d be in a lot of trouble).

The game is playable at its entry page, here!

What Went… Badly

Well, turns out this ultra-simple game mechanic is pretty confusing for people. I spent ages implementing the tagging mechanic, where free-floating taggers would attach themselves to the player character rather than showing how many tags people have picked up in a UI element. The result is that it seems to make collecting the tags basically irresistible, which results in the white blood cells getting incredibly angry very quickly and people have short, frustrating attempts.

I was also disappointed that I didn’t do more prep work. I’d already declared the various open source components I would be using for the game, but I’d not open sourced any entity management code, or basic game boilerplate of which there’s an awful lot. This meant that it took me a day and a half just to get to the point where I could actually begin adding actual gameplay. Next time more prep is required so that I’ll be on some sort of equal footing with people using full on game engines like Unity.

Was also disappointed I only managed to add 4 entity types – two taggers, the white blood cell and the bacteria. It’s relatively easy to master the existing gameplay and it doesn’t progress in difficulty so it doesn’t have much longevity.

What Went Well

This game required actual 3D models, so I turned to Blender for this. I’m not especially familiar with it and haven’t done any 3D graphics in over a decade so this was a bit intimidating. It was, however, pretty simple. I only needed to make some quick textures for particles, otherwise I was able to avoid doing any hand drawn graphics at all.

The shader I wrote for the background and the animation effects for the pulsing blood are, I think, really effective. They do however give certain people motion sickness.

Three.JS continues to be a joy to work with, abstracting away a lot of the pain of working with WebGL and making importing Blender geometry easy and then moving and rotating meshes around a breeze. The performance is pretty good too!

I had a lot of new stuff to figure out making this – how to make the waves of taggers with their subtle sine wave motion and how to do the AI on the homing taggers and white blood cells. I think I got lucky in that I didn’t have as many problems as I thought I might. I was pleased with how I resolved the problem of how to ‘beat’ these AI characters because, without being able to shoot them, wouldn’t they just chase you indefinitely? I came up with the idea that the homing taggers would give up as soon as you got in front of them, and the white blood cells would give up after a certain amount of time being behind you, but would wake up again if you let them get in front.

I was also pretty happy to actually finish. I only really got a sense of what I wanted the gameplay to be on the second day, so that it has any gameplay at all is a bonus for me!

Conclusion

It’s the obvious thing everyone says. I should have concentrated more on nailing the basic gameplay on day one instead of procrastinating by adding more and more effects. Still, I’m fairly happy with the result. Been playing and ratings loads of games since I went live and this, it turns out, is the really fun bit of Ludum Dare.

 

Tags: #LD48 #LD29, post-mortem

How to Completely Mess Up A Game

Screen Shot 2014-05-07 at 01.20.49

So turns out I had a complete brain fail during the Ludum Dare weekend and totally failed to make the speed of my game’s player character independent of the FPS, which I only discovered when I accidentally destroyed Chrome a bit and suddenly it started chugging horribly, simulating playing In The Blood on a tired old  computer.

I’d used the delta for computing velocity… but then multiplied it by 0.000005 for no reason I can actually remember now and the result is that the delta had virtually no effect whatsoever. So.. I fixed it. I REALLY hope this is okay, dear people in charge of such matters. It’s still the same game, no new features, but hopefully everyone playing it will have the same frustrating, tormenting and short-lived experience it was designed to provide. I wanted the game to be a difficult, challenging and hopefully addictive little action arcade game but when you’re moving ten times slower than you should? Oops.

I’ve also added a Post Compo version now! It’s the same game but I managed to add a bit of the visual Woo that I didn’t have time to do during the 48hours. It destroys the mood entirely but things are a lot clearer and hopefully a bit less motion sickness inducing. Again, sorry about that too.

You can play both frustratingly difficult versions on its compo page!

Incidentally, if you like Super Hexagon style ridiculously difficult action arcade games you might enjoy other competition entries Underneath Our Faces and Diver X … and would love to hear about any other games in the compo like this!

Tags: #LD48 #LD29, bugfix, post-compo

LD30

I’m in! Again!

Last Ludum Dare was a blast… so I’m going to have another go. I want to believe I can do better, and no other way to prove it! (Also: Not going to do a side scrolling shoot em up without the shooting.. I mean, what the hell was I thinking?)

Tools? Well, probably going to use Three.JS, Blender, Photoshop and Reason again.

Three.JS was a nightmare last time. I spent far too much time just doing boilerplate stuff (it’s not a game engine, basically)… but the game I made was at least playable directly in a browser without any plugins and I think that’s worth the pain. Maybe.

I’ll be using some of my own base code (available, as per the rules, from my github account)… mostly around animation and tweening, but I hope to publish some Three.JS boilerplate project stuff before the competition begins.

Good luck everyone! 😀

Tags: im in

Slug Lord Loves Brains

Leaving it until today to start learning how to do UV Unwrapping, modelling, rigging and all that sort of thing? Not brilliant, but luckily everything’s just working out. Hopefully get all the assets I need made today (I only need to do a player character and an environment), leaving me tomorrow to actually make the game itself. Cutting it a *bit* fine…

Screen Shot 2014-08-23 at 16.48.48

This screenshot is from my model viewer/tester.

Tags: development screenshot, development update

Jane Austen vs Slug Lord – Postmortem

This was my second Ludum Dare, and I very nearly gave up.

Before the theme was announced I knew that I wanted to do something with ‘proper’ game models. You know, going into Blender, making a character model, rigging it, making a run/walk cycle then exporting that into Three.JS and displaying it in the game. I also knew I wanted to play with some neato post-processing filters like Bokeh (depth of field) shaders and so forth too.

The problem was I didn’t have a clue how to do any of those things.

In my preparation for Ludum Dare I made some base code (published on Github) which gave me a basic rendering pipeline which gave me DOF, Bloom and Antialiasing passes so that with a bit of luck I just had to throw some geometry at it. I also had a play with bones in Blender and after a bit of fighting managed to get a sausage wobbling on my screen. I thought I had everything I needed.

So then the theme is announced and it’s the theme I was desperately hoping it wouldn’t be: Connected Worlds. Agh. Mind blank. Couldn’t think of a thing. So plan B then was just to jump into Blender and start making some random assets. I knew I was going to meet the theme by mixing very unlikely things. So I made a tripod…

tripod

… and then I made Slug Lord…

slug

.. and then I made a model of the author Jane Austen.

jane

Jane and the tripod had a run cycle and Slug Lord was flapping his tentacles around. But all this? This took me an entire day. I had never modelled a humanoid before, never animated a run cycle, never dealt with Inverse Kinematics. It was incredibly frustrating.

On the second day I knew I needed to work on the actual game. So, naturally, I spent 4 hours writing code to generate text in WebGL and load all the assets (I wanted to make sure all the assets had loaded before starting the game because, by default, Three.JS is very happy to start rendering things immediately and let textures and models pop in as they’re loaded).

Finally, with all that done and 14 hours remaining I needed to start on the game. I knew I wanted Slug Lord in the middle of the scene, with Jane running circles around him. The original vague idea was some sort of single screen point and click adventure, where the player character had to escape from the clutches of slug lord… there was no chance of that though. Instead I considered some sort of Canabalt style endless runner/jumping thing.. so I started putting the scene together… and naturally spent another 4 hours tweaking the depth of field effect which, for some reason, was refusing to work properly.

I approached breaking point here and wanted to just give up. I didn’t want to abandon the thing that had caused me to waste so much time, but I was, in fact, wasting huge amounts of time on a pointless effect most people wouldn’t even notice, and I saw the deadline approaching fast.

And I still didn’t even have a game.

Agh.

Mercifully though I got the effect working in the end. Just. At which point I was back in Blender to make a very rough and quick background scene.

scene

At this point I had about 5 hours remaining… and still no game. The platform/jumping game was out because I didn’t have enough time, so I added my tripod model into the scene and realised I could probably just make a simple twitch reflex chase game. You know, press the button at the right time and you go faster, press the wrong button at the wrong time you go slower and then the tripod can catch you.

Simple. Kinda funny. Easy to implement. Messages popped up as instructions from Jane telling you which mouse button to click and the mechanics of the chase were in and… mostly balanced.

Had enough time, in fact, to get a neato shader in for the background and add a bunch of random particles and lights… And it was sort of done. And I got this:

screen

And lo, it was silly. The red and green and snow thing was supposed to connect the world of Christmas to the worlds of The Slug Lord and Jane Austen but I guessed that was a bit too subtle. My work was done anyway.

Now, someone in the comments for this mentioned it probably should have been a typing of the dead type game. And this was the biggest ‘doh’ moment ever for me. Of course. Jane Austen was a writer. It would have been perfect. And if I’d thought of that on day one I could have done that. The time I spent tweaking shaders or fighting with weird vertex twisting in Blender could have been spent on a typing game mechanic and importing a load of Austenesque phrases and words. And that would have been great.

So lessons learnt: Never use technology you’re not 100% familiar or comfortable with. Ludum Dare is best when you’re spending the time coding up interesting game mechanics, not shader effects or learning new platforms or entire skills. Also: More base code, especially if you’re using Three.JS which puts you at a massive disadvantage compared with Unity.

Finally, and I made this same mistake last time and failed to learn from it : Make a lo-fi game with simple boxes and if there’s time add models and shiny later. Game first, graphics second. This is Ludum Dare, not EA.

Considering my original objectives I think I got what I wanted out of this Ludum Dare though. Disappointed the game itself is basically the thinnest possible layer on top of what is basically a screensaver, but considering what I had to learn to build this it’s possible – just possible – I got more out of it than I realise. Maybe.

The game’s page is here and typical play sessions last about 30 seconds. Which, you know, is fair enough.

Tags: postmortem ld30

LD31

I’m in LD31!

Ludum Dare results. Who here hasn’t had the experience of reading and re-reading your results to find some crumb of comfort?

Even when you get a worse score than the time before? Well, you learnt something right? And you scored better in graphics and humour! Woo!

This game was judged... and found wanting

This game was judged… and found wanting

Well, I did score worse than the time before. I am apparently getting worse at making games. Go me!

I’d like this Ludum Dare (my third) to be more about experimenting with game design concepts and less about learning how to achieve various effects and implement particular mechanics. That seems like the best way of getting a better game at the end of the weekend.

Like the last two times, I’m going to be using Three.JS along with various library/framework things on my Github account. Three.JS is a WebGL library and that means it can be played by anyone with a browser, which is cool. But it’s not a game engine like Unity, which is less cool and makes everything that bit harder.

I’ll be using Blender to create any geometry and Reason for music/audio, although I will have a strict time limit on how much time I can spend in Blender this time.

I’m also going to do the Mini-LD – using all the same tools – which I expect to go about as well as my last LD, i.e., pretty badly. Hopefully solving technical puzzles and challenges the weekend before the main LD will make it easier to concentrate on the actual game though. That’s the theory.

The truth is, any score your LD entry gets that means you come back and try to do better? That’s a great result.

 

Tags: AGAIN, im in

Comments

27. Nov 2014 · 16:32 UTC
What if you don’t get worse at making games, but other people just get betterer faster than you… Ok, that sounded more encouraging in my head than written out.

Whatever, having ANY game at the end of LD is an accomplishment. So, good luck for the next one!

☃ of Destiny

Oh god. ☃ is winning.

On the one hand… 4000 vaguely Christmassy looking games set snowy world could get a bit exhausting to play.

On the other hand…. well…. I’ve have been coding up a particle engine for Three.JS as part of my own game library. I was even saying I hoped I’d have an excuse to use a load of particle effects… You want snow? I can do snow. You want one hundred thousand snows? I can give you a million snows*.

☃ means ☃, yes, but ☃ is also my density.  Please, vote ☃and make my particle based dreams come true**.

* You may only experience 10,000 snows though, depending on your computer

** Please do not vote for ☃. I will waste a day and a half doing snow effects and then remember I’m meant to be making a game at the very last minute…. again.

Update #1

Been awake and working for 6 hours, and have wasted about 2 hours on collision detection related bugs and I’ve just had half an hour for lunch.

So far all I have is basic proximity boxes that can trigger scripted stuff… at the moment they’re just turning doors on and off. Pretty basic mechanic that should really have already been in my game library. Oh well, at least the next Ludum Dare will be easier!

The next step is to implement the rest of the entity types, including the slightly more deadly ones, along with some sort of player death mechanic. At that point it’ll actually be a game and then all I have to do is make it… better?

update-1

Am pleased with myself that this currently looks terrible, because it means my priorities are in the right order. Last Ludum Dare all I had at this point was one 3d model that I had no idea what I was going to do with. Progress!!

 

Update #2 – End of Day One!

What a day… this Ludum Dare I wanted to use Blender as a level editor for my Three.JS engine to play with:

It worked!

Screen Shot 2014-12-06 at 23.57.51

It’s super, super hacky but I was able to use bones as entity data, where the first bone in a chain had the type and location of an entity, then I used child bones to indicate other parameters. This way I could configure the size of doors, the paths of entities, the size of things etc.

This is the end of the first day for me and I am ecstatic to be able to say I have my game’s level fully designed and playtested. It takes about 10 minutes to beat so that feels about right.

Screen Shot 2014-12-07 at 00.17.13

Tomorrow morning I’ll be doing the sound effects and music first (so easy to overlook), then it’s polish time – as much shiny as I can squeeze in in the time remaining. It’s taken all my willpower not to try to do something about the dreadful graphics today. I added no shaders, no parallax effects, no particles, no textures, no lights. The geometry, other than the collision mesh, is just what Three.JS lets you generate procedurally. I am growing as a person by embracing my inner programmer artist.

TIME FOR SLEEP.

Tags: blender, development screenshot, development update, three.js

Update #3

I think this game is actually ready to go. Still… quite a few hours to… can I add particle effects, guilt free? Wow!

It was all looking horrible yesterday, but today it’s all come together… thank goodness.

It seems to be rather more Meat Boy than I’d hoped… hopefully that’s not too terrible a thing. \

Anyway, a close up of one tiny corner of the game, for your viewing pleasure:

closeup

Tags: development update, three.js

“Screened” Playthrough

I’m honestly thrilled with how “Screened” came out. It almost feels like an actual proper game this time.

But it’s a bit too difficult for most people to really see the whole thing so here’s a nice (and spoilerific) full playthrough video.

If you want to play it, the entry page is here and thanks :)

I guess I’ll have to do some sort of post-mortem but right now the short version is wait … it actually worked??!!!

My favourite games so far!

I’ve now played and rated one hundred games, barely scratching the surface. I thought it would be nice to mention a few that I really enjoyed (on the assumption that most of us are going to end up playing a completely different set of games!)

  • Orion Most gorgeous and atmospheric use of pixels.
  • I am Sigma Stylistically cool platformer and great use of the theme.
  • Oceanite – You play a fish.
  • Galaxia – You control a statistically insignificant portion of the galaxy.
  • Block Dungeon – Fun, basically

The surprising thing about this theme has been how very very different all the games are.

Well, except for all the suspiciously snowy games, obviously. 😛

Comments

guldlock
09. Dec 2014 · 20:32 UTC
Great post! I will try these! Don’t forget to try ours as well!

Hardcore Platform Players Required

So I blew it. My game is too hard for people in a hurry to beat which is bad news for Ludum Dare and very bad news for my LD31 entry’s score. I can live with that: I view each Ludum Dare as an opportunity to learn and improve and I now know that “furiously difficult” is the wrong approach to take. Even including a full playthrough video wasn’t enough. Fair enough.

Sure — in my entry for this Ludum Dare — it feels like you’re jumping through treacle. You can’t jump again until you’ve stopped bouncing. You have to be incredibly precise with how long you tap ‘up’ for. You have truly evil inertia to deal with which means you have to anticipate and correct your horizontal velocity to land properly.

But that’s the challenge. The game’s map was designed specifically for these controls. And so far only a tiny handful of people have actually beaten it… even though it only takes about 5 minutes to play through the whole thing once you’ve mastered the controls.

What I would love…. I would love to get this game into the hands of people who thrive on this sort of challenge. Not because I want more votes, because honestly I think I have enough and I’m sure the verdict is already in… but I just want to find the small number of people who look at the dark world levels in Super Meat Boy and go, HELLS YES. The people who’ve done Veni Vidi Vici in VVVVVV even though it took hundreds of attempts because, well, it was there. It needed to be done.

If this is you, then this game was made for you.

Screen Shot 2014-12-07 at 23.08.28

Screened, Penultimate and most difficult level..

Screened’s entry page is here.

Comments

Slin
13. Dec 2014 · 21:51 UTC
I doubt that being too hard is actually a problem if the game is still fun. But hard can also mean very frustrating and then may not be much fun anymore.

Don´t expect me to beat the game if it really is hard, but if it is still fun I always try several times and many more if it really is fun. But if it sucks I just won´t no matter how easy or hard it may be. I also don´t give bad votings if I enjoy the time playing a game, no matter if I manage to finish or not and I would hope that most people do.
hexagore
13. Dec 2014 · 22:01 UTC
That’s totally fair. The theme worked against me here because any other game you’d want to introduce each type of challenge as gently as possible, whereas I had one map, one screen, one level so it ramps up very quickly.
14. Dec 2014 · 03:09 UTC
As you already mentioned in your post “once you mastered the controls, it’ll hardly take 5min” but how much average time you think player has to spend in mastering the controls?

LD32

Mini-LD #58 – Blorf Pong

Hello. Have you ever wanted to play Pong but thought to yourself, “The problem with Pong is that it doesn’t make me feel sick!”?

I can fix that for you. Oh boy, and how.

Made in a few hours just for the sheer perverse pleasure of making something nausea inducingly horrible, I give you Blorf Pong.

blorf-point

Features:

  • An AI that will almost certainly never let you win.
  • Dodgy collision detection on the paddles
  • Music that will give you nightmares
  • Post-processing shaders that will make you physically ill.

I think it’s a masterpiece. Blorf yourself to Pongy Oblivion on it’s MiniLD entry page.

Slightly More Blorf

I wanted to learn Box2D just in case I need it for the main Ludum Dare. Then I thought, hey, you know what’s really simple and what I’ve just been working on? Pong! And the competition is still open? WOOO!

I’d done Blorf Pong (a WebGL game) as a joke but I thought I could probably at least put in *some* effort.

Box2D in javascript is a hellish nightmare – using a library automatically converted to Javascript from the C++ – it’s not pretty. It’s taken me a day but I’ve finally got the hang of it – enough to add pistons to the paddles which makes the basic Pong game a lot more interesting and bizarrely tactical.

I also decided to fine tune the AI a little bit too. It’s all driven by impulses through the physics engine now, so the AI is now “perfect” except for doesn’t quite have the level of accuracy it might want. It *can* be beaten but you have to be really quick.

On the visual side I thought I’d add some particles as well. Because particles.

On a mission to get @llamasoft_ox to leave me all his sheep. Blorf Pong, now with added blorf! http://t.co/lJ8jUSeNOu

— Totes Inapprops (@CharlotteGore) March 30, 2015

Am very happy with Box2D but feeding it data is going to be a problem so I probably won’t be able to sort anything out before the next Ludum Dare, but the one after… hope so! Really looking forward to the next Ludum Dare now. Probably won’t be making another game like this for a while though. 😛

Comments

30. Mar 2015 · 22:36 UTC
Hey, question: I can’t seem to embed my tweet in my post the same way you have – it just comes up as text. Did you have to do anything special to put it in the post?
hexagore
31. Mar 2015 · 05:36 UTC
I just cut and paste the direct link to the tweet into the post editor (in the normal visual mode) and it Just Magically Worked :)