<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Sodaware</title>
    <description></description>
    <link>https://www.sodaware.net/blog/</link>
    <atom:link href="https://www.sodaware.net/blog/feed/" rel="self" type="application/rss+xml" />
    
      <item>
        <title>Splodey Boats 2000 - Post Mortem</title>
        <description>&lt;p&gt;
&lt;a href=&quot;/games/splodey-boats/&quot;&gt;Splodey Boats 2000&lt;/a&gt; was my entry into the &lt;a href=&quot;https://itch.io/jam/finally-finish-something-2021&quot;&gt;2021 Finally Finish Something jam&lt;/a&gt;. It's
an update to a game I made for Ludum Dare #29 (way back in 2014) that adds
new features and content.
&lt;/p&gt;

&lt;section id=&quot;outline-container-orgcd4823e&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;orgcd4823e&quot;&gt;Development Statistics&lt;/h2&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-orgcd4823e&quot;&gt;
&lt;table class=&quot;org_table narrow&quot;&gt;


&lt;colgroup&gt;
&lt;col  class=&quot;org-left&quot;&gt;

&lt;col  class=&quot;org-right&quot;&gt;
&lt;/colgroup&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;&lt;b&gt;Source Files&lt;/b&gt;&lt;/td&gt;
&lt;td class=&quot;org-right&quot;&gt;123&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;&lt;b&gt;Lines of Code&lt;/b&gt;&lt;/td&gt;
&lt;td class=&quot;org-right&quot;&gt;6,092&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;&lt;b&gt;Entity components&lt;/b&gt;&lt;/td&gt;
&lt;td class=&quot;org-right&quot;&gt;27&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;&lt;b&gt;Entity systems&lt;/b&gt;&lt;/td&gt;
&lt;td class=&quot;org-right&quot;&gt;42&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;&lt;b&gt;Development Time&lt;/b&gt;&lt;/td&gt;
&lt;td class=&quot;org-right&quot;&gt;30:54&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;
The last two weeks saw the most development time, but I paced things pretty well
this time. The last day was spent packaging things up and writing documentation,
rather than fixing bugs and panicking about missing features. That made a nice
change.
&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;


&lt;section id=&quot;outline-container-orgad76093&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;orgad76093&quot;&gt;What went right&lt;/h2&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-orgad76093&quot;&gt;
&lt;/div&gt;
&lt;div id=&quot;outline-container-orge9eb611&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;orge9eb611&quot;&gt;It got done&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-orge9eb611&quot;&gt;
&lt;p&gt;
The last game I released was back in March 2017, and even that was a
half-hearted update to a flash game created in a couple of hours. Since then
I've had a few tries but all have failed, so I was a little apprehensive about
trying to release something this time.
&lt;/p&gt;

&lt;p&gt;
Feature-wise I'm extremely happy with how things turned out. I would still like
to add a fullscreen mode and an online score table, but everything else I wanted
is in the game.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div id=&quot;outline-container-org466be66&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;org466be66&quot;&gt;It got polished&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-org466be66&quot;&gt;
&lt;p&gt;
Getting the core gameplay working early meant I could spend more time cleaning
up the rough edges. Adding a title screen animation didn't make the game better,
but I think it improved the experience and made it feel complete.
&lt;/p&gt;

&lt;p&gt;
There are other little improvements like animated plants on the ocean floor,
homing missiles from powerups, and a full morning-day-night cycle of backgrounds.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div id=&quot;outline-container-org3a7ea29&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;org3a7ea29&quot;&gt;Entity component systems are &lt;i&gt;really&lt;/i&gt; useful&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-org3a7ea29&quot;&gt;
&lt;p&gt;
Years ago I built an ECS for my game engine and it has been a &lt;b&gt;huge&lt;/b&gt; time
saver. Being able to modify the behaviour of a game entity by adding and
removing components works really well, and keeping the actual behaviour code in
systems makes it easier for me to organize things.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;


&lt;div id=&quot;outline-container-org819fc22&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;org819fc22&quot;&gt;Data-driven entities are really useful too&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-org819fc22&quot;&gt;
&lt;p&gt;
At the start of the project a lot of data was hard-coded, but I slowly moved
things to be loaded from template files. This had a couple of benefits:
&lt;/p&gt;

