Devlog no.2 - Hex Hiatus


I have written in the previous post, that I shall release another Devlog within week of writing said post. To be more precise, I've written "within this week", but I really meant the 7 day time period from writing said post.

But it doesn't matter that much; because when I'm done writing this it'll definitely be past that period anyways by about 1 to 2 days... Sorry in advance!

(Edit: now it has been 4 days... whoops)

Anyways, like I said in the previous post, after finishing my stuff for college I returned to development. I worked on it from July 5th till mid September, after which it was halted.

During that period, I was working a full-time summer job, so I could not work on this game as much as I'd like. However, there still have been quite some changes and additions that can be showcased in a Devlog 

Though, majority of the changes and additions, are based around modifying the game's code (hence the name Hex Hiatus (hexadecimal code) ).


1. Reworked hud

As some of you might have noticed, the crafting menu's UI, looked a bit different than those of other HUD elements. In actuality, it has the same design as every other HUD element; for I have changed the overall HUD design:


The main difference now, is that almost all of UI, have shadows. However, as you can see, that is not all. Besides new graphics and other effects (like background blur), there are also many new additions, both visual and functional!


1.1 Stamina bar, is now hidden by default. Much like oxygen bar, it'll be only visible, should it's value be less than full (full minus tiredness debuff).




1.2 Crosshairs, have been removed. Okay, not entirely; they're hidden by default.

Currently, crosshairs are only visible when using weapons. There have been some additions for crosshairs:


(From left: weapon crosshair, crosshair for when player is too exhausted to swing a melee weapon, crosshair for when gun is empty, reloading wheel)

