Ludum Dare 34
Coming December 11th-14th Weekend

Archive for the ‘LD – Misc’ Category

How I ended 2014, and plan to end 2015 (a hardware non-Jam)

Posted by (twitter: @mikekasprzak)
Thursday, November 5th, 2015 4:19 pm

TL;DR Last year, a few dudes on the internet made tiny games for retro game systems, and it was awesome. Planning to do it again (though I’m building something physical this time). You should join us!

This is a story.

Near the end of 2014, I started researching how to program the Commodore 64. This is something I’ve wanted to do for a very long time. The Commodore was the computer I grew up with as a kid, but as a kid, I only ever wrote lousy BASIC programs on it. I never made anything that truly utilized the hardware.

But once I stumbled across this video, there was no turning back.


After getting some test code running on a C64 emulator, I set a goal. Since the Commodore 64 was the gaming machine of my childhood, to make things that much more interesting, I decided: In the final days of 2014, I would make a small game based on something I wanted to make as a kid.

After digging through my sketches, doodles, and notes, I chose to do something with these:


This was me from the early 1990’s, probably when I was 11 or 12 years old. I used to draw pixel art and game maps on graph paper (I painted on my Commodore 64 too, but I don’t have backups).

In the 20+ years since then, I have learned a bit about drawing. I’m not great, but I have improved. So I decided to re-create the character.


Using some of the excellent free tools available for Commodore 64 dev, I made sprites.


And after a bunch of work, I got this running in an emulator.


Before finally getting it running on an actual Commodore 64.

(NOTE: I stole the SID music file, but it’s playing for real on the C64)

At the end of the day, there wasn’t really much of a game there, but I was extremely proud to have finally make something that ran on the Commodore 64. That machine meant so much to me as a kid, and this something I’ve wanted to do for such a long time.

Want to hear something interesting? I wasn’t the only one.

A couple friends on Twitter were also playing with little retro projects for old game hardware.

Ryan made a game run on the Nintendo Famicom (NES).

Tim made a game run on the Atari 2600.

As you can see, we were sharing Vines of our progress while we made them. It was really cool seeing the progress videos. So cool, I had to message the guys recently just to say how cool that was. 😀

And you know, I think we might be doing something like this again (I know I am). :)

Me, for 2015, I’m planning to dabble with hardware.

Some weeks back, I ordered some old sound chips. Chips such as the MOS 6581 (AKA the Commodore 64 SID), Yamaha YM2612 (Sega Genesis/Mega Drive), and an AY-3 (other). I’m going to try directly interfacing with those sound chips using either an Arduino or Raspberry Pi (still deciding).

I ordered them via AliExpress, which means China, which means shipping can take a month+ to get to me. That’s why I’m bringing this story up now, a good month+ in advance in case anyone else gets inspired.

* * *

This isn’t a Ludum Dare event, or an announcement for a new Game Jam. We’re not planning a structured event. This is merely an invitation. It’s me saying hey, some of us will be doing cool things with hardware in December, and maybe you want to too.

Maybe you too have a few spare days before the end of 2015 to do something. I usually have a few just after Xmas and Boxing Day. I’ll be doing my little project then.

Unlike software, hardware requires that you have what you need on-hand. December is often an extremely busy time for mail, and since folks may want to order things (Arduinos, Raspberry Pi’s, ICs, Flash carts, etc), you may want to do it sooner than later.

I suggested to the guys that we should come up with a common hashtag (not sure what it should be yet, feel free to make suggestions). That way, it’s easier to find the stuff we’ve been up to. Photos, Videos, Vines, maybe a wrapup blog post. But this isn’t a structured event. Just a casual intent to play.

That’s the plan. You’re welcome to join us. :)

Sell Your Games

Thursday, October 22nd, 2015 10:00 am

Have you ever wanted to make a profit on the games you create? Do you ever dream to be a game tester? Do you love to play brand new indie games made by extremely cool people? Well Mioti is the perfect place place for you!

Over at Mioti, We focus on the extremely large buyer network with people always looking to play new and intense games. As a developer, you can publish your games to Mioti and put a price on them. As a buyer, you have access to the vast range of indie games released ever so often!

As of right now, we are in early alpha stages, getting the site to look pretty and easy to use. We beg you to visit and enter your email address to be notified AS SOON as we come online!


Join our Facebook page: HERE!

Sign up NOW: HERE!

From Ludum Dare 31 to Steam Greenlight

Posted by
Friday, October 16th, 2015 2:23 am

Hello fellow devs,

We haven’t been on Ludum Dare page for a while and we wanted to share our project with you that we’ve been working on since Ludum Dare 31.

We went from this prototype (Old Bounce’):

Bounce ’em Up – Old

To this:

Bounce ’em Up – New


Our game Bounce ’em Up is now on Steam Greenlight. We have a bit in-depth post on our Greenlight page that you can check out here: From LD31 to Greenlight – Bounce ’em Up
It has been quite a journey for us. In between these events we participated in Imagine Cup 2015 Games Competition were we came out as 2nd place winners!


This community and Ludum Dare game jam helped us get where we are today, and we’re still moving forward. We hope to inspire the developers here to do the same and keep working on their projects. If you’d like to know more, get in touch with us.


Ludum Dare Stats Cards

Posted by (twitter: @psychonull)
Tuesday, September 22nd, 2015 10:00 am

