About geckojsc (twitter: @geckojsc)

Programmer and musician, likes ooc, JavaScript, ActionScript, Lua, Renoise, SunVox and MilkyTracker.

Entries

 
Ludum Dare 34
 
Ludum Dare 33
 
Ludum Dare 32
 
Ludum Dare 31
 
Ludum Dare 26
 
Ludum Dare 21

geckojsc's Trophies

Jupi's Jam Favorites
Awarded by Jupiter_Hadley
on November 14, 2015

geckojsc's Archive

I’m in!

Posted by (twitter: @geckojsc)
Friday, December 11th, 2015 9:14 pm

Hey! Slightly late but I shall be doing something for this Ludum Dare, as long as I can get this uni assignment done in time :)

These two themes are both excellent!

Tools:
LOVE / Lua – framework
Renoise – music
SunVox – sfx
Fireworks / Pro Motion – graphics

Good luck everyone!

Museum City Boat – Post Mortem

Posted by (twitter: @geckojsc)
Friday, September 11th, 2015 7:40 pm

Hi! It’s slightly late but I figured I’d finish up the post mortem for my entry, Museum City Boat.

gameplay gif
It’s a small, charming side-scroller where you get to go on a rampage as a monster, smash some lamps, flip some cars and generally do monster things.

The main tools used were Lua/LOVE, GraphicsGale, Fireworks, Renoise, and a Zoom H1 Handy Recorder.

Shout outs to the friendly participants on the #love channel (irc.oftc.net) who were really supportive and helpful as usual :)

 

What went well

Pre-compo planning

ideas
It was my 5th time entering, and I’ve noticed that the theme always catches me by surprise. This time, I wanted to be ready! So during the voting, I tried to make notes on possible game ideas for every single theme. Because thinking up game ideas is much easier when you are not dealing with jam stress.

This took up a lot of time and creative thinking, and I gave up on it half way through Round 3. It still paid off though: the theme ‘You Are The Monster’ did not give me any good ideas when it was announced, so I simply looked back at my notes and chose my favourite idea from there.

Style and Gameplay

This is possibly the first time I tried to make a game that evokes simple, classic arcade vibes rather than focusing on ambience and emotion. Sometimes I feel like there is a fine line between ‘silly’ and ‘amateur’. I wanted to make something cute, fun and silly, but still high quality. It was only in the later stages of development that I realised what I was making might achieve those goals and not be garbage.

Friends and participants commented on the smooth camera movement, simple mouse controls, cute graphics and satisfying sound effects, so I feel like I succeeded here!

Another interesting thing I managed was to add replay value through score categories (number of structures destroyed, number of times seen, etc.) and just writing some challenges in the game’s description. Like ‘hey, can you beat the game without being seen by cameras or people?’ – If the game was bigger or I had more time, this kind of thing would be put in an achievements system of some kind, but people will make their own fun if you tell them how!

Coding

The last time I made a game in Lua, I was using cmd and a general text editor, which meant I was missing out on some important workflow aspects such as quick-launch, error checking, rename variables etc. This time I used ZeroBrane Studio, which is a truly excellent Lua IDE that comes with love2d support built in. It made my life so much easier!

My code turned out clean, for a jam at least. I spent very little time tracking down bugs, even though I had plenty of globals that the other classes in the game depended on. I think this is because I stuck to some simple rules: initialise globals early, put them where they make sense (e.g. main or assets), be aware that their value might not be what you expect… and also because I was able to assume I didn’t need to do any dangerous things like removing the player from the world (which could be disastrous because so many things access the player directly for AI or collision checking).

I had to throw in some rendering hacks to make sure things like water and game-over text displayed correctly (just stick them in the global drawing function), but this was OK because it was added quite late in development, so didn’t get a chance to turn into spaghetti code.

Music and Audio

Electronic music is a passion of mine, so this part is always fun and usually turns out well! However, I spent the majority of my time drawing and coding, so audio was quite a rushed thing in the end.

I spent about 4 hours on the last day of the Jam to write a cheery 80s/90s track. I have a Korg M1 plugin which is perfect for this kind of stuff, combined with some great virtual analogue synths like FXPansion Strobe. The main challenge I had to overcome was my tendency to write really emotional chords and melodies which don’t fit the vibe I was going for. It took a couple of attempts but eventually I came up with something that fit just right.

My two main inspirations here were Mitch Murder and Bacalao. I was listening to them almost all weekend, their music is so great!

The sound effects were pretty much done in the last 2 hours! Most of them came from the kitchen. I was literally standing there at 1AM with a mic, knocking glasses together and making growling noises. They were all trimmed, pitched and normalised in Renoise and Audacity.

