mrspeaker

LD25

BIOMINT… freshly minted!

biomint

I kind made… something. It’s called “BIOMINT” [WebGL] – wherein you play a mining giant who just want to earn a living. To earn this living, you send out probes around the globe which detect the presence of valuable minerals. You can then blow up the earth, to uncover the red goodness. Once you’ve found some treasure, create a mine and the till the earth bare!

Only includes about 20% of my intended gameplay mechanics – and implemented verrrry poorly. If you can figure out what’s going on, then hats off to you  – but that’s what you get for deciding to try out 3d for the first time in your life…. DAMN YOU POLAR COORDINATES!

PLAY IT NOW!

 

LD26

In like Flynn!

Flynn of Flynn’s Arcade, of course. After the fun of LD25 I’m playing again!

omega500

Will be usin':

Unless the theme is potatoes: then I’ll be making a command line text adventure game.

“School Of Thought” is go!

schoolOfThought

I -1’d minimalism: but only because it’s been a LD subject before. I quite fancy the theme, myself. I’m using it to create “School of thought” – a platformer… After getting into a heated argument with you about the merits of your minimalist paintings, the evil surrealist master has kidnapped your girlfriend and locked her away deep in the bowels of his lair: “The School of Thought”.

Art style is far from “there” – but i think it’ll work – you have to “paint in” the levels (starts pure white). It’s a bit circle-y at the moment but I’ll move to cross-hatched modernism when I get the controls feeling better.

 

gimme ZMORE! Game Over.

zmore

Here’s my entry for Ludum Dare #26, on the theme Minimalism.

It’s written in pure JavaScript and a “library” I cobbled together a few days before the competition. I also snuck in jQuery for doing the ajax requests when loading level data.

The sounds (my favourite part of the game) were made in Ableton live with various VST plugins. The tiles were actually made in Blender. Blender! And edited with Pixelmator.

The result was… alright. I was really looking for a nice puzzler, but ended up running out of time. Was good fun though.

A live-streamer improved my entry… live!

zmore

Ludum Darer JellyCakes has been live streaming his playing-and-rating efforts of entries in Ludum Dare 26. He’s an excellent reviewer: testing each game very thoroughly and fairly. And he’s hilarious. After giving my entry a good run through its paces he concluded with a crazy live mashup: LMFAO vs My game’s laser gun!. Might not fit the theme of “minimalism”, but dang… it’s awesome!

LD27

Xmas is here!

LD27 already? That’s a chunk of tasty news! I’m in, and feelin’ almost prepared. My previous effort turned out perdy good, so I’m hoping my preparededness isn’t a liability.

Less is Zmore

The code I wrote for LD25 & LD26 I’ve squished together into Ω500: a small JavaScript library that’s actually taking a bit of shape. I’ve even made some documentation and a handful of snippets and demos. I still wouldn’t recommend anyone using it, but I feel like now I’ll be spending a lot less time on the engine and more time on game design.

Famous last words.

Comments

adventureloop
19. Aug 2013 · 11:05 UTC
Thats awesome, ludumdare won’t even see you coming. Good Luck.

Subtheme-shmubtheme

no-to-ldtd

This so much more fun than my “judge-each-game-on-its-merits” campaign.

Time Flies Straight. Kinda.

A non-usual mind-warping game starring Carl Sagan.

9199-shot0

I’ve done a few Ludum Dareses now, and I have one rule in my brain for getting a game done in time: Don’t try and do something you haven’t done before. You waste far too much time troubleshooting and learning, and not enough time polishing and tweaking. But alas, when the theme was announced I knew I had to break this rule. I knew I had to figure out how to write a raycaster.

The reason was simple: Before the comp I complained about the theme “10 seconds” on IRC. I posited that it too-heavily implied a core mechanic – and avoiding this implication would only lead to novelty or quirky entries. Determined to come up with something different I formulated a plan; a plan that involved fractals, and crazy colourful graphics, and Carl Sagan. A plan that would eventually become Time Flies Straight: a novelty, quirky entry. Ah well.

The post-mortem

The game ended up pretty close to what I had in my head, which I’m really happy about. I had hoped to add some bad guys to stalk you through the labyrinth, And I planned for the little green guys and the related “happiness” and “wellbeing” level to actually mean something – but I had to scale things way back, having wasted so much time trying to do something I hadn’t done before: write a raycaster.

I had written the actually “ray raycasting” part for my last LD game and I thought the rendering part would be easy, especially thanks to this article which I was following closely. Alas, it took me much of Saturday to get a satisfactory texture mapping algorithm working.