Hey!, I’ve build up an Stats Card using the API in CodePen because it’s fast and it has some built in embed features.

I thought it would be nice to have a way to embed those stats in your own site fast and easy, so here are two different styles:

CodePen here

CodePen here

To make your own just Fork the code pen and at the javascript change the variables “username” and “ludum” to your own.


From there you can just go to Share > Embed and place it in your site 😉

The code and CSS is there and I tried to create some variables for colors so you can just change that and match it to wherever you are placing it.

Ludum Dare API Stats!

Posted by (twitter: @psychonull)
Friday, September 18th, 2015 10:58 am

Hey there!, we wanted to see our performance over our participation on ludums to get an idea of what we need to improve at game creation (like mood, graphics, etc) and as I started to create an Excel to see that data, it came up the idea of making directly an api for everyone who wants the same.

Here is the API Site and the API Docs

Here is an example of our user:


So, how it works?
It scrapes the author page looking for LudumDare entries, then scrapes every entry page found on it. To not stress the site, it will scrape ONLY once and cache the results for later fetchs. It also has a setting at the server to set the last ludum number, so every ludum I will go there and change it to make able for new scrapes.

Hope you guys enjoy it!, the source is open at Github under BSD license, so you can check it out , make use of it or whatever you want :) … also any pull request or issue is really appreciated!

I have added more suff like percents for standings, moved calculations into the API so now can use them from your site fast and easy, medals on the grids and total entries are taken from the type of entry (compo or jam).
Thanks for the good vibes, suggestions and bug reports!

Shorter Judging Period, Please?

Posted by
Monday, August 31st, 2015 8:38 am

Call me impatient, but don’t you agree the Ludum Dare judging period is too long?

It’s too late to change the period for LD33, but I humbly request that for future Ludum Dares, the organizers shrink the judging period from 3 weeks to a single week. The week would start at the end of the Jam, so generally speaking we’d have from that Monday to the following Monday to play games and register our votes.

Why so short?

  1. We wouldn’t have to wait as long to receive our results. And I’m impatient.
  2. A shorter period would maintain momentum and focus. After three long weeks I find that the energy, the enthusiasm, the mood of the Ludum Dare event is long gone. I’m out of the moment; I’ve moved on. Completing the judging within a week would allow us to rate games and receive our ratings while still “in the moment.” By the time the results come in, I can barely remember what happened three weeks ago. It’s harder to learn lessons, harder to care about the results. As it is, many of us write “post mortems” that aren’t even “post”—they’re written long before the end, when we don’t yet know what the result of our work is. A shorter judging period focuses the Ludum Dare event into a coherent moment.
  3. Most of the voting is finished in the first week anyway. I mean, I don’t have general statistics for all games, but my own games seem to receive 99% of their votes within the first three or four days. How much difference does another 2.5 weeks really make?

Ludum Dare has been around for a long time and I’m sure there were good reasons for giving it a three week judging period, but I don’t see what they are. Do those reasons still hold? Wouldn’t a week be even better?

How do you add a GIF to your Ludum Dare Entry Page?

Posted by (twitter: @ponywolf)
Thursday, August 27th, 2015 12:37 pm

So, I made this sweet, sweet GIF of our LD33 entry in action. And I’d love to have it play on our entry page… I’ve seen some other entries do it, maybe through the EMBED link. (We’re currently using the EMBED for a YouTube trailer, but I don’t know if that’s more confusing than it’s worth…)

1-800-Monsters Gameplay GIF

At least it can live on the home page for a few seconds…

Marshmallow Boy

Posted by
Saturday, August 22nd, 2015 9:29 am


Ok this is the concept art for the main character. I got this ideea today while I was shopping in the market )). I saw a bag with marshamallow’s and here I am )).

1h in the jam!!

PS: is there a hashtag for the jam on facebook?




MarshmallowBoy Collored

MarshmallowBoy Collored

Hello. I’m in.

Posted by (twitter: @JustJeviny)
Tuesday, August 18th, 2015 8:01 pm


This is gonna be fun. I kinda have some scheduling issues but I’m gonna try to work through them this time.

My weapons:

Language Java
Framework Mercury
Image Editor Paint.NET
IDE Eclipse
Audio FL Studio 12 & PixiTracker

Gonna try to go for something that’s less like my normal style this time.

Good luck everybody,
– Jev

I’m in!

Posted by
Thursday, August 6th, 2015 8:59 am

Hello, e’rybody! My name is Exenon, and this is going to be my first Ludum Daré! I”m excited, looking it up on the internets, and finally working up the nerve to participate! Well, this is my first game jam period, so wish me luck!

Bird vs. Zombies #indiesvsgamers

Posted by
Monday, July 20th, 2015 4:39 pm

Last week a bird pooped on my friend’s head. That day five people stared at their smartphones in the metro. One was only holding it tight like Gollum would hold the ring.
Add the jam theme “Arcade” and 72 hours of madness to get this:

Bird vs. Zombies

At its core it is a Side-Scroller, but your “Ammo” is basically bird poop. If hit, the “Zombies” will throw their smartphone at you. And will be free!

I have no fancy intros, you get 100% fun for your entertainment dollar. I am happy that I was able to create a progression of 5 levels which each have a new experience. To beat the high-score you have to finish all 5 Levels. The more “Zombies” you “free” the better your score but also the harder it gets.

