<script>
    import BannerTitle from "$lib/banner-title.svelte";
    import TableOfContents from "$lib/table-of-contents.svelte";
    import Video from "$lib/video.svelte";
</script>

<svelte:head>
    <title>2023-11 | denizk0461</title> 
</svelte:head>

<BannerTitle title="Project N5 Progress Update: 2023-11" subtitle="" banner="/projects/projectn5/devlog/previews/202311.webp" />
            
<p>My progress in November 2023. Updates are shown in chronological order.</p>

<TableOfContents />

<h2>Gearing Up</h2>
<p>Lots of progress on the 3D models! I modelled the first weapon for the game, the N5 Blaster, from start to finish!</p>
<p>The earliest version was based on an 8-sided cylinder. After some feedback from friends, I remade the weapon, using a 16-sided cylinder, and also adding more details to the weapon overall. More attention went into the grip, which now resembled a weapon grip more so than a stick.</p>
<div class="horizontally-centre-aligned">
    <img src="/projects/projectn5/devlog/202311/2023-11-05_00.webp">
    <img src="/projects/projectn5/devlog/202311/2023-11-03_01.webp">
    <img src="/projects/projectn5/devlog/202311/2023-11-05_03.webp">
</div>
<p>Here's an overview of the first model.</p>
<Video src="/projects/projectn5/devlog/202311/2023-11-03_00.mp4" />
<p>The final version of the weapon layers a black wireframe on top of the icosphere, so that in the game it's a bit more clearly visible that it rotates, and it uses smooth shading. I was against using smooth shading initially, as I wanted to go for a low-poly artstyle, but I think that approach just looked a bit cheap, considering my 3D models aren't exactly high-quality by themselves. Smooth shading gives the impression of smooth, high-poly models at a significant reduction in vertices.</p>
<img src="/projects/projectn5/devlog/202311/2023-12-11.webp">
<p>Here's the icon for the N5 Blaster that's to be used in the quick select menu, the item menu, and the HUD. The icon will be tinted in different colours when the weapon has been levelled up.</p>
<p>In my first attempt at creating this icon, I took a picture of the wireframed icosphere that's in the weapon, and I tried to vectorise it using Inkscape. That didn't work the way I wanted, so I hand-traced all the lines from the icosphere. I was confused as to why it's not symmetrical, but I later realised that that's just how the icosphere looks.</p>
<img src="/projects/projectn5/devlog/202311/n5blaster_icon.webp">
<p>I also continued work on the battle axe, giving it more character. It's still not close to being finished, but it's now a bit less of a rough draft.</p>
<div class="horizontally-centre-aligned">
    <img src="/projects/projectn5/devlog/202311/2023-11-01_01.webp">
    <img src="/projects/projectn5/devlog/202311/2023-11-01_06.webp">
    <img src="/projects/projectn5/devlog/202311/2023-11-01_09.webp">
</div>
<p>I will admit though that I'm unsure whether I'll actually stick with the battle axe as the protagonist's main melee weapon.</p>
<p>Another idea, though more as an unlockable extra, is Derek the crowbar.</p>
<img src="/projects/projectn5/devlog/202311/2023-11-06_02.webp">
<p>I also worked on the upgrade for the N5 Blaster, the N5 Cannon. Progress on that one has been a bit slow, since I have yet to figure out what kind of weapon I want the upgraded version to be.</p>
<div class="horizontally-centre-aligned">
    <img src="/projects/projectn5/devlog/202311/2023-11-12_04.webp">
    <img src="/projects/projectn5/devlog/202311/2023-11-12_02.webp">
</div>
<p>And, as a bonus, here's the discarded, very-early-WIP draft I created for a rifle-type weapon. I don't think this type of weapon fits the type of game I'm making.</p>
<img src="/projects/projectn5/devlog/202311/2023-11-12_00.webp">
<p>And a draft of a rocket launcher with 9 barrels! This is heavily inspired by the <a href="https://ratchetandclank.fandom.com/wiki/R.Y.N.O._(2002_game)">R.Y.N.O. from Ratchet & Clank</a>. It's coloured blue because I was investigating issues with the mesh's normals at the time.</p>
<img src="/projects/projectn5/devlog/202311/2023-11-02_01.webp">

<h2>A Star is Born</h2>
<p>I begun modelling my protagonist! I didn't progress far, as I currently lack a vision for where I really want my character to go in detail. I have slight ideas – inspirations are, for example, <a href="https://hero.fandom.com/wiki/Merc_and_Green">Merc & Green from Ratchet: Gladiator</a>, and <a href="/projects/projectn5/devlog/202311/denholm.webp">Denholm Reynholm</a>. I quite liked the idea of having glowing tubes on the character's back; I got the inspiration from a Blender tutorial that was randomly recommended to me one morning.</p>
<div class="horizontally-centre-aligned">
    <img src="/projects/projectn5/devlog/202311/2023-11-11_05.webp">
    <img src="/projects/projectn5/devlog/202311/2023-11-12_01.webp">
</div>
<p>i love</p>
<Video src="/projects/projectn5/devlog/202311/2023-11-11_09.mp4" />

<h2>Real-World Testing</h2>
<p>On a whim, I decided to import the N5 Blaster's model into my game. Doing that was honestly quite the motivational boost at the time, as it visualised my progress. I could actually play <i>my game</i> with <i>my weapon!</i> It's not finished at all, it has no proper mechanics implemented other than the shooting copied from the Purple Gun, and the glass is also not actually transparent.</p>
<Video src="/projects/projectn5/devlog/202311/2023-11-21.mp4" />

<h2>Inventory System</h2>
<p>I implemented an inventory system somewhat akin to Ratchet & Clank's. It shows the weapons the player has acquired, previewing the model in a 3D sub-viewport. Later, it will also show the weapon's name, remaining ammo, perhaps statistics such as damage, and a description. But that's a task for later.</p>
<p>The only reason that the Purple Gun as well as the N5 Blaster show up multiple times is because I wanted to test all inventory slots, and I didn't have any weapons other than those two implemented.</p>
<Video src="/projects/projectn5/devlog/202311/2023-11-24.mp4" />

<h2>My Best Friend JSON</h2>
<p>It might seem simple (or look complicated), but I came up with the idea of creating a JSON-based lookup table for the weapon metadata. Using this, it's quite easy to retrieve any kind of information about any kind of weapon without needing to hardcode it into the weapon itself. Here's an early screenshot of the lookup table.</p>
<img src="/projects/projectn5/devlog/202311/2023-11-25.webp">