Ludum Dare 32 — April 17th-20th, 2015 — Theme: An Unconventional Weapon

chromenopePSA: As of Chrome 42 (Released April 14th), NPAPI plugins are disabled by default! That means Unity Player, Java, and Silverlight games will not work in the Chrome browser! That said, Flash in the Chrome browser continues to work fine (PPAPI).

To Developers: Consider using HTML5 and WebGL instead. Having troubles with the export? Don’t worry. See Ports below.

To Players: A workaround is to enable NPAPI plugins in your Chrome settings. Click or Copy+Paste this URL in to a tab:


As of September 2015 however, this option will no longer be available.

Other browsers (Firefox, Internet Explorer, Safari) and Flash are unaffected, but FWIW there is no Unity Player or Silverlight for Linux.X

Back to Browse Entries

A Game of Drones

by TD5 - Compo Entry

Program a Defence Drone to protect yourself from the evil attackers. There's no direct control, only the forward-thinking and logic you feed into your program - this is your real weapon.

You write your code on the left side of the screen, click the red button and then see the battle play out on the radar display on the right.

The red and orange blips are enemies, and the green blips are friendly. The lighter green blip is the Defence Drone that your program controls, as you can tell by its label, which also shows its remaining health.

Each line is an action which your drone will do if the check after the 'when' check passes. The first line to pass its check has its action executed. Each time your drone wants to do something, it will consult your program, and do nothing if none of your rules apply.

The source code is made up of multiple lines, each line of the form:
<action> when <check>

If you try to run an invalid program, the game will complain at you once the drone queries its program, telling you the offending line. The drone is very picky, so having two spaces between parts of your commands or an extra space at the end of the command will make it break, so pay close attention to the error message.

The current checks are:
'always' which always applies
'isWithin' which takes a type of object (edge/enemy/friendly), distance (integer) and an optional direction (north/south/east/west) and checks to see if an object of a given type is within the given distance (and maybe also in the given direction)

The actions are:
'fire' which takes a direction
'move' which takes a direction
'wait' which takes no parameters

Example program:

fire north when enemy isWithin 25 north
fire south when enemy isWithin 25 south
fire east when enemy isWithin 25 east
fire west when enemy isWithin 25
move south when edge isWithin 2 north
move north when edge isWithin 2 south
move east when edge isWithin 2 east
move west when edge isWithin 2 west
move south when always

This is an HTML5 game written in Elm. I didn't get as much done as I would have liked, so the game is missing a good introduction/tutorial and the parser isn't very forgiving, especially in terms of whitespace.

Downloads and Links




morgondag says ...
Apr 20, 2015 @ 10:37am


dylanigan says ...
Apr 20, 2015 @ 10:56am

I liked the concept. for next time maybe add a scripting guide on the page, or a tutorial.

TD5 says ...
Apr 20, 2015 @ 11:22am

@dylanigan Yeah, I'm disappointed that I ran out of time and couldn't have added more commands with better explanations. Perhaps introducing new commands one at a time.

deadarius says ...
Apr 20, 2015 @ 11:36am

It is rather brilliant concept. Actually quite similar to mine, in a sense. But implementation is too hard to play.

Paulozz says ...
Apr 20, 2015 @ 11:42am

I love the concept but it's very hard to play ...

cgriff says ...
Apr 20, 2015 @ 11:48am

There seems to be a good idea in here, but at the moment it's just too hard to get into as a new player - it really needs some of these instructions displayed in the game itself. And it certainly is very picky on syntax! Great concept though, and it is satisfying to see the drone execute your commands. I really wanted to reprogram it on the fly...

TD5 says ...
Apr 20, 2015 @ 11:57am

@cgriff I considered reprogramming on the fly, but was worried that the game would become too much about typing quickly, but after playing deadarius's game, I'm starting to come around to that idea.

Apr 20, 2015 @ 12:00pm

Great entry overall, very innovative, always good to see new stuff. I'm afraid it was a bit too unforgiving at the beginning, I don't see how a new player would sit through this.

WebFreak001 says ...
Apr 20, 2015 @ 12:19pm

I really liked the concept. But more scripting options would have been nice. Like variables, also adding random obstacles/using editor would have fitted perfectly. And including the readme from the compo page would have been nice.

elpaulo says ...
Apr 20, 2015 @ 5:43pm

Keep working on it, it can be a wonderful game !
For now i always generate errors, but i'm gonna retry :-)

TD5 says ...
Apr 20, 2015 @ 5:47pm

@elpaulo Yeah, I am sorry about that. I was trying to fix that part towards the end, but I was just too damn tired to think. Thanks for your patience and kind words :)

madameberry says ...
Apr 20, 2015 @ 8:12pm

I couldn't seem to get a handle on the syntax, my guy didn't do much of anything.

PaperBlurt says ...
Apr 21, 2015 @ 6:24am

This feels very contemporary as working with drones.
Nice job!

