Also In
Depending on the theme I’m using
- emacs + evil
- JavaScript
- HTML/CSS
- Pixelmator
- ImpactJS
- jQuery, Backbone, RequireJS
- Maybe some CherryPy
Depending on the theme I’m using
It’s already 2am here, but I have an idea now. I think I can do the entire game with just JavaScript, HTML, and CSS. No canvas needed.
Although there will be no way for the user to save their progress unless I setup a database or use something like Titanium Studio. For now I’m not going to worry about it. If you leave the game you lose your progress. I need a working game before I need to worry about other things.
After spending several hours last night and today, I have next to nothing to show for it. I’m been spending too much time messing around with the dom and making it draw shapes instead of actually making the game.
So I’m switching to ImpactJS and I’m going to focus on getting the core of the game done. Hopefully this means I’ll have some screen shots in a few hours.
The player can now attack the bad guys and win! Woohoo!
The bad guys can attack back, they just don’t do any damage and the player can’t die right now.
I need to show the losing screen when the player dies (and let the bad guys attack!) and create nested menus so the player has more options than just attack.
I was thinking of showing health bars, but I don’t think I have time for that right now. some health text is probably all I need. If there are any healing spells, I’ll need to allow the user to pick which ally to use it on. Right now you can only pick bad guys. That reminds me, I need to add allys into the game.
Whoohoo! After some play testing and adding a few bonuses I’m done and the game is posted.
It kind of looks like a real game. I’m proud of that. I did do stuff I would never normally do when programming, but finishing is more important than pretty code.
If people leave me some good feedback I might continue working on the game outside of the competition. But for now, I drink!
Overall I’m very happy with my game. Not because it’s the best game ever, but because I finished it and it’s playable. I even managed to cram in a bonus if you keep playing.
My original idea was a sort of rouge like where you moved between connected battle areas trying to kill everyone in the world. I was going to have rooms connected with single directional paths so I could add some puzzle element. The world would have had a set number of bad guys in the world + a set number of allies.
When you leveled, one of your allies would turn against you (you are trying to destroy the world so you can be alone.) and you would have a 1-on-1 fight with them. If you won, you got their power.
I spent a few hours on the game design. Then almost 7 hours trying to make the game over world in pure html/css/javascript. Unfortunatlly I kept running into issues and I didn’t have anything to show for it!
So 3pm Saturday I took my girl friend to work and sat in Starbucks (where she works) until 11:30pm working on the game. I decided to throw out the over view stuff and switch to ImpactJS for my game engine. I made a ToDo list that just focuced on making an old school RPG battle screen with the player on the left and the bad guys on the right.
The menu was hard coded, no matter what you picked, the player would attack. The bad guys could not attack you back. And the selector icon would jump around the screen. But it looked like a game.
My next focus was on letting the bad guys attack back and trying to make the menu system pull from a move list. The idea was that as you played new special abilities would be unlocked. With the global move list, the bad guys now could attack back. I gave everyone a strength property that is random and renamed attack to “Punch”. Now there was some variety between game plays.
You would die, a lot. But I always intended for you to have help from allies (that you would later kill.) I came to a turning point in the game design. I didn’t have enough time to create the over world (because I had to throw the old one out.) or add allies.
I let my girlfrind play test it and asked her which way I should go. She voted for allies, the game was just too hard without them.
I added text to show health, and removed the still non-working inventory option. I added two special moves, a kick that was just a plus to punch, and a round house kick that was an instant kill. I added in special points so you could go a kick 3 times, or one round house kick each game.
I had to redesign the main game loop so all allies would attack, then all bad guys. I also made it so bad guys will always attack allies before they attack you. Since my first ally is ice man, I added the Ice Beam special attack. Ice man always uses the Ice beam, bad guys still always punch.
I added winning and loosing screens and improved the background image. I ended up with 5 different backgrounds. Three of the stone dungions that are just colored differently, an ice room and a fire room.
The game was basically working. Everyone could attack and die. The player could win and loose. And randomly the game would lock up and throw a bunch of errors and crash.
I was quickly running out of time. So I decided to ignore the bug because it didn’t happen very often, and improve the bad guys. The new images where made and my cat was turned into a cat/xmas tree because, uh … because I said so, that’s why. (and cats are freakin hard!) With some play testing I reduced the number of allies down to one at a time (picked randomly) and changed the number of bad guys to be random between 2 and 4.
I made a quick title screen and threw up some story text. And the game was done!
Almost. I had two hours left. So I dove into the code to find that pesky crashing bug. When the bad guys had finished their turn, if there was only a single bad guy left on the screen, he could take a second turn without checking if the person he was attacking was still alive. If he attacked someone that was killed, the game would crash. Bug fixed.
I made last minute balance changes, and added in a played counter. I still had the Ice Blast and Fire Blast attacks in the game, but no way for the user to every get them. So I descided to use the play counter. If you play enough games, the powers will unlock and you will get more than one ally at once.
It’s been a long 48hrs. I’m glad it’s over, but I had a blast doing it. I’m hoping for some good feedback, if people generally like it, I might go back and try to add some of the dropped features after the judging.
Thanks for reading!
My partner and I are only about 6:30 hours into the mini dare and we have quite a bit done.
We have a player entity that is controlled by the arrow keys.
Two passive mobs, a pacer that walks between two defined points and a follower that will follow the player if he gets close.
An item-goal (for lack of a better term) that is the core of the puzzle mode. It can block your path until you have specific items and it can give you items. It can activate on collision or on action button.
A one way block that only lets the player move though in one direction.
The next step is building some levels and maybe making some graphics. If we get time we might even make is scary 😛
Over all, the development of this game went a lot quicker than my December entry. I had a partner and we knew pretty early on that we wanted a game that used the uncanny valley and time to create fear. Our design called for the people on each floor to slowly turn into … something else, while a darkness creeped around you, even starting to turn the player. A puzzle game with a time limit.
We used ImpactJS, JavaScript, Canvas, HTML5 to develop this game. I used it in December and really like the engine. It takes care of the details involved in a game engine while still giving me the source and power to bend it to my will. We ended up not changing anything with the engine it’s self and just focused on creating entities.
What went right:
The entity system worked really well with my partner. We split up the entities we thought we needed and we each developed them independently in our own little test level.
ImpactJS has a great level editor that let us quickly build some prototype levels. We realized that we wouldn’t have time to create the changing co-workers or even the dark cloud taking over the tower. We reduced the game to just a puzzle platformer.
What went wrong:
I over abstracted and complicated the puzzle logic. During the planning stage the idea was to create an itemGoal entity that could be configured to activate when the player has specific items in the inventory. It could block the player’s way or even give the player new inventory items. Sounds simple enough. But then we needed an entity that allows the player to only move though it in one direction (so you can jump up though an object and stand on the top.) So we made the itemGoal inherit from the oneWay entity so it could use that behaviour. But as we developed the actual level, setting up the configuration for each itemGoal was troublesome. Items started to become inconsistent, like filing cabinets that you can stand on in one level but not in the next level.
It would have been better to create specific entities for each item instead of a generic itemGoal. We ended up needing to do this anyway for some items like the door, grate, and fire. I’m sure there is some logic that could be in a base like checking the player’s inventory, but all that configuration only got in the way.
Overall
I think the game turned out pretty well. It’s better than my December entry and the programming only took about 12 hours. Creating the levels took another 12 hours but that includes creating the art. I think the game has promise so I’m going to refactor it and continue development.
Why am I crazy? Because I like to lose.
This year I’m planing on using Lua and Löve. I just started learning Lua last week and I’ve never used Löve before. This should be interesting!
I’m trying to gather a team. None of my possible teammates have used Lua before, and I might be the only one with game development experience. So it should be a good time!
This is my 3rd Ludum Dare and I’m a professional JavaScript developer. Thankfully Lua is a prototype language like JavaScript so I think I’ll be ok.
Edit
Good news, Dan Tripp is joining my team! Still waiting on one other team member and possibly an artist.
I created a Zwoptex template that lets you export spritesheets into a format you can use with Löve2D.
You can find it here.
Include the spriteSheet library:
SpriteSheet = require('SpriteSheet')
then load any sheets created in Zwoptex using the template with:
sheet = SpriteSheet:new('sprites')
Draw takes the name of a sprite (defined in Zwoptex) and the same parameters as love.graphics.draw
sheet:draw(name, x, y, r, sx, sy, ox, oy, kx, ky )
Manual method
You can ignore the helper object and just load the spritesheet manually
You just load the spritesheet with
local spriteSheet = require('sheet')
and then draw with
love.graphics.drawq( spriteSheet.image, spriteSheet.frames.green_ball.quad, 100, 300 )
I’m probably going to try my first metatable stuff and create a spritesheet object that makes it easer to draw the sprites.
All of my team members have dropped out, so I’m switching back to the Compo.
To help me learn lua and Löve2D, I wrote another template for Zwoptex that exports animation sheets.
The last one I wrote was just sprite sheets without animation. That one allowed you to draw as many sprites from the sheet as you want. This one is a animation sheet. So you tell it which frames belong to which animation, and it can play them. But it only plays a single animation at a time.
I use lua’s require to load the exported animation sheet. I believe that lua caches that value, so if you create a bunch of animations from the same export it will only load it once. If that’s the case then I shouldn’t need a new method that takes an existing sheet. I should probably run some tests, but I doubt I’ll have enough animations in the game to worry about it.
I might not have any animations in the game. It feels wrong to type that, but considering my limited art supply, it’s probably better to not focus on animations. It’s a nice touch, not a critical feature.
I got a small team together and we are ready to JAM! The plan is to make a puzzle game of some sort.

Monster Cupcakes
The same team that brought you Kittyzilla is back! And we are even less prepared than we where last time! Are we going to use ImpactJS again? Maybe Phaser? Or how about just some HTML/CSS/JavaScript? Who knows!
Last year we picked ImpactJS early on and it turned out great. This year we are waiting for the start to pick our tech. We know one thing for sure, it will be written in JavaScript.
Why the indecision? Are we just lazy and unprepared? Well yes, but also we’ve been thinking about different types of gameplay. Side scrollers are great, but so are click adventures. This year we are waiting until we come up with our idea, then we will pick a tech that matches.
Goal for this dare is to have sound! We’ve never had sound in our games before. Mostly because a lot of us play games with the sound off, so we sorta forget about it. This dare will be the change, we are going to figure out sound gosh darn-it!
Good luck everyone! We are excited to play all the amazing games everyone develops!
We have a brand new team of five people, all developers! We are using Unity, which none of us have used before. Are plan is to make some sort of music game, or find some way we can each make our own level and when we bring it all together it resembles a game. :D