June 2014 - June 2015
My Development Roles:
Engine Architect, Game Designer, World Generation, Physics
Other team members:
Brennan Conroy (Tech Director and General Programmer)
Austin Harper (Graphics Programmer)
The concept for this project really came from my curiosity of how the procedural terrain was generated in Minecraft. Initially, I made a 2D 3x3 grid with very basic line drawing and spawned random numbers of circles within each cell to represent a game world. Then I proceeded to figure out how to assign a unique RNG seed to each cell in my grid and then how to delete the cells that I moved away from and create new ones in the direction I moved. In a sense, I created a treadmill structure in 2 dimensions that constantly builds and removes the world around me to make it seem like a virtually infinite and interesting place.
The RNG challenges didn't stop there though. In the first couple official weeks of Boxland's development, my team and I started to see frequent and unpleasantly non-random-looking line patterns in our terrain. It seemed as though the random numbers we were receiving were not very random... We checked our functions carefully for errors but could find none. As it turned out the problem was just what it looked like. The RNG function rand() from the c++ standard library is just not very sophisticated when it comes to delivering sequences that appear very random to the human eye. Our terrain visualization turned out to show this quality very well as we tried out a newer and more sophisticated RNG algorithm called the Mersenne Twister which was conveniently part of c++ 11.