Voxels: Rasterizer 1.2

Eventually I submitted a new version of my Voxel conversion tool for Unity to be published on the Asset Store. The previous version had been taken off without warning in the summer of 2019 due to missing updates for newer Unity versions and modified guidelines for the usage of the logo. That second point is also the reason the package has been renamed.

Quickly after the store removal I started to make sure my rasterizer was still working with the latest version of the application. And that was the case but only for the standard pipeline unfortunately. At that time the Lightweight and the High Definition Render Pipeline had been introduced and the rasterizer did not read meaningful data from the results of the utilized camera. Because a major advantage of my solution was the ability to collect colors from source assets similar to how they are being rendered at runtime I wanted the support the new options, too.

I started to debug things, which was not easy because the APIs of those pipelines were not deeply documented. So I had to do research by trail-and-error, which took a lot of my spare time. And both scriptable pipelines required different approaches for manipulating the camera to get the results my tool needed. Hundreds of hours, which mainly happened on vacation and around Christmas, passed until a satisfying outcome loomed. In between there were months I couldn’t do anything because my job demanded my complete focus.

Voxelized HDRP standard scene
Comparison between the new HDRP standard scene and its voxelized outdoor room

After operating suitably another issue, which some customers experienced in their workflow, still remained. Despite indenting the mesh creator script only as an example people are using it heavily to create assets for their projects. And whenever they wanted to build a prefab of a generated voxel model data got lost. So, I enhanced the component to be able to create mesh, material and texture files and a prefab containing them.

At last I had to polish the sum into a releasable product by refactoring the source code, updating the artwork and the documentation. Finally, that whole process took about one and a half year. But as long as no such huge changes in the rendering routines of Unity will emerge once more in the near future updates of “Voxels: Rasterizer” should become more frequent again.

Prototyping summary

My full time prototyping phase is over and I have not nearly reached the state I wanted to. But I learned to utilize Unity and how to implement software using it. And I have got a good base to continue the development in my spare time, so you will read, hear and see more of “Project: Evolution” in the future.

There are two main reasons, why the development schedule could not be translated into action. At first the plan was too tight and I had not enough time every single feature would have required. And the second point dramatized that even more. I abstracted too much, what does not support fast prototyping. But it will help me in the future to add new functionality and content in shorter time and is essential for the flexibility in configuration and modding.

Project: Evolution screenshot
Screenshot of “Project: Evolution” from 2014-04-11

You can still track the progress of the game when you follow my updates on Twitter and Facebook. I hope that you enjoyed and will enjoy the insights in the development I gave and will still give.

The passion


If you read my last post, you may recognize that I went from a full time game developer to a software architect, who has professionally little to do with computer games. And I regret that very much. So I decided to take a break and defer my current projects for nearly three weeks. In that time I want to create and publish a new game prototype, which means that I am planning to develop a fully playable demo version as polished as possible in thirteen workdays. The result will be the foundation for improvements, advancements and experiments whenever I find time for it. But for now I am focusing the prototype and the time span is very short for a game, which should generate more fun than frustration. I am not practiced in small projects anymore so I have to be very disciplined to reach my self-defined goal. But even if my intention fails, I will have improved my skills and will have done some research for a current project of our studio.

The prototype

The idea for the game emerged about five years ago and although there is already a published game, which assembled the most innovative core feature in the meantime, it belongs to the RPG genre. My prototype will be a Shoot’em Up (or “shmup” for short) and I call it “Project: Evolution”. The player will control a aircraft (most likely a space ship) and has to fight against appearing waves of enemies. A very familiar representative is “Space Invaders” from 1978.
For my prototype I am aligning for a subsequent time but not for a single spot. In the first level you look from the top down to your ship and the scenery. That will change to a bird’s view in the second and side perspective in the third one. And that is not all, which is changing. Screen resolution, color depth, graphical complexity and even player control will increase from stage to stage. At first you may only see ships and stars, then some kind of blocky space station exterior and at last you will enter one displayed using fantastic parallax scrolling. Everything should look like 2D pixel art from “Zaxxon“, “R-Type” and other similar hits from more than two decades before.
As you might see the project is showcasing some of the evolution of the genre and that is the origin for the name. The concept is kind of similar to the earlier mentioned role-playing game named “Evoland“.

Free spaceship fighter
Free spaceship model by CgPitbull

The execution

Three years ago I started to develop the basic technology once before. It was written in XNA to be able the run the game on an Xbox 360, PC and maybe Windows Phone. But now XNA is dead and I favorite a more common opportunity called “Unity“. It became a famous game engine and I need a well established one to realize my tight time schedule whereas I must give up technical control, because the source code is not available to me and so a lot of work is done in a black box. In return I can rely on an optimized and tested base, which is working on nearly all important gaming platforms, and I save much time in not needing to develop fundamental technology.
Even though the prototype may only show two-dimensional graphics, every art source should exist as 3D model. I want to render those to textures and modify them using shaders with specific adjustments for every stage. That creates a distinctive design in the advancing look and saves me hours on pixelating sprites several times. Moreover it should make the game moddable in an easier way because I am already planning to support that in the demo, but it is the largest variable in my schedule. It should allow players to some kind of recreate their favorite Shoot’em Ups from the past or to build completely new ones. And there is another feature, which is only possible with three-dimensional base material, but I will not include it yet so that is something to tell you about in the future.

The insight

As you can realize I am not only trying to make the final game known, I also try to generate public awareness for the development by writing about it before it starts. And I will extend my efforts when it has begun by posting tweets, publishing screenshots, summarizing collected experience and maybe streaming the progressing results. Everybody, who is interested to be up to date, should have a look on my Twitter and my public Facebook account. Not everything will land on this blog but everything here will be linked on the social networks.
Why will I devote so much time for social interaction, when I could spend it for development instead? First and foremost I want to generate buzz for the release of course. I reckon that is very hard but maybe I will be in luck. Secondly I hope to get support from the community and I want to give some help back by making my information public available. And at last I would like that people are getting interested in modding the game as soon as the prototype is being released.

The release

I am planning the publish the prototype at the last day. Perhaps it only appears as a browser game on a site like “Kongregate” but I will also investigate in the options to bring it to the “Windows Store” or the “Windows Phone Store“. The reason for preferring Windows over Android and iOS is simply because my Unity license includes export options for “Windows (Phone) 8” but not for the other two. Still there are a lot of time consuming things to pay attention to to get released on an app marketplace. So I do not know if I am able to accomplish it in my short time frame.

The development will start on Wednesday, March 26th, 2014!