{"assets":[{"original":"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/08\/ChariotBattleArena-550x306.png","local":"\/data\/posts\/2016\/08\/1a322a64ebc17bb17e3d3a71831ee9e3.png"}],"author_link":"author\/kayz\/","author_name":"KayZ","cat":"LD #36","categories":["LD #36"],"comments":[],"epoch":1472469060,"event":"LD36","likes":4,"metadata":{"p_key":"85220","p_author":"KayZ","p_authorkey":"0","p_urlkey":"295981","p_title":"Post Mortem: Chariot Arena Battle","p_cat":"LD #36","p_event":"LD36","p_time":"1472469060","p_likes":"4","p_comments":"0","p_status":"WAYBACK","us_key":null,"us_name":null,"us_username":null,"event_start":"1472169600","event_key":"35","event_name":"LD36"},"source_url":"2016\/08\/29\/post-mortem-chariot-arena-battle\/","text":"<p>First, my current game: <a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-36\/?action=preview&amp;uid=17933\">Chariot Arena Battle<\/a><\/p>\n<p><a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-36\/?action=preview&amp;uid=17933\"><img alt=\"ChariotBattleArena\" class=\"aligncenter size-large wp-image-578665\" height=\"306\" sizes=\"(max-width: 550px) 100vw, 550px\" src=\"\/data\/posts\/2016\/08\/1a322a64ebc17bb17e3d3a71831ee9e3.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/08\/ChariotBattleArena-300x167.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/08\/ChariotBattleArena-768x427.png 768w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/08\/ChariotBattleArena-550x306.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/08\/ChariotBattleArena.png 900w\" width=\"550\"\/><\/a><\/p>\n<p>With every game I submit to a Ludum Dare competition I try to learn something new. This time I wanted to create a multiplayer game. In retrospective, I\u2019ve learned the following things so far:<\/p>\n<ul>\n<li><strong>LD25 \u2013 Lasershark<\/strong> \u2013 Never made a game in 48 hours before. It\u2019s not easy to finish a game in 48 hours. I did not succeed.<\/li>\n<li><strong><a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-26\/?action=preview&amp;uid=17933\">LD26 \u2013 20 Seconds<\/a><\/strong> \u2013 Finish my first game in 48 hours. Success!! Simple graphics and simple mechanics. Simple collisions between rectangles and circles.<\/li>\n<li><strong><a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-27\/?action=preview&amp;uid=17933\">LD27 \u2013 Alien Attack<\/a><\/strong> \u2013 Collision detection with polygons<\/li>\n<li><strong><a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-28\/?action=preview&amp;uid=17933\">LD28 \u2013 Granny Loosethooth<\/a><\/strong> \u2013 Path finding. Not implemented correctly, but still working surprisingly good.<\/li>\n<li><strong><a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-29\/?action=preview&amp;uid=17933\">LD29 \u2013 Castle Engineer<\/a><\/strong> \u2013 Stupid \u201cAI\u201d. Not an AI at all.<\/li>\n<li><strong><a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-30\/?action=preview&amp;uid=17933\">LD30 \u2013 Opposing Worlds<\/a><\/strong> \u2013 A bit more intelligent computer enemies. Not what you\u2019d call an AI, but can be challenging. Also: first turn based strategy game for me.<\/li>\n<li><strong>LD31\/LD32<\/strong> \u2013 skipped. Participated in some other Game Jams, created my first game using WebGL<\/li>\n<li><strong><a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-33\/?action=preview&amp;uid=17933\">LD33 \u2013 (Idle?) Monster<\/a><\/strong> \u2013 took my newly learned WebGL-Skillz, threw them away and created a clicker\/idle game only using some HTML div-elements.<\/li>\n<li><strong><a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-34\/?action=preview&amp;uid=17933\">LD34 \u2013 Damacreat<\/a><\/strong> \u2013 created the most relaxing game using the worst controls ever. Added procedural generated background in a post compo version.<\/li>\n<li><strong>LD35 \u2013 failed<\/strong> \u2013 created some epilepsy inducing game. Did not want to publish. Didn\u2019t even have good\/working\/any game mechanics when the jam ended.<\/li>\n<li><strong><a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-36\/?action=preview&amp;uid=17933\">LD36 \u2013 Chariot Arena Battle<\/a><\/strong> \u2013 My current game. The pinnacle of evolution. A multiplayer game. My graphical skills never improved noticeably.<\/li>\n<\/ul>\n<p>I started this game jam with the goal to create my first multiplayer game. In preparation I created a simple server that I could use to pass messages between the clients (and posted the source in my \u201cI\u2019m in post\u201d). It was also the first Ludum Dare I did not start alone but joined some other jammers in their quest for fame and glory. I still did my game on my own and they created theirs (<a href=\"http:\/\/ludumdare.com\/compo\/author\/runvs\/\">runvs<\/a> with <a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-36\/?action=preview&amp;uid=29172\">Raiders of the Ancient Technology<\/a>).<\/p>\n<p>The jam starts Saturday at 3 AM at my location. I have some weird inner clock, that always wakes me at this time whenever a Ludum Dare starts. So I knew the theme, and combining it with my target of some multiplayer game I immediately thought about creating some game with catapults. I went to sleep again and when I woke up, I didn\u2019t like the idea anymore. Catapults are too slow.. that would be to boring. Then I thought about creating a game that\u2019s a mashup between Mario Cart and Trackmania using chariots. So that was what I was trying to do. At the end of the first day I didn\u2019t like that idea anymore, and turned it into what you can play now.<\/p>\n<p><strong>The bad things<\/strong><\/p>\n<ul>\n<li>I got lazy on my second day. I actually wanted to add some other enemies, so there would be something to do even if no other player connected.<\/li>\n<li>no sound<\/li>\n<li>no juice<\/li>\n<li>I tried to test my game online on the first day. It did not work, because the places where I usually publish my games all use HTTPS. If you use HTTPS, you also have to use a secure connection to other hosts. My websocket-server did not have any SSL certificates at all. Thank to <a href=\"https:\/\/letsencrypt.org\/\">Let\u2019s Encrypt<\/a> and a great <a href=\"https:\/\/api.dartlang.org\/stable\/1.19.0\/dart-io\/HttpServer-class.html#id_bindSecure\">dartdoc<\/a> I was able to set it up Sunday morning.<\/li>\n<li>I knew I\u2019d do this beforehand but still: I created a multiplayer game in a way you are not supposed to ever create a multiplayer game. All game logic is on the client, the server has no authority at all. Data is transmitted as strings (JSON) instead of binary data.<\/li>\n<\/ul>\n<p><strong>The good things<\/strong><\/p>\n<ul>\n<li>I actually finished a playable multiplayer game in less than 48 hours. (I worked on the game for approximately 20 hours).<\/li>\n<li>I\u2019ve got a server that supports HTTPS.<\/li>\n<li>I\u2019ve got a basic idea about how to synchronize player\/game state between multiple clients. It shouldn\u2019t be too hard to move the logic to the server. \u2013 This will be my next goal.<\/li>\n<li>A comment on my game gave me an idea for a post compo version. It might not be chariots anymore :).<\/li>\n<li>Last but not least: great self-made falafel wraps on my first day at <a href=\"http:\/\/ludumdare.com\/compo\/author\/runvs\/\">runvs<\/a>.<\/li>\n<\/ul>\n<p>And now I\u2019ll be online for approx. 2 hours in my game, so no player has to play alone.<\/p>\n<p><a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-36\/?action=preview&amp;uid=17933\">Join Chariot Arena Battle<\/a><\/p>\n<p>Come and join the fun. The more the merrier (I wanna see at what point my game can\u2019t handle any more players).<\/p>\n<p>Tags: <a href=\"http:\/\/ludumdare.com\/compo\/tag\/ld36-post-mortem\/\" rel=\"tag\">ld36 post mortem<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/multiplayer\/\" rel=\"tag\">multiplayer<\/a><\/p>","time":"August 29th, 2016 11:11 am","title":"Post Mortem: Chariot Arena Battle","title_was_empty":false}