Some sounds were more creative, for example the explosion was made by taking the muffled ‘thud’ of a cupboard closing, then pitching it down further, adding white noise and running it through a distortion plugin. The water hiss and camera beeps were generated with SunVox.

 

What could have gone better

Design Process, Confidence

'design doc'
The picture above was the closest thing I had to a ‘design doc’. Not really a huge problem, because I never churn out pages for any of my small projects, I’m kinda used to improvising as I go along.

The main issue was settling on a graphical style. I never made a game with vector or high-res graphics before, so I figured given that I have Fireworks (hybrid vector/bitmap editing) and there are easy skeletal animation tools out there such as Spriter – how hard could it be to make a game using those? Or perhaps I could draw the monster with code, since the love2d splashes seem to have these delicious vector graphics? Though, how would I relate the vector graphics to the physics engine?

So I spent all afternoon contemplating and trying different ways to draw my monster and animate him, and the results were awful! At this point I just felt like giving up, or maybe switching to a different system altogether like PICO-8. It wasn’t until Saturday night that I went back to GraphicsGale, drew some pixels and actually got the monster running around the screen. I eventually realised that if I wanted to make a game I was happy with, I’d have to enter the Jam to make up for all that lost time.

One good decision I made was to use Arne’s 16-colour Palette. If I’d had more skill and time to put towards pixel-art, I could have chosen a more detailed style and really made the palette shine, but anyway it served me really well! In my previous entry I spent far too much time worrying about clashing colours, but this time I could forget all that and get on with pixelling. I settled on a clean flat style with 1px outlines and no shading.

Level Creation

When I was getting started, I drew the whole level as a huge image in Fireworks, and hard-coded the player and other entity spawns. I was planning on switching to a proper editor like Tiled, but I didn’t feel like setting up and traversing all that exported data, so it never really happened.

I can’t say whether or not I lost much time to this, but it was certainly inconvenient sometimes, and the fact that I chose to work this way makes my game much less scalable in its current state.

What next?

I’d love to take this game further and turn it into a deeper, longer and more interesting adventure (with boss battles!). Right now I’m experimenting with development for the Gameboy Advance, so maybe I’ll ditch the rigid body physics and port the game to GBA? It will make it a far bigger technical challenge but it’s a really rewarding platform to develop for.

At the same time I have some commitment to older projects that I want to get finished, but I’m worried that if I work on those then I will lose my motivation to work on this game? So in the long term I’m not quite sure what will happen.

As long as I’m doing GBA development I’d like to try blogging about it, because it’s an interesting field but most of the reading material is from 2007 and earlier. Maybe it would help people to have some modern articles on the subject from someone who is still learning.

This has become quite a wall of text, so if you’ve made it this far, thanks for reading, and best of luck to all those awaiting LD33 results!

Until next time,

Gecko

After 10+ hours of work

Posted by (twitter: @geckojsc)
Saturday, August 22nd, 2015 4:38 pm

I spent far too long trying to decide on a graphical style, experimenting with physics and skeletal animation. I have a bit of an engine in-place but apart from that, this is all I have to show:

rawr

Posted by (twitter: @geckojsc)
Friday, August 21st, 2015 3:14 pm

Hi everyone, this will be my 5th Ludum Dare!

I’ve spent this last week trying to decide which engine to use, as my personal SDL-based engine is being a nightmare with pixel formats.

Part of me wanted to make a Gameboy Advance game, but after a bit of experimentation I’ve decided this is not a good idea. I technically have the tools to make one, but I don’t have a reliable workflow – adding new sprites or adjusting my tilemap turns out to be just too time consuming and there’s too many things that could go wrong.

For example how do I specify that a tile should be ‘solid’ when the tilemap is being generated from an image by an automated tool? I can’t rely on the index of the tile because that could change the next time I export.

So, I’ve decided to play it safe and make a game with LOVE

Framework: Lua/love2d
Editor: ZeroBrane Studio
Music: Renoise, with synths such as Korg M1, FXpansion’s Strobe, and Charlatan
Graphics: GraphicsGale for pixels, Fireworks for general editing

Song #1

Posted by (twitter: @geckojsc)
Saturday, April 18th, 2015 8:10 am

I’m in!

Posted by (twitter: @geckojsc)
Friday, April 17th, 2015 8:23 pm

Oops I only just got round to writing this (was at a chiptune party!)

So here goes:

Platform: Windows (but I can support Linux too)
Editor: Brackets
Language: ooc
Engine: Vamos (my own engine built on SDL2)
Music: Renoise + various plugins (FXpansion, Korg, and some freeware stuff)
Sfx: SunVox + a pocket recorder, gameboy, monotron and some other kit
Maps: Tiled (if needed)

Good luck everyone!

