First: Really sorry I’ve been gone from this blog for a year! I get these “hermit phases” where I just feel like disappearing from time to time (it’s kinda annoying tbh, any tips are appreciated). I work on stuff when I can, so even when I don’t update this blog, something’s still probably happening in the background, albeit probably slowly…

At the start of 2019, I found myself a bit (more than a bit) overwhelmed with the monthly updates. I couldn’t really keep up as this is mostly a side project and some months just felt like nothing really changed, which really lowered my drive a bit. I decided to just keep quiet for a bit, but still keep track of my progress.

After a year… Progress still doesn’t seem like much imo, but I can at least see the difference from 2018 to now so that’s a thing. I put short tl;dr next to each month and the number of days (I work on the project from when I wake to when I sleep) I’ve spent on working on the game per month. Some are blatantly disappointing but other months (well, maybe just October…) make up for them.

For 2020, sadly with the state of the world as it is, I actually haven’t progressed at all. My online classes go on as normal, and now I have some home stuff to take care of. I probably won’t be posting again any time soon unless I make groundbreaking progress. But my problems are absolutely nothing compared to others’ right now though. Hopefully everyone’s following proper safety precautions. Stay safe out there.

Well, enough with my rambling. Here are some screenshots of the most visible changes (most changes are backend), and the monthly logs I’ve kept all this time; hopefully some of them look at least competent:

*Everything is WIP. Things look bad, and I’m open for suggestions.

Inventory:

The Rest:

Settings & Saving:

Changelog [January] (2 Days): “Fixed resolution stuff and made a Camera (First Person) Mode.”

I can see the months where I had no time at all to work on this, damn. You’ll be seeing a bunch more of these later, sadly.

————————

Jan 11 – Fixed supported resolution list bug where there would be duplicates (2x 1920×1080 choices) in Build but not in Editor

Jan 22 – Added Camera Mode (First Person) with Zoom In function

Changelog [February] (3 Days): “Shops sell for profit, Player has an Inventory, More Camera Mode Features, Experimental Character/Party Leader Swap, Color Picker, Character Data now in the actual object).”