After this hiccup, things went much more smoothly. The crazy wobbly time effect was nice and I had made some cool sounds to accompany it. The sounds were supposed to be chopped up and the various arpeggio speeds would relate to your depth into the maze – but, thanks to the time I lost on Saturday – it ended up as a straight looping mp3. Still, the randomness of it is kind of nice… suddenly, for no reason, things start speeding up and lends a strange air of expectation.

TimeFlies

I had to work right up to the deadline – and was exhausted by the end. It was a bad time to be trying to do “level design”, especially when I was working with a massive 2D array directly in my text editor. The sea of integers pulsating and wobbling in my brain – made worse from having to playtest the results. It was an odd few hours.

Overall, I’m really happy with the result. I actually made a game that I had in my head – a game that has a “feeling” to it. I’m not going to work on it anymore after the comp… I think it’s just a nice experience more than a game. Now I can’t wait for LD28!

Comments

mychairhasalooin
29. Aug 2013 · 10:32 UTC
As my warm up for ld27 i wrote a raytracing engine in stencyl, then added textures. took me maybe 4 hours all in, but has no use outside of novelty value (unsurprising performance issues even though it will happily render any res from 20*15 up to 640*480), whereas your ray casting, is actually useful and looks awesome.
29. Aug 2013 · 10:57 UTC
Yeah – it was awesome fun to play with, but when you start getting the fear that you’re wasting time it gets scary! I’ve been afraid to look at the crazy hacks I put in there when things got tough 😉
29. Aug 2013 · 14:50 UTC
This game is one of my favourites so far. Really interesting to read your post-mortem. Thanks!

LD28

Here we goooo!

Here’s my final round votes.

makegames-notnotgames

Lets make some gammeeez! I’ll be on a 20-hour flight most of the weekend – but I’m assured there’s AC power on board, and there’s a stopover close to submission time. Let the good times roll!

LD29

Metal Meter Madness

metal meter madness

We are at a point in time that is further from the next Ludum Dare as can be.

LD30

My “My First Ludum Dare” Tips

LD 30! I’m in for the 5th fun-filled time! As preparation (and for nostalgia sake) I went back through my past entries and looked at what I was happy/unhappy with: and I remembered the excitement and terror of my first ever Ludum Dare.

pac

I decided to write up a few (like, three) tips for people who find themselves this week in that same position… good luck!

GüBer Taxi

screens
.
.
GüBer Taxi: the game
.
.
EPIC THEME TUNE from GüBer Taxi.

“Hey Taxi! Level 1 Please”-inspired effort from me this LD. Roam the galaxy collecting fares and, well, that’s it.

Kinda got my “vision” of right – though I’ve decided I’m working on my programmer art before the next LD. Every day. I spend the last 15 minutes of the comp desperately creating levels (abusing the “polyline” feature of Tiled level editor!), I haven’t actually played them all – so I hope there’s no crazy impossible landings.

I had some grander ideas for more depth of game play, but overall pretty happy with the result!

Now, just waiting for LD 31!

LD 38

Stable Orbit: Kerbal Can’t Program

I didn’t think I had any time this weekend, so didn’t even do an “I’m in!” post… but yesterday I realized I was free (enough) and could give it a shot. I made a very small gravity-based game: Stable Orbit (source)

The goal is to… get some stability in your life.

I had fun making this – especially making the tunes/sfx which I spent far too much of my time-budget on. I feel like for the limited time I spent on it I ended up with something that was pretty “finished”: which is not bad for an LD!

Tools:
* Ableton Live
* Aesprite
* Pixelmator
* Matter.js (physics lib)

LD 41

Obaké: Ghost Mortem

Obake

Make a 3D game, overlay it with a 2D game, and have the same controls for both. What could possibly go wrong? "Well, that sound incredibly confusing and annoying" You may think... You'd be right!

Play the game in your browser | LD entry page

Day 1: theming.

As soon as I came up with the concept I knew I was asking for controls-based trouble. In an FPS you mostly move forward, and on a platformer you mostly move left and right. With this in mind i tried to make the 2D game have a lot of ladders so "forward" in 3D would move you "up" in 2D.

Screenshot from 2018-04-29 18-05-18.png