Weird Space Music

Posted by (twitter: @geckojsc)
Friday, December 5th, 2014 10:52 pm

I normally hate space games, but I’m making a game in space… but there will be nature and stuff, so it’s okay!

You will be in a cute house on a floating island, and you can go outside and collect artefacts that float past in space. The island is a little chunk of land that fits on the whole screen (though the objects will come from off-screen). Hopefully that’s good enough for the theme!

I’m in!

Posted by (twitter: @geckojsc)
Friday, December 5th, 2014 6:49 pm

Hey everyone, this will be my third Ludum Dare!

I will most likely be using LÖVE, along with a load of code I hurriedly collected in the last 2 hours: https://github.com/geckojsc/ld31prep

Looks like it’s Fireworks and Gale for the graphics, and Renoise for the music, however this time I have a set of professional software synths (DCAM Synth Squad) from FXPansion, so I’m looking forward to making some awesome songs with them.

If everything goes wrong at the start and I can’t think of a game (*cough* snowman), I might team up with one of my friends and enter the jam instead, in which case we might use Java or something. Please don’t make me do that guys. xD

Curiosity

Posted by (twitter: @geckojsc)
Friday, May 10th, 2013 5:23 am

About time I got around to writing a post mortem for my entry, here goes!

Curiosity

 

Curiosity is a little ambient exploration game written in the ooc programming language. You can play the game here if you’re interested.

The Idea

In the UK, Ludum Dare starts and ends at 3AM. I decided to stay up into the early hours of Saturday, and fell asleep with minimalism floating around in my head. I think I had a dream about a game idea, but unfortunately I couldn’t remember it.

I thought about a game that starts of super minimalistic, and gets progressively more detailed and lush as the player progresses. Of course, this was silly and vague. In such a short space of time just having a finished project is a challenge, but I hope the game resembles my intentions a little.

I admit I didn’t really like the theme at first – any game made in 48 hours is going to be minimal, so minimalism seemed to be a wildcard. I changed my mind once I got started.

Design

My graphics software hasn’t changed since the last time I entered. Even though I’m 5 major versions behind now, and running it 2 operating systems ahead of what it was developed for, Fireworks is still my general purpose graphics editor of choice. Having .png as the native project format is really handy, along with the variety of non-destructive image processing options.

I’d heard good things about Ogmo Editor, and watched a tutorial on using it in FlashPunk. Considering this was my first time using it in a project, it worked amazingly! When designing the world, I tried to make sure there was more than one way to solve each challenge (though not everyone who played the game noticed this). Some people said the game reminds them of the Knytt series, which is very cool to hear! Nifflas was certainly a source of inspiration for me.

ogmo

A few people found the game too difficult, but I don’t think there were any major flaws in my level design this time. My old entry for LD21 had lots of blind jumps, no checkpoints, and you could fall off the world by going left. I’ve definitely improved in that respect! Personally I thought the difficulty level was fine, especially after playing some other awesome yet insanely hard entries.

Programming

My choice of language, ooc, served me incredibly well! It’s a modern object-oriented language that compiles into C99, and therefore works on any platform with pthreads and a C compiler. I picked it up in the last few months, created quite a lot of bindings to existing C libraries, and have been working on a FlashPunk inspired game engine called Vamos using SDL 2.0’s hardware accelerated rendering API, which I used to create this entry.

The majority of development issues were all tackled before the compo started, so I had a pretty smooth ride on my own framework. The day before, I bound a small XML library (MiniXML) to ooc, so I was able to parse Ogmo Editor’s level data. On the first day I remembered I still hadn’t implemented depth-sorted rendering, and that ate up a little bit of time, but was quite painless.

The main problem was that my game engine didn’t have sound effects. I’d been trying to write my own audio mixer before the compo (without relying on SDL_mixer), but it had huge latency and I couldn’t figure out how to avoid sounds being synchronized to the buffer size. The music playback (which uses stb-vorbis for decoding) was working fine, and I found a hacky solution last-minute to create smooth crossfades between tracks. That hopefully compensated for the lack of sfx.

Music

This has always been a strong point for me. I wanted to include just as much musical content as last time, which meant I had to make 4 tracks! In my last entry, my soundtrack was ruined for some people by streaming/stuttering issues. That wasn’t a problem this time, because I was making a desktop game.

renoise

I’m primarily a Renoise user now (though SunVox is still awesome, and I highly recommend it if you’re looking for a free music program). I’ve got a nice collection of free VSTs and samples and had fun creating some ambient songs and soundscapes. It gave me a nice break from the intense coding! :)

Overall

I’m really happy with how this turned out! I’ve since made some Linux binaries, and it also runs nicely on OSX (though I don’t have a mac to test or package it). I’d love to develop Vamos further and make some more ooc games in the future.