I am very proud of my first game jam entry ever. Game Jam Survival Guide saved me the worst nightmares.

Bird vs. Zombies

I used Unity 5.1 with nothing more than VS and the GameJoltAPI package (which is great but not stable at the current state! Beware of some quirks). I was very happy that most of the logic was done with a single smart “Spawner” behavior that could spawn randomly or with constant delay – in order or randomly from a pool of prefabs. This was used for spawning Smartphones, poop, the street, the actors, drone beams, powerups and the background.

The AI for the various parts comes from individual behaviors on the gameobjects.

For the bird I used a super neat State pattern from Game Programming Patterns. Highly recommended book! This made it easy to create hit state behaviour or the finishing landing.

I love the little details: Like the “bombs” and smartphones explode on impact with the ground, you can poop the smartphone mid-air, or the smartphones also kill the drones …

Hope you enjoy it as much as I did.

Timelapse Making of (spot the Unity crashes :) )

“Starship”, the new Ludum Dare, in great detail

Posted by (twitter: @mikekasprzak)
Monday, July 20th, 2015 12:35 pm

IMPORTANT: Most of the things mentioned in the post are unfinished, some aren’t started. Treat this post a guide for what’s going on.

* * *

Let’s talk about Starship.

Starship is my internal codename for the New Ludum Dare website project. It’s a silly nickname that I got used to. Loosely, it’s my way of saying Ludum Dare is a big complicated internet space ship that transforms, sends out probes, and even splits off in to smaller ships. I guess it’s actually metaphorically a lot more like Voltron, but I was watching Star Trek TNG at the time. :)

Starship is written in PHP, (currently) runs on Apache, and uses MySQL. And yes, we’re on GitHub.

Migrating to a Starship

Before I go in to details about the new website, I need to talk about the old website, and what we’re going to do with it.

Over the past 7 years of Ludum Dare, we’ve accumulated over 21 GB of image data, and a nearly 4 GB database. There are over 50,000 users, nearly 75,000 posts, nearly 60,000 comments, and over 27,000 games and things that have been submitted to Ludum Dare events. And with Ludum Dare 33 on the horizon, those numbers are going to get even bigger.

That’s a lot of data.

Today, Ludum Dare runs on a dedicated server somewhere near Washington, DC. This machine is entirely ours, has some crazy Intel Xeon CPU and 12 GB of RAM. We’re also using CloudFlare as a reverse proxy and CDN. That means no matter where you are in the world, those 21 GB of images should load nice and quick for you (here’s a map). The whole setup costs a bit over $200 a month to run.

That’s how we do it today.

For the new website, we are going to start with a clean slate, *BUT* we are keeping the old data.

First off, when we finally kick-off the new website, everybody is creating new accounts.

After you create your account, we’re going to let you migrate your old data. I want this to be as simple as possible, automated even. I’ll autodetect if you have old data by comparing your current and original e-mail address. There will also be a way to claim your data if your e-mail address has changed (process TBD).

There will be a script in place, so old URLs like these:

Will redirect to the new URLs like these (NOTE: links are examples. They are not live):

For accounts that haven’t been migrated, they’ll instead be redirected to a read-only version of the original pages on the Legacy Server.

The Legacy Server will be a separate mini-server (mini compared to what Ludum Dare has become) that runs a read-only version of the original website. Posting and Commenting will be disabled on the Legacy Server, and along the top of the page will be notices telling people that we’ve moved.

Traffic should be minimal, so like the old days, I expect we’ll be able to run it for around $10 a month. Pretty cheap.

That said, the Legacy Server is really only needed for the inactive users. Active users will have all their games and posts available on their new accounts, on the new website.

One caveat: Comments will not be migrated over. Instead, we’ll attach a special link to the original post on the legacy website, where you can read the original comments.

So again, we’ll be starting with a clean slate, but everything from the past will be available.

* * *

FYI: For anyone that’s curious about the legacy Ludum Dare website, you can now find the code on GitHub:

Again, this is the legacy, not the new website. 7 glorious years of duct-taping features to WordPress. The workflow is very unsafe, and not 3rd party friendly. We’ve been committing and checking-out changes directly on the live website the entire time. Any time we made a change, we risked bringing down the website with a PHP error. Uncool. We used to host it on Google Code using SVN, but it’s now on GitHub. As of Thursday, I’ve committed the first real update since migrating the code GitHub. The workflow is just as unsafe, but a little more nerdy now as I commit changes using GIT, and check-out on the server using SVN (thanks to the awesome GIT->SVN feature built in to GitHub).

All aboard the Starship

Like I mentioned, development of the new website takes place on GitHub. About a month ago I started publishing my changes publicly. Eventually, you’ll be able to get the website code from here: (soon)

At the moment, we’re very much pre-alpha on the new website, so I don’t want to publish to that account yet. To me, is for the live website, and at the moment the website isn’t live.

I’m still doing a lot of engineering, so instead, I’ve been keeping code in my personal GitHub account:

Once we are live, the Ludum Dare GitHub account will become active.

DairyBox: The Ludum Dare toolchain (and LD pun)

dairyboxlogoFor those looking to help out, you’ll need to download and install the Ludum Dare Toolchain, named DairyBox. (soon)

But again, since it’s pre-alpha, the download is on my personal GitHub account:

DairyBox is a Vagrant box based on Scotch/Box. It’s a VM that lets you run your own mini Ludum Dare server locally. This is a HUGE step up from the old development workflow. We can actually test now without bringing the server down! 😀

To use it, download and install DairyBox using GIT, and follow the instructions for cloning the source code (NOTE: It’s not a straight-up clone, it requires some git init trickery).

I want to help! What should I do?

At the moment, a lot of things are broken, unfinished, undocumented, and a little weird, but it is open now.

I’m not really expecting anyone to start sending me pull requests yet, but feel free to surprise me. As I see it, I still have a lot of core things to finish (and explain). There’s a method to the madness, and hopefully the rest of this post will give you broad idea of what’s going on.

There’s a very early effort in to auto-documenting the code. You’ll find a few Doxygen, JSdoc, and APIdoc comment blocks in various parts of the source code, but not enough since a number of things are still in flux. Scripts for documentation generation are in /scripts/docs/, and will eventually be hosted on

Bugs reports (though admittedly it’s a bit early for testing), for now post them to my ludumdare issues page.

Show me your ship!

Alright! If you want a look, here’s a sneak peek.

IMPORTANT: The website is in EARLY DEVELOPMENT. Many things don’t work, and many more don’t exist yet. It is not pretty to look at. It’s about function, not style.

You have been warned (/www/public/)

This is a live snapshot of what’s currently in my GitHub repo. At times it may be out-of-date, it may be broken, but it’s real.

And just to mention it, you’ll note that URL uses HTTPS. There’s still work to be done on this front, but moving forward, we’ll be doing the security thing right.

Is that it?

Of course not. :)

What you don’t see is that Ludum Dare is now broken up in to several smaller modules. I’ll talk about some of the modules in detail in later sections.

But first, one of the main modules, the Static Website:

LD Module: The Static Website

It’s not really something you can look at, but the WIP static website is over here: (/www/public-static/ and the symlink /www/static/)

The URL to the static website will change, but basically, the static website is part optimization, and part future proofing when we need to scale-up by cutting up the server.

The static website is pretty straightforward. All the images you upload to Ludum Dare will be stored on the static website. So, those 21 Gigabytes of images, whatever the new size is, that’ll be where they live. Also, elements of Ludum Dare we consider static and unchanging (the JavaScript code, CSS, and so on) will also live there. There will be some dynamic elements to the static website, but for the sake of caching, and as far as our CDN is concerned, everything there is static.

Today, the main dynamic element of the static website is the Image Resizer.

The image resizer is the thing that resizes and crops the images and avatars you upload. We did various things in the past, but the new resizer is designed to be less wasteful and take advantage of the CDN. When I talk about the 21 Gigabytes we currently use, a few of those GB are extra copies of images resized to fit some dimension. In the grand scheme of things, omitting those extra files doesn’t save much, but for a few minutes the resized images will live in RAM, long enough for the CDN nodes to grab a copy and cache them around the world. Not to mention, storing them in RAM saves us a disk access, so we can feed all those requests faster.

You can see a demo of the image resizer on That unusually large cropped chicken image? Yeah, that’s the resizer’s handywork.

We are still not going to host downloads of your games, but we will be looking in to making things easier when it comes to hosting your downloads and source code.

What’s new with Editing?

Lots! Here are some highlights:

  • All text is now written in Markdown instead of HTML (GitHub compatible)
  • Posts, Pages, Games, Comments, everything you’d want to write a paragraph of text for will share the same editing interface (because internally, they’re are the same).
  • Emoji and Short Codes. All the :dolphin:'s and :blowfish: you could ever want, just a few keystrokes away (see
  • Source code has syntax highlighting. We’re currently using a generic highlighter, but we’ll also support C/C++/C#/Java, JavaScript/ActionScript, and Python. To our Haxe bros, we’re using PrismJS, which doesn’t appear to have a Haxe support. I’ll need your help to create a Haxe definition, probably based on the ActionScript one.
  • AJAX. Editing is now inline. Many things should work a lot faster (since there’s less data to send).
  • PATCHING: This is a big one. Every piece of content on the website can be edited by anyone. Patches are then sent to the original author, or team responsible. The changes can then be approved with a click by author, or a member of the Editor Team.

You can try a very rough version of the Patching, Inline Editing, and Markdown with Emoji and Syntax Hightlighting workflow on the WIP website (NOTE: Changes are not saved, and there is no notice when you’ve viewing a patched version of a post).

More things that are coming:

  • @mention people by user name to send them a notice, and link to their user page.
  • @mention groups such as the Help Team (@help, users that like to help people and answer questions), Editor Team (@editor, users part of our patch approval and post moderation team), the Press Team (@press, anyone crazy enough to listen to requests to check out a game), and so on.
  • Game Control Short Codes. This is a project I’m going to need an artist to help with. Like the Emoji, I’d like us to have a library of game controls. Things like :key_wasd: :key_arrows: :key_space: and many more for describing your game control using the keyboard. Also, mice, gamepads, and more exotic controllers like microphones, MIDI interfaces, gestures cameras, and so on.
  • Short Code auto-completion. Just start typing an emoji code or a game control code, and get a pop-up of possible choices.
  • Smart Embedding of External things. For example, YouTube and SoundCloud links auto-embed, perhaps Twitch and other live streaming services too, Tweets, and really, anything that makes sense.
  • Smart Embedding of Internal things. Paste a link to a Game or Tool, and we auto-insert a little mini-widget. It’ll probably make sense to do it for other internal types like Events, Users, maybe Tags and Platforms as well. In some cases there will be variant URLs (i.e. /user/myname/game) that shows a personal game list instead of your personal info. If it makes sense, and there’s something worth showing (beyond a basic hyperlink), we’ll probably do it.