&lt;ul class=&quot;org-ul&quot;&gt;
&lt;li&gt;It was much easier to test out new ideas - I could modify how may explosions
come from a depth charge, how often submarines fire missiles, how fast the
ship moves, and a whole bunch of other things, all without recompiling.&lt;/li&gt;
&lt;li&gt;The template system uses inheritance - I created a base type of submarine
that all others extend, so adding a new type of submarine could be done in a
couple of minutes.&lt;/li&gt;
&lt;li&gt;Balancing the game took much less time. I was able to tweak individual
levels and play the results within seconds.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Getting rapid feedback makes balancing much easier, and it also encourages
experimentation with gameplay elements. I'm much more likely to test an idea if
I can create it, test it, and then remove it within a span of 5 minutes
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/section&gt;


&lt;section id=&quot;outline-container-org78cc432&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;org78cc432&quot;&gt;What went wrong&lt;/h2&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-org78cc432&quot;&gt;
&lt;/div&gt;
&lt;div id=&quot;outline-container-orge98f915&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;orge98f915&quot;&gt;Early decisions came back to bite me&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-orge98f915&quot;&gt;
&lt;p&gt;
A few days into development I noticed some weird behaviour with powerup crates;
they were being spawned correctly, but the second crate that dropped would
wobble erratically. Picking up one of these wobbly crates would grant two or
more powerups, and they would explode multiple times.
&lt;/p&gt;

&lt;p&gt;
After some digging I found the problem. It was a pretty fundamental one.
&lt;/p&gt;

&lt;p&gt;
The ECS system I built stored system associations in a 32 bit variable. This
made it extremely fast to check if an entity had a component as it could be done
with a single bitwise check.
&lt;/p&gt;

&lt;p&gt;
However, once system 33 was added the bit wrapped back to its initial position
and things got &lt;i&gt;weird&lt;/i&gt;. The powerup crate handler was system 33.
&lt;/p&gt;

&lt;p&gt;
Fixing this bug took a couple of days and involved a rewrite of some pretty
fundamental code.
&lt;/p&gt;

&lt;p&gt;
When I wrote things originally I took an &quot;I'll cross that bridge when I get to
it&quot;. Well I got to that bridge and had to cross it, so thanks for nothing past
me.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div id=&quot;outline-container-org4160768&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;org4160768&quot;&gt;Hardware is hard&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-org4160768&quot;&gt;
&lt;p&gt;
Adding controller support was a pain. The same controller gives different input
values on Windows and Linux, so each system needs its own mapping. And of course
different controller also needs a different maps.
&lt;/p&gt;

&lt;p&gt;
I also spent a couple of hours trying (and failing) to get Microsoft Windows to
recognize Microsoft hardware. Good times.
&lt;/p&gt;

&lt;p&gt;
I'm still not happy with how this turned out and I think I'll give it another
go in the future.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div id=&quot;outline-container-org9db1ca5&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;org9db1ca5&quot;&gt;Nobody played it&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-org9db1ca5&quot;&gt;
&lt;p&gt;
Splodey Boats 2000 has received a whopping 12 views and 7 downloads on
itch.io. Considering it was part of a game jam with nearly 400 entrants I'm
pretty disappointed with these stats.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/section&gt;


&lt;section id=&quot;outline-container-org14087d3&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;org14087d3&quot;&gt;Lessons&lt;/h2&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-org14087d3&quot;&gt;
&lt;/div&gt;
&lt;div id=&quot;outline-container-orge73d9e2&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;orge73d9e2&quot;&gt;Entity systems work really well&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-orge73d9e2&quot;&gt;
&lt;p&gt;
About a week from the deadline I decided to add boss submarines. I already had a
&lt;code&gt;health&lt;/code&gt; component for the player ship, so I added that to the base &lt;code&gt;submarine&lt;/code&gt;
entity and tweaked the collision system to use it. It was a quick change and it
made me happy that it was so easy.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div id=&quot;outline-container-orga7ee7a5&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;orga7ee7a5&quot;&gt;A small amount of customization goes a long way&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-orga7ee7a5&quot;&gt;
&lt;p&gt;
Levels can choose which kinds of submarines they spawn, as well as how often and
how many. These are all small variables, but it means I can have a level with 1
boss submarine, or a level with 10 speedy subs on screen at the same time. All
with just a change of a level file.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div id=&quot;outline-container-org6b7a164&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;org6b7a164&quot;&gt;Small amounts of polish go a long way&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-org6b7a164&quot;&gt;
&lt;p&gt;
The title screen animations aren't going to win any awards, but they made the
game feel finished.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div id=&quot;outline-container-org1bf15f0&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;org1bf15f0&quot;&gt;Spend time making your game easier to test&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-org1bf15f0&quot;&gt;
&lt;p&gt;
I added keyboard shortcuts to skip levels, spawn entities, and test different
powerups. This saved a tonne of time when balancing later levels.
&lt;/p&gt;

