<?xml version="1.0" encoding="UTF-8" standalone="yes"?><oembed><version><![CDATA[1.0]]></version><provider_name><![CDATA[Fidelum Games]]></provider_name><provider_url><![CDATA[https://fidelumgames.wordpress.com]]></provider_url><author_name><![CDATA[jejoll]]></author_name><author_url><![CDATA[https://fidelumgames.wordpress.com/author/jejoll/]]></author_url><title><![CDATA[Task List, Upcoming&nbsp;Milestone]]></title><type><![CDATA[link]]></type><html><![CDATA[<p>I&#8217;ve been pretty busy over the last week with life stuff, so not a whole lot to report on at the moment.</p>
<p>However, I watched an <a href="https://youtu.be/dHMNeNapL1E" target="_blank" rel="noopener">Extra Credits</a> video last night that talked about some tips for making your first game. This isn&#8217;t my first, but there were still some good tips in there.</p>
<p>The biggest takeaway from this video for me was to make sure that, even if you don&#8217;t have the time to work on your game, spend at least 30 minutes a week looking at and reviewing it. The point of this is to keep it all fresh in your mind, and not to let the mental model you&#8217;ve created of it to atrophy too far. If you&#8217;re a game developer, or even just an avid gamer, I really recommend you check out Extra Credits on YouTube. The videos are always entertaining and educational.</p>
<p>Anyway&#8211;this video got me thinking about the task list I mentioned in an earlier post, and I thought it might be kind of cool for some of you to see it.</p>
<p>Note that this list is not static by any means. Items get added, removed and shuffled around all the time.</p>
<p>I&#8217;ll start with a high-level task (like Spells), and then break that down into smaller tasks. Often time, I&#8217;ll get part way through and realize that, in order to finish the current task, I have to add another to the list and shift my focus to that (eg. I needed a base Stats implementation to implement spells), and then resume with the original task.</p>
<p>I&#8217;m really glad I have this list. Juggling all of the interconnected systems and moving back forth between them would be a major headache without it. This lets me keep my mental RAM free for more important tasks.</p>
<p>It&#8217;s not formatted as nicely as the Word version, but you should still be able to get an idea of what I&#8217;ve finished, what I&#8217;m doing, and what I&#8217;ll be doing next.</p>
<table>
<tbody>
<tr>
<td width="501"><strong><u>Task</u></strong></td>
<td width="123"><strong><u>Status</u></strong></td>
</tr>
<tr>
<td width="501"><span style="color:#ffcc00;">1.       Define and Implement Core Gameplay Mechanics (Alpha)</span></td>
<td width="123"><span style="color:#ffcc00;">In Progress</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.    Movement (Base Mechanics Only—Polish to come later)</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.1.Define Movement Scheme</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.1.1.              Moving (Translation)</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.1.1.1.                    Define Restrictions</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.1.1.1.1.   Non-Walkable Areas</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.1.1.1.1.1.         Walls</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.1.1.1.1.2.         Holes</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.1.1.1.1.3.         Non-Passable Terrain (Water, Marsh, etc.)</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.1.1.1.1.4.         Max Climbing Angle</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.1.1.1.1.5.         Max Drop Amount</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.1.2.              Turning and Looking (Rotation)</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.1.2.1.                    Fixed rotation (Key presses)</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.1.2.2.                    Free Look (mouse)</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.2.Implement Movement Scheme</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.2.1.              Player Movement</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.2.1.1.                    Develop test level with walls, holes, stairs, drops</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.2.1.2.                    Develop test level with terrain</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.2.1.3.                    Turning and Looking (Rotation)</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.1.2.1.4.                    Moving (Translation)</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#ffcc00;">1.2.    Turn-based Play</span></td>
<td width="123"><span style="color:#ffcc00;">In Progress</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.Wait for player action (Mode 1)</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.1.              Define how the Speed stat affects turns</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.2.              Define TurnManager (Passive vs. Active Mode)</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.3.              Define Enemy AI</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.3.1.                    Determining Actions</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.3.1.1.   Movement</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.3.1.2.   Attacking</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.3.1.2.1.         Melee</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.3.1.2.2.         Ranged</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.3.1.2.3.         Magic</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.3.1.3.   Retreating</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.3.1.4.   Pursuit</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.3.1.5.   Patrolling</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.4.              Implement Enemy AI</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.4.1.1.   Movement</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.4.1.1.1.         Avoiding Other NPCs</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.4.1.1.2.         Pursuit</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.4.1.1.3.         Patrolling</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.4.1.2.   Attacking</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.4.1.2.1.         Melee</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.4.1.2.2.         Ranged</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.4.1.2.2.1.               Ranged Melee (Spears, etc.)</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.4.1.2.2.2.               Projectiles</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#ffcc00;">1.2.1.4.1.2.3.         Magic</span></td>
<td width="123"><span style="color:#ffcc00;">In Progress</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.4.1.2.3.1.               Define Spell System</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.4.1.2.3.1.1.                      Define Stats and Prepare for implementation (equations, helper functions)</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.4.1.2.3.1.2.                      Implement Stats</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.4.1.2.3.1.3.                      Custom Stats Inspectors</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501"><span style="color:#ffcc00;">1.2.1.4.1.2.3.2.               Implement Spell System (Enemy)</span></td>
<td width="123"><span style="color:#ffcc00;">In Progress</span></td>
</tr>
<tr>
<td width="501"><span style="color:#ffcc00;">1.2.1.4.1.2.3.2.1.                      Linked Spells</span></td>
<td width="123"><span style="color:#ffcc00;">In Progress</span></td>
</tr>
<tr>
<td width="501"><span style="color:#ffcc00;">1.2.1.4.1.2.3.2.2.                      Document Spellcasting</span></td>
<td width="123"><span style="color:#ffcc00;">In progress</span></td>
</tr>
<tr>
<td width="501"><span style="color:#ffcc00;">1.2.1.4.1.2.3.2.3.                      Revamp Spell System</span></td>
<td width="123"><span style="color:#ffcc00;">In Progress</span></td>
</tr>
<tr>
<td width="501"><span style="color:#ffcc00;">1.2.1.4.1.2.3.2.4.                      A couple of finished sample spells</span></td>
<td width="123"><span style="color:#ffcc00;">In Progress</span></td>
</tr>
<tr>
<td width="501">1.2.1.4.1.2.3.2.5.                      Define potential status effects.</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.2.1.4.1.2.3.2.6.                      Implement base status effects</td>
<td width="123">Not Started</td>
</tr>
<tr>
<td width="501"><span style="color:#99cc00;">1.2.1.4.1.3.   Retreating</span></td>
<td width="123"><span style="color:#99cc00;">Complete</span></td>
</tr>
<tr>
<td width="501">1.3.    Combat (Base)</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.3.1. Attacking (Player)</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.3.2.Melee</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.3.2.1.              Create Placeholder Weapon</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.3.2.1.1.                    Attack Animations</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.3.2.1.2.                    Damage Enemy</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.3.2.1.3.                    Ranged</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.3.3.Ranged</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.3.3.1.              Create Placeholder Weapon</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.3.3.1.1.                    Define how moving projectiles affect turns</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.3.3.1.2.                    Projectile Animation</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.3.3.1.3.                    Magic</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.3.3.2.              Casting Animation</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.3.3.2.1.                    Implement</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501"><span style="color:#ff0000;">1.3.3.2.2.                    Dual Wield?</span></td>
<td width="123"><span style="color:#ff0000;">On Hold</span></td>
</tr>
<tr>
<td width="501"><span style="color:#ff0000;">1.3.3.3.              Define how the player will use dual wield (Attack both at once, choose which hand, etc.)</span></td>
<td width="123"><span style="color:#ff0000;">On Hold</span></td>
</tr>
<tr>
<td width="501">1.3.3.3.1.                    Items</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.4.    Define item types (Consumable, Weapon, Armor, Quest, etc.)</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.4.1.Define item script heirarchy</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.4.2.Determine item commonalites and differences</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.4.2.1.              Create item heirarchy</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.4.2.2.              Weapons</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.4.2.3.              Create Weapon Scriptable Object</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.4.2.3.1.                    Make Weapons equippable (through editor)</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.4.2.3.2.                    Share common animation based on type</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.4.2.3.2.1.   Practice with Infinity Weapons</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.4.2.3.3.                    Practice with Mesh Effects</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.4.2.3.4.                    Integrate Infinity Weapons and Mesh Effects</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.4.2.3.5.                    Procedural Weapons</td>
<td width="123"> Not Started</td>
</tr>
<tr>
<td width="501">1.4.2.3.5.1.   Experiment with Infinity Weapons texture generation and Blend Shapes at Runtime</td>
<td width="123"> Not Started</td>
</tr>
</tbody>
</table>
<p>Side note: looking at this list now, it&#8217;s starting to get pretty long. I might need to make some separate sublists.</p>
<p>As you can see, I&#8217;m currently working on implementing the spell system for the enemies.</p>
<p>I&#8217;ve been at this task for a while. It was nearly done, but I realized it was needlessly convoluted when I had to keep re-learning how to use it to create new spells. So now I&#8217;m reworking it a bit, and so far so good.</p>
<p>Once the spell system task is complete, I&#8217;ll be able to move on to what I consider to be a major milestone: making the player do stuff.</p>
<p>Currently, all he can do is move and take damage. After the spells, I&#8217;ll work on making him be able to attack back.</p>
<p>Speaking of milestones: I really need to define some formally.</p>
<p>Anyhow, I&#8217;m excited to get over this spell-casting hump and to start turning all of this functionality I&#8217;ve created into an actual game.</p>
<p>As soon as the player is able to start attacking back, the need for new systems is going to skyrocket. We&#8217;re talking weapons, armor, items, inventory and all of the little pieces that make them all up.</p>
<p>I&#8217;m realizing now that this next task is going to be a huge one, but I&#8217;m suddenly super excited to get to that point. As soon as I finish spellcasting, and before I start working on the player, I&#8217;m going to make sure all of my code is painstakingly commented. This will be a turning point in the project, and I have to execute it well.</p>
]]></html></oembed>