What’s new with submitting games and things?

Oh boy, here we go:

  • Though not actually required, you will be encouraged to sign up for an event before it starts.
  • Tags. Is your game a 5-Player Local-Multiplayer One-Button Platformer with RPG-Elements and a Colorblind-Mode? We got that.
  • Tools. Made in Unity, RPG Maker, and Pygame, using Tiled, Photoshop and GoatTracker
  • Platforms. Okay, we had platforms before, but now we can be a little more specific. Also…
  • Find games by Tags, Tools used, and Platforms: Yes finally, I’ll be able to tell you exactly how many Unity games there are. And not only games in an event, *total*, for all events! More usefully, as we start collecting the data, we’ll be able to start tracking trends and the popularity of tools within the community.
  • Submit Post-Compo (Post-Jam) Games: Did you remake/redo your game after the event, and publish it somewhere? You can add it!
  • Submit “Late” Games: Did you not finish on time? Did you make a game inspired by a Ludum Dare theme from 5 years ago? You can add it!
  • Add Games from Other Game Jams: Do you 1GAM? Do you Global Game Jam? Great! You can add those too!
  • Add MORE games: You’ve added all your Jam games now, what else have you made?
  • New Submission Types. For future Ludum Dare stuff, we’ve added support for several non-game submission types. Again, this is support for them! This doesn’t mean Ludum Dare is accepting these sort of submissions (not yet anyway).
  • New Submission Type: Demos and Intros. Do you rock the demoscene? Great, we support those too! ALSO, alongside some of the bigger game jams, we’re adding a library of popular and historic Demoscene events. Assembly, Revision (Breakpoint, Mekka & Symposium), etc. You tell us what we need!
  • New Submission Type: Media. Do you make videos about Ludum Dare games? We want to catalogue them!
  • New Submission Type: Crafts. A catch-all for everything else. Did you bake a cake inspired by the theme, or a little comic book?

Much of this is the ground work for future features.

  • Where it makes sense, I’d like to make it easy to import games from some of the bigger Game Jam sites.
  • Smart Embedded Audio and Video Media Submissions: Support for SoundCloud, YouTube, and whatever other media services make sense.
  • Picture and Paged Craft Submissions: The idea behind Craft Submissions is they’re things that may not necessarily have a download (but one can be provided). These things will have to be shown off with Pictures and Photos. Just in case paged comics become a thing, we can look in to adding arrow keys or touch gestures to flip pages.
  • This isn’t a feature per se, but I would like to work with the various online game hosts like Newgrounds, Kongregate, GameJolt and Itch to see if we can find a way for us to directly embed games hosted on these services. I’m not that far yet (gotta finish the site first), but I want to start talking with folks about this. :)
  • Similarly, we might be able to streamline uploading directly to game hosts if we can rig up some magic :)
  • I don’t know what to do with it, but there’s always the possibility of a deeper user integration with GitHub. I’m not sure what we’d do with it (generate a wacky graph of how active you were over the weekend?), but they have an API. Feel free to suggest things.
  • Custom Events: Run your own Jam, Demoparty, Bake-off, whatever!

We don’t have an ETA on Custom events, but it’s on the roadmap. It’s probably one of the last things on this list, since there are perfectly good other services for hosting your Game Jams today.

What about an API?

Oh yes, there will be an API.

On the topic of adding other Jam games, I’ve published a specification for an API. I’m calling it the EasyJam Spec.

Effectively it’s a less complicated OAuth (which you could just cheat at, and use usernames for Tokens). I’ve tried to be inclusive of how some of the other Jam websites work, but feel free to tell me if I’ve neglected anything.

Initially, EasyJam is about synchronizing game data between Jam sites. It’s opt-in, and designed to be used securely. You’re not required to use it securely, and details on how do so are mentioned.

Ludum Dare will have a secure implementation of EasyJam, and I’m hoping other sites decide to join us.

What about Teams?

Oh yes, there will be team support.

One of the reasons why “signing up” is now a thing is because that’s how you form teams.

There are actually 2 types of teams:

  • Teams
  • Groups

By default, Teams are one-shot, for a single event only. This is because the people on a team will sometimes change even if the team name doesn’t. We’ll look in to making it easy to clone a previously used team when you participate in the latest events.

Teams have a Captain (the team author), and it’s their responsibility to manage the team, add members, and handle the submission. You’ll also be able to add other Captains to your team.

As a member of an team, your posts will be marked in some way to showcase this affiliation (How we’ll do it is TBD). And when you view the team page, you’ll see a list of posts from all members of the team. Game pages will list all members of the team that created it.

Aside from Teams, there are also Groups.

Groups are stricter in how they work. Initially, there will only be a few Groups, mainly internal ones used to manage permissions, and a few support groups (@help, @editor, @press).

Eventually there will be a process for vetting and approving Groups, but understand this:

Groups WILL NOT be able to submit entries to Ludum Dare events.

Groups are a bit like Subscriptions. As a member of a group, you get notifications to that group.

Groups can be ether public (anyone can join), or private (members must be added manually).

