Saturday, 4 December 2021

v6.0 Release

 


The major implementation this time around is the ability to equip dropped weapons.  While this may seem like a very mundane feature, trust me it's a milestone from a game dev perspective.

Since different weapons could now be equipped I had to go back and change how swapping between weapons worked.  Previously I set it so pressing the Q key would cycle though the 3 available weapons, but now that weapons could be changed, I wanted to adhere to the two equipment slot rule.

The HUD also had to be changed.  Originally I had a fairly static way of changing the information on the HUD via specifically crafted functions for each weapon.  Since each slot can now have different equipment, or none, things had to be more dynamic.

I skimped out and just used a Godot panel node and label to make an info box in the inventory.  Other games like Diablo use the mouse to move weapons and items around, so a popup menu works well enough for this kind of deign.  But the inventory system I made is more static in nature and was meant to be used with a game pad or keyboard, so I felt that it would be more appropriate to have a mini HUD in the inventory menu to tell the player what it is they are focused on.  Right now it only shows the stats of items that have been selected (as apposed to showing when the cursor is over the time), but I plan to refine this, if not in this prototype, then in the main game.

The inventory controls have been revised a bit.  I got rid of the use of the C key and set the S key to invoke the exit command when an item is not selected.  I also removed the Z key from the state machine, it was meant to be a temporary way to exit the inventory before the menu, completely forgot about it. 

One of the drawbacks of the inventory system I made is it operates somewhat like Tetris, the 'blocks' are spawned in the upper left corner and then moved inside the inventory.  So I placed several labels in the inventory to designate what area does what.

I also implemented a save system.  Press the P key to save what is in your inventory.  Press the L key to load.  I recommend using this when you start a fresh game, as the save system will not remove anything that was previously gotten.  In its current state I don't recommend using it seriously.

While I still have a lot of polish to do on the enemy's state machine there was a random bug were the enemy's would get suck in the dying state.  I think I managed to get rid of this bug, but since it's kind of random I won't know until there is more testing done.  There was also a problem with the bullets having the wrong vector or the player suddenly snapping in the wrong direction during entering/exiting strafing state which seemed to happen at 'random'.  I think I got this one too.

The next update will probably feature a shop.  I went back to Blender to model a shopkeeper and other assets that I'll need.  I'll also likely work on the dialogue system too, since I want the shop keeper to interact with the player.  I'll probably be in Blender for a while, since I'm getting a little tired of programming and want to do some artwork for a change.

 

Head over to Itch or GameJolt to try it out if you want.

Tuesday, 16 November 2021

Version 4.0 release on Itch.io and Game Jolt

 

With this release I implemented a wheel menu, the beginnings of an inventory system and trimmed away some of the fat.​

Implementing a wheel menu was fairly easy to do as I have done one before in other demo projects that will likely never see the light of the internets.

The inventory system really had me work my brain.  I downloaded several demo projects and a few tutorials.  Unfortunately they all used code that looked like Greek to me (obviously done by people that know how to program).  Also none of the inventory systems had the functionality that I was looking for.  I'm sure if I was more versed in code I could modify the demo projects, but at this point I just want something that works. 

I took what I knew how to do and worked around my limitations in programming to make the inventory system that I wanted for this project by using bubblegum and raycast2d.  The current implementation is actually not complete as the prototype I made in a separate file has more functionally than the iteration that I put in this release.  But I felt that it was time for another release just to try and keep myself consistent.  At some point I'm sure I'll improve and be able to make a more optimal inventory system, but for now this will work (I hope/think).

I also decided to remove some of the strafing animations.  This won't really effect anything in game as I reused some of the directions and just played them in reverse.  The result was a pretty big downsizing from the previous release and if I read the console correctly the game will use half a gig less in ram.  There is also the animations for the weapons that can be downsized too.  It would be kind of time consuming and tedious, but I'm really curious to see how much fat I can trim off this project.  Although it's not really a big deal for this prototype if it's optimized or not, I might and well get use to concerning myself with how much memory I'm eating up as I will be implementing more assets in the game I have in mind after this project.


https://arkinum.itch.io/arkinums-project-magi-war


https://gamejolt.com/games/Arkinums_PMW/

Monday, 1 November 2021

Full Tilt

 

I figured it's probably a good time to make a blog update.

My employment with my day job is still in limbo as the governments of the free world continue to carry out the will of the NWO. I think its been about a month now that I've been off the day job.  Thankfully I wasn't stupid and prepared for potential loss of job and income. Still I'd be lying if I stated I wasn't a little concerned.

 

Anyway, on to game dev related stuff...


Progress on PMW is going relatively smoothly, I honestly didn't realize that I learned so much during the on and off development training that I did throughout the years.

The last update brought up the game to v3.0 (since I don't have a clear goal with this prototype I'm using whole numbers for each version). This release added quite a bit of animation, and size to the game. Full animation was added for a shotgun and machinegun, along with logic and functionality in game.  I had to create an entirely new set of animations to accommodate the different style of grip the machinegun uses.  I'll have to think of a way to lower the bulk when I work on the actual game.  For now I'm not going to worry about it as changing all those frames of animation and animation logic files in Godot would take 'forever', and I pretty much have most of the memory intense resources I need to get an MVP done.

Currently I'm working on the in game menu, which boils down to working on an inventory and other options that will need their own working systems. So far I got the options menu working with methods to end the game or go back to the main menu. Invoking the menu will also pause the game (Godot makes this easy thankfully). The loading screens needed to be reworked, but I've managed to fix the bugs and now there is good transition between the main menu and the game area.

I'm going to take a bit more time and try to get the inventory working for what I have in mind. I did find tutorials and demo projects that have solutions I could use, but what I really want is something that works like Tetris. While I don't want to look a gift horse in the mouth, some of the tutorials and demo projects are really not designed for learners and have a lack of commentary in the code to tell the person learning what each function or variable does. Thankfully I found a Tetris tutorial series on YouTube by a guy that goes by the handle GDScript Dude. I'm hoping to be smart enough to re-purpose this into an inventory system when I'm done doing the tutorial.



That's if for now.