Development blog
This is our development blog! We have been maintaining this blog with updates for over 1000 days now, starting June 10th, 2013. Here you can read about the work that goes into making a game as complex as Brutal Nature:
September 3rd update
Added a message for when switching materials and for when you can't place materials due to not having enough of them. Fixed shotgun pellet spread randomization to be the same on server and client. Escape now exits console mode and party menu.
Experimented with early Z fail optimization by rendering the nearest terrain first with pixel shader disabled. Found an average 15% improvement in FPS, although this varied a lot from -5% to +25% depending on the exact scene and how much was rendered.
In the same respect, changed the sky dome to render last, gaining 5% on average with 0% to 10% depending on scene by exploiting early Z fail, even though it now has to do Z testing where as before it was drawn without Z testing or writing to Z buffer.
Added a background to the chat box, scan text box and ammo display so they are more readable.
Changed player terrain collision to work with ellipsoids instead of spheres. Player can now get into much narrower caves and doorways.
September 2nd update
Fixed bug in frustum culling, seems to have resulted in 50% more FPS on average. Investigated other rendering optimization techniques like vertex cache order optimization and early z-fail.
September 1st update
Looks like my first approach to terrain LOD may not be suitable due to large amounts of pop between LOD levels and still a huge number of triangles generated. However it might be useful for generating a map of the island. I may look into at some point in the future.
Spent most of the day doing more research on terrain LOD. Found a few interesting leads that should work out better.
August 31st update
End of the month! This month the webpage has improved some more and on our first month on IndieDB we had 10,000 hits! Thanks for all the support!
The game itself has seen lots of changes too:
- Fixed all known bugs!
- Scriptable quest system.
- Tutorial quests.
- Improved terrain generation
- Saving/Loading of region data
- New control scheme.
- New terrain editing grid
- Better error reporting
- Added support for mod key binds, Ie: Shift+X
- Reduced bandwidth required by 50%
Today was more work on the terrain LOD system. Slowly getting there.
August 30th update
While working on LOD I found a way to further reduce bandwidth by reducing the number of chunks sent, early tests show it should reduce bandwidth needed for sending the map by about 50%.
So I have been working on that today as it will make implementing LOD and a few other features easier. It should also reduce map generation time on server start up.
August 29th update
Working away on terrain LOD system. Fixed login bug related to users reconnecting quickly after a disconnect.
August 28th update
More tweaking of the terrain editing system. Fixed smelter progress bug. Started work on adding terrain LOD.
August 27th update
More work on a new control layout and play testing. Did some research on terrain LOD.
August 26th update
Did more play testing and adjusting of how terrain is edited. Worked on some new graphical effects for editing.
August 25th update
Did some play testing. Looked for bugs and tried out the new key bindings and editing methods.
August 24th update
Fixed bug in tutorial quest. Experimented with new default key bindings.
Experimented with how voxels are converted to vertices and looked into changing how voxels are edited. Currently voxel editing just seems too fidgety and prone to mistakes to easily construct anything.
August 23rd update
Made a new youtube account and channel. Made a new short movie for Worldcrafter. Fixed ref counting for action callbacks on server
August 22nd update
Packaged up a new version of Worldcrafter for release. Took new screenshots for the website and updated IndieDB profile.
Contemplated what should be worked on in the next update.
Released: 0.27
0.27 is now released:
- Fixed all known bugs.
- Added scripted quest support to engine.
- Added tutorial quest.
- Added quest script action callbacks for most user actions, dropping items, using items, crafting, pressing keys, interacting with objects, etc.
- Added quest objective completed sound.
- Added quest completed sound.
- Added script callbacks for server start up and shut down.
- Fixed terrain editing bug
- Halved food usage
- Improved terrain generation by making the separation between regions more irregular.
- Added saving/loading of regions to world save file
- Added saving/loading of quest script callbacks.
- Better error reporting and logging.
- Error message box now contains basic error information.
- Fixed party menu bugs.
- Reconnecting servers now remove old ghost connection automatically.
- Reconnecting users now remove old ghost connection automatically.
- Shadow depth format changed for better compatibility.
- Added support for modification keys to the key binding code.
August 21st update
Fixed bugs involving the party menu today. Double invites where resulting in getting stuck in GUI mode. Now the second invite is bounced with a 'username is busy' message. Also added a message for if you try to invite someone who is already in your party to your party.
Made reconnecting servers boot there old 'ghosts' off the announce server, as well as reconnecting users now boot there ghost off servers. Reconnection is detected by having the same address and using the same outgoing port since two applications can't use the same outgoing port at once on the same IP.
Changed the format used for shadow map depth buffer. This should fix the 'world in shadow' bug that some users experienced.
And with that, I have cleared the known bug list.
Also added support for modification keys to the key binding code. Ie: Shift+X
August 20th update
Worked on some better error reporting and logging today. Added ability to select a fuel in the smelter menu by double clicking on it. Added saving/loading of callbacks on server shut down and start up.
Fixed a windows message processing bug when shutting down.
August 19th update
More refactoring of the projectile code. Added new butcher, skinned and killed NPC callbacks for quests to use.
Added periodic quest callbacks. Added hunger tutorial quest stage. Added quest completed sound and objective completed sound.
August 18th update
Still working on callbacks. Managed to unify the callback system somewhat. Wrote some more tutorial quest stages. Added saving/loading of quest data when server shuts down/starts up.
Did some refactoring to clean up the code base.
August 17th update
Added crafting callbacks for quests. Added crafting tutorial stages.
Cleaned up some of the code base and did a little work on the website.
August 16th update
Working away on the quest callback system. Got a rough design down and will be testing it by writing some more tutorial quest stages.