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

Throw Bottles at people you don't like!

by Jajo - Jam Entry

Well, I made a game. Initially, I wanted to enter the Compo, however I ran out of time. Now, I've had trouble exporting the game. I can't seem to use JarSplice properly. I have, instead, provided the source code. If there are any developers who have experience with Java and Slick2D, I would appreciate it if you could help me export my game. I think it is within the rules to release the actual game late, please correct me if I'm wrong. If not, please do look through the source code, and please point out any inefficient methods I used. I wish all of you the best of luck in the voting :)

Edit: I have made the Jar downloadable, but I am not sure if it will work. If it doesn't work, please alert me.

Edit2: Must have just been my computer that was being silly, the jar works for most other people.

Edit3: It only seems to be working for some people. If anyone can help, please do. If anybody who can use JarSpliced, please download the source and try to export it for themselves. The main class should be

Edit4: Removed the Jar download, it really doesn't seem to be working.

Edit5: Fixed everything, thank God for that.

Downloads and Links




Kostyan1996 says ...
Apr 21, 2015 @ 3:35pm

Why here is only source?

Shared says ...
Apr 21, 2015 @ 3:36pm

Could we have a non source download lol ?

Jajo says ...
Apr 21, 2015 @ 3:44pm

@Kostytan1996 @Shared I had trouble creating a jar due to the libraries I haven't used before. I am hoping that somebody who knows how to use Slick2D and make a Jar using JarSpliced could help me.

mcburrobit says ...
Apr 21, 2015 @ 3:45pm

liked the music, some sprites had weird borders around their bounding boxes

Jajo says ...
Apr 21, 2015 @ 3:53pm

@mcburrobit Oh, thank God the jar worked, must have just been my computer.

Manu & Wan says ...
Apr 21, 2015 @ 3:58pm

Can't get it to launch, I have first to fix the Manifest because the Launcher-Main-Class had the wrong package, but then it says the LWJGL library is missing, you have to package the natives (dll/etc. according to the platform) with your game, I haven't used this lib for a while but I think you can just make a ZIP with the Jar + all the natives side by side. I hope this will help.

Jajo says ...
Apr 21, 2015 @ 4:01pm

@Manu & Wan thank you. It seems to be working for some and not for others. I will try to do this.

Jajo says ...
Apr 21, 2015 @ 4:08pm

@Manu & Wan if possible, could you tell me how you changed the manifest? I think I'm putting the right package in JarSpliced...

samwest says ...
Apr 21, 2015 @ 4:14pm


dyfer says ...
Apr 21, 2015 @ 5:00pm

isn't getting on :s

Jajo says ...
Apr 21, 2015 @ 5:17pm

@dyfer it seems it only works for a few people... This is annoying.

Luke Magitem says ...
Apr 21, 2015 @ 5:18pm

The .jar file doesn't work for me.

DeadFragment says ...
Apr 21, 2015 @ 5:28pm

ah damn, it doesn't seem to run for me either.


lochmann-apps says ...
Apr 22, 2015 @ 3:41pm

Could you also upload an executable? Most of the people don't want to build it from your source ;-) Thanks!

Apr 23, 2015 @ 8:00am

Misread instructions and drank the contents of the bottle.

I'm drunk

Jajo says ...
Apr 23, 2015 @ 5:22pm

@lochmann-apps that's my problem, I failed making the fat jar...

Jajo says ...
Apr 23, 2015 @ 5:22pm

@chikun Dev Team please, don't hurt me in a drunk rage ;-;

Andrea says ...
Apr 25, 2015 @ 6:54pm

Worked fine for me now that there's an executable .jar.
Nice game with simple graphics and gameplay, no real challenge though, as the enemies AI doesn't help them at all.
Nice work!

Zayron says ...
Apr 26, 2015 @ 11:53am

Nice job! Glad to see you got this working. I been checking back every few days since you rated my game. :)

Jajo says ...
Apr 26, 2015 @ 1:47pm

@Zayron your game was great, good luck in the voting :)

Apr 27, 2015 @ 10:47pm

I like it. Reminds me of the little side games in Always Sometimes Monsters. The collisions are a bit buggy though.

Catwheel says ...
Apr 29, 2015 @ 3:53am

High score 125.
Fun game. Anyone who makes a game in java is impressive in my book.

rburema says ...
May 3, 2015 @ 1:06pm

Maybe I'm misinterpreting, but you wanted someone to take a look at the source, even in the event the case that the export is fixed (as it so happens to be)?

First, and most importantly, code-ing for the compo is a whole 'nother beast from say, production code, or even a 'normal' hobby project. A lot (not all, but a lot) of design is actually done so that you (or someone else) can still look at the code say, 6 months from now and do some maintenance, without getting a headache. But that sort of design, while really useful in the long run, slows you down a lot. So when you've got less than 2 days (because art, etc. takes time as well) for coding, don't go for style, or 'beautiful' code, just get something working, and don't try to cringe if you've created something that you'd otherwise think of as inefficient or 'ugly'.
Second, I just skimmed your code ... I didn't really go into much depth, so I probably missed some things I should have seen.
That said (and basically opposed to the whole 'first' point):
- Take a look at the 'switch/case' statement... it can replace those if/else if/else if/else if/... structures (and even if/if/if/... sometimes when cleverly used). [ ]
- Use an Enum class to repressent "up"/"down"/... etc. rather than a String.
- Maybe make bottle inherit from Rectangle, so you don't have to new-up a rect, when asking the object for it's bounds.
- Perhaps don't include GameState as a member of bottle (for proper O.O.)... I mean, yes, it's a reference and takes up no space, but 'GameState' is not really part of a 'Bottle'.
- Related to new-ing up objects: take a look at the 'flyweight' pattern: [ ]
- Separate the gamestate from everything related to drawing: this is useful to prevent such things as 'having to move each mook a step' each time the player moves.

However, your code was not difficult to read at all, and that's a very good sign :-)
Just keep codeing! Practice (and some reading) makes all the difference.

Jajo says ...
May 3, 2015 @ 4:27pm

@rburema Your advice is extremely appreciated and I will certainly use these tips in the future, thanks :)

Hunter X says ...
May 8, 2015 @ 4:19pm

The music is a little repetitive and there were a few issues with the sprite borders, but on the whole this is a fairly solid concept with a lot of potential for further expansion :)

Smirnov48 says ...
May 9, 2015 @ 10:04am

Jar doesn't run :(

Jajo says ...
May 10, 2015 @ 10:53am

@Smirnov48 is it a platform thing? Is the jar in the same folder as the res folder? It seems to work for others...

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]