On the first evening I had my voxel world running with a 2D graphics overlayed (yes, that's Pitfall II from the Commodore 64 splatted on top of my voxels). Moving around in the voxel world would also move all the little green characters. I decide controls might work - so it was all-in on the concept.

Day 2: the prototype.

Day 2, I got a basic tile map level with a controllable 2D character that could climb ladders. I could bound around the voxel world and choose where to move in 2D. Positive stuff!

Screenshot from 2018-04-29 18-11-22.png

Now I needed a theme, and some sort of aesthetic. Having programmer-art skills really hurts here, but I noticed my bright minecraft-esque setting, coupled with a colourful foreground, was incredibly confusing and distracting. I realised I'd have to go with something dark and low-contrast in the background, and have the foreground "pop" a bit more.

"Obaké" felt like the perfect concept. It generally means "ghost" in Japanese, but really they are way cooler than ghosts. Kind of weird an spooky spirits. I ended up going more "The Ring" than regular ol' obaké, but the concept fit will with both my color requirements, and the idea of a 2D + 3D crossover game. The spirits would cross over from the flat lands to the real world. Spooky stuff!

ringu.png

I made a super-quick, heck-a creepy video of Mrs Speaker walking - it was just a test shoot, but as with all things Ludum Dare, it was also the final product. I didn't have the time or talent to model and animate in 3D, so I went with billboard sprites: and hey, it fit the theme of "ghosts from the flat lands"!

Final stretch: oops, no game yet.

The last day, and I had a concept and a prototype: but still no game. I wasted a bunch of time getting my ghost sprites into my hand-rolled voxel world. I failed to get a real billboard sprite renderer working, so I just used good-old trigonometry to always face the quads towards the x/z axis of the camera. I made my pixel art character, who I was going to model after a Ghostbuster. I made some very quick placeholder art that I would replace later. (Spoiler, I never replaced it).

ghostbuster.png

I came up with some great mechanics that would work across the 2D/3D dimensional bridge - and then I dropped them all as I completely ran out of time. All I ended up with was "touch a ghost in 3D, it spawns in 2D where it can kill you". Then I added some pickups, and had myself a win/lose state!

With the final 14 minutes of the compo I made ALL of the sounds and theme song. I had 6 minutes to completely record, produce, and master the music. I recorded me noodling some chords at 200 BPM, then bumped the tempo down to 70 BMP, added reverb, delay, and compression and hit export without even listening to it.

So it actually took me less time to record the theme song than it does for the player to listen to it! That's pretty funny.

https://youtu.be/GnwduaUkMq4

In the end I was pretty happy with how it turned out, and I'm kind of considering testing out some of the inter-dimensionaly game mechanics I had planned: as well as making the 3D world look way more "graveyard-y" and the 2D world look way more "crypt-y".

Of the people I watched play the game, they tended to fall into one of two camps: those who instinctively strafed, and those who didn't. People who strafed found the game too easy, everyone else found it way too hard! I need to figure out how to introduce the two control systems in a more natural way. If I can do that I'd have the base of an interesting (and spooky) puzzle/platformer/FPS game!

Play the game in your browser | LD entry page

LD 43

Hotel Foley Artistry!

My favourite bit of my LD entry Farm To Table was making the sound for the meat grinder. I'm currently on the road, in a hotel so I don't have access to my usual sound-making arsenal: therefore, some improvisation was necessary!

https://www.youtube.com/watch?v=YsIcRauR3ZM

Amazingly (and accidentally) my game works on mobile

I loaded up my game on an iPhone, and was surprised to see it actually started running. I added some viewport meta tags and BOOM! it was actually playable!

phone.png

There are a couple of reasons this is really amazing and crazy.

Hover? Laziness will fix that.

The first is, I never designed the controls to work with mobile: it was only a last minute design change at the zero hour (well, 2 hours before the zero hour) that meant it accidentally worked at all.

Initially, stats in the game were to be editable at the top of the screen. You would click on someone/something to see the stats at the top, then either click again to drag them, or move up and modify the stats.

But it was clunky and not fun. Also I had run out of time to make the stats meaningful. At the last minute I switched to the current (much more "natural") controls where you hover to see stats, then click to interact.

Thanks to some original code that I forgot to delete, both hover AND clicking would display the stats and select the entity. By accident, the lack of "hover" support on the mobile was solved. There's still a weird cursor on the screen that only kind of follows you around - but hey, it works!

import Peep from "./Peep.js".

The second reason I'm amazed the game works at all, is that I wrote it completely in JavaScript using all the latest-n-greatest EcmaScript features, without transpiling/compiling anything... and the phone supports it all. Since when?!

That means that JavaScript native modules work on mobile devices. I had no idea it had rolled out so quickly. I don't know if the Android browser can run it yet (I'll test in the office today! [EDIT: Yep! Works on a recent Android device too!]), but I'm happy to see these features become ubiquitous.

ld43-proj.png

The upside of these new features is that this image represents my entire project: no NPM project, no "dot files", no building... nuthin'. Just a few plain text files and we've got a game! View-source and you get all the code - just like the olden days again. sniff.