&lt;p&gt;
&amp;#x2014;
&lt;/p&gt;

&lt;p&gt;
Splodey Boats 2000 can be downloaded from the &lt;a href=&quot;https://www.sodaware.net/games/splodey-boats/&quot;&gt;Splodey Boats page&lt;/a&gt;, or from its
&lt;a href=&quot;https://sodaware.itch.io/splodey-boats-2000&quot;&gt;itch.io page&lt;/a&gt;. If you download from itch please consider leaving a comment or
review.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/section&gt;
</description>
        <pubDate>Sun, 28 Feb 2021 06:51:00 -0500</pubDate>
        <link>https://www.sodaware.net/blog/splodey-boats-2000-post-mortem/</link>
        <guid isPermaLink="true">https://www.sodaware.net/blog/splodey-boats-2000-post-mortem/</guid>
      </item>
    
      <item>
        <title>Splodey Boats 2000 released</title>
        <description>&lt;figure&gt;
&lt;a href=&quot;/games/splodey-boats/&quot; class=&quot;center bordered--pixel-art&quot; alt=&quot;Splodey Boats 2000&quot;&gt;&lt;img src=&quot;/assets/images/projects/1gam-2017/02-splodey-boats/logo.png&quot; alt=&quot;Splodey Boats 2000&quot; class=&quot;center bordered--pixel-art&quot;&gt;&lt;/a&gt;

&lt;/figure&gt;

&lt;p&gt;
&lt;b&gt;Splodey Boats 2000&lt;/b&gt; has been released! This version contains everything from
the original Flash version, along with new levels and powerups. The whole game
has also been re-balanced, and new enemies have been added to keep things
challenging.
&lt;/p&gt;

&lt;p&gt;
This version was released as part of the &lt;a href=&quot;https://itch.io/jam/finally-finish-something-2021&quot;&gt;2021 Finally Finish Something
Jam&lt;/a&gt;. There were 386 entries this year, compared to just 52 in the original
jam. It's great to see so many new games being finished!
&lt;/p&gt;

&lt;p&gt;
Splodey Boats 2000 can be downloaded from the &lt;a href=&quot;https://www.sodaware.net/games/splodey-boats/&quot;&gt;Splodey Boats page&lt;/a&gt;, or from its
&lt;a href=&quot;https://sodaware.itch.io/splodey-boats-2000&quot;&gt;itch.io page&lt;/a&gt;. If you download from itch please consider leaving a comment or
review.
&lt;/p&gt;
</description>
        <pubDate>Sun, 31 Jan 2021 21:00:00 -0500</pubDate>
        <link>https://www.sodaware.net/blog/splodey-boats-released/</link>
        <guid isPermaLink="true">https://www.sodaware.net/blog/splodey-boats-released/</guid>
      </item>
    
      <item>
        <title>FFSJam 2021</title>
        <description>&lt;figure&gt;
&lt;a href=&quot;https://itch.io/jam/finally-finish-something-2021&quot; class=&quot;center center bordered--pixel-art&quot; alt=&quot;Finally Finish Something 2021&quot;&gt;&lt;img src=&quot;/assets/images/blog/2021/ffsjam-logo.png&quot; alt=&quot;Finally Finish Something 2021&quot; class=&quot;center center bordered--pixel-art&quot;&gt;&lt;/a&gt;

&lt;/figure&gt;

&lt;p&gt;
This year I'm entering the &lt;a href=&quot;https://itch.io/jam/finally-finish-something-2021&quot;&gt;2021 Finally Finish Something Jam&lt;/a&gt; (FFSJam). It's a
great jam that focuses on finishing off existing projects, something which I
could always use help with.
&lt;/p&gt;

&lt;p&gt;
My entry will be a finished version of Splodey Boats 2000. I started work on
this a couple of years ago, but I didn't get around to adding things like
powerups or a working high score table. There's also some extra polish I want to
add, and I'd like to tweak the levels so that it's fun from the start.
&lt;/p&gt;