We may eventually open up support communities (Groups) for popular tools. @unity-help, @blender-help, @gimp-help, @photoshop-help, etc. The popularity of Tool Pages will likely play some role in vetting support communities. Like @help is for general Ludum Dare support, help communities will be open for anyone to join, to assist other users with the issues with their respected tool.

And where it makes sense and is useful, we’ll look in to adding other groups. In some cases, it’ll make sense to give ownership of content to a group (for example, if we have an @unity group of Unity Employees, it makes sense that they can edit their own Tool page).

But again, I’d like to keep the number of groups low initially. I want us to feel-out where they are useful.

What about Notifications?

Okay yes, up until now we’ve more or less assumed we support Notifications. We do. It’s the glue that binds together a number of features.

Initially, notifications will be limited to comments (finally, letting you know when someone comments on your game), and the usage of @messages to People and Groups.

Joining a Group is a bit like subscribing to notifications. If you’re a Captain, you’ll be able to control pages associated with your team. If you’re a member, you’re just there to listen.

Eventually we will add private messages, but that’s a low priority. There are plenty of ways to contact people privately outside Ludum Dare, so I’m sure you’ll figure something out. :)

What’s new with the post feed/timeline?

So the feed needs work. Anyone that’s tried to watch the stream during events knows how chaotic it is. Practically every minute there’s a new page of posts, and some people don’t post since they know it wont stick.

Plus, there’s a good reason to consider adding other content besides Posts to the timeline. But before we add more content to the feed, we need to fix it.

So, soon we’ll be:

  • Splitting the Post Feed

Every user will be assigned to Sub-Feed of the main feed.

I’m calling these sub-feeds Leagues. Admittedly, that’s an odd name choice, but in the future I’d like us to have some fun with the split. My thought is that eventually, we may treat the splits like a bit of a sporting team, country (but not actually a country), or a “House” in Harry Potter. We want a diverse group of people in each group, because that’s interesting. We want interesting.

As it is today, things move too fast. You can’t have a discussion during Ludum Dare, because the post asking the question is gone right away. But if we slow things down a bit (by having less content), you’ll be able to get an answer.

So now that we’ve split the feed, what about cool stuff, or people I like?

  • Post Love is Back! Now, Post Love will be the way good posts cross the League barrier. When enough people in a League give it +1’s, it’ll show up for all leagues. That way, you don’t miss popular posts from outside your League.
  • Follow Users. You’ll be able to follow your favourite users in the Ludum Dare community, so no matter what League you’re in, you’ll see their posts.
  • Published Games in the feed. As soon as you click that Publish button on your game, like a post, there’ll be a brief notice in your Leagues timeline. The name of your game, and a banner grahic or trimmed screenshot. They wont be too large, a bit bigger than a tweet. There is a very brief sample of this behaviour on I haven’t done any styling to them yet, just shown what it would be like.

Things we’ll be looking in to:

  • League Names. We need to figure out the granularity needed for the public timeline first. Once we know what a comfortable number of users is, we’ll look in to naming the sub-feeds. Then you can say things like “I’m part of Kitten League” or “Zombie League”, fun things like that. It’ll have no bearing on results (we shut-down the leagues once the event ends), but during the Pre-LD hype, I’d love to see playful rivalries between the Leagues. 😉
  • Multiple user signups as a single timeline post. Not necessarily a replacement for “I’m In” posts (which aren’t really necessary, but add character to the pre-LD hype). Rather than adding a bunch of individual “who is in?” blips to the timeline, we can group them together in to little blobs. The point of these is that you might see people that you want to follow.
  • AJAXy/WebSockety Twitter-like auto-updates. Rather than reload the page constantly, we’ll look in to notifying you when there are new posts. It probably wont be as aggressive as Twitter (every 10 seconds), but we’ll figure out what works.
  • AJAXy/WebSockety Theme Announcement. Same as above, we’ll look in to a smart way of announcing the theme on the website that doesn’t bring the server down. :)
  • External Posting. I.e. post to your account from Twitter, Facebook, Tumblr, Instagram, or your Blog (RSS). Not everybody likes to log their progress on the Ludum Dare website.

What’s new with user pages?

  • As mentioned above, a chronological list of MORE than just your Ludum Dare games. Games from Other Jams, Demos, Media, Crafts (as soon as we add support for adding them)
  • Any Events you’ve run (MiniLD’s, Custom, etc)
  • Published Games intermixed in your summary timeline, and post timelines.
  • Some new types of Navigation. View your Posts, your Favourites, your Games, who you Follow, etc.
  • New Module: Jammer

I’ll talk about Jammer in a moment.

Here are a couple test user pages on the WIP. Again, try not to pay much attention to what they say or how they look, just that they exist.