Play Farm to Table!

Back-of-the-napkin vs 48 hours later!

I just found the hotel notepad that I scribbled my concept on after the theme was announced. I don't even remember doing it now. But the final game (Farm to Table) turned out pretty close to how I imagined it. Achievement earned!

concept-game.jpg

Farm to Table: A postmortem

Prelude

You have 48 hours of adventuring time in a country you've never been to, and may never return. By random chance, There is a 48 hour game jam happening simultaneously. A sacrifice must be made: the game or the experience? Choose wisely.

...

Trick question! You can do both, poorly! Welcome to my Ludum Dare 43 entry for the theme "Sacrifices must be made". My game - Farm To Table - has you training your workers, breeding them to improve, and possibly grinding them up to make the tastiest burgers in the business!

Farm to Table

The gameplay centers around selecting the lil' workers from the queue and assigning them to different tasks: farming, cooking, breeding, and, well, getting crushed into mince meat.

Through careful breeding you can create better cooks and farmers. But here's the rub: Thanks to their superior breeding, the best workers are also the tastiest! Naturally, the people in charge - the "steakholders" - require profit$ (and therefore burger quality) to be continually on the rise. Your business must maintain its status as a viable investment target.

("Here's the rub" is a thing people say, right? Sounds weird.) Anyway, that was supposed to be the idea. A difficult-but-enjoyable balance of inputs, transformations, and outputs.

In practice I ran out of time for the vital "balancing of the systems" part. So you are able to transform the inputs, but the outputs have exactly zero impact on the next round of inputs when they feedback. You can't actually make better burgers. In fact, your profits-from-sales aren't even tracked at all. Oops.

Still, I was pretty happy with the result. In Ludum Dare there are thousands of games for the players to rate. I figured that as long as it was fun-ish for players to try and figure out the controls (and the rules of the game) then it would still be ok. And really, most people won't play long enough to realise that there is no goal anyway!

48 hours earlier...

...It was late Friday afternoon when I learned that LD would be commencing shortly. That was tempting - but there was no way I could justify wasting the entire weekend holed-up in my hotel room, instead of exploring my new surroundings in a beautiful new country... Could I?

Then the theme was announced. It was a good one. Plus, it was dark and cold outside. Certainly not a night for exploring. I'd just tinker on something for the evening, then start my outside-adventuring in the morning.

By the time morning rolled around I had yet to go to sleep. It seemed wise to put off adventuring - at least until the afternoon.

My Ludum Dare plan was to build a simple "economy game" because it's something I'd never done before. The thematic inspirations emerged from one of my favourite movies (Soylent Green), and one of my favourite Commodore 64 games (Mad Doctor).

Soylent Green, and Mad Doctor

The economy

Economy games need "sources", "syncs", and a way to transform them. In my economy, the sources are people and the syncs are the conveyor belts that create the burgers. You can transform the statistics of the inputs by breeding the best "outputs" to make even better "inputs".

To stop an uncontrolled positive feedback loop, it's required you sacrifice your best workers in order to create the tastiest burgers.

notepad.jpg

Although it wasn't all implemented, the final product turned out pretty close to my back-of-the-napkin sketch: so I'd say that was an achievement earned!

Building it

The build process began with a rough mock-up of the playfield in Aesprite. This was just a horribly rushed effort that would be replaced with real graphics later (spoiler: in Ludum Dare there is no "later". The graphics remained unchanged).

I liked the Mad Doctor style, and I also liked that it wouldn't be Yet Another Grid-based Game like nearly all my past Ludum Dare entries.

The game library? Phaser 3

To turn the image into something playable I decided to go with Phaser3. Normally I like to use my own engine, or even start from scratch - but I'd been wanting to see what's new in Phaser and this seemed like a good way to find out.

Phaser takes a PHP-style kitchen-sink approach to API design: just add every feature you could possibly think of. Before you bother building something be sure to search the docs and see if it isn't already included out of the box. It might seem a bit in-elegant at times, but at 4am in the middle of the jam I was glad I didn't have to roll my own Phaser.GameObjects.RetroFont routine again.

Using unfamiliar tech in a Ludum Dare is usually asking for trouble, but in this case I kind of knew Phaser2 - and my game wasn't doing anything too crazy - so it turned out fine (frequent grumbling about documentation and mystery-meat factory methods aside).

Look ma, no build tools!

I also wanted to make this game using plain ol' JavaScript. Well, plain new JavaScript at least. No build tools, no compile step, no traspilation, no npm, no dot files... just some HTML, a bit of CSS, and a bunch of JavaScript files.

