Day & Night Update

The previous approach didn’t agree well with Unity’s way of rendering, so I settled with just going with the old fashioned shader method of shifting through the time cycles of day and night. It looks beautiful either way, and I’m happy enough with that. The sky looks a little bland, so the next step is adding some gradient and procedural clouds. Then after that, my favorite: weather. I still need to reintegrate different biome regions in the game. I’ll also need to do some chunk loading/ unloading optimizing to allow the game to not eat at memory at large scales. It’ll use the “generate on demand” method that Minecraft uses, while saving preloaded data to the disk. This should save a lot of memory. At the same time, the game won’t have infinite generation, so may end up doing a preload method where the entire world is saved to disk on creation of new world, but only the visible parts are kept in memory. I’ll play around with that.

Stone Shire Coming to Steam

I am currently working on releasing an Early Access build of Stone Shire to Steam for PC. It has been a while since I’ve tackled this project since the Nintendo Wii U, but I made a lot of adjustments over the last two weeks as I returned to it. A lot of code clean up and optimizations that I missed the last time. For one, in the video above, I am making a “sweeping” method for when the sun rises or sets. In real life, this is how the lighting usually looks. And I know in Minecraft, they simply blend the colors into the landscape. But I wanted to go with a more cool approach that simulates what happens in real life. It works smoothly in game and looks pretty cool as the environment changes lighting and color over time.

Making a voxel game in Unity is not an easy feat considering you don’t have a lot of low level access to the hardware as say a language like C++. Stuff like thread management is a big one when it comes to Unity, since everything runs on the main thread, something that still annoys me about the engine. I wish that they tackle this as a feature in a future edition. Being able to have closer control to the main thread functionality with Unity methods would greatly increase performance of voxel rendering. For now, I just throw all the math, voxel, and lighting calculations on a System.Thread from the C# size and then pass them all to the Main Thread when it’s time to do the assignments to meshes.

Still, I’ve made do with what I have. Chunks are no longer created and destroyed naively, but rather, a pool of chunks are drawn from now that the system recycles through. No more choppy updates while moving across the land. Water flow has been turned back on, including optimizing its flowing, which killed Wii U performance. Currently implementing day and night cycles, along with weather next. After that, returning large maps with multiple biomes. I had this in an earlier build, but I had to restrict the size of the map for Wii U, thus turned the feature off. So this should be as simple as flicking it back on. I think.

– Cor

Stone Shire 1.2.1 Patch Notes

Stone Shire 1.2.1 Patch Notes

A new patch for both North America and Europe has been submitted for Stone Shire fixing a few issues. Europe’s patch should be going live by tomorrow. North America’s patch will be coming either this week or the next.

  • Fixed a bug where players were falling through the world when they attempted to set down a block in the same space that they were standing.
  • Fixed a bug where the music was warping and glitching out.
  • Fixed a bug where the torch sound effect was always playing on the TV no matter the mode it was in.

Ohayou! Beginner’s Japanese Completed, Stone Shire Patch 1.2, and Nintendo Switch

ohayou_beginners_japanese_shot

It has been a grueling five months of work, but we have finally completed Ohayou! Beginner’s Japanese for the Wii U. The game took a lot less time to make than Stone Shire, that’s for sure. We’re excited to finally have it done and are now waiting on approval for it from Nintendo. After that, we’ll be able to say a release date for it. We may release a patch in a month or two that will add vocabulary, based on how long it takes to implement. But with the Nintendo Switch now a thing, we may just delay it until then. We’ll talk about Nintendo’s new system in a moment.

In the meantime, the 1.2 patch of Stone Shire has also been completed, which took only a weekend. To improve frame rate, the water flowing process has been removed, and lighting updating has been optimized. Players should see a large difference once the patch is deployed. Its release shall come as soon as it’s done being approved.

nintendoswitch_hardware-0-0

Now, on to the big topic of the week: the Nintendo Switch! I’m happy they announced it, because it’s very significant for the future of Finger Gun Games’s development. Hearing that Unity will also be supporting the system, porting our current games to the new system is now possible. In addition, I’m very curious of the Switch’s specs. At the moment, Nintendo will not release any, but based on the hardware it’s based off, the Nvidia Shield, we can garner a clue to its construction. Based on a couple of studies, it could be that the system is using the Tegra X2 chip. To compare its performance, the hardware has been known to be able to play games at 1080 @ 30 to 60 fps, or 720 @ 45 to 60 fps. Apparently, it’s a 64-bit six-core chip, with two main cores that are considered the major haulers of performance. The Wii U had three based on tech studies, so the only thing we will have to see is if the version in the Nintendo Switch is as fast, if not faster.