Things that we’ll be looking into over time.

  • Featuring of your favourite games (they appear first)
  • Ludum Dare Submission Stats. Graph showing how your submissions have done over all the events you’ve participated in
  • Other Graphs. As we figure out other sensible data people will want to see, we can add more personalized graphs
  • The Trophy Rack. This is going to be a bigger project, totally silly, but I’m all about fun. I’m definitely going to need an artist involved. I’d like there to be a real digital trophy graphic for each of the Ludum Dare categories. If we’re feeling really silly, we might actually build an HTML5 Canvas app with 2D physics that lets you arrange your trophies, and save the layout. And if we’re feeling reeeeeealy silly, we can add breakpoints to the Trophy geometry, so you can smash your trophies in a fit of rage (and repair them with a click, though it would be funny if you couldn’t repair them).
  • User Trophies. This will probably come much later. Rather than the 64×64 images we used to use for Trophies, I think I’d rather we have a library of miscellaneous trophies you can pick from, and a pick a color. That’s my thought at the moment, but if we come up with a nice way to let you generate them, then maybe. Also, User Trophies will be assigned to a specific thing (a game usually), instead of a user like we did in the past. User specific trophies will still be supported though.
  • The Cardboard Box. Completing the Trophy Rack metaphor, a place for your “Coolest Haircut” trophy. Basically, the things you don’t want to show-off on your Trophy Rack. Nobody ever throws away their trophies, they just live in a box. 😉
  • Trophies on Featured Games. As we figure out the layout, we’ll find a place to put those important trophies next to the game banner. We might only be able to fit a couple in this view, so you pick which ones matter most to you.

Jammer, we should talk about Jammer.

LD Module: Jammer

jAMMErLogoJammer is new.

Jammer is an extension of your Ludum Dare user page.

You’ve used Ludum Dare before. We put weird stuff in the sidebar, big noisy banners and bars to get your attention, a movie player, potatoes, yadda yadda. It can be nuts, but that’s what Ludum Dare is. This frantic sort of crazy event.

Jammer strips that away. It’s all about you. Just you and your games.

The website (NOTE: link is not active yet):

Where ‘user-name’ is your user name. Jammer is your user page, without the noise.

Sure, Jammer isn’t for everyone. If you run your own portfolio website, you probably don’t need. But if you’re an active Ludum Dare user and game jammmer, we give you a nice easy to remember URL for you and your stuff. No need to explain to people what a Ludum is, nor debate Dare’s correct pronunciation. And heck, it’s a simple enough URL to tell someone aloud, with your actual human voice. 😉

That’s Jammer in a nutshell.

As time goes on, we’ll give you more and more flexibility for customizing your page. Here are a couple WIP links. Please excuse the lack of formatting and style. When it’s done it wont say silly things like “users home page”. It will be styled in a nice way with banners of your games (not text links). At the moment it’s also a bit of an ugly testbed for the Markdown decoder, so try not to criticize what you’re seeing too much, just that it’s there and using the same data as user pages. 😉

You’ll note on my page (/pov), I’ve customized the colors, and I added my Real Name. This is done through some Jammer specific metadata we assign, just to show that customization support is coming.

LD Module:

This is a minor module I thought I’d mention. It’s doesn’t really have anything to do with Jammer, but it’s loosely related, in that it also deals with URLs. (LDJAM) will be a URL shortener for the main website.

URLs will look something like this (NOTE: link is not live): (/www/

This is in contrast the clean URLs of Jammer, these are designed to be small.

Everything on the New Ludum Dare website has a Unique Id. Posts, Games, even Users and Events. So that crazy string (4cDfm) is a packed version of the internal “Node Id”. For the sake of example, lets say it’s 332,511.

The encoder is something that needs to be tuned. It’ll be close to a 48 bits per character. It’s a combination of the numbers 0-9, uppercase and lowercase letters. If you were to total that, you’d get 62 characters, a mere 2 short of 64 (or base64 encoding). The problem with base64 is there’s a risk of generating profanity and offensive things. So to avoid, some reoccurring characters in English profanity are removed from both upper and lower case. And for legibility, a few very similar characters can be removed (such as S instead of 5, l instead of 1).

To decode, we first decode the packed value. We lookup the Node Id in the database, then we have to recursively look-up the slug-parts of the URL by walking the tree backwards until we hit the root node. All the parts together gives us the true Ludum Dare URL.

Of course, we can do some smart, optimal things when it comes to the reverse lookup. We can cache the slugs of the Hierarchy Nodes by Id in RAM. Even with all the non-Ludum Dare events, there shouldn’t be more than a few hundred of them. That said, this is probably one of the main bottlenecks for Custom Events, ’cause as soon as we open this up, the cache size is no longer in our control (unless we explicitly ignore the custom tree, and just do an extra lookup).

Anyway, once we know our true URL, we emit a redirect (302) to that.

So the URL shortener will not be general purpose. It’s specifically for shortening URLs.

And like everything else, the WIP version is over here:

So when it comes to User pages, you’ll be offered both an ugly URL ( or a clean URL ( The URL will go directly to your Ludum Dare user page, and Jammer URL directly to the clean less-noisy Jammer version of your page.

Holy Ship!

That’s a lot of stuff. There’s more, but some of these things just aren’t as cool.

  • Security. Probably the broadest and most complicated one-word subject there is.
  • Logging in and out. We gotta be able to do that.
  • Account creation and activation. That whole e-mail exchange thing.
  • Password Reset. Yep.
  • HTML to Markdown filter. We’ll best-guess the intentions of HTML tags in imported posts.
  • Reserved Names List. We don’t want people camping names, or doing things that will cause confusion. So no, you wont be able to call yourself Microsoft. But if a few Microsoft employees join the community, and it makes sense that they have a group name, they can contact me and we can set them up.
  • Things I can’t remember.

This is Starship in a nutshell.

What about Event Features?

You’ll note that I’ve only covered User specific features so far. I figure this post is long enough, and at the moment my focus is on User features. Most people care about how Ludum Dare changes for them, not how it changes for me.

As things get further along, I’ll write another post detailing more of the internals of how events run, the job queue, event stage automation, and so on.

That’s all for now. Congratulations, you made it to the bottom.

Game maker tutorials

Posted by
Thursday, June 4th, 2015 3:08 pm

I am working on some game maker tutorials and so far i am on ep 3, with stronger enemies and health bars, feel free to check it out if anyone wants to actually make a game instead of play them on this site. you can upload these to any website. so i hope you guys enjoy :)

Old ld now on mobile; Ninja Star!

Posted by (twitter: @@jagekiwi)
Wednesday, May 20th, 2015 4:22 am

20891-shot1 s2-08

                 Before                                            After


Finally! It took a while but the game is now finished and out on iOS (soon on Android)! From the concept it was at ludumdare to the actual game it has become, it’s gone a long way. And it feels amazing! First game me and my friend have worked on seriously, almost didn’t think we would finish it, but we did and I’m proud of not only the game but the achievement of completing what we started.

Old LD

Btw thanks for the feedback I got from that ludumdare! Now here, the game:

Ninja Star! is a puzzle game where you throw a shuriken, solving challenging puzzles in four different worlds.

In the game your mission is to get the ninja star to the goal in as few throws as possible, the ninja star bounces off of some objects but gets stuck in others.
As you progress through the levels you will encounter more interesting objects like bombs and teleports which you will need to use to your advantage.

You can get the game for free here!

After playing 1 and a half world you choose to pay 0.99 usd to unlock all of the levels and remove the ads.
Here is a gameplay trailer!
Please check it out and let me know what you think! Have fun!
Our website (wow!):

3 Hrs to go!!

Posted by (twitter: @jasonsumm)
Monday, May 11th, 2015 5:03 pm


Thanks LUDUM DARE, it’s been a blast. I’ve found some incredible efforts here, and hope to one day be amongst those I admire. Can’t wait for the next challenge. Give …Slaughter… a play / vote if you can spare a minute or two ^_^. So many thanks to everyone who already has :).



My thoughts on Ludum Dare (and how to make it better)

Posted by (twitter: @fakepsyho)
Sunday, May 10th, 2015 4:24 pm

I highly doubt that my thoughts are going to be original, considering the long history of LD and the amount of participants it has. For the record, this was my first LD, I loved every part of the LD throughout the first 48h – even though it meant that I spent my almost entire weekend alone and working :) But that excitement quickly left me as soon as the voting period has started.