&lt;p&gt;
You can see WIP screenshots and statistics on the &lt;a href=&quot;/jams/ffsjam-2021/&quot;&gt;Splodey Boats 2000&lt;/a&gt; updates
page.
&lt;/p&gt;
</description>
        <pubDate>Fri, 08 Jan 2021 17:51:00 -0500</pubDate>
        <link>https://www.sodaware.net/blog/ffsjam-2021/</link>
        <guid isPermaLink="true">https://www.sodaware.net/blog/ffsjam-2021/</guid>
      </item>
    
      <item>
        <title>New BlitzMax tools</title>
        <description>&lt;p&gt;
I released a couple of &lt;a href=&quot;https://blitzmax.org/&quot;&gt;BlitzMax&lt;/a&gt; tools in 2019:
&lt;/p&gt;

&lt;dl class=&quot;org-dl&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;/blam/&quot;&gt;&lt;b&gt;blam&lt;/b&gt;&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;A build tool for BlitzMax. It's a rebuild of &lt;a href=&quot;/dev/tools/blitzbuild/&quot;&gt;BlitzBuild&lt;/a&gt; and works on
Windows and GNU/Linux. I use this to build and package all of my BlitzMax
software.&lt;/dd&gt;

&lt;dt&gt;&lt;a href=&quot;/blitzmax-mode/&quot;&gt;&lt;b&gt;blitzmax-mode&lt;/b&gt;&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;An Emacs major mode for editing BlitzMax files.&lt;/dd&gt;

&lt;dt&gt;&lt;a href=&quot;/docgen/&quot;&gt;&lt;b&gt;docgen&lt;/b&gt;&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;Extracts information from BlitzMax source files. Not particularly
useful, but I'm hoping to turn this into a tool for automatically building
documentation. Very much a work-in-progress.&lt;/dd&gt;

&lt;dt&gt;&lt;a href=&quot;/maxcop/&quot;&gt;&lt;b&gt;MaxCop&lt;/b&gt;&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;A style checker for BlitzMax source code. Useful for ensuring
source code all follows the same style and layout.&lt;/dd&gt;
&lt;/dl&gt;

&lt;p&gt;
All tools are released under the GPL and can be freely shared and modified.
&lt;/p&gt;
</description>
        <pubDate>Thu, 30 Jan 2020 10:23:00 -0500</pubDate>
        <link>https://www.sodaware.net/blog/new-blitzmax-resources/</link>
        <guid isPermaLink="true">https://www.sodaware.net/blog/new-blitzmax-resources/</guid>
      </item>
    
      <item>
        <title>Tiny Tactics - Post Mortem</title>
        <description>&lt;p&gt;
At the start of the year I set myself the target of making four games, with the
plan to release one each quarter. &lt;a href=&quot;/1gam-2019/01-tiny-tactics/&quot;&gt;Tiny Tactics&lt;/a&gt; was first game I started on and
was due for release today. The big red &quot;failed&quot; label on the game page is a
pretty good sign that things didn't go to plan.
&lt;/p&gt;


&lt;section id=&quot;outline-container-orgbaec9ad&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;orgbaec9ad&quot;&gt;What went right&lt;/h2&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-orgbaec9ad&quot;&gt;
&lt;p&gt;
Slim pickings here&amp;#x2026;
&lt;/p&gt;
&lt;/div&gt;

&lt;div id=&quot;outline-container-org625635f&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;org625635f&quot;&gt;I got a lot of other things done&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-org625635f&quot;&gt;
&lt;p&gt;
By mid-February I had a pretty good idea that things weren't going to work
out. I kept going for another week, but my enthusiasm quickly disappeared so I
turned my attention to other things.
&lt;/p&gt;

&lt;p&gt;
I did manage to complete some game-related code:
&lt;/p&gt;