wg_phancock says ...
Apr 21, 2015 @ 7:34am

Pretty cool concept, but seems to get frequent source code errors.

Smirnov48 says ...
Apr 22, 2015 @ 1:06am

Hard game! But interesting. Difficult to start, and example program doesn't works.

ito123456789 says ...
Apr 22, 2015 @ 1:36am

A more polished version of this would be awesome! Great concept!

sanojian says ...
Apr 22, 2015 @ 4:01pm

Some interesting ideas here. Could be very good with a little more work.

eemmbbeerr says ...
Apr 24, 2015 @ 4:06pm

Good idea. But I think it would be better if the game didn't restart when I uploaded a new code to the drone. That way, I could reprogram it in-battle. I think bullets should be visible, and I don't get why the rouge soldier didn't die when it was right next to me, only there was a friendly power station in between us. Do friendly objects stop bullets? In that case, the AND logical operator should be implemented so I could check if there was a friendly building in between us and I wont shoot it.

gnx says ...
Apr 24, 2015 @ 9:01pm

Interesting entry. Took me a while to get it working before I realized pasting the sample program in the textarea adds whitespace at line endings, which makes the execution fail.

So maybe trim your input and it is bit easier to get into.
Extra points for the theme approriate gfx :)

GBGames says ...
Apr 28, 2015 @ 2:59am

Very neat concept! I wish I could tell the drone to move based on a position southwest or northeast.

kunzbe says ...
May 2, 2015 @ 11:59am

intersting concept. somehow i really did not like the textbased user interface (maybe it felt too much like programming ;) ). Maybe you could have done something like logical blocks that the player can arrange like in visual programming environments

LadyEmaSkye says ...
May 7, 2015 @ 4:36pm

It's a REALLY Interesting concept, but with one crucial problem. It is VERY confusing. There is no tutorial, guide or ANYTHING in the actual game, you just get thrown right into it! And when the game closes everytime you try to start it it makes it very hard to actually learn how to do anything.

uberscientist says ...
May 10, 2015 @ 12:35am

ooo I've wanted to try Elm sometime, seems like a good way of writing programs/games for the web. Innovative entry!

You must sign in to comment.

Mini Submission FAQ

TEAMS: Teams entering the Jam should pick a single representative to submit your game, or create a team specific account you can share. We currently do not support Team Voting, but sharing an account and together playing and rating games is acceptable.

CAN I ENTER BOTH EVENTS?: You should pick 1 event, whichever you think it’ll do better in. If the idea is strong, and everything plays well enough, you can go Compo. If you’re a perfectionist, and would prefer people to play a more polished game, do the Jam. Historically, more games are entered in the Compo, but with more people and more time, Jam games have the potential to be better (that doesn’t mean they are). Many solo participants do enter the Jam.

If you made 2 games, unfortunately, the website doesn’t support multiple submissions per user. To submit your 2nd game, you will have to make a 2nd account. Only do this if you made 2 games. Alternatively, if one game is better than the other, then consider just entering the better game.

CAN I KEEP WORKING UNTIL THE DEADLINE?: Yes! Immediately after the 48 or 72 hours, we do something called Submission Hour. As the name suggests, it’s an extra hour for you to package, upload, and submit your games. If there were catastrophic issues trying submitting your game, or you misunderstood how submissions work, that’s okay. It happens. We’re flexible. If you need advice, check with the folks on IRC. If you need an admin, get in touch.

CAN I KEEP WORKING ON MY GAME?: Oh definitely! You should! But for the sake of judging, keep the Compo or Jam version around. You can include a link to the Post-Compo/Post-Jam version of your game on your games page, but sure your main links are the original version.

PORTS: Ports to other platforms can be done after the deadline. That said, the sooner you finish your port, the sooner people can play your game, improving your chances of placing in the final results. For best results, provide a Web version of your game, or a Windows version with no dependencies. Also be sure to rate at least 20 games to improve your visibility (Coolness).

MY GAME CRASHES, IS UNBEATABLE, OR I MADE A TYPO: We allow you to fix crashes, win condition, or tiny bugs after the deadline. In a sense, this is like “porting” to support more players. We leave this open to interpretation, but generally speaking your game should be identical to the game you submitted. No new features, just fixing mistakes you should have caught had you been better rested.

MY GAME DOESN’T SHOW UP: If you can’t find your game, it’s usually because the URL to your downloads are missing ‘http://‘. Fix your URLs ( and you will show up. Alternatively, if you just posted it, wait a minute. The cache may not have refreshed yet.

NOT LOGGED IN?: If you get a message about not being logged in, even though you are, it’s because your web browser cached the non-logged in page. You can fix this by either refreshing your cache or clearing your cache. CTRL+F5 in many browsers. Chrome is a bit more work. Press F12 to enable Developer Mode, then you can right click on the refresh button and select “Empty Cache and Hard Reload”. This option is unavailable if you are not in Developer Mode.

[cache: storing page]