{"author_link":"\/users\/jeremy-ryan","author_name":"Jeremy Ryan","author_uid":"jeremy-ryan","comments":[],"epoch":1714884835,"event":"LD55","format":"md","ldjam_node_id":395096,"likes":11,"metadata":{"p_key":"206873","p_author":"Jeremy Ryan","p_authorkey":"1015034","p_urlkey":"443412","p_title":"Tiny Summons Post-Mortem (and Fan Art!)","p_cat":"LDJam ","p_event":"LD55","p_time":"1714884835","p_likes":"11","p_comments":"0","p_status":"WAYBACK","us_key":"1015034","us_name":"Jeremy Ryan","us_username":"jeremy-ryan","event_start":"1712966400","event_key":"120","event_name":"Ludum Dare 55"},"node":{"_collation":{"body_sanitizer":"TextUtils::SanitizeHTML via existing importer","event":"LD55","removed_author":false},"_superparent":383062,"_trust":14,"author":15034,"body":"Lets start with the fan art! I drew a doodle of a character from every game I played this event:\n\n![everybody.gif](\/\/\/raw\/aba\/3\/z\/65009.gif)\n\nFeaturing:\n- [Midnight Cheese Quest](https:\/\/ldjam.com\/events\/ludum-dare\/55\/midnight-cheese-quest) by @archaeognathus\n- [Demon Delivery Center](https:\/\/ldjam.com\/events\/ludum-dare\/55\/demon-delivery-center) by @yanakill-lullanita, @rocio-michi-ojeda, @emiliano-martel, @alexasl, @malcontento, @nicol3, @rodrijsolar, @briansuhit, @sofisofix, @franco-farallo\n- [Void Beast](https:\/\/ldjam.com\/events\/ludum-dare\/55\/beast-from-the-void) by @azure-drake\n- [Ancistroides Folus](https:\/\/ldjam.com\/events\/ludum-dare\/55\/ancistroides-folus) by @othervoyceowl, @retcongreg, @soundgnome\n- [To do magic, please dance](https:\/\/ldjam.com\/events\/ludum-dare\/55\/to-do-magic-please-dance) by @syudzius, @owly, @shishandr, @yngvarr\n- [Throes of the Javelin](https:\/\/ldjam.com\/events\/ludum-dare\/55\/throes-of-the-javelin) by @idan9000, @justin-ma-wav, @skransow, @matterlinx\n- [Raising the Bread](https:\/\/ldjam.com\/events\/ludum-dare\/55\/raising-the-bread) by @exteegi, @kevin-joseph, @fengfuru, @olsonexi, @zuhairghias\n- [Demon Well](https:\/\/ldjam.com\/events\/ludum-dare\/55\/demon-well) by @100th-coin\n- [Druid Island](https:\/\/ldjam.com\/events\/ludum-dare\/55\/druid-island) by @bwalter\n- [Summoning Song](https:\/\/ldjam.com\/events\/ludum-dare\/55\/summoning-song) by @paul-nadan\n- [Protect the Realm](https:\/\/ldjam.com\/events\/ludum-dare\/55\/protect-the-realm) by @nnnnneeeedddd \n- [Stars Align](https:\/\/ldjam.com\/events\/ludum-dare\/55\/stars-align) by @cassowary\n- [Tiny Summons](https:\/\/ldjam.com\/events\/ludum-dare\/55\/tiny-summons) by me\n\nCongrats to everybody here! Lots of great entries this time around, and as always, I wish I had the time to play more (but it certainly goes slower when you're drawing everybody).\n\nOnto the post-mortem!\n\n![frog_banner.png](\/\/\/raw\/aba\/3\/z\/6500b.png)\n\n# Choosing an idea\n\n## The theme always sucks\n\nThe night of the theme reveal for \"Summoning,\" I was not finding a lot of inspiration. After some brewing, I didn't have a lot of ideas, but I did have a goal:\n\n- **The core gameplay should be the summoning.** I didn't want to tack summoning as a mechanic onto a game where you're primarily shooting, or racing, or platforming. The core gameplay should be around choosing what to summon, or how.\n\nUltimately, I went to sleep on Friday without a firm direction.\n\nWhen I woke up, I decided to make a multiplayer Twitch-plays auto-battler.\n\n## Multiplayer isn't that bad, right?\n\nSo normally, it would be.\n\n![networking.png](\/\/\/raw\/aba\/3\/z\/65011.png)\n\nOn game jam timelines, networked multiplayer is really tough. For a relatively simple game, you usually need:\n- **A dedicated server** to run the game logic on\n- **The client code** that shows your graphics to the player, which you somehow need to keep in sync with the other clients\n- A way to **get the information** from each client to the server, and then out to the other clients\n- If you don't want the game to be super laggy and unresponsive, some kind of literal time travel so the client can anticipate what it thinks the game will be like before running it past the server\n\nFortunately, I had a strategy that would require much less work for me. And that is to let the fine programmers at Twitch.tv write my networking stack for me.\n\n![twitch.png](\/\/\/raw\/aba\/3\/z\/6500f.png)\n\nBy making my game a **Twitch plays**, I can get a lot for free.\n\n- The game can play an **arbitrary number of players**\n- Players can play **on a variety of devices**\n- There is **one authoritative game state** (the video stream) so multiple clients don't need to stay in sync\n- Best of all, I **only need to program one \"direction\"** of information flow (reading chat messages). The streaming platform handles getting the game to the players!\n\nEven better, I had some base code from my [Github Game Off entry](https:\/\/plasmastarfish.itch.io\/launch-party) a few years ago to jumpstart the process.\n\nIt does have some limitations:\n\n- Players can only use text commands\n- There's a several-second delay, so nothing can be realtime\n- Players can see everyone's chat messages, so no secret roles\/information\n\n![bun_banner.png](\/\/\/raw\/aba\/3\/z\/65012.png)\n\n# What went well\n\nLots of things!\n\n- **The visuals**: I'm happy with how the game looks this time, with the bouncy animations, clean UI, and cute character designs. For better or for worse, I tend to experiment with art and make games that look very different from one another, but this one \"worked.\"\n- **The Twitch integration**: Everything went smoothly with integrating the Twitch chat. I hosted the game in a Microsoft Azure VM (with some free sign-up computing credit) so it could run 24\/7 despite my spotty internet.\n\n![dragon_banner.png](\/\/\/raw\/aba\/3\/z\/65013.png)\n\n# What could have gone better\n\n- **The hosting:** I spent about five hours Saturday night setting up hosting with Digital Ocean, only to run into performance problems that I couldn't seem to fix. Only after wasting that time did I try to set up Azure, which took under an hour.\n- **The scope:** Partially due to wasting half of Saturday, and the extra programming overhead for the Twitch integration, I didn't get as much content into the game as I'd hoped. A few cut feature ideas include:\n  - Round modifiers that present more challenge or diversity\n  - Better feedback for chat commands, including showing who is on what team\n  - A more equitable way to split team funds, rather than first-come-first serve\n- **The enemy AI**: Due to an unfortunate radians-to-degrees math mixup, ranged units don't try to circle foes from a distance; they always try to go directly to their right (awkwardly giving the team that starts on the right an advantage).\n\n![bear_banner.png](\/\/\/raw\/aba\/3\/z\/65015.png)\n\n# Takeaways\n\nI'm very happy with my results this time around, including **3rd place in Graphics** and **3rd place in Innovation.** Thanks so much everybody who played my game, and to the additional support I've gotten from the streaming community in the form of random raids (almost always when I'm not actively in the stream!).\n\n![results_ld55.png](\/\/\/raw\/aba\/3\/z\/65017.png)\n\nSome takeaways from this event:\n\n### Try new things, but prepare to scope down\n\nI don't regret trying something different for this jam, and I liked the game I made. But particularly in the Compo, being ambitious in one area means making sacrifices in others. \n\n### For networking and integrations, do your setup before the jam\n\nI came partially prepared with some base code, but I probably should have been confident with a cloud hosting platform if I wanted to do this for a 48-hour jam. Even an hour of extra setup you could have done beforehand is painful when it's 2% of your jam window.\n\n### Study frog anatomy\n\n![frog_nice.png](\/\/\/raw\/aba\/3\/z\/65014.png)\n\nEh, close enough.\n\nIf you still want to play [Tiny Summons](https:\/\/ldjam.com\/events\/ludum-dare\/55\/tiny-summons), do it soon! The 24\/7 stream will go down next Saturday before Microsoft decides to start charging me real money.\n\n## Here's to a great LD55, and an even better LD56 this October! \u2603\ufe0e","comments":2,"comments-timestamp":"2024-05-05T15:33:34Z","created":"2024-05-05T02:52:03Z","files":[],"files-timestamp":0,"id":395096,"love":11,"love-timestamp":"2024-07-30T07:41:30Z","meta":[],"modified":"2024-07-30T07:41:30Z","name":"Tiny Summons Post-Mortem (and Fan Art!)","node-timestamp":"2024-05-05T04:53:55Z","parent":383322,"parents":[1,5,9,383062,383322],"path":"\/events\/ludum-dare\/55\/tiny-summons\/tiny-summons-post-mortem-and-fan-art","published":"2024-05-05T04:53:55Z","scope":"public","slug":"tiny-summons-post-mortem-and-fan-art","subsubtype":"","subtype":"","type":"post","version":1238659},"node_metadata":{"n_key":"395096","n_urlkey":"443412","n_parent":"383322","n_path":"\/events\/ludum-dare\/55\/tiny-summons\/tiny-summons-post-mortem-and-fan-art","n_slug":"tiny-summons-post-mortem-and-fan","n_type":"post","n_subtype":"","n_subsubtype":"","n_author":"15034","n_created":"1714877523","n_modified":"1722325290","n_version":"1238659","n_status":"WAYBACK"},"source_url":"https:\/\/ldjam.com\/events\/ludum-dare\/55\/tiny-summons\/tiny-summons-post-mortem-and-fan-art","text":"Lets start with the fan art! I drew a doodle of a character from every game I played this event:\n\n![everybody.gif](\/\/\/raw\/aba\/3\/z\/65009.gif)\n\nFeaturing:\n- [Midnight Cheese Quest](https:\/\/ldjam.com\/events\/ludum-dare\/55\/midnight-cheese-quest) by @archaeognathus\n- [Demon Delivery Center](https:\/\/ldjam.com\/events\/ludum-dare\/55\/demon-delivery-center) by @yanakill-lullanita, @rocio-michi-ojeda, @emiliano-martel, @alexasl, @malcontento, @nicol3, @rodrijsolar, @briansuhit, @sofisofix, @franco-farallo\n- [Void Beast](https:\/\/ldjam.com\/events\/ludum-dare\/55\/beast-from-the-void) by @azure-drake\n- [Ancistroides Folus](https:\/\/ldjam.com\/events\/ludum-dare\/55\/ancistroides-folus) by @othervoyceowl, @retcongreg, @soundgnome\n- [To do magic, please dance](https:\/\/ldjam.com\/events\/ludum-dare\/55\/to-do-magic-please-dance) by @syudzius, @owly, @shishandr, @yngvarr\n- [Throes of the Javelin](https:\/\/ldjam.com\/events\/ludum-dare\/55\/throes-of-the-javelin) by @idan9000, @justin-ma-wav, @skransow, @matterlinx\n- [Raising the Bread](https:\/\/ldjam.com\/events\/ludum-dare\/55\/raising-the-bread) by @exteegi, @kevin-joseph, @fengfuru, @olsonexi, @zuhairghias\n- [Demon Well](https:\/\/ldjam.com\/events\/ludum-dare\/55\/demon-well) by @100th-coin\n- [Druid Island](https:\/\/ldjam.com\/events\/ludum-dare\/55\/druid-island) by @bwalter\n- [Summoning Song](https:\/\/ldjam.com\/events\/ludum-dare\/55\/summoning-song) by @paul-nadan\n- [Protect the Realm](https:\/\/ldjam.com\/events\/ludum-dare\/55\/protect-the-realm) by @nnnnneeeedddd \n- [Stars Align](https:\/\/ldjam.com\/events\/ludum-dare\/55\/stars-align) by @cassowary\n- [Tiny Summons](https:\/\/ldjam.com\/events\/ludum-dare\/55\/tiny-summons) by me\n\nCongrats to everybody here! Lots of great entries this time around, and as always, I wish I had the time to play more (but it certainly goes slower when you're drawing everybody).\n\nOnto the post-mortem!\n\n![frog_banner.png](\/\/\/raw\/aba\/3\/z\/6500b.png)\n\n# Choosing an idea\n\n## The theme always sucks\n\nThe night of the theme reveal for \"Summoning,\" I was not finding a lot of inspiration. After some brewing, I didn't have a lot of ideas, but I did have a goal:\n\n- **The core gameplay should be the summoning.** I didn't want to tack summoning as a mechanic onto a game where you're primarily shooting, or racing, or platforming. The core gameplay should be around choosing what to summon, or how.\n\nUltimately, I went to sleep on Friday without a firm direction.\n\nWhen I woke up, I decided to make a multiplayer Twitch-plays auto-battler.\n\n## Multiplayer isn't that bad, right?\n\nSo normally, it would be.\n\n![networking.png](\/\/\/raw\/aba\/3\/z\/65011.png)\n\nOn game jam timelines, networked multiplayer is really tough. For a relatively simple game, you usually need:\n- **A dedicated server** to run the game logic on\n- **The client code** that shows your graphics to the player, which you somehow need to keep in sync with the other clients\n- A way to **get the information** from each client to the server, and then out to the other clients\n- If you don't want the game to be super laggy and unresponsive, some kind of literal time travel so the client can anticipate what it thinks the game will be like before running it past the server\n\nFortunately, I had a strategy that would require much less work for me. And that is to let the fine programmers at Twitch.tv write my networking stack for me.\n\n![twitch.png](\/\/\/raw\/aba\/3\/z\/6500f.png)\n\nBy making my game a **Twitch plays**, I can get a lot for free.\n\n- The game can play an **arbitrary number of players**\n- Players can play **on a variety of devices**\n- There is **one authoritative game state** (the video stream) so multiple clients don't need to stay in sync\n- Best of all, I **only need to program one \"direction\"** of information flow (reading chat messages). The streaming platform handles getting the game to the players!\n\nEven better, I had some base code from my [Github Game Off entry](https:\/\/plasmastarfish.itch.io\/launch-party) a few years ago to jumpstart the process.\n\nIt does have some limitations:\n\n- Players can only use text commands\n- There's a several-second delay, so nothing can be realtime\n- Players can see everyone's chat messages, so no secret roles\/information\n\n![bun_banner.png](\/\/\/raw\/aba\/3\/z\/65012.png)\n\n# What went well\n\nLots of things!\n\n- **The visuals**: I'm happy with how the game looks this time, with the bouncy animations, clean UI, and cute character designs. For better or for worse, I tend to experiment with art and make games that look very different from one another, but this one \"worked.\"\n- **The Twitch integration**: Everything went smoothly with integrating the Twitch chat. I hosted the game in a Microsoft Azure VM (with some free sign-up computing credit) so it could run 24\/7 despite my spotty internet.\n\n![dragon_banner.png](\/\/\/raw\/aba\/3\/z\/65013.png)\n\n# What could have gone better\n\n- **The hosting:** I spent about five hours Saturday night setting up hosting with Digital Ocean, only to run into performance problems that I couldn't seem to fix. Only after wasting that time did I try to set up Azure, which took under an hour.\n- **The scope:** Partially due to wasting half of Saturday, and the extra programming overhead for the Twitch integration, I didn't get as much content into the game as I'd hoped. A few cut feature ideas include:\n  - Round modifiers that present more challenge or diversity\n  - Better feedback for chat commands, including showing who is on what team\n  - A more equitable way to split team funds, rather than first-come-first serve\n- **The enemy AI**: Due to an unfortunate radians-to-degrees math mixup, ranged units don't try to circle foes from a distance; they always try to go directly to their right (awkwardly giving the team that starts on the right an advantage).\n\n![bear_banner.png](\/\/\/raw\/aba\/3\/z\/65015.png)\n\n# Takeaways\n\nI'm very happy with my results this time around, including **3rd place in Graphics** and **3rd place in Innovation.** Thanks so much everybody who played my game, and to the additional support I've gotten from the streaming community in the form of random raids (almost always when I'm not actively in the stream!).\n\n![results_ld55.png](\/\/\/raw\/aba\/3\/z\/65017.png)\n\nSome takeaways from this event:\n\n### Try new things, but prepare to scope down\n\nI don't regret trying something different for this jam, and I liked the game I made. But particularly in the Compo, being ambitious in one area means making sacrifices in others. \n\n### For networking and integrations, do your setup before the jam\n\nI came partially prepared with some base code, but I probably should have been confident with a cloud hosting platform if I wanted to do this for a 48-hour jam. Even an hour of extra setup you could have done beforehand is painful when it's 2% of your jam window.\n\n### Study frog anatomy\n\n![frog_nice.png](\/\/\/raw\/aba\/3\/z\/65014.png)\n\nEh, close enough.\n\nIf you still want to play [Tiny Summons](https:\/\/ldjam.com\/events\/ludum-dare\/55\/tiny-summons), do it soon! The 24\/7 stream will go down next Saturday before Microsoft decides to start charging me real money.\n\n## Here's to a great LD55, and an even better LD56 this October! \u2603\ufe0e","title":"Tiny Summons Post-Mortem (and Fan Art!)","wayback_source":[]}