I’d also like to thank everyone for their encouraging feedback so far. Thanks guys, and well done on all your finished projects!

It just occurred to me

Posted by (twitter: @geckojsc)
Saturday, April 27th, 2013 4:46 pm

The seed that he used to grow that big flower was actually a potato.

Music!

Posted by (twitter: @geckojsc)
Saturday, April 27th, 2013 8:35 am

Making steady progress! Had to patch my game engine a little to support multiple rendering layers, and stuff.

https://dl.dropboxusercontent.com/u/11403463/LD26/assets/song2.ogg

I’m in!

Posted by (twitter: @geckojsc)
Friday, April 26th, 2013 6:12 pm

Hey, this is going to be my 2nd Ludum Dare! My first one was for LD21 ‘Escape’, where I made a Flixel platformer, which went pretty successfully apart from some audio and level design issues.

This time I shall be using my own game engine called Vamos, which is a FlashPunk-style library written in the ooc programming language using SDL 2.0. I’ll likely be using Renoise for music, Fireworks and Graphics Gale for sprites, and Ogmo Editor for maps/levels (using the Tiny-XML library to read the level data). The mixer in my engine isn’t working yet, so I’ll be using another ooc library called bleep to play back sounds.

I’m really looking forward to this. I’ll admit I’m anxious about writing a desktop game in 48 hours – there’s a lot more things that can go wrong compared to Flash – but being able to write a game in my own engine will be a cool achievement.

Good luck guys!

The Great Unescape – Post Mortem

Posted by (twitter: @geckojsc)
Saturday, August 27th, 2011 7:40 am

Looks like people are still writing post-mortems a week later, so here’s mine!

Development:

I woke up last Saturday and checked the theme on twitter. I didn’t really expect the theme to be ‘escape’, but I had a think over breakfast and got a cool story idea, sort of inspired by an episode of an old TV show called Porridge. I started off with a dull blue wall tileset and made a prison cell in DAME.

Drawing tilesets in Graphics Gale.

Once the character graphics were done, I threw together a system which scans the DAME project file for game entities then places them on the map, since I didn’t have time to get to grips with the complex export system in DAME. Eventually I had little Rick running and jumping around in his cell, and I spent the rest of the day composing in SunVox and using Tweener to arrange the introduction text and events.

I didn’t actually start on the gameplay or levels until Sunday, when I decided to construct a small jungle full of spiders and spikes. It took most of the daytime to create the enemies, tiles, and music which left me with the evening to work out how to bring everything to a close. I stayed up right until the deadline designing the last area and finishing the game off, but I managed to squeeze in another tune, bringing me to a total of four songs!

Making the soundtrack in SunVox.

What Went Right:

  • Considering this was my first time using DAME, creating the levels and making them work in Flixel was surprisingly painless.
  • I’ve practised a lot with SunVox, so I can churn out decent music fast!
  • I had a nice storyline idea and managed to keep it short without ruining it.
  • I’ve been practising with Flixel and FlashDevelop for quite a long time. Even though I hadn’t released any Flixel games before this one, I was very comfortable with my choice of language and library.
What Could Have Gone Better:
  • I missed a few details, for example there is no wall on the left side of the jungle, so you can fall off the screen and be stuck forever.
  • Quite a lot of people heard strange hiccups in the music playback. I have no idea what’s causing this and I can’t hear them myself, but I added a standalone download which should hopefully fix any audio problems.
  • I made a couple of bad design decisions, there are quite a lot of blind drops into enemies. I thought the levels were short enough not to need checkpoints, but it looks like I was wrong.

I’m really pleased with the amount I managed to get done in two days! If you’re interested, check out the entry itself here.

 

Oh, and if, like me, you don’t want to hand pick entries to vote on, I made a small bookmarklet for you:

javascript:var a=jQuery('table tbody tr td a');window.location=a[Math.round(Math.random()*a.length)].href;

Add this link to your bookmarks bar, then go to the view all entries page and run it, you will be taken to a random entry page. :] Happy rating!

Jungle Music

Posted by (twitter: @geckojsc)
Sunday, August 21st, 2011 9:44 am

Making a jungle with spiders!

Jungle Music

 

Some Music

Posted by (twitter: @geckojsc)
Sunday, August 21st, 2011 3:43 am

I threw together a couple of songs in SunVox last night and polished them off this morning. 😀

Intro Scene

Hero Enters

Early Stages

Posted by (twitter: @geckojsc)
Saturday, August 20th, 2011 6:39 am

prison cell

Started making a very basic prison cell in DAME.
Don’t worry though, the relation to the theme isn’t that straightforward. 😉

[cache: storing page]