{"author_link":"\/users\/killedbyapixel","author_name":"KilledByAPixel","author_uid":"killedbyapixel","comments":[],"epoch":1557265469,"event":"LD44","format":"md","ldjam_node_id":157039,"likes":7,"metadata":{"p_key":"132567","p_author":"KilledByAPixel","p_authorkey":"1003657","p_urlkey":"348761","p_title":"SPENDOTRON: 2019 - LD 44 Compo Postmortem","p_cat":"LDJam ","p_event":"LD44","p_time":"1557265469","p_likes":"7","p_comments":"0","p_status":"WAYBACK","us_key":"1003657","us_name":"KilledByAPixel","us_username":"killedbyapixel","event_start":"1556236800","event_key":"75","event_name":"LD 44"},"node":{"_collation":{"body_sanitizer":"TextUtils::SanitizeHTML via existing importer","event":"LD44","removed_author":false},"_superparent":139254,"_trust":1,"author":3657,"body":"The theme for Ludum Dare 44 was \u201cYour Life is Currency\u201d. This was my 9th Ludum Dare and first one using Javascript. It\u2019s been over 4 years since the last time I\u2019ve competed in a Ludum Dare so I\u2019m excited to get back into it. I think this is one of my best entries, a super difficult twin stick shooter demake of Robotron. \n\nhttps:\/\/www.youtube.com\/watch?v=rUmNFSKD5NU\n\n# Play and Rate... #\n\n## https:\/\/ldjam.com\/events\/ludum-dare\/44\/currency-wars ##\n\n# Postmortem #\n\nMy main goal going into this compo was to make a game in Javascript with sound effects using my sound effect maker [ZzFX](https:\/\/github.com\/KilledByAPixel\/ZzFX). I knew this would be a difficult Ludum Dare because it\u2019s been years since I\u2019ve done a 48 hour jam. On top of that I already bought tickets to see Avengers: Endgame on Saturday!\n\n## Friday \u2013 Concept ##\n\nThis Ludum Dare had a somewhat unusual theme: \u201cYour Life is Currency\u201d. I grappled with it for a while and scribbled down some ideas, here are a few\u2026\n\n- You are fire! Burn as much as possible without running out of fuel.\n- You are a space ship, manage your energy to stay alive.\n- You are a human, chose from options how to spend your life.\n- You are a dollar symbol, shoot pennies at the rival currencies.\n\nThat\u2019s about as far as I got the first night. I always find it impossible to start moving on an idea right away, usually the best ideas don\u2019t come until later.\n\n## Saturday \u2013 Core Gameplay ##\n\nI woke up with a decision made tried to hit the ground running. I had an interesting idea for the core mechanic that I wanted to experiment with. Trying something I haven\u2019t done before helps me get motivated. In a nutshell the idea is that shooting costs energy but kills give it back.\n\nThat mechanic implied a scoring system that is based on the money spent not the money owned, which seems weird at first. For example, if bullet costs 1 cent but a kill gives it back it sounds like a break even. The trick is that your score is money spent so every kill actually adds 1 cent to your total. The copyright symbols give the player a way to recover lost money and keep hope alive.\n\nI started by building on top of my JS1k game [\u201cQueen\u2019s Gambit\u201d](https:\/\/js1k.com\/2019-x\/demo\/4211). The code is so simple and small that I ended up just rewriting almost everything. Most of the tricks I used for JS1k actually make the code harder to work with. By late afternoon I had most of the rewrite done and the art switched over to a currency theme.\n\nI decided to sacrifice a few hours to see Avengers: Endgame on Saturday evening. I still don\u2019t regret it! After getting home from the movies I worked on getting the core gameplay implemented. Some things I added were: pickups, bitcoin movement AI, enemy wave spawning, quick art pass, quick sound pass, and other gameplay improvements. I went to sleep around midnight with a rough but functional first playable.\n\n![spend0.png](\/\/\/raw\/94e\/z\/24ba2.png)\n\n## Sunday \u2013 Polish ##\n\nBy Sunday morning I had a clear idea of what I wanted the game to be. I started by making a prioritized list of everything I wanted to do and just hammered through it all day. Here\u2019s the main tasks I did in chronological order\u2026\n\n- Screen Composition \u2013 Made play area smaller with a rectangle around it, and better organized how information is displayed.\n- Start Screen \u2013 Show how to play, enemies, controls and high score. This is a very important thing to make a game feel polished.\n- Wave spawning \u2013 Created a table of how many enemies of each type to spawn for each wave. Every 10 waves it cycles through with 50% more enemies. This helps each level feel different.\n- Spawn \u00a9 away from enemies and show ? when \u00a9 is killed.\n\u00a3 enemy \u2013 Themed as a Patent Troll that steals \u00a9 and turns them against you. Only appears every 5 waves which also have double \u00a9.\n- High Score \u2013 Important for replay value.\n- Visuals Pass \u2013 Color\/size adjustments, improved \u201cmoney pit\u201d display\n\nI also just spent a lot of time just balancing the game and improving small aspects of it. I\u2019ve played a ton of Robotron, so I tried to leverage that knowledge that as much as possible. Maybe I went too far because everyone says the game is too difficult. I am currently offering a $20 prize to the first person to get $20 in my game, so far I\u2019m the only one who has done it!\n\nAnother huge thing I added was the sound effects. For most previous game jams I\u2019ve used a tool like Bfxr, which is great. This time around I wanted to test out ZzFX, a tiny opensource javascript sound effect player that I made for JS1k.\n\nZzFX was super fast to iterate with, and in total I made 14 sound effects. There are some limitations though and finding the right sound can be tricky. After this experience I\u2019ve have some great ideas for the next version. Mainly I want to make a more feature rich tool less focused with code size but retaining the ability to quickly paste in sound effects.\n\n## Final Thoughts ##\n\nBeing able to iterate quickly is extremely important for short game jams. This was my first Ludum Dare using javascript and it is by far the fastest way to iterate that I\u2019ve found. Being able to play the game in browser without a lengthy download is just icing on the cake! It\u2019s safe to say that most of my future Ludum Dares will be done in javascript.\n\n[If you\u2019d like to see the code for my game, I made it available on Github.](https:\/\/github.com\/KilledByAPixel\/LudumDare44) \n\nThanks for reading, and have a great day!\n\n![spendotron3.gif](\/\/\/raw\/94e\/z\/24ba3.gif)","comments":0,"created":"2019-05-07T21:32:20Z","files":[],"files-timestamp":0,"id":157039,"love":7,"love-timestamp":"2019-05-08T10:59:09Z","meta":[],"modified":"2019-05-08T10:59:09Z","name":"SPENDOTRON: 2019 - LD 44 Compo Postmortem","node-timestamp":"2019-05-07T22:03:38Z","parent":145205,"parents":[1,5,9,139254,145205],"path":"\/events\/ludum-dare\/44\/currency-wars\/spendotron-2019-ld-44-compo-postmortem","published":"2019-05-07T21:44:29Z","scope":"public","slug":"spendotron-2019-ld-44-compo-postmortem","subsubtype":"","subtype":"","type":"post","version":473368},"node_metadata":{"n_key":"157039","n_urlkey":"348761","n_parent":"145205","n_path":"\/events\/ludum-dare\/44\/currency-wars\/spendotron-2019-ld-44-compo-postmortem","n_slug":"spendotron-2019-ld-44-compo-post","n_type":"post","n_subtype":"","n_subsubtype":"","n_author":"3657","n_created":"1557264740","n_modified":"1557313149","n_version":"473368","n_status":"WAYBACK"},"source_url":"https:\/\/ldjam.com\/events\/ludum-dare\/44\/currency-wars\/spendotron-2019-ld-44-compo-postmortem","text":"The theme for Ludum Dare 44 was \u201cYour Life is Currency\u201d. This was my 9th Ludum Dare and first one using Javascript. It\u2019s been over 4 years since the last time I\u2019ve competed in a Ludum Dare so I\u2019m excited to get back into it. I think this is one of my best entries, a super difficult twin stick shooter demake of Robotron. \n\nhttps:\/\/www.youtube.com\/watch?v=rUmNFSKD5NU\n\n# Play and Rate... #\n\n## https:\/\/ldjam.com\/events\/ludum-dare\/44\/currency-wars ##\n\n# Postmortem #\n\nMy main goal going into this compo was to make a game in Javascript with sound effects using my sound effect maker [ZzFX](https:\/\/github.com\/KilledByAPixel\/ZzFX). I knew this would be a difficult Ludum Dare because it\u2019s been years since I\u2019ve done a 48 hour jam. On top of that I already bought tickets to see Avengers: Endgame on Saturday!\n\n## Friday \u2013 Concept ##\n\nThis Ludum Dare had a somewhat unusual theme: \u201cYour Life is Currency\u201d. I grappled with it for a while and scribbled down some ideas, here are a few\u2026\n\n- You are fire! Burn as much as possible without running out of fuel.\n- You are a space ship, manage your energy to stay alive.\n- You are a human, chose from options how to spend your life.\n- You are a dollar symbol, shoot pennies at the rival currencies.\n\nThat\u2019s about as far as I got the first night. I always find it impossible to start moving on an idea right away, usually the best ideas don\u2019t come until later.\n\n## Saturday \u2013 Core Gameplay ##\n\nI woke up with a decision made tried to hit the ground running. I had an interesting idea for the core mechanic that I wanted to experiment with. Trying something I haven\u2019t done before helps me get motivated. In a nutshell the idea is that shooting costs energy but kills give it back.\n\nThat mechanic implied a scoring system that is based on the money spent not the money owned, which seems weird at first. For example, if bullet costs 1 cent but a kill gives it back it sounds like a break even. The trick is that your score is money spent so every kill actually adds 1 cent to your total. The copyright symbols give the player a way to recover lost money and keep hope alive.\n\nI started by building on top of my JS1k game [\u201cQueen\u2019s Gambit\u201d](https:\/\/js1k.com\/2019-x\/demo\/4211). The code is so simple and small that I ended up just rewriting almost everything. Most of the tricks I used for JS1k actually make the code harder to work with. By late afternoon I had most of the rewrite done and the art switched over to a currency theme.\n\nI decided to sacrifice a few hours to see Avengers: Endgame on Saturday evening. I still don\u2019t regret it! After getting home from the movies I worked on getting the core gameplay implemented. Some things I added were: pickups, bitcoin movement AI, enemy wave spawning, quick art pass, quick sound pass, and other gameplay improvements. I went to sleep around midnight with a rough but functional first playable.\n\n![spend0.png](\/\/\/raw\/94e\/z\/24ba2.png)\n\n## Sunday \u2013 Polish ##\n\nBy Sunday morning I had a clear idea of what I wanted the game to be. I started by making a prioritized list of everything I wanted to do and just hammered through it all day. Here\u2019s the main tasks I did in chronological order\u2026\n\n- Screen Composition \u2013 Made play area smaller with a rectangle around it, and better organized how information is displayed.\n- Start Screen \u2013 Show how to play, enemies, controls and high score. This is a very important thing to make a game feel polished.\n- Wave spawning \u2013 Created a table of how many enemies of each type to spawn for each wave. Every 10 waves it cycles through with 50% more enemies. This helps each level feel different.\n- Spawn \u00a9 away from enemies and show ? when \u00a9 is killed.\n\u00a3 enemy \u2013 Themed as a Patent Troll that steals \u00a9 and turns them against you. Only appears every 5 waves which also have double \u00a9.\n- High Score \u2013 Important for replay value.\n- Visuals Pass \u2013 Color\/size adjustments, improved \u201cmoney pit\u201d display\n\nI also just spent a lot of time just balancing the game and improving small aspects of it. I\u2019ve played a ton of Robotron, so I tried to leverage that knowledge that as much as possible. Maybe I went too far because everyone says the game is too difficult. I am currently offering a $20 prize to the first person to get $20 in my game, so far I\u2019m the only one who has done it!\n\nAnother huge thing I added was the sound effects. For most previous game jams I\u2019ve used a tool like Bfxr, which is great. This time around I wanted to test out ZzFX, a tiny opensource javascript sound effect player that I made for JS1k.\n\nZzFX was super fast to iterate with, and in total I made 14 sound effects. There are some limitations though and finding the right sound can be tricky. After this experience I\u2019ve have some great ideas for the next version. Mainly I want to make a more feature rich tool less focused with code size but retaining the ability to quickly paste in sound effects.\n\n## Final Thoughts ##\n\nBeing able to iterate quickly is extremely important for short game jams. This was my first Ludum Dare using javascript and it is by far the fastest way to iterate that I\u2019ve found. Being able to play the game in browser without a lengthy download is just icing on the cake! It\u2019s safe to say that most of my future Ludum Dares will be done in javascript.\n\n[If you\u2019d like to see the code for my game, I made it available on Github.](https:\/\/github.com\/KilledByAPixel\/LudumDare44) \n\nThanks for reading, and have a great day!\n\n![spendotron3.gif](\/\/\/raw\/94e\/z\/24ba3.gif)","title":"SPENDOTRON: 2019 - LD 44 Compo Postmortem","wayback_source":[]}