Since no one likes long posts, I’ll directly dive into the problems:

1) I thought I’ll leave people valuable feedback on their games and (hopefully) this will create some interesting discussions about the games itself. Ideally, no one would feel bad about constructive criticism and we would end up in a win-win scenario. But it’s not possible right now, since: (a) there’s no threaded view of the comments (b) there’s no way of tagging people. It’s one of the (smaller) reasons why most of the comments are completely shallow, since the discussion is impossible and has to move towards the personal blogs.

2) If I understand correctly the final result is just an average of votes. If I’m wrong please correct me, but I guess at least some of this still applies. This is really bad idea and easily fixable. (a) First of all, bayesian average is a trivial improvement over it, which in general decreases the variance of the result (no more taking top spots by submissions that had votes barely over minimum). (b) The other easy thing that should be much better is to use percentile rank. You can also drop top and bottom ~10% to reduce the effect of the outliers. And yes, I really think that if someone’s giving only 1s or only 5s, then those votes should transcribe to the exactly same score. (c) Ideally, the proper way would be to toy around with the machine learning, considering the prediction of the “true” ranking should be a rather standard problem in recommendation system. It’s actually absolutely the same problem Netflix prize used if you assume that we’re predicting ratings only for the “fresh” users.

3) If I stick only to games recommended by “Play and Rate Games”, I’m going to play mostly unfinished or just very weak games. It’s because the fun and interesting games have a lot of votes already due to the self-promotion. After 5-10 games that may have no gameplay, are completely bugged or someone was clearly just starting his/her adventure with gamedev, I’m beginning to feel frustrated. This is a pretty sad situation since this forces me to hand-select the games, which in turn completely skews the rating system and it makes even worse situation for everyone else. I guess in the past there was absolutely no system at all (only hand-selection), so nowadays people look at the coolness system as something that is an improvement over what LD had before. There’s very little you can tell about the games that are completely unfinished (or sometimes even not started). In those games the feedback is either the same, or is purely motivational. This means that weak game won’t suffer too much from having fewer votes/comments. This makes since at the same time, we want for good games to have as many votes as they can, in order to reduce the variance of the top places. (a) You could use the current rankings to adjust the priority in the “play and rate” queue. If people would get more fun games in the queue, they would use it more, so in the end the weak games would still end up with decent number of votes. The main difference is that we would reduce down the huge spam of “PLEAAASSSEEE RATEEE MY GAMMMEEEE”, which honestly is not the best thing in the world. (b) Somewhat risky idea would be to stop counting the votes of hand-selected titles altogether. Or alternatively, reduce their weight (and added coolness).

Edit: Also, please read my reply to tompudding. I think I did a better job there explaining the main idea behind (3).

Anyway those were my 2 cents. If this stuff was brought up already then I hope someone can give me links to those topics.

Also, no link to my game since this would defeat the purpose of the whole post :)

[cache: storing page]