{"author_link":"\/users\/jezzamon","author_name":"Jezzamon","author_uid":"jezzamon","comments":[],"epoch":1504056222,"event":"LD39","format":"md","ldjam_node_id":49357,"likes":13,"metadata":{"p_key":"101070","p_author":"Jezzamon","p_authorkey":"1000095","p_urlkey":"316780","p_title":"Wow! Compo 1st overall! :O","p_cat":"LDJam ","p_event":"LD39","p_time":"1504056222","p_likes":"13","p_comments":"0","p_status":"WAYBACK","us_key":"1000095","us_name":"Jezzamon","us_username":"jezzamon","event_start":"1501200000","event_key":"74","event_name":"LD 39"},"node":{"_collation":{"body_sanitizer":"TextUtils::SanitizeHTML via existing importer","event":"LD39","removed_author":false},"_superparent":32802,"_trust":12,"author":95,"body":"![happy.gif](\/\/\/raw\/f5\/z\/9068.gif)\n\nThanks guys!\n\nI\u2019m fairly surprised! I was coming off two very late nights (working on the [Ludum Dare site](https:\/\/github.com\/ludumdare\/ludumdare\/pull\/1076) actually!) and then during the competition I spent a surprisingly large time napping and procrastinating with Splatoon. I guess the game was fun enough for people to like it! And also, I probably got a lucky fraction of votes :stuck_out_tongue:\n\nSome more specific thanks:\n- [@jasonp_](https:\/\/twitter.com\/jasonp_), who made a game called microgue. It uses a similar turn-based mechanic where you move onto squares to defeat enemies. You can check out that game on the [app store](https:\/\/itunes.apple.com\/us\/app\/microgue\/id879057314?mt=8) or [Google play](https:\/\/play.google.com\/store\/apps\/details?id=air.com.forestmoongames.microguead&hl=en).\n- [@managore](https:\/\/twitter.com\/managore), who made the [font](https:\/\/managore.itch.io\/m3x6) I used in the game. And by not entering this time, you left a gap for me to fill :stuck_out_tongue:\n- The folks hanging around the IRC who playtested my game during the compo! I... didn't jot down your names so I can't give specific shoutouts :grimacing: but you know who you are :)\n- All Ludum Darers! Ludum Dare isn\u2019t about winning imo, it\u2019s about learning and improving on your game making skills, and making really cool stuff! Congrats on making something (even if you didn\u2019t finish) :raised_hands: and be sure to check out the other top scoring games!\n\nIf you haven't played it, you can [**play VUEL here**](https:\/\/ldjam.com\/events\/ludum-dare\/39\/vuel)!\n\nHere\u2019s a quick tutorial-like explanation of some parts of the game as a thank you back to the Ludum Dare community!\n\n### Animation\nAll the animations are three frames. It\u2019s a simple \u2018bounce\u2019 style animation. One \u2018rest\u2019 frame, then a squished frame, which is anticipation for the next frame, which is the popping up frame. Then back to the rest frame. Quick way to make animations when you don\u2019t have much time (or skill haha).\n\n![anim_explain.gif](\/\/\/raw\/f5\/z\/9069.gif)\n\n### Level Generation\nThe game is played on an infinite 2D grid. The way I programmed this was to have a 2D array that grows when you get near the edge. To stop it from getting *huge* I split it into pieces of 10x10 tiles. Whenever you get close enough to part of the grid you haven\u2019t seen, it adds a new piece, and if needs be increases the 2D array. This way you can have really big maps, where you only generate stuff as you need to. Otherwise the game would face some serious memory issues.\n\n![level.gif](\/\/\/raw\/f5\/z\/906a.gif)\n\nThe random level generation is dead simple. Each tile has a 15% chance of being a gap. Then all the squares that aren\u2019t gaps have 5% chance of having an enemy on them, although that percentage chance gets higher the further away you are.\n\nTo pick what enemy appears, there\u2019s a few lists that it picks an enemy from. To start off, it\u2019s just simple enemies and batteries, and later on, trickier enemies become more likely. A quick way to balance the probabilities is to repeat things in the list, which makes them more likely compared to the others.\n\n![chances.png](\/\/\/raw\/f5\/z\/906b.png)\n\n### AI\nThe AI for the enemies is really simple. They each have an set of moves they can make (an array of [x, y] pairs). Each enemy looks at all the moves they can make (loops through that array), and then calculates the distance to the player, and picks the move that puts them the closest. There\u2019s no way I was programming a proper pathfinding algorithm in a game jam :stuck_out_tongue:. The real important thing is that they\u2019re predictable, which is useful for planning your moves ahead. Also, having the array of moves meant it was very easy to add new enemies, and program unlockable movesets just as the compo was ending.\n\nAll the code is on [Github](https:\/\/github.com\/Jezzamonn\/VUEL) if you want to check it out :smiley: Or you can just [play it](https:\/\/ldjam.com\/events\/ludum-dare\/39\/vuel) too.\n\nSee you next LD!\n\n---\n\nP.S. My twitter is [@jezzamonn](https:\/\/twitter.com\/jezzamonn) :wink:","comments":0,"created":"2017-08-29T03:16:48Z","files":[],"files-timestamp":0,"id":49357,"love":13,"love-timestamp":"2017-09-01T16:13:35Z","meta":[],"modified":"2017-09-01T16:13:35Z","name":"Wow! Compo 1st overall! :O","node-timestamp":"2017-08-30T01:24:33Z","parent":42645,"parents":[1,5,9,32802,42645],"path":"\/events\/ludum-dare\/39\/vuel\/wow-compo-1st-overall-o","published":"2017-08-30T01:23:42Z","scope":"public","slug":"wow-compo-1st-overall-o","subsubtype":"","subtype":"","type":"post","version":141991},"node_metadata":{"n_key":"49357","n_urlkey":"316780","n_parent":"42645","n_path":"\/events\/ludum-dare\/39\/vuel\/wow-compo-1st-overall-o","n_slug":"wow-compo-1st-overall-o","n_type":"post","n_subtype":"","n_subsubtype":"","n_author":"95","n_created":"1503976608","n_modified":"1504282415","n_version":"141991","n_status":"WAYBACK"},"source_url":"https:\/\/ldjam.com\/events\/ludum-dare\/39\/vuel\/wow-compo-1st-overall-o","text":"![happy.gif](\/\/\/raw\/f5\/z\/9068.gif)\n\nThanks guys!\n\nI\u2019m fairly surprised! I was coming off two very late nights (working on the [Ludum Dare site](https:\/\/github.com\/ludumdare\/ludumdare\/pull\/1076) actually!) and then during the competition I spent a surprisingly large time napping and procrastinating with Splatoon. I guess the game was fun enough for people to like it! And also, I probably got a lucky fraction of votes :stuck_out_tongue:\n\nSome more specific thanks:\n- [@jasonp_](https:\/\/twitter.com\/jasonp_), who made a game called microgue. It uses a similar turn-based mechanic where you move onto squares to defeat enemies. You can check out that game on the [app store](https:\/\/itunes.apple.com\/us\/app\/microgue\/id879057314?mt=8) or [Google play](https:\/\/play.google.com\/store\/apps\/details?id=air.com.forestmoongames.microguead&hl=en).\n- [@managore](https:\/\/twitter.com\/managore), who made the [font](https:\/\/managore.itch.io\/m3x6) I used in the game. And by not entering this time, you left a gap for me to fill :stuck_out_tongue:\n- The folks hanging around the IRC who playtested my game during the compo! I... didn't jot down your names so I can't give specific shoutouts :grimacing: but you know who you are :)\n- All Ludum Darers! Ludum Dare isn\u2019t about winning imo, it\u2019s about learning and improving on your game making skills, and making really cool stuff! Congrats on making something (even if you didn\u2019t finish) :raised_hands: and be sure to check out the other top scoring games!\n\nIf you haven't played it, you can [**play VUEL here**](https:\/\/ldjam.com\/events\/ludum-dare\/39\/vuel)!\n\nHere\u2019s a quick tutorial-like explanation of some parts of the game as a thank you back to the Ludum Dare community!\n\n### Animation\nAll the animations are three frames. It\u2019s a simple \u2018bounce\u2019 style animation. One \u2018rest\u2019 frame, then a squished frame, which is anticipation for the next frame, which is the popping up frame. Then back to the rest frame. Quick way to make animations when you don\u2019t have much time (or skill haha).\n\n![anim_explain.gif](\/\/\/raw\/f5\/z\/9069.gif)\n\n### Level Generation\nThe game is played on an infinite 2D grid. The way I programmed this was to have a 2D array that grows when you get near the edge. To stop it from getting *huge* I split it into pieces of 10x10 tiles. Whenever you get close enough to part of the grid you haven\u2019t seen, it adds a new piece, and if needs be increases the 2D array. This way you can have really big maps, where you only generate stuff as you need to. Otherwise the game would face some serious memory issues.\n\n![level.gif](\/\/\/raw\/f5\/z\/906a.gif)\n\nThe random level generation is dead simple. Each tile has a 15% chance of being a gap. Then all the squares that aren\u2019t gaps have 5% chance of having an enemy on them, although that percentage chance gets higher the further away you are.\n\nTo pick what enemy appears, there\u2019s a few lists that it picks an enemy from. To start off, it\u2019s just simple enemies and batteries, and later on, trickier enemies become more likely. A quick way to balance the probabilities is to repeat things in the list, which makes them more likely compared to the others.\n\n![chances.png](\/\/\/raw\/f5\/z\/906b.png)\n\n### AI\nThe AI for the enemies is really simple. They each have an set of moves they can make (an array of [x, y] pairs). Each enemy looks at all the moves they can make (loops through that array), and then calculates the distance to the player, and picks the move that puts them the closest. There\u2019s no way I was programming a proper pathfinding algorithm in a game jam :stuck_out_tongue:. The real important thing is that they\u2019re predictable, which is useful for planning your moves ahead. Also, having the array of moves meant it was very easy to add new enemies, and program unlockable movesets just as the compo was ending.\n\nAll the code is on [Github](https:\/\/github.com\/Jezzamonn\/VUEL) if you want to check it out :smiley: Or you can just [play it](https:\/\/ldjam.com\/events\/ludum-dare\/39\/vuel) too.\n\nSee you next LD!\n\n---\n\nP.S. My twitter is [@jezzamonn](https:\/\/twitter.com\/jezzamonn) :wink:","title":"Wow! Compo 1st overall! :O","wayback_source":[]}