Last weekend I took part in Ludum Dare game development compo. I've been jealous to Jetro for a long time because he always manages to make something great in these compos. So I took the time and bit the bullet myself.
The game I made for the compo is called Gingerbread Kingdom, it is kind of a mix between Carcassonne, Tower Defence and Rampart.
I set a couple of constraints to myself before I started: 1) Simple, 2) 2D Game, 3) written in Javascript. I often manage my daily work using disposable prioritized todo lists (Babauta style), and I often doodle pictures to set myself longer term goals. The castle and the giant in the above picture is the one that kept me going in the Ludum Dare concept (even if giants turned into birds later on). I had the idea of using the Carcassonne tiles from get go. When I saw the last theme voting, it was quite clear that it would fit in any of the ideas.
One tile placement was working and I could detect the castles, it was time for some enemies. At this point the world was still infinite and I struggled to figure out a way to spawn enemies from any direction without making the game too frustrating. In the spirit of getting things done, I just made them always spawn from right, and afte I had implemented the first version, I did not see any reason to make it more elaborate.
Once I got the basic conflict set up, the hardest part of the project started: balancing. This was around the evening of the first day, and I was getting a bit worn out already. And boy was it hard! The game was not fun, it was unbalanced, unfair, buggy and I just had to keep on going to play it.
To get past that stage, I kept writing tiny lists of things that needs fixing, and fixed them and moved on. After some passes I started to see a game emerging, and it was time to start pruning things. The biggest change for me was to shrink the playfield. When I got the idea to use the Carcassonne tiles, I wanted to solve the Carcassonne problem that you run out of table. It took me more time than necessary to let go of that idea.
It has historically been really hard for me to design game endings. I can kinda make ok-ish failure conditions, but defining the point where you have won a game is just somehow out of my character. For example my earlier game Zen Bondage did not have game ending at all, you just had to decide that you're done. I kinda got away with it with the Buddhist theme there :)
So when I finished my "all nighter" around 2 am the first day, I had my basic game done.
The next day I concentrated on making game ending, and making the game more understandable. My design philosophy is: use less energy to decode more information. Usually this require rounds of user testing, and reworking things. This phase usually includes adding some kind of indication to all meaningful state transitions in the game.
My favorite tools for these indicators are particle systems and procedural animations. I think the 1.5 hours I spent on making that procedurally animated bird was well worth it. I wish I had had another 1.5 hours to spend on making a simple particle system, which I could have sprinkled all over the place.
I left the winning condition to very last stage of the project. I generally hate boss battles, so that was yet another mental struggle to get through. I'm glad my fiancee insisted on having a boss fight in the end :) Once I had it implemented, I had a stream of other ideas how to make the overal progress better, but no time.
The ideas that spawned the day after when I saw people actually play the game were:
- make tile rotation instructions in bigger, bolder, blinkier and fancier text
- no scrolling, make the gamefield fit on screen
- add level of increasing difficulty
- could be procedurally generated
- ramp up difficulty based on enemies and terrain (water tiles)
- better indication which tiles are ready to fire
- lasers!
All in all I think it was a great project. the biggest lessons were that it is really hard to balance a game system when you're really tired. It turned out to be equally nasty to find bugs in dynamic language, especially refactoring was something was huuge pain. Next time I'll set up closure compiler from the start. I'm most proud that I was able to keep it simple and finish the game.
Super game - I just played it through (right to the end!)
ReplyDeleteI liked the scrolling - it makes you feel you've made some progress, without making stuff too small to see.
Excellent game and execution! Just played it through once, except the big huge bird just cleared everything. :) I didn't first even realize that the playfield was scrollable, so indeed it could be a good idea to remove scrolling.
ReplyDeleteNice Information Provided on Unity Game Development Training. Here's more on Game Development
ReplyDeletegoogle 1544
ReplyDeletegoogle 1545
google 1546
google 1547
google 1548
google 4475
ReplyDeletegoogle 4476
google 4477
google 4478
google 4479
google 1629
ReplyDeletegoogle 1630
google 1631
google 1632
google 1633
Termite Treatment in Pune
ReplyDeleteRodent Control Services in Pune
Bedbug Control Services in Pune
Mosquito Control Services in Pune
Pest Control services in Pune
Best Pest Control services in Pune
ReplyDeletePest control service is the necessity or authority of a diversity clarified as a pest, a member of the aspect kingdom that affects adversely on humans actions like lizard ants, rats, cockroaches, and silverfish encounter the medication. You may see a development in pest activity. This is natural as the pests are being grown from your usual hiding areas.
PCHelpSoft Driver Updater Crack
ReplyDeleteCrackadvise
MakeMKV Crack
Good Work New 2022 Post And Very Nice Blog Thanks For Sharing
Advanced SystemCare Ultimate Crack
Adobe Acrobat Pro DC Crack
WinZip Pro Crack
Crackadvise
wood borer management services-
ReplyDeletepre anti termite treatment in pune
pest control services in pune
cockroach Control Service in Pune and night service for pest control according to your convenience. Positron Pest Control aimed at achieving a clean, hygienic and comfortable living environment.
ReplyDelete