{"id":180,"date":"2022-02-21T15:49:42","date_gmt":"2022-02-21T23:49:42","guid":{"rendered":"https:\/\/www.dphrygian.com\/wordpress\/?p=180"},"modified":"2022-02-21T15:52:26","modified_gmt":"2022-02-21T23:52:26","slug":"neon-struct-desperation-column-gamedev-postmortem","status":"publish","type":"post","link":"https:\/\/www.dphrygian.com\/wordpress\/?p=180","title":{"rendered":"NEON STRUCT: Desperation Column gamedev postmortem"},"content":{"rendered":"\n<p><p style=\"text-align: justify;\">NEON STRUCT: Desperation Column is the third game in the NEON STRUCT series, and the second that I&#8217;ve released as a free game jam.<\/p><\/p>\n\n\n\n<p><p style=\"text-align: justify;\">The reason I&#8217;ve been doing game jams again recently is that sometimes I need the extrinsic motivation of a theme, a competition, or a deadline. I like making games, but it&#8217;s easy to get lazy, and an extra push doesn&#8217;t hurt.<\/p><\/p>\n\n\n\n<p><p style=\"text-align: justify;\">This is the first game jam I&#8217;ve done in a very long time that put gameplay first. I&#8217;ve been doing narrative-focused stuff for a while, and that&#8217;s been great too; but this is pure action gameplay, and I&#8217;m at home here.<\/p><\/p>\n\n\n\n<p><p style=\"text-align: justify;\">I started from a codebase that already had a lot of the things I needed for this game. I think that&#8217;s fine for a game jam, it&#8217;s the same as starting with Unreal or Unity + your fav plugins, but I definitely didn&#8217;t make this&nbsp;<em>from scratch<\/em>&nbsp;in a week.<\/p><\/p>\n\n\n\n<p><p style=\"text-align: justify;\">The 7dfps jam has generous rules (read: no rules), but I wanted to finish on time AND make something good. So I knew I&#8217;d have to be careful about scope, and baby I LIVE for being careful about scope.<\/p><\/p>\n\n\n\n<p><p style=\"text-align: justify;\">My initial parameters were: 1 weapon, 1 enemy type, 1 environment. That grew to 2 enemy types, plus an NPC type, and 3 environments (sorta); but the ultra lo-fi style meant those additions didn&#8217;t explode scope.<\/p><\/p>\n\n\n\n<p><p style=\"text-align: justify;\">You can search bodies and containers, but there is only 1 resource to find: ammo. You have limited ammo mostly because it gives you a reason to search containers. And it maybe creates tense moments when you run out.<\/p><\/p>\n\n\n\n<p><p style=\"text-align: justify;\">There are no health pickups, no upgrades or unlocks, no skills or perks. No conversation trees, no shops, no character customization. I&#8217;ve done all those things before, I still have the code, and I&nbsp;<em>chose<\/em>&nbsp;to not do them here.<\/p><\/p>\n\n\n\n<p><p style=\"text-align: justify;\">The result is a minimalist game that is now one of my favorite personal projects: a pure distillation of the action\/FPS mechanics at the heart of all my work. I think it&#8217;s the closest thing to Eldritch I&#8217;ve made in a long time.<\/p><\/p>\n\n\n\n<p><p style=\"text-align: justify;\">And it broke me out of a mental rut where I&#8217;d felt like doing this sort of thing was too hard, or would take too long. It wasn&#8217;t, and it didn&#8217;t. It was a sheer joy to make this game, and I hope that shows.<\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>NEON STRUCT: Desperation Column is the third game in the NEON STRUCT series, and the second that I&#8217;ve released as a free game jam. The reason I&#8217;ve been doing game jams again recently is that sometimes I need the extrinsic motivation of a theme, a competition, or a deadline. I like making games, but it&#8217;s [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-180","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/180"}],"collection":[{"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=180"}],"version-history":[{"count":3,"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/180\/revisions"}],"predecessor-version":[{"id":183,"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/180\/revisions\/183"}],"wp:attachment":[{"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}