Files

This isn't as stupid as it sounds anymore, now that JavaScript Native Modules are supported nearly everywhere (even iOS and Android browsers). My only issue was that I only had Phaser3 as an old-school script file that would normally be included via a script tag, and be available as window.Phaser. To make it a bit nicer in my project I exported the object from another file:

import "./phaser.min.js"; export default window.Phaser;

Which allowed me to use it in my project like a regular import:

import Phaser from "./lib/phaser.js"

There's something I really like about the simplicity of a "plain-old-project". I love knowing that I will be able to run (and tinker with) this project in 10, 20 years time (like my first ever browser game, Some Adventure Guy, from 14 1/2 years ago!) - without having to try and resurrect some long-dead build tools and dependencies.

Day/Night II

Thanks to an extended nap on Saturday (coupled with the crazy-early setting of a northern-hemisphere winter sun) I missed out on any real-life day-time adventuring. I did, however, get a system working for clicking and dragging my lil' peeps to the various sections of the world. I decided to write off Saturday as a no-tourist day - I'd get outside tomorrow. For sure.

In the mean time, I had a passable version of "conveyor belts" working... this was achieved by assigning a conveyor-belt-ish animation to a sprite after it was created. There's absolutely no logic - just an animation that moves it to its correct spot if nothing else is removed. So multiple items will often overlap and look bad. This bug was then placed on the "fix later" pile (spoiler: never fixed).

Hotel Foley Artistry!

After adding the meat-grinder mechanic (and successfully pushing out a few cooked burgers) I decided to take a break from coding and do 15 minutes of sound effects. This turned out to be my favourite part of my LD entry.

Normally I make the sound effects and music on my home studio setup: some midi gear, Ableton Live, and all of my plugins. Being on the road I had none of my usual sound-making arsenal, so some improvisation was necessary!

https://www.youtube.com/watch?v=YsIcRauR3ZM

A hotel shower, an apple, and a good old-fashion mouth-pop resulted in the horrifically-perfect and unsettling sound effect. The rest of the audio: music and sound effects - were done under extreme time pressure, moments before I submitted - and were crap. But the bone-crushing grinder sound effect was perfect!

The final countdown

By Sunday I'd all but given up on sight-seeing and had gone all-in on Ludum Dare. But there was an issue: less than 6 hours remaining and the project was in a bad state. The controls were completely un-learnable, the burger-making progression system was overly complex and opaque, there were no instructions, and everything was absolutely confusing to anybody who wasn't me.

Sensing the train-wreck ahead, it was time for a sharp detour.

I would sacrifice the entire point of the game in order to have something that might possibly be "confusing-but-in-a-good-way" for new players. As long as it was kind of fun to figure out the controls - the player would feel a bit clever, and hopefully not notice there was no actual game. That was the new plan.

Ruthlessly I ripped out the mechanic that defined the game: being able to manually adjust a worker's stats using XP points you earned by cooking tastier burgers. By doing this, I could greatly simplify the control system. Now "hover" would display stats and single-left-click'n'drag would move workers. That was it.

I asked a stranger at the hotel cafe if they would kindly test a game where you mince up people into meat patties. They were surprisingly happy to help out, and they fairly quickly figured out they needed to drag and drop the little people around. The simplification had worked, and I had something passable!

And there was still two hours remaining in the competition. Plenty of time to re-balance the game by tweaking the breeding system, and reworking the burger-ranking system I tore out earlier. I could see exactly what I needed to do to make the game playable!

But sacrifices must be made.

Although it pained me to stop so close to the finish line, I made a tough executive decision. I would use the last two hours of weekend daylight - sacrificing the last two hours of Ludum Dare #43 - to traverse a breathtaking suspension bridge, that crossed a giant ravine, leading into the heart of a wonderland rain-forest. I'd be tourist.

I submitted the game, pushed my code to GitHub, and jumped in cab...

In conclusion

The final product was not really a game, it wasn't very polished, it didn't have good music, it wasn't particularly fun to play... but it was one of my favourite Ludum Dare entries so far.

I loved the weird graphical style, the hand-made sound effects, and the general "oddness" of it. I had an idea of what I wanted it to be, and it turned out pretty close to what was in my head. In the end it was the gamedev equivalent of jazz music: I had more fun creating it than others will have consuming it. I'm fine with that.

So, was my sacrifice (giving up a once-in-a-lifetime weekend of adventuring) worth the stress and panic of trying to make a bad game vaguely playable at the zero-hour? Who can say... but see you for Ludum Dare #44!