Crosshairs for interactions/picking items/repairing, still exist, but they no longer function as crosshairs (I'll explain why later in this devlog):



1.3 Above inventory icons, there are two lines of text: item's name, and item's variables. They don't serve that much of a function, albeit they may provide some more context:


1.4 Minimap has been slightly changed. Aside from being circular, it's rotation is in synch with player's rotation. That white cone that shows players view, will now also be widened or narrowed depending on player's current field of view. It may also have a red aura around it, should the player be in combat, turquoise if in safe zone, and yellowish orange if in danger of some sorts (like radiation).



1.5 Information tab, as well as other menus that may be opened during play, will have blured and zoomed-in backgrounds. And also, aside from background being slightly darker, there will be semi-transparent images, related to currently opened menu:


You may also see, that the equipment icons, have been shifted to the left side of the map. The reason was simple: on window resolutions, where width-height ratios are more square-ish (like 4:3), the equipment icons could overlap with inventory icons. So I moved them.

Equipment text, is now being displayed next to the icon on which cursor is placed. While it's not in the game yet, I plan on doing the same thing to the buff icons on the right side of map. This way, upon placing cursor on buff icon in information tab, more information regarding that buff could be displayed, as opposed to the 32-pixel height limit of current texts (which allow for only 3 lines of text).


1.6 Probably the biggest addition to HUD, is coloring! Yup, UI now can be in other colors than black. The code, that is responsible for coloring, can color all of the elements, using any color in an HSV format. Currently, in-game players may choose between 3 color schemes:


Black, with white text:



White, with black text:



Rainbow cycle:

 

(Sorry for the poor quality... gifs amirite?)


Once I get to work on the game's settings, I might add more schemes to choose. Furthermore, if I'm going to monetize the game in one way or another, I may enable some of them for those who have paid; a fair deal I think!

2. Reworked hunger

These were visual changes, but there are also mechanical changes. One of the better ones, is the reworked hunger system!

As of now, hunger worked the same way, as in majority of survival games: it depletes, eating restores it, dropping to zero kills you. However, it has been completely reworked, in such way that none of you could have predicted!


So... how does it work?

It's static; it does not deplete nor increase. It only increases, when you eat food (the amount of points remain roughly the same). During gameplay, it has absolutely no effect on the player whatsoever.

The only situation, when the hunger does matter, is at the end of the round. Depending on how much food points the player has collected before leaving, there might be different outcomes for the next round. There are 5 stages of hunger, and their functionality:



Hungry: When the food points will be above 0, but below a certain threshold, escaping a map will result in certain punishment. The maximum amount of food points, will also be decreased by certain percentage.


Fine: Having food points between "Hungry" and "Well fed" point thresholds, won't result in anything, aside from a small rise in maximum amount of food points.


Well fed: Should the player have more than "Fine" amount of food points, they will be given one reward, however the increase in maximal food points will be greater.


Full: Having food points greater than the maximal amount, will result in two rewards for the player. The excess amount of food points, will also be moved to the next round. This however, will GREATLY increase the maximum of food points.


Starving: This is the initial stage. Having no food points, PREVENTS player from leaving a map. Should they try to escape anyways, they'll receive self-inflicted damage, which will convert part of health to food points. There are no safety measures here; leaving on empty stomach, might actually kill you if you're not careful enough!

This new system, has a lot of implications. The hunger is no longer a burden that can kill a player (a lot of times, in an unfair way), but rather a new system, that adds a lot of strategy towards a one's playthrough. While play-testing the game, I myself found a lot of interesting implications of this system:

  •  If you keep feeding yourself to "Well fed"/"Full" stages, you will gain a lot of rewards, that might improve your character early on. But, because stages are based on percentage of maximum food points, and because these two stages increase said maximum threshold by a lot... you can quickly change the maximum from 50, to 1000 points. Escaping while "Starving", while also having a huge amount of maximal food points, may accidentally kill you instantly without warning.
  •  Even tho "Hungry" stage might give you a punishment upon escaping, it will not kill you! And it also will remove the maximum food points. Therefore, it creates a cool dynamic, where you have to keep your diet by choosing to escape with certain stages.

But you might also wonder, what kind of rewards and punishments are there? Welp, I'm planning on making them a bit more diverse and interesting, but for now, they are as follows:

REWARDS:

  • One or two random items
  • One treasure, found at monuments
  • Full healing, and removal of any debuffs
  • A one minute shot of adrenaline, without taking any damage
  • Getting drunk

PUNISHMENTS:

  •  Losing health (but not to the point of dying)
  • Getting tired
  • Getting wet
  • Losing one or two items
  • Losing all bullets, batteries, durabilities, and other variables of all items you're carry


3. Results menu


A smaller, but still cool addition, is the results menu. Now, upon leaving a map, this menu will be displayed instead of loading screen. During it's display, you might take a small break before proceeding forth, and you also may admire all the small achievements you made during that round, like:

  • How much map you have discovered
  • How many items you've found
  • How many NPC you've killed, and how much damage you've dealt overall
  • How much food points you've gathered, and what rewards or punishment you'll get for it
  • How fast you've escaped

Only stats, that actually have been achieved, will be displayed in that menu. Therefore, I could add a lot more of them in the future.

There's also an idea, to provide a special type of rewards and other outcomes for certain statistics.

Among the planned additions, there are player profiles; these kind of statistics could be stored somewhere in the player's profile. And also, as mentioned previously, there may be special rewards for certain statistics (like possible unlockable perks and items).


4. 3D UIs

Ok, no idea how should I name this. Certain UI elements, are now 3D. Which elements? Stuff like: cardboard boxes, hazmat suits, swimming goggles, and sniper scopes. These elements were displayed as parts of HUD, even tho they are parts of the actual game world. So now, they actually are a part of the game world, rather than HUD:


(From left to right, up to bottom: Hazmat suit, cardboard box, sniper scope, scuba tank)


Besides being 3D, some of them have been given additional functionality. One example: sniper scopes are now moving, according to gun's position!

And another example: swimming in water now blurs player's vision. Using swimming goggles, they'll have clear vision:



5. Gameplay tweaks

Certainly, one and half a year since the last update, gave me a lot of time to play test the game. Well, I'm still terrible at bug testing and balancing game mechanics, but I did found a few ways to improve the gameplay. Of course, these ways are mechanical, so to fully appreciate them one would have to play the game. But still, if someone's curious, here's a list of these ways:


5.1 When receiving movement input, and when the player is touching ground, the velocity of player is instantly changed. Therefore, I've set player's friction to ZERO.

Because of that, the movement is now more fluid. Player does not stick to walls, climbing is easier, and it is now possible to jump over fences!

5.2 Ammo in Horde mode, is now unlimited. There's now no need to worry about conserving ammo, and one might spray'n'pray as much as they want! This makes the gameplay more action-based, rather than strategic, but in my opinion, it's more fun that way.

However, I've noticed that having machine guns (SAW or minigun), makes one practically invincible. So, I might add back some sort of ammunition system, but a different one to the previous one.

5.2 Some of bullets may now bounce of ground:

yeah... that's it.

5.3 In order to interact, it is no longer needed to look directly at the interactable object. Upon getting close to an interactable object, and having it withing ~45 degrees of the looking direction, it'll be automatically selected. In case of few object, the one with the least degrees will be selected:


Aside from being more comfortable, it also show items, without the need to look at/for them:



6. Semi class system

Warning, this section, is heavily based around programming. If you don't know what functions are, you may want to skip this part!


So.. what are the semi classes?

To put it simply, it's a set of functions, whose purpose is to parse strings in such way, that a string might contain a few variables of it's own in it's value.

I'll explain it's working on an example. Let's say, I have a string, that contains information regarding a certain item in the inventory. The item, is an AK-47 with suppressor and 10 bullets. We can store it in a string variable:


And let's say, we want our program to print out the value of it's bullets. With semiclasses, I could use function GetSemiclass():


Works perfectly! But acquiring data, is not the only function. There's a whole bunch of functions, with all the functionality one could want! For example:

- Setting a variable



- Removing a variable




- Performing basic arithmetical functions on variables




- Listing variables into an array



Some of you, that have understood this code, might be asking "Why?".

And some of you, who actually understand programming, might be asking this as in "Why haven't you used Structs or multidimensional arrays or JSONs instead?".

Truth is... I'm not really a good programmer. I made this system prior to going to computer science college. Before that, my programming knowledge was self-taught, and it wasn't all that advanced.

But to be fair, this system, for what's it meant for, actually work better than the structs (and I'm still not entirely sure how JSON works).

As for it's usage, there's actually a LOT of possible applications of this system:

  • Object in inventory, now can be stored as a singular string variable. Previously, they were stored in Vector3 classes, and now they may store way more than just 2 variables!
  • When saving, instead of saving variables separately, they may now be stored in one string variables
  • Because of the point above, there now may be more save files, due to the sheer easiness of saving multiple variables into single one!
  • Game settings (like game mode, difficulty, maps), aside from being able to be saved in single variable, allow for bigger customization of these settings, due to the get and set functions. To fully understand that point, one would have to understand the inner workings of round mechanics, so just believe me that is something good!
  • A string array might be used for key bindings




So, these are the major additions, that have been added. It's not much, but I couldn't really work on this project as much as I wanted to recently.

Like I said in the previous post, I probably won't be getting back to developing this game until July, so this post will have to do for now.

I've also started working on a new project (for my programming class). Perhaps if I'm going to hurry up before the end of my current semester, I could upload this upcoming project for everyone to play! Because I'm making a retro-stylized FPS game in Unity, I might also upload it as a web-based game!


But I shouldn't get ahead of myself;  that's it for this devlog. Thank you for reading, and I wish you all a good night!

Get Swift Survivors

Comments

Log in with itch.io to leave a comment.

Cool!