<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://www.nickcotton.me/blogs</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2023-03-05</lastmod>
  </url>
  <url>
    <loc>https://www.nickcotton.me/blogs/pre-gold</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2023-03-05</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/a6df1589-5443-4da7-9803-8e990324562d/flier_attack.gif</image:loc>
      <image:title>Dev Blogs - PRE-GOLD - Make it stand out</image:title>
      <image:caption>The flier enemy attacks and dive bombs toward the player (prior to graphical implementation)</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/6f5054e7-0ff0-47bc-ad45-790e538fbcc4/charger_wip.gif</image:loc>
      <image:title>Dev Blogs - PRE-GOLD - Make it stand out</image:title>
      <image:caption>Charger with new animations and behavior, aggroing from taking damage, and performing its new swing attack</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.nickcotton.me/blogs/pre-beta-ii</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2023-03-05</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/7865035f-8080-4241-aca1-6f9a5f2941ae/attackCode.png</image:loc>
      <image:title>Dev Blogs - PRE-BETA II - Make it stand out</image:title>
      <image:caption>Integrating the shooter attack was relatively simple, but unforunately relies on global booleans</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/8809de89-d924-4709-ba04-9353d00f641d/knockback.gif</image:loc>
      <image:title>Dev Blogs - PRE-BETA II - Make it stand out</image:title>
      <image:caption>Knockback being tested on a charger after the script change</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/22a57e6d-5ff3-4efd-8d32-35c7a645188c/stuck.gif</image:loc>
      <image:title>Dev Blogs - PRE-BETA II - Make it stand out</image:title>
      <image:caption>Another enemy programmer discovers the charger corner bug</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.nickcotton.me/blogs/pre-alpha-iii-pre-beta-i</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2023-03-05</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/0464ab8e-97bd-4fcb-8eae-98f8645446b3/findDestination.png</image:loc>
      <image:title>Dev Blogs - PRE-ALPHA III / PRE-BETA I - Make it stand out</image:title>
      <image:caption>Finding a new destination outside of Update() with the GroundDirectionChooser.cs changes</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/9c948c6d-d3d8-4b25-8726-811e26b0a7ce/groundDirection.png</image:loc>
      <image:title>Dev Blogs - PRE-ALPHA III / PRE-BETA I - Make it stand out</image:title>
      <image:caption>Current iteration of GroundDirectionChooser.cs with new parameters and NavMesh.SamplePosition()</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/8c8f44c3-ced2-4955-834f-ac25a2d7940e/shooter.gif</image:loc>
      <image:title>Dev Blogs - PRE-ALPHA III / PRE-BETA I - Make it stand out</image:title>
      <image:caption>Shooter enemy selecting NavMeshLinks while on patrol</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.nickcotton.me/blogs/pre-alpha-ii</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2023-03-02</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/a4a581bb-ad30-4b38-91c0-1c6aefe49870/patrolGif.gif</image:loc>
      <image:title>Dev Blogs - PRE-ALPHA II - Make it stand out</image:title>
      <image:caption>Patrol behavior with slight bias towards the player</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/0a7c1871-875a-44a9-bab2-df5e4216ce7c/UpdateAttacking.png</image:loc>
      <image:title>Dev Blogs - PRE-ALPHA II - Make it stand out</image:title>
      <image:caption>State transition checks and pseudo-code for each state</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/3a882f54-6a37-45bf-b76e-5a4cd7b309ba/UpdateLoop.png</image:loc>
      <image:title>Dev Blogs - PRE-ALPHA II - Make it stand out</image:title>
      <image:caption>ShooterBehavior.cs base update loop</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/0c2ec03a-2ff8-4670-9a9f-50faae905af1/navmesh.png</image:loc>
      <image:title>Dev Blogs - PRE-ALPHA II - Make it stand out</image:title>
      <image:caption>PatrolBehavior.cs utilizing NavMeshAgent</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.nickcotton.me/blogs/pre-alpha-i</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2023-03-05</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/6ff86481-6763-4d6a-9b30-7ad06880c43b/groundDirection.png</image:loc>
      <image:title>Dev Blogs - PRE-ALPHA I - Make it stand out</image:title>
      <image:caption>Properly documenting scripts</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/e36b1d28-ab10-4593-86f5-bc7f5e5e87c7/states.png</image:loc>
      <image:title>Dev Blogs - PRE-ALPHA I - Make it stand out</image:title>
      <image:caption>State update loop</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.nickcotton.me/home</loc>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
    <lastmod>2024-03-05</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/1676841770788-YBOR14GP8JD8KO1GYF2C/unsplash-image-cGNCepznaV8.jpg</image:loc>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/1676841770788-YBOR14GP8JD8KO1GYF2C/unsplash-image-cGNCepznaV8.jpg</image:loc>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/1676842660812-9KOS67ZFQWHZ4T1NA98Y/unsplash-image-zGZYQQVmXw0.jpg</image:loc>
    </image:image>
  </url>
  <url>
    <loc>https://www.nickcotton.me/home/flickernaut</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2023-02-23</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/83c96198-4064-4b76-a3e8-daff2dd985cf/flickernaut_jump.gif</image:loc>
      <image:title>Home - Flickernaut - Player Jump</image:title>
      <image:caption>Many new mechanics and worlds were in production beyond what is viewable in the playable demo, such as air vents that allow Flickernaut to traverse the world in new ways. No matter the distance and direction from the vent to the intended destination, the player will always safely land where intended.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/824322e5-4357-4594-be2a-f242b3e9e317/killswhenvalidpath.gif</image:loc>
      <image:title>Home - Flickernaut - New Dangers While Solving Puzzles</image:title>
      <image:caption>State Machine Drivers Whatever it is, the way you tell your story online can make all the difference. Whatever it is, the way you tell your story online can make all the difference. Whatever it is, the way you tell your story online can make all the difference. Whatever it is, the way you tell your story online can make all the difference.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/a0a448aa-cbda-40e2-a467-c4f4155b32c7/path_checking.png</image:loc>
      <image:title>Home - Flickernaut - Make it stand out</image:title>
      <image:caption>Whatever it is, the way you tell your story online can make all the difference.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/c4f3aa1e-e78c-45ea-97cd-6d4457ea8076/world1_overview.gif</image:loc>
      <image:title>Home - Flickernaut - Overarching Direction / World Design</image:title>
      <image:caption>Flickernaut consists of two elements that interact with each other - a top-down isometric puzzle (light) world, and a third-person stealth (dark) world. I was largely responsible for the creation of the light world. This included player movement, puzzle creation, and visuals. I was also responsible for the direction of the project’s future. Multiple new areas are in mid-production beyond what is available in our playable demo: writing, level design, world design, and the new gameplay mechanics of these areas were among my primary responsibilities.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/bd2e30d1-8ed7-4681-8af3-9bdea4de0dbd/player_jump.png</image:loc>
      <image:title>Home - Flickernaut - Make it stand out</image:title>
      <image:caption>Whatever it is, the way you tell your story online can make all the difference.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/89886d56-13c5-4b31-bdee-a3eced3ad34c/flickernaut_compilation.gif</image:loc>
      <image:title>Home - Flickernaut - Light World Functionality</image:title>
      <image:caption>Flickernaut can interact with the light world in a myriad of ways. From buttons that open new pathways, checkpoints, collectable objects, and a final chase sequence, I put a lot of work into ensuring that the moment-to-moment gameplay of this world is functional and interactive.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.nickcotton.me/home/caduceus</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2023-02-23</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/63a0e51f-1b6b-441f-86bd-c027fed5f29c/groundDirection.png</image:loc>
      <image:title>Home - Caduceus - Determining Patrol Destinations</image:title>
      <image:caption>Determining Patrol Destinations I implemented the system to determine valid destinations for each enemy during patrol. The enemy would sample the NavMesh to find a valid destination, determined within an angle either towards or away from the player, specified by the user calling the function. Allowing differentiation between player bias, the angle that could be searched within, and the minimum travel distance of the enemy from its current position allowed for each enemy to feel unique while minimizing duplicate code.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/63439ebe-635d-487e-9467-74b6c8946e61/shooter.gif</image:loc>
      <image:title>Home - Caduceus - Basilisk Patrol Behavior</image:title>
      <image:caption>All enemies were scripted to patrol pseudo-randomly across their platforms. Our second enemy, the basilisk, performed similarly, with the additional ability to hop between different platforms. As well as the general patrol behavior for these enemies, I created a system in which the basilisk would detect valid connections to jump between along its patrol path. This created a more dynamic enemy and a significant differentiation between how the player interacts with the minotaur and the basilisk.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/2327d28e-0aa8-4444-8b9b-f3b3323f2b36/state_machine.png</image:loc>
      <image:title>Home - Caduceus - State Machine Drivers</image:title>
      <image:caption>State Machine Drivers Each enemy consists of multiple states to determine their behavior, such as peaceful, searching, and pursuing. I was tasked with the implementation of the state machine drivers for each enemy, determining what conditions were necessary to transition between one and another.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/052744ad-4765-4c1a-8498-dd4c5000303c/charger.gif</image:loc>
      <image:title>Home - Caduceus - Minotaur Behavior</image:title>
      <image:caption>While I contributed to all three enemies in Caduceus, my focus was largely on the Minotaur. This included its patrol behavior, aggro detection, swing attack, animations, and refinement of its charge attack. The swing attack in particular was an originally unplanned addition that gave the enemy a more cohesive feel.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/6c8a84d2-3b29-49f1-95cc-b8bf712f7ed2/flier.gif</image:loc>
      <image:title>Home - Caduceus - Phoenix Attack Pattern</image:title>
      <image:caption>I worked closely with another enemy programmer to implement the attack behavior of the flying phoenix enemy. Once detected, the phoenix circles the player, shooting fireballs and dive bombing periodically. Unfortunately, much of this behavior didn’t make it into the final product and had to be cut due to time constraints. The final iteration of the dive bomb now initiates a self-destruct instead of the above behavior.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/22d81146-7c14-4edb-b2e8-e36a713fda4c/basilisk_attack.gif</image:loc>
      <image:title>Home - Caduceus - Basilisk attack and retreat pattern</image:title>
      <image:caption>Being a ranged enemy, the basilisk wants to maintain its distance from the player. An attack/retreat pattern was implemented, allowing the enemy to run while launching projectiles should the player come too close.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.nickcotton.me/home/itsallrelative</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2023-02-23</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/e684fcb3-d8cf-4597-aedd-466c326feec1/relative_bounce.gif</image:loc>
      <image:title>Home - It's All Relative - Orb Deflection</image:title>
      <image:caption>Later puzzles include unwalkable icy surfaces that the orb deflects away from. This gave me experience working with object manipulation and more complicated puzzle designs.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/8a209e56-08b6-4e5b-99af-a488c693312f/relative_gravity.gif</image:loc>
      <image:title>Home - It's All Relative - Teleporting and Altering Gravity</image:title>
      <image:caption>The primary mechanic of It’s All Relative focused on traversing the environment through gravitational manipulation. The player has the ability to launch an orb that, when making contact with a walkable surface, teleports the player to its location and makes that surface the new center of gravity. Giving the player this ability made level design a strong priority, as this environmental manipulation could potentially lead to puzzle-skipping exploits if not handled correctly.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.nickcotton.me/home/zeldarecreation</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2023-02-23</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/3e0df691-2f85-4b5e-bee3-f47a8f373214/zelda_gameplay.gif</image:loc>
      <image:title>Home - Zelda Recreation - Implementation of Core Systems</image:title>
      <image:caption>I learned an immense amount through the development of each core system: attacking and projectiles, enemy movement, inventory management, screen transitions, among others. I put a lot of effort into making the recreation of Dungeon 1 as faithful as possible to help solidify my foundation in game development.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/75f6b6d6-0b4f-4920-9fff-06e6314fcb9c/zelda_boss.gif</image:loc>
      <image:title>Home - Zelda Recreation - New Combat Opportunities</image:title>
      <image:caption>As well as combat against traditional enemies, the gauntlet also allows the player to battle against the environment.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/63e6e8aaac049210620cf1e2/71528a27-3e0c-4f44-8bb7-8f0edf26f97f/zelda_gauntlet.gif</image:loc>
      <image:title>Home - Zelda Recreation - New Gauntlet Ability</image:title>
      <image:caption>My original dungeon showcased a new item called the gauntlet that allows the player to dash forward, destroy blocks, avoid obstacles, and damage enemies along the way. Much of this dungeon focused on utilizing this item to solve its many puzzles.</image:caption>
    </image:image>
  </url>
</urlset>