&lt;ul class=&quot;org-ul&quot;&gt;
&lt;li&gt;Built a movement range calculator. This was quite fun to make, and the
finished version supports multiple movement profiles and land types. This
makes it possible to have characters that are fast on some types of terrain
(such as paths) and slow on others (such as forests or sand).&lt;/li&gt;
&lt;li&gt;Added autoloading of components to the Pangolin entity system. Previously
components had to be declared in a configuration file, which was a pain when
trying to quickly test things out. Component date can now be extract
directly using reflection.&lt;/li&gt;
&lt;li&gt;Built a tilemap and tileset converter for working with &lt;a href=&quot;https://www.mapeditor.org/&quot;&gt;Tiled&lt;/a&gt; maps.&lt;/li&gt;
&lt;li&gt;Created system for animating UI elements. This is something I've
continuously struggled with, so I'm happy to have a slightly better way of
doing things.&lt;/li&gt;
&lt;li&gt;Created NPC's that walk around a map at random.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Still, I would have preferred a playable game at the end of everything.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/section&gt;

&lt;section id=&quot;outline-container-org818eeba&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;org818eeba&quot;&gt;What went wrong&lt;/h2&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-org818eeba&quot;&gt;
&lt;/div&gt;
&lt;div id=&quot;outline-container-orgcc86996&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;orgcc86996&quot;&gt;Aiming too high&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-orgcc86996&quot;&gt;
&lt;p&gt;
I haven't released an original game since &quot;Mini Shinobi&quot; at the start of 2017,
but for some reason it seemed smart to try and build a collectible card game.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div id=&quot;outline-container-orgd0053f5&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;orgd0053f5&quot;&gt;Not playing to my strengths&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-orgd0053f5&quot;&gt;
&lt;p&gt;
I can't draw. Collectible card games have a lot of art. 
&lt;/p&gt;

&lt;p&gt;
I can't design user interfaces. Collectible card games have a lot of UI.
&lt;/p&gt;

&lt;p&gt;
It seems obvious when it's written down.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div id=&quot;outline-container-org765b0be&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;org765b0be&quot;&gt;Not planning my time&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-org765b0be&quot;&gt;
&lt;p&gt;
With a 48-hour game jam, you have no option but to work hard and quickly. Three
months seems like an eternity, but those hours quickly disappear if not properly
scheduled. 
&lt;/p&gt;

&lt;p&gt;
Taking an &quot;I'll work on it when I feel like it&quot; approach was not successful.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/section&gt;


&lt;section id=&quot;outline-container-org8f2515e&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;org8f2515e&quot;&gt;Lessons for the future&lt;/h2&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-org8f2515e&quot;&gt;
&lt;p&gt;
Even though things didn't work out (at all), I still created some useful bits
and pieces and learnt some new lessons. It's still a game I'd like to revisit,
but next time I'd like to have a more complete plan.
&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;
</description>
        <pubDate>Sun, 31 Mar 2019 16:36:00 -0400</pubDate>
        <link>https://www.sodaware.net/blog/tiny-tactics-post-mortem/</link>
        <guid isPermaLink="true">https://www.sodaware.net/blog/tiny-tactics-post-mortem/</guid>
      </item>
    
      <item>
        <title>Tiny Tactics - Update #1</title>
        <description>&lt;p&gt;
Research took up most of my time for the last week, although I didn't spend as
much time on it as I would have liked. A couple of questions kept cropping up:
&lt;/p&gt;

&lt;section id=&quot;outline-container-org5261c15&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;org5261c15&quot;&gt;1. How should energy be handled?&lt;/h2&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-org5261c15&quot;&gt;
&lt;p&gt;
Every card game I looked at had some kind of energy system to prevent powerful
cards being played too early. Hearthstone has mana crystals, Pokemon has energy
cards and Card Fighters' Clash has &quot;SP&quot;. In some games cards in the hand can be
discarded to generate additional energy.
&lt;/p&gt;

&lt;p&gt;
One challenge I'm expecting is how to balance energy gains at different stages
of play. Because of the tactical battle elements, players may go several turns
at the start without ever being in range of an enemy. Combined with discarding
cards for energy, players could be in a position to play high level before the
other team has even reached them.
&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;

&lt;section id=&quot;outline-container-org4211cdb&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;org4211cdb&quot;&gt;2. How large should a deck be?&lt;/h2&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-org4211cdb&quot;&gt;
&lt;p&gt;
Deck building is an integral part of collectible card games. Decks need to be
large enough to last an entire battle, but not so large that they end up being
mostly filler cards.
&lt;/p&gt;

&lt;p&gt;
I'm thinking around 35-40 cards for a deck, but that may change during
balancing. One thing I want to do is make this configurable so it's easier to
experiment with.
&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;

