New Year New Voxels


http://zoxel.duckdns.org/md_documents_blogs_blog-7.html

Monday: Jan 3, 2022;

`Some Research and Thoughts`

I've been watching lots of game design / documentaries / essays lately. Finding it really interesting to watch. Originally started watching Hollow Knight but it soon started to watch any I could find on any and all games.

One that stood out to me was one about Sky Rim. Not that I was particularly interested in skyrim, although I did like it's freedom of player choice.

The game that skyrim was based on it's time. The ones before it had more rogue like features. Influenced majorly from traditional board games. But it wasn't the information on skyrim that was new, it was on it's predecessors. Particularly of interest was Daggerfall, the 2nd game in the series.

Daggerfall featured a huge open world, bigger than any before it. It did so with procedural generation. The third game, Morrowwind, went the opposite direction with hand crafted environments. Although it had less dungeons. I think combined, as well as many other older RPGs, really explain where modern games come from and what older designers took inspiration from.

Another video of note was one about Mother 3, which I can see is where Undertale and LISA some of my favourite games draw their inspiration from. It had a really interesting story. The eerie thing was the town went from a happy self sustainable one, to one relying more and more on capitalism. Then when the factories closed down, people were left powerless. It's really similar to the dark reality we live in.

What the review mentioned was this, that these games focused primarily on world creation over game creation. That means that the worlds were designed to be worlds, whereas the focus on player was second to this. They didn't have world quest markers which made you have to talk to people, read maps and signs to find out where to go for a quest.

`Progress of Project`

I've been cleaning up my code, adding features along the way, documenting on this website. I have several automated scripts to upload and build the game as well as uploading to twitter. This year however I wish to expand this outreach a bit more by making YouTube videos. Perhaps I can automate the voice in game and use that for the videos haha, as my vocal chambers are not used much these days being a digital nomad. I'll also need things to talk about, but development process can be dull for others I think. Mostly giant lists of features, play testing and grinding.

I also considered automated testing for some of my modules, but at the end of the day it feels useless if I could use that time instead to just make new features. I test them pretty well and the systems are all fairly straight forward. I need some unpaid interns *grins evilly*... Mwahahaha.

I can't remember every little thing I did but I spent most of yestarday doing over 200 file edits and refactoring actions to target UserItem or UserSkill entities. Before the user data was still each in just a struct. This is important because now I can have say unique stat data per user item, like leveling up an item after use. Or leveling a skill up. It also cleaned up my code alot as actions used int indexes before and I had to worry about order of operations more than I'd like. In systems engineering, the best systems are ones that have no reliance on each other. This makes them simpler and easier to scale. I want to say, this process was fairly painful and I am in pain. But the resulting cleaner, leaner and meaner code means adding new features is much more enjoyable. I wish I cleaned up my house as thoroughly as my code base.

Last week I improved the minimap by making the pieces stream better, and also move based on player movement. I then added a time clock under neath the Minimap, this is for future use when I make more routines for NPCs and events. Atm it only gives you a better way to know when it will be dark. I also need to add resting mechanic and stamina in next to make this better used. I think I also fixed numerous bugs along the way. (After writing this I.. Checked again for bugs and found a few more xD)

Checking over my git commits.. Yes I also made dirt and grass convert to one another during the day time. (This kinda isn't supported during day to night transitions as the entire world's lighting values transitions). I also limited it to the chunks around the player as the changes causing file saving. It's based purely on the light value being sunlight or not for the transition, but later on I could add more dynamic systems for generating vegetation. Simulation is one of the key reasons I chose to develop with ECS framework.

So yeah numerous bug fixes and code cleaning, about 22 days ago I sped up voxel placement too. I did this by adding define statements for various outputs during the systems and made sure the times lined up. Then I scrapped the old lighting algorithm (propogation) and rewrote a new one. 30 days ago I added name labels above NPC's heads. Alot of the time in between is cleaning and bug fixing. And alot of refactoring old systems. I found a better way to do file saving with BinaryWriter's in SharedComponents. Was in the middle of making NPCs save into and out of chunks! That will make the game alot better.

Before this I added procedurally generated destruction textures, to replace the placeholder ones. This is a rough noise algorithm and I will change it at a later date to break from the point you hit it at. It also repeats the same texture on all 6 sides, so it's not optimized mesh wise either. I like all things in my game to be uniquely rendered, my only regret in this is that I reuse the same voxel textures. Later on I will make it so you have dyanmic indexes per chunk, including tilemaps generated. So when you place and remove voxels it adds or removes them to this dictionary. This is how I did it in my last prototype. It just means instead of the 255 limit of voxels you can have unlimited.. Which isn't my goal but I think by generating each biome to be different it can easily scale up alot more then the current 100ish voxels.

`Next Month`

So yeah, after all this research and Ham Consuming i've been doing, it seems like I should focus on World Generation next. Some of the things i'm considering next are:

  • World Generation; Readd biomes, towns
  • Add portal Buildings throughout world
  • Lore and Lore UI
  • Achievements and Achievement UI
  • Crafting, Recipes (and UI)
  • Party System and UI - Gotta Catch Em All (Is this trademarked?)
  • Tutorial Popups in world
  • Starting Tutorial Area - in some rich dudes Battle Arena
  • Blood Drip Effects
  •  Footstep Sounds
  • Better Music Generation
  • Fix bugs on planet sides
  • Wind effects + Audio - Like Hollow Knight's first scene
  • Improved Quest Generation
  • Villager NPC routines that they do on different days
  • Improved Tooltips, draggable windows
  • Improved Character Creation with edits made to DNA and DNA viewer

Files

zoxel [windows] (depreciated) 32 MB
Version 189 Dec 31, 2021
zoxel [linux] [mono] 36 MB
Version 132 Dec 31, 2021

Get Zoxel

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.