Just a few tweaks to a few random areas here and there. Pretty non-eventful stuff. I tried the Color Picker external asset (https://github.com/judah4/HSV-Color-Picker-Unity). Maybe someday I’ll learn to code one, but for now this one has everything I need to spice the UI up a bit.

————————

Feb 5 – Added Markup to the item prices in stores

– Added Inventory list, the Player can now be given items through the Debug Console

– Added a ‘Camera Menu’ exclusively for the camera (First Person) which will include Camera Functionality Options

– Added Camera Sway/Rock in Camera (First Person) mode, can be turned off and on with the toggle ‘Anti-Sway’ Mode

– Added ‘Memorize Zoom’ Mode toggle, the amount of zoom on the Camera Mode (First Person) will be retained even when switching between First and Third person, disabled by default

– Added a placeholder Zoom HUD showing how Zoomed in the Camera is

– Added a Visual Snow effect to the Camera Mode

Feb 18 – Implemented Color Picker (https://github.com/judah4/HSV-Color-Picker-Unity) for Camera HUD

Feb 24 – Added Character Swap which switches camera and controls to a different Playable object

– Added a script that will be present in all characters, which contains all their data (ie. ID, Name, Stats, “is it moving?”, “is it crouching?”, etc.)

Changelog [March] (1 Day): “Characters use data from JSON files. Fixed a pesky initialization bug I had since way back.”

I think this was the start of my new, more fluid system. Having every data be outside of Unity’s scripts helps me a lot by not having to change too much coding when implementing something new. When updating the game, Json data stays the same, and reading from and writing to Json doesn’t change. Even if my core systems get tweaked, I don’t have to worry about rewriting things in a certain way.

———————-

March 2 – Objects can now read JSON character data and apply these to their Character Data Script

– Game can now initialize/build in order reliably, removing the risk of crashing due to missing references

– Game now builds Person and Item data at startup again since the errors are gone (Might be moved to New/Load Game buttons someday when I revamp the Main Menu)

Changelog [April] (4 Days): “Interaction system stuff like a crosshair, interact key, picking up item. Also jumping is now possible.”

This was another month of “I’ll just put in whatever.” Though. to be honest, it now looked more like a game with all that UI. Hold E to interact is still something I need to test out.

———————

April 19 – Figured out what the main features of the game will be, more on that someday

April 20 – Added an Interaction Script, now E/Interaction Button can be pressed to… Interact with Interactables

– Adjusted Interaction distance to be based on distance from Player Model instead of the distance from the Camera (Since zooming in and out makes it kinda wonky)

– Integrated Interaction Script into First Person/Camera Mode

April 21 – HUD can now be in any color using the Color Picker in the Settings Menu

– Added more functionality to the Interactions

– Before triggering an interaction, the player must hold the interaction button (E on keyboard), a ring will show the progress of the interaction (Ring color changes with HUD Color)

– Each interaction can be set to have differing ‘hold interaction button’ times, from 0 to infinite

– Each interaction displays what can be done when it’s selected (Pick Up, Open, Buy, Talk, etc.) like in Fallout

– Picking up Items off the ground and into the inventory is now possible

– The light inside the Debug Room can now be turned on or off using the new Light Switch object

– Player can now Jump/change Y-axis and reliably land on the ground

April 22 – Edit Inventory script allows for adding to and removing from inventory

– Edit Inventory also cleans up any x0 and x-1 or lower quanity items by removing them from the list

– This will also serve to simplify Shop and Storage scripts in the future

Changelog [May] (0 Days): “None.”

Held off most things to get used to online classes.

——————–

Changelog [June] (2 Days): “Settings are now INI instead of JSON. Minor QoL tweaks.”

Json as the settings config format had always bothered me. It’s so easy to get typos that you may as well just change stuff in-game. I finally used yet another external asset (https://assetstore.unity.com/packages/tools/advanced-ini-parser-23706. Free again, I’m poor) to convert Json to INI, the best boi.

——————–

June 9 – Did a bit of spring cleaning with scripts I never finished

– Picking up items now have notifications at the top left (name and quantity), as well as in the console (Item ID and quantity)

– Implemented an INI Parser (Better looking and more user-friendly than my JSON settings file) Link: https://assetstore.unity.com/packages/tools/advanced-ini-parser-23706

– Changed path of GlobalPrefs.json (now .ini) to My Games for now (Windows authorization may screw up saving into own directory + other games do it anyway)

June 10 – Can now save Main HUD color to settings

Changelog [July] (0 Days): “None.”

I had tons of homework this month. Wish I had more time.

——————-

Changelog [August] (0 Days): “None.”

This month we had our Finals. I polished the game’s concepts a bit more, though.

———————–

Changelog [September] (5 Days): “Saving & Loading is now possible and saves into its own game folder in Documents/My Games. Reworked my older scripts to become more compatible with future updates and everything. Made a bunch of useful debug console (my homemade one) commands to help my future self out.”

Finally got back to it! Great strides were made during the last week. I’m pretty proud of the modifications I made to my old scripts. I’m very happy I can see so much improvement over the years (my 2016 scripts were atrocious compatibility-wise). A Saving and Loading operations have been made, accessed via the debug console. For now though, only the Inventory and Conditions (Player & NPC Status Effects) may persist through these save files as I have yet to make scripts for other mechanics.

————————–

Sept 24 – Reworked Inventory script programming to make way for new inventory-related systems

– Debug console can now read “command + subject” format commands, for example: “modinv icedcoffee 4” modifies inventory by adding 4 counts of icedcoffee into the inventory

Sept 25 – Foolproofed the “modinv” command, which will help a lot during testing

Sept 26 – Inventory items are now persistent as they can be saved and loaded.

– Saving & Loading are now possible through the debug console. e.g. Typing “save elephant” makes a folder, inside the game’s “Saves” folder, named “elephant” which contains the save data.

– Adding spaces to save file names is now possible by including “”.

– Took care of even more bugs from the save/load feature (regarding file names)

Sept 27 – Reworked some concepts

Sept 28 – Polished the debug console a bit more

– The current status of characters can now be saved as well, just like the Inventory

Changelog [October] (10 Days): “Fully functional Inventory and Party menus. Improved a crap ton of old scripts. Added camera wall collisions. Added stress damage and stress gauge. Added time of day. Added crouching. UI improvements. Status Effects can be fully saved and loaded.”

October had been a blast to work through. By far my favorite month this year. This felt like an overhaul segment to correct everything I’ve made so far. I reworked all the old code for the menus and I’m just really proud by how finished (not visually, just coding-wise) they feel now. I’ve brought back old mechanics that worked in my previous project file before I decided to make an entirely new project file, and made the code far more adaptable than before. I was proud that slight line tweaking of my code allowed for storage and character-specific inventories/equipment to work right away. The camera code I replaced my original one to wasn’t made by me from scratch, so I had to study it for a while to get how it worked the way it did.

————————–

Oct 1 – Conditions(Player & NPC Status Effects) Save & Load now fully works. The script can keep track of all the changes done to any character (gained status effect and duration of effect, how damaged, etc).

– Made Unity print out a crash log when the game crashes, just in case.

– Added script to apply Status Effects

Oct 3 – Added back a fully functional Inventory Menu

Oct 6 – Further improvements to Inventory Menu

Oct 13 – Made a Party Manager with UI

– Can now switch party leader again (previously it was a test code)

Oct 14 – Improved some scripts to play well with the new Party Manager

– Updated my camera script to much better coding

– Camera now has wall collisions

– Removed first person feature for now since the camera script got drastically changed

Oct 15 – Fixed UI sorting order coding. Now nothing blocks anything they’re not supposed to.

– Fixed UI even more so ESC can be used to exit every menu except Pop-Ups (Game knows how many Pop-Ups are on screen at once).

– Reimplemented crouching. Can now go under overhead obstacles.

– Reimplemented Sprinting. For now, it’s a toggle.

Oct 16 – Improved the code for interacting with objects.

– Made a ‘drag-and-drop-to-swap-slots’ feature for the inventory.

– Inventory items can now be freely placed in any slot, even empty ones (similar to Minecraft)

Oct 21 – Added Time of Day: Dawn, Morning, Noon, Afternoon, Dusk, Evening, Midnight, “Small Hours”

Oct 22 – Fixed initialization of non-preloaded scenes. Now any new scene should properly initialize, preventing null exceptions.

– Game now recognizes which objects are supposed to represent party members.

– Implemented a test “damage area” where walking within it should damage anybody as long as they have records in the database (even NPCs should get damaged).

– Finally added back the Stress system (HP-like but it counts up when damaged) taken.

– When healing Stress: from the current Stress, it will work its way down in increments toward the goal Stress. Any hit taken before reaching the goal Stress will stop the healing, making current Stress permanent.

– When taking Stress: Mostly instant changes, unlike healing.

– Added a HUD to indicate Stress of the current character (Also visually indicates the current Stress and the goal Stress).

– Added simple animations for the HUD

Oct 31 – Improved on Inventory script’s coding

– Game now supports Storage and Character Equipment, and remembers their placements on save and load

Changelog [November] (3 Days): Just items?

————————–

Nov 2 – Can now drop items from inventory by pressing Q while on any inventory slot. (For now, the model for dropped items is just “generic soda can #1”)

Nov 4 – Fixed some drop item bugs.

– Changed “Pick Up” text to display the name of the item instead.

Nov 18 – Storage UI now accessible my interacting with the Storage Box object.

Changelog [December] (0 Days): Holiday stuff

Total: 27 Days of Development

Not surprising that it’s really low. I can’t really do this full-time yet, but I’m happy the game’s at least working well even with constant gaps between development days.

Roadmap:

> A Working Backend (Initialization, Save, Load, Functions)

> Settings UI (Preferences)

> Movement

> Camera

> Simple Interactions

> Player In-Game UI (Inventory, Party, Storage)

–We Are Here–

> World Builder

> World UI (Vendor, Dialogue)

> Skills/Abilities having Effects on World

Thanks for getting to the end!