Ludum Dare 29 — April 25th-28th Weekend — Theme: Beneath the Surface

Event Links: [ MiniLD 50 | Warmup Weekend | Real World Gatherings | Ludum Deals | Wallpaper ]

Back to Browse Entries

Rage against the Rectangles

by tankete - 48 Hour Compo Entry

Juan "Rage" Martinez was new in town. All his life he was proud to be a square. In fact, that was what defined him. One day, upon gloating that he was a square, he heard someone say, "Beneath the surface, we are all rectangles..."

And that's when he lost it. This is his story...

This is a basic twin stick shooter, my 2nd entry into Ludum Dare. Use either a joystick or WASD plus arrow keys to fire.

Planning on uploading a compiled a.exe for Windows later this evening. If you don't have LOVE installed and would rather not install it, just come back in a couple hours and I'll have it posted.

If you DO have LOVE installed, then you should be aware that the game was more about building an "engine" that lives "beneath the surface" than an actual game. To that end, you can create your own enemies, weapons, and bullets. Just add/remove text files and images in the right place and the game will pick it up when you start.

To make an enemy, just add a file to the /objects/enemies folder with content similar to this:

item =
type = "Enemy1",
health = 10,
attack = 10,
image = "enemy1.png"

To make a weapon, just add a file to the /objects/weapons folder with content similar to this:

item =
type = "Weapon2",
cooldown = 0.75,
bulletType = "Bullet2",
image = "weapon2.png",
frequency = 1 --optional, default = 1

To make a bullet, just add a file to the /objects/bullets folder with content similar to this:

item =
type = "Bullet1",
damage = 3,
speed = 400,
image = "bullet1.png"

All images should be placed in their respective image folder (/images/enemies, /images/weapons, /images/bullets) and the filename should correspond to the value in the text file. Finally, the bulletType listed in the weapon file should reference the type of a bullet.

Enjoy playing with the engine beneath the surface of my entry :)

Downloads and Links




JangoBrick says ...
Apr 28, 2014 @ 1:01pm

I would be happy if you could put a link to a compiled game somewhere instead of a .love file...

mess110 says ...
Apr 28, 2014 @ 1:08pm

same here, please give binaries

eriksundqvist says ...
Apr 29, 2014 @ 6:38am

Can't seem to be able to start the Win64 version. "love.dll" is missing.

Apr 29, 2014 @ 6:41am

Missing love.dll

tomhunt says ...
Apr 29, 2014 @ 6:49am

Was able to copy in the necessary dlls from another love game to get it working. Even then, there was no sound at all, and it just felt really.. boxy. Two-stick shooters really play up directionality. Also, it crashed after about a minute of play, in main.lua:399 "attempt to index global 'weaponType' (a nil value)" in function spawnWeapon, called from function update.

tankete says ...
Apr 29, 2014 @ 9:04am

Looks like I packaged it incorrectly. I think I did it right this time. Sorry about that.

@tomhunt - yeah, didn't add sound and boxy was intended as it was about squares and rectangles. I'll investigate the bug, but thanks for trying and the feedback.

Bronaldplo says ...
Apr 29, 2014 @ 9:18am

Cant play :(
idea seems nice

Aomeas says ...
Apr 29, 2014 @ 9:37am

Well, after having played for 2 minutes without adding anything, I got an error :
main.lua 380 : attempt to index global 'enemyType' (a nil value)
main.lua 380 : in function 'spawnEnnemy'
main.lua 45 : in function 'update'

reidrac says ...
Apr 29, 2014 @ 1:05pm

As Juan Martínez (my real name, no joke); I'm amused! :)

Moosefly says ...
Apr 29, 2014 @ 10:40pm

Controller controls are super finicky, you should probably define some analog-stick dead-zones to make it better. Other than that it ran fine.

I also recommend you to read this: Sure, it's an interesting idea to make your game easily moddable like this, but at least I don't find it very fun if it's supposed to be the main feature.


tankete says ...
Apr 30, 2014 @ 12:56am

@Moosefly Interesting...I had the dead zone problem when I first added joystick support, but then added dead zones and it went away. I'll look again.

As for the engine vs. game discussion, I'm a software developer by day so it's in my nature. :) And my plan was for this entry to be the beginning of a larger project so it met my objectives, but thanks for the a article and feedback.

MunkeeBacon says ...
Apr 30, 2014 @ 9:34pm

The game was a bit stiff and controls a tad bit weird, could have used a little bit of adjustment!

SoupWithBits says ...
May 2, 2014 @ 6:20am

With some audio and scoring system could be pretty sweet!

You must sign in to comment.

IMPORTANT NOTE: If you want to place in the final results, you NEED votes. The easiest way to get votes is by rating other games. Judging lasts for 3 weeks following the end of Ludum Dare. For best effect, rate 20 games as soon as possible. Rating more games is encouraged.


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.

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.

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 about 20 games to improve your visibility.

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.

MY GAME CRASHES, IS UNBEATABLE, OR I MADE A TYPO: We allow you to fix crash or win condition bugs after the deadline (in a sense, like “porting” to support more players). We also allow “typo” bugs. I.e. A true that should have been a false, a word that should have been a different word, very tiny changes that you would have caught if you had more sleep. We leave this open to interpretation, but generally speaking your game should be identical to the game you submitted. No new features, just things you messed up last minute. Typos.

[cache: storing page]