I wasn’t disappointed by the GPU in the Wii U, so I’m sure it’ll be just as reasonable around this time. If anything, my only gripe about the Wii U was always the CPU, so it’s the one thing about the hardware I’m curious to see the full specs for as a programmer. I will say one thing: having a good GPU means having a large module with good cooling. The Switch looks a lot smaller and slimmer than the Wii U’s hardware. This has me skeptical of performance, mostly because we all know in the computing world, the more powerful a GPU is, the more heat it will generate, and thus the more cooling you will require. That’s why cellphones are like microwaves when you try to play app on your phone. You never felt any heat from the Wii U GamePad because it doesn’t harbor this kind of hardware, but this time around, the Nintendo Switch will. So the hardware is probably optimized to be as least disturbing as possible. I’m also curious if the docking mechanism actually has another GPU we aren’t aware of. If it’s meant to be a console hybrid, I’m assuming that having that component isn’t just to hook the tablet to a TV while charging it. I’m sure that thing holds a lot more inside it.

nintendo-switch-vent

As you can see above, there’s vents built into the top of the Switch handheld device, so Nintendo has prepared for that scenario where the thing is going to be running games that could cause quite the heat-up. If there’s anything to take from it, it’ll probably be no worse than the PS Vita. That handheld holds fine for playing good graphical games, so the Wii U probably won’t have too much of a problem. The size of the device seems to put it at bigger than a vita, so if anything, it’s probably better at its job, too. This is Nintendo, after all. I’m sure they already solved this problem.

So in summary, I am looking forward to the Switch. The only thing left is to see its specs and its touchscreen (which is rumored to be multi-touch), but it’s very likely Finger Gun Games will be continuing support for Nintendo’s next system.

-Cordero

Stone Shire – Post Development Thoughts & New Project

First of all, I will like to thank the players of the community for supporting Stone Shire. This game came out May 21st of last year, and was the first of its kind on this console. It was meant to bring a block-building experience similar to Minecraft to the Wii U. It was also meant to be transformed into something more like Elder Scrolls. Unfortunately, a lot of these features I was unable to include in the game, both due to the limitations of the system (and the Unity engine) and me simply being a one man team, which led to a slow development time. I apologize that I was not able to give you the full experience that you expected. The lag of the game is something I did not want to occur, and it seems introducing the lighting and water mechanics unfortunately brought a lot of bad performance.

Unity is a great engine to work in, but it’s also not optimized for procedural generation. Because the Unity APi is not allowed to be touched both in code and by multithreading, a lot of the optimization I did was mostly C# related, aka based on all the operations I did outside Unity. The way Unity works is that it has a main thread that it processes all its processes through. While beneath the hood it is multithreaded, unfortunately, I as a programmer cannot touch anything there. For instance, in Stone Shire, if I could make mesh construction, the rendering step done by the CPU, be broken up into smaller steps, I could have made the game a whole lot less laggy. It’s not a problem when it’s just one or three chunks of meshes being built up, but when there’s multiple ones constantly being updated due to light and water, unfortunately, there’s a freeze I cannot get pass due to the mesh construction process sharing the same thread as everything else. This had led me to unfortunately passing a lot of inputs into fixed update, which is not a good thing in practice but was necessary to have the game run smoother on the Wii U. Of course, I had the algorithms for light calculations and mesh vertices building done in a different thread, since it was all c# related, so the pre processing step was actually pretty fast. However, to build the mesh, you have to pass the data to the main thread to have the mesh actually applied, and that led to the slowdowns that the game constantly experienced.

In addition, I used the Greedy Meshing technique to reduce the amount of faces on the collision mesh of the chunks, as this was taking a good portion of the mesh building time when the mesh was applied. With this made, the mesh building time became a whole lot faster than it was during alpha builds on the Wii U. Unfortunately, if I did this with the rendering part (the mesh you actually can see that has textures), this would make me have to create a texture material for each type of block in the game, and that would have led to some devious overlord of the game. Therefore, in the worse case scenario where each block is a different object compared to its adjacent neighbor, this would actually be a worse scenario technical wise since now you have to deal with both maximum face count and an abundance of sub materials.

I will strive in the future to bring a better experience to this genre, hopefully on Nintendo’s next console. However, I am bringing a pause to the post development of Stone Shire for the moment as I work on a new smaller project, which I will give details to in the next coming weeks. I enjoy working on Stone Shire, but I must also continue to create more games to put out on the Wii U. I will work on smaller patches to bring the game to a more stable quality, but a lot of features like monsters, animals, and the weather system I wanted to implement would have to wait until a future iteration of the game.

Thank you for following along on my adventure and I hope you stay for the next chapter in Finger Gun Games life.

From,

Cordero