{"author_name":"kreddor","cat":"LD #26","comments":[],"epoch":1367232420,"likes":2,"metadata":{"p_key":"43282","p_author":"kreddor","p_authorkey":"20476","p_urlkey":"78918","p_title":"Mini Circle Wars post mortem","p_cat":"LD #26","p_event":"LD26","p_time":"1367232420","p_likes":"2","p_comments":"0","p_status":"UPD5","us_key":"20476","us_name":"kreddor","us_username":"kreddor","event_start":"1366934400","event_key":"16","event_name":"LD26"},"text":"<p>This Ludum Dare has been a triumf for me personally, being the first time I\u2019ve participated in a game jam. I never would have guessed how much is possible in less than 48 hours when you put your mind to it, and the community is fantastic. I will definitely make time for something like this again in the future.<\/p>\n <p>I ended doing a small game called <a title=\"Mini Circle Wars\" href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-26\/?action=preview&amp;uid=20476\">Mini Circle Wars<\/a>.<\/p>\n <p><strong>Theme: Minimalism<\/strong><br \/>\n I didn\u2019t like the theme initally. It didn\u2019t really spark my imagination and it seemed like a carte blanche to just do anything minimal and simple. But I quickly got an idea and started working on a minimal RTS with circles battling each other. So the gameplay is simple (build circle towers), the graphics is simple (circles in a handful of solid colors), only three sounds, and one game mode. I think it fits the theme well.<\/p>\n <p><strong>Gameplay<\/strong><br \/>\n It\u2019s sort of like a Tower Defense in survival mode where you are attacked from all sides until your base is destroyed. I like how you need to spread out your towers to extend the area you can build on, yet you need to keep towers close to each other to protect them.\u00a0Balancing the game turned out to be hard. I think I spent three hours going back and forth between \u201cthis game is too simple\u201d to \u201cthis game is too hard\u201d. I still don\u2019t think the balance is quite right, so I might fix that up in a post compo release.<\/p>\n <p>Other than that, I think it turned out quite well. I especially like how you can zoom in and out and watch your creation getting attacked.\u00a0Of course I can think of a lot of features that could be added in a future version, like more game modes, several difficulty levels, mission based instead of survival mode, more upgrade types, more interactive environment (like mining resource from circle rocks instead of just harvesting them out of thin air), and so on.<\/p>\n <p><strong>Tools<\/strong><br \/>\n Picking Java and IntelliJ was a no-brainer for me, since I\u2019m pretty fluent in Java (having used it since 2002 for various projects), and IntelliJ is so much nicer than Eclipse for general development. It\u2019s not necesarily the best prototyping environment (I\u2019m considering learning Lua for that purpose), but developing in Java is pretty fast if you now the language and your tools. Libgdx is also a really great framework that supports plenty of platforms. The only other tools I used was Aseprite for &#8230; well, mixing colors, and bfxr for the three ingame sounds. That\u2019s it! And the GWT-version of the game is compiled in Eclipse since I never have gotten that to work in IntelliJ with libgdx <img src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/simple-smile.png\" alt=\":)\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/><\/p>\n <p><strong>Implementation<\/strong><br \/>\n I\u2019m actually quite happy with my code quality. It\u2019s nice and clean and I can still find my way through it the day after. Not so sure about the overall architecture, since it\u2019s neither MWC or anything else I know. It kinda just evolved dynamically while I made the game. It might need some refactoring if the project is to be extended.<\/p>\n <p>I\u2019m not nearly as happy with my rendering code, since it\u2019s a mix of libgdx\u2019s SpriteBatch and ShapeRenderer. One for text and one for interface and circles. They don\u2019t mix that well since you have to end the SpriteBatch before issuing shapes with the ShapeRenderer and vice versa. I assume the ShapeRenderer is really meant for debugging mainly and not actual ingame graphics. But hey, it works <img src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/simple-smile.png\" alt=\":)\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/><\/p>\n <p>Some of my basic helper classes resemble stuff\u00a0I&#8217;ve\u00a0made earlier, so I\u2019ll most likely create a small library from them for future use. Just basic stuff like Timer, Animation, and asset loading classes that fits my workflow.<\/p>\n <p><strong>What went right<\/strong><\/p>\n <ul>\n <li>I made a game. Succes! \ud83d\ude00<\/li>\n <li>Tools and frameworks just worked. I\u2019m glad I didn\u2019t try to learn a new framework during the compo.<\/li>\n <li>I like the sounds in the game, they fit well. Should have made some more.<\/li>\n <li>Good code quality I think. The architecture might need some refactoring.<\/li>\n <\/ul>\n <p><strong>What went wrong<\/strong><\/p>\n <ul>\n <li>I would have liked to spend more time on the visual part of the game, but didn\u2019t really have time for it.<\/li>\n <li>Working past midnight on Saturday was a mistake. I didn\u2019t really make much progress in the last 2-3 hours before sleep and was quite tired the next day.<\/li>\n <li>I underestimated the process of balancing the game.<\/li>\n <li>I spent entirely too much time thinking about pathfinding until I realised that the game AI didn\u2019t really need it after all.<\/li>\n <\/ul>\n <p>That&#8217;s all I can think of now. I&#8217;ve uploaded a timelapse video here:\u00a0<a href=\"http:\/\/www.youtube.com\/watch?v=xJ4yL3SKeXI\">http:\/\/www.youtube.com\/watch?v=xJ4yL3SKeXI<\/a><\/p>\n \n <p>Tags: <a href=\"http:\/\/ludumdare.com\/compo\/tag\/post-mortem\/\" rel=\"tag\">post-mortem<\/a><\/p>","time":"April 29th, 2013 5:47 am","title":"Mini Circle Wars post mortem"}