&lt;section id=&quot;outline-container-orgcfdb24f&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;orgcfdb24f&quot;&gt;3. How should characters move?&lt;/h2&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-orgcfdb24f&quot;&gt;
&lt;p&gt;
My initial plan was to give each character a movement range (e.g. 6 squares) and
limit them to that each turn. I think it makes the map more interesting and
makes it possible to have movement buff cards.
&lt;/p&gt;

&lt;p&gt;
I'm also considering having a central character that moves one square each turn,
and then goes into a separate battle mode when they meet an enemy. This would
make combat more like Final Fantasy, Grandia and Evolution.
&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;

&lt;section id=&quot;outline-container-org05cb08f&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;org05cb08f&quot;&gt;4. How should attacking work?&lt;/h2&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-org05cb08f&quot;&gt;
&lt;p&gt;
Should attacking require a card to be played, or should all playable characters
be able to attack each turn if they are in range?
&lt;/p&gt;

&lt;p&gt;
Requiring attack cards means the deck has to be balanced a little differently
and reduces the chances that a player will start with a large number of high
power cards.
&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;

&lt;section id=&quot;outline-container-org3312757&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;org3312757&quot;&gt;Next Steps&lt;/h2&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-org3312757&quot;&gt;
&lt;p&gt;
A third of the project time has already elapsed and I don't have much to show
for it. There are plenty more questions to be answered, but those are the big
ones on my mind at the moment and I need to start actually building something.
&lt;/p&gt;

&lt;p&gt;
The next step is to get a small battle up and running so I can experiment with
different mechanics. My plan is to have that complete in the next few weeks.
&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;
Visit the &lt;a href=&quot;/1gam-2019/01-tiny-tactics/&quot;&gt;Tiny Tactics hub page&lt;/a&gt; for a more detailed view of the project's
progress.
&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;
</description>
        <pubDate>Fri, 25 Jan 2019 18:14:00 -0500</pubDate>
        <link>https://www.sodaware.net/blog/tiny-tactics-update-1/</link>
        <guid isPermaLink="true">https://www.sodaware.net/blog/tiny-tactics-update-1/</guid>
      </item>
    
      <item>
        <title>#1GAM 2019 - Initial game ideas</title>
        <description>&lt;p&gt;
I've always struggled with what do with a blank canvas. Once I get going I'm
usually fine, but the initial decision on what to create is always tough.
&lt;/p&gt;

&lt;p&gt;
The same is true when it comes to creating a new game.
&lt;/p&gt;

&lt;p&gt;
Coming up with ideas isn't always the challenging part. I have a bunch of notes
for games I'd like to make, but sorting the good ideas from the bad (as well as
the realistic ones) is a little tough.
&lt;/p&gt;

&lt;p&gt;
Reading through my ideas there are some themes that crop up frequently. Two of
the most common are turn-based strategy and collectible card games. So for my
first game of 2019 I'm going to try and combine the two.
&lt;/p&gt;


&lt;section id=&quot;outline-container-orgf1b2d1b&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;orgf1b2d1b&quot;&gt;Game One - Tiny Tactics&lt;/h2&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-orgf1b2d1b&quot;&gt;
&lt;p&gt;
For now I'm referring to this project as &quot;Tiny Tactics&quot;, although I expect that name
to change as time goes on.
&lt;/p&gt;
&lt;/div&gt;


&lt;div id=&quot;outline-container-org4c63f04&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;org4c63f04&quot;&gt;Strategy Games&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-org4c63f04&quot;&gt;
&lt;p&gt;
Right now I'm still collecting ideas for how to structure battles and merge the
different elements. Games I'm looking at include:
&lt;/p&gt;

&lt;dl class=&quot;icon_list&quot;&gt;
  &lt;dt&gt;
    &lt;span class=&quot;icon&quot;&gt;
      &lt;img class=&quot;bordered--pixel-art&quot; src=&quot;/assets/images/blog/2019/shining-force-cd.jpg&quot; alt=&quot;Shining Force CD&quot; width=&quot;320&quot;&gt;
    &lt;/span&gt;
    &lt;strong&gt;Shining Force CD&lt;/strong&gt;
  &lt;/dt&gt;
  &lt;dd&gt;
    The first tactical RPG I ever played. I have a fair amount of experience
    with how the mechanics work so it will be a good starting point for
    whatever I end up creating.
  &lt;/dd&gt;

  &lt;dt&gt;
    &lt;span class=&quot;icon&quot;&gt;
      &lt;img class=&quot;bordered--pixel-art&quot; src=&quot;/assets/images/blog/2019/ff-tactics.png&quot; alt=&quot;Final Fantasy Tactics Advance&quot; width=&quot;320&quot;&gt;
    &lt;/span&gt;
    &lt;strong&gt;Final Fantasy Tactics&lt;/strong&gt;
  &lt;/dt&gt;
  &lt;dd&gt;
    I played the GBA version a long time ago, but that's about it. The job
    system is an interesting way of managing skills and attributes.
  &lt;/dd&gt;

  &lt;dt&gt;
    &lt;span class=&quot;icon&quot;&gt;
      &lt;img class=&quot;bordered--pixel-art&quot; src=&quot;/assets/images/blog/2019/tactics-ogre.png&quot; alt=&quot;Tactics Ogre&quot; width=&quot;320&quot;&gt;
    &lt;/span&gt;
    &lt;strong&gt;Tactics Ogre&lt;/strong&gt;
  &lt;/dt&gt;
  &lt;dd&gt;
    An isometric turn-based strategy game.
  &lt;/dd&gt;

  &lt;dt&gt;
    &lt;span class=&quot;icon&quot;&gt;
      &lt;img class=&quot;bordered--pixel-art&quot; src=&quot;/assets/images/blog/2019/evolution.png&quot; alt=&quot;Evolution&quot; width=&quot;320&quot;&gt;
    &lt;/span&gt;
    &lt;strong&gt;Evolution&lt;/strong&gt;
  &lt;/dt&gt;
  &lt;dd&gt;
    This isn't a turn-based RPG, but I quite like the combat system. Enemies
    can be knocked back a turn by using certain moves, so there is some
    strategy in lining moves up correctly.
  &lt;/dd&gt;

&lt;/dl&gt;

&lt;br style=&quot;clear: both&quot; /&gt;
&lt;/div&gt;
&lt;/div&gt;


&lt;div id=&quot;outline-container-orgeee4943&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;orgeee4943&quot;&gt;Card Games&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-orgeee4943&quot;&gt;
&lt;p&gt;
For card games there is a lot of choice. I'm looking at some of the more popular
ones - Magic: The Gathering, Hearthstone, Pokemon and Yu-Gi-Oh! I'm particularly
interested in how they handle turns, card strength and any limits on what can be
played and when.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/section&gt;
</description>
        <pubDate>Thu, 17 Jan 2019 07:34:00 -0500</pubDate>
        <link>https://www.sodaware.net/blog/1gam-2019-initial-ideas/</link>
        <guid isPermaLink="true">https://www.sodaware.net/blog/1gam-2019-initial-ideas/</guid>
      </item>
    
      <item>
        <title>One Game a Month - 2019 Edition</title>
        <description>&lt;p&gt;
I've taken part in &quot;&lt;a href=&quot;https://onegameamonth.com/&quot;&gt;One Game a Month&lt;/a&gt;&quot; for the last couple of years. Sadly 2018
is the last year for the contest, so for 2019 I'll be setting my own challenge.
&lt;/p&gt;

&lt;p&gt;
The #1GAM challenge was pretty good at getting me motivated for the first months
of the year, but over time I'd fall behind and then stop.  I liked the quick
turnaround on games, but it didn't give me much time for
reflection. Post-mortems aren't always easy to write, but they're an important
part of the process for me.
&lt;/p&gt;

&lt;p&gt;
So for 2019 I'll be making two changes to my usual process:
&lt;/p&gt;

&lt;ol class=&quot;org-ol&quot;&gt;
&lt;li&gt;Each game will be developed over three months. This gives me extra time to
prototype, write post-mortems and learn more.&lt;/li&gt;
&lt;li&gt;I'll be documenting the entire process, rather than just dumping a game online
at the end of the challenge period. Prototypes, design sketches and
everything else will be posted on each game's page.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Games and updates will be posted to the &lt;a href=&quot;https://www.sodaware.net/1gam-2019/&quot;&gt;#1GAM 2019 hub page&lt;/a&gt;.
&lt;/p&gt;
</description>
        <pubDate>Sun, 16 Dec 2018 08:25:00 -0500</pubDate>
        <link>https://www.sodaware.net/blog/1gam-2019/</link>
        <guid isPermaLink="true">https://www.sodaware.net/blog/1gam-2019/</guid>
      </item>
    
      <item>
        <title>#1GAM 2017 - March's Entry: ZAP 2000</title>
        <description>&lt;figure&gt;
&lt;a href=&quot;http://lab.sodaware.net/1gam-2014/03-zap/&quot; class=&quot;center banner&quot; alt=&quot;Zap 2000&quot;&gt;&lt;img src=&quot;/assets/images/blog/2014/03/zap-banner.png&quot; alt=&quot;Zap 2000&quot; class=&quot;center banner&quot;&gt;&lt;/a&gt;

&lt;/figure&gt;

&lt;p&gt;
I spent most of March working on my game framework, which didn't leave a lot of
time for my #1GAM entry. I still wanted to enter something, so I fixed a couple
of minor bugs in Zap and added &quot;2000&quot; to the title. Exciting!
&lt;/p&gt;

&lt;p&gt;
Changes made:
&lt;/p&gt;

&lt;ol class=&quot;org-ol&quot;&gt;
&lt;li&gt;Scores stopped saving correctly after the switch to &lt;code&gt;https&lt;/code&gt;. Now fixed.&lt;/li&gt;
&lt;li&gt;Enemy explosions now match the colour of the enemy. No more green particles
for red enemies!&lt;/li&gt;
&lt;li&gt;Enemies can no longer spawn on top of the player.&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;green button&quot;&gt;
&lt;a href=&quot;https://www.sodaware.net/1gam-2017/03-zap-2000/&quot; class=&quot;green button&quot;&gt;Play `ZAP 2000`&lt;/a&gt;
&lt;/p&gt;
</description>
        <pubDate>Sat, 08 Apr 2017 21:41:00 -0400</pubDate>
        <link>https://www.sodaware.net/blog/march-1gam-zap-2000/</link>
        <guid isPermaLink="true">https://www.sodaware.net/blog/march-1gam-zap-2000/</guid>
      </item>
    
      <item>
        <title>#1GAM 2017 - February's Entry: Splodey Boats 2000</title>
        <description>&lt;figure&gt;
&lt;a href=&quot;https://www.sodaware.net/1gam-2017/02-splodey-boats/&quot; class=&quot;center bordered--pixel-art&quot; alt=&quot;Splodey Boats 2000&quot;&gt;&lt;img src=&quot;/assets/images/projects/1gam-2017/02-splodey-boats/logo.png&quot; alt=&quot;Splodey Boats 2000&quot; class=&quot;center bordered--pixel-art&quot;&gt;&lt;/a&gt;

&lt;/figure&gt;

&lt;p&gt;
&lt;b&gt;Splodey Boats 2000&lt;/b&gt; is a port of Splodey Boats, a game I wrote back in 2014 for
Ludum Dare. There were two main reasons I went with a port instead of a new
game:
&lt;/p&gt;

&lt;ol class=&quot;org-ol&quot;&gt;
&lt;li&gt;I wanted to see how much effort was involved in using my game framework&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.sodaware.net/1gam-2017/01-mini-shinobi/&quot;&gt;Mini Shinobi&lt;/a&gt; was really, really hard to make and I wanted something less
taxing&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
I'm a bit on the fence about the finished product. It wasn't as much effort to
make as Mini Shinobi, but it's also quite half-baked and missing some
polish. It's also missing features from the original, such as powerups and the
online score table. I'd like to get them added in a future update, but for now it
seemed better to just get something out the door.
&lt;/p&gt;

&lt;p&gt;
That sounds quite negative, but I did manage to port things &lt;i&gt;relatively&lt;/i&gt;
easily. There were some bumps along the way, but overall it's pretty close to
the Flixel version.
&lt;/p&gt;

&lt;p class=&quot;green button&quot;&gt;
&lt;a href=&quot;https://www.sodaware.net/1gam-2017/02-splodey-boats/&quot; class=&quot;green button&quot;&gt;Play `Splodey Boats`&lt;/a&gt;
&lt;/p&gt;
</description>
        <pubDate>Sat, 04 Mar 2017 14:23:00 -0500</pubDate>
        <link>https://www.sodaware.net/blog/february-2017-1gam-splodey-boats/</link>
        <guid isPermaLink="true">https://www.sodaware.net/blog/february-2017-1gam-splodey-boats/</guid>
      </item>
    
  </channel>
</rss>
