Winter Break

New Threads

Okay, technical stuff. I’ve successfully implemented multithreading into Against the Wall. Multithreading allows a program to do multiple things at once. It’s akin to how your operating system can have multiple applications running at the same millisecond. Time consuming tasks like mesh generation and physics are now separated into threads, while the game’s main thread does its thing.

Unity, the game engine that I use, does not support multithreading naively, everything running in a single thread. As a result, whenever I would generate a number of chunks, the game would hitch for a fraction of a second, as the program waited for the generation to be done before updating the player or the environment. Now, I have performance-intensive things running in the background so the the framerate will not be affected by them.

I used ThreadingHelper to help me with this task. I had earlier attempted multithreading over the summer, but did not have much success. Specifically, the performance difference wasn’t justifiable considering the amount of work that I was putting into it. The helper library managed the tough stuff and brought the game down above 60FPS, even while it’s loading! I will have to test this on some older computers, and keep polishing away at it.

School’s Out

Right now I’m on winter break from my graduate program at the NYU Game Center. I still managed to get stuff done on the game, but things temporarily came to a halt earlier this month, around the 14th, when finals came around. I had a paper due that nixed my plans for the Ludum Dare, a board game that was very, very well received, and a digital game that stressed me out to no end.

I did hire one of the other students as a story consultant, my friend Shoshana Kessock. She’s a writer and a RPG person, and will be a great help in fleshing out the game world.

Beta

My plans for the beta? Well, I’m going to be shoveling as much code as I can before school restarts. My goal is to have at least three environment types done, one more city, and one more set piece. I have the art for a new city platform that I did in October that will serve as the basis for the city.

Wrapping Up 2012

So here is a bit of an update on the game’s progress over the past couple of months. As mentioned in earlier posts, November was spent redoing existing art and making sure that things ran smoothly. Unity has a hard cap on the size of procedural textures at 2048×2048, which is a problem. I cannot get high quality brick textures without stretching if I cannot get a texture of 4096×4096 generated. I’ll have to consider splitting the wall bricks between multiple textures/materials, which would exponentially increase the number of draw calls per frame. The only way to avoid this is to not use procedural textures, which would be a huge pain, and bloat the file size of the game, but it may be necessary.
In December, I optimized the game for LOD Groups and doubled the player’s view distance. The game runs above 60 fps on a computer with a 2.6 GHz processor and 8 GB of DDR3 RAM, which is good in my book. Performance is a constant concern for me given the amount of things happening in the game at any given time. That is, transitioning between chunks is an ideally seamless experience. Minecraft hitches for a few frames whenever new geometry is generated, which is what I am trying to avoid. Unfortunately, the Unity engine, as much as I love it, does not support multi-threading, so I cannot run the mesh-generation algorithm in the background.

Vague-non-spoilers: Yesterday I created new art assets for the trees to make them a bit creepier. I’ve also created models that relate to their life cycle. I’ll insert these elements into the game in the coming days.

Greenlight

The Greenlight page is at 70% of the way to reaching the top 100, with over 16k unique visitors. Steam does not surface a ton of information other than that. I can use your help in promoting the game and getting people to vote. If anyone has any suggestions for how to market the Greenlight page, let me know!

Happy Holidays!

Greenlight, Fake AO, and the Game Plan

I’ve just put up a page on Steam Greenlight. Hopefully Against the Wall will get enough votes to be considered for the service. It has long been my dream to distribute the game through Steam, at the very least. This campaign would help make this a reality. Please visit the page and give the game a thumbs-up!

On the progress front, I’ve redone the models for the basic city set to something more visually appealing while still minimalistic  I discovered that I can fake ambient occlusion by making full use of vertex colors on the models. By painting certain vertices semitransparent black, I am able to give more definition to the form of the structures and reduce the flatness of the textures. Light now appears to hit these models unevenly, as in real life. Normally, you would use image effects or bake ambient occlusion into texture atlases. My solution is cheaper performance-wise, and looks pretty cool. I also use it to color the insides of windows black, rather than use a separate black texture for the windows. This particular problem was nagging at me for a while, so I’m glad to have found a way around it.

The game is functionally well along, and my focus now has been level design and creating art for the new cities. After that, set piece coding will be my main goal. Also, while I do like a the current emergent narrative of the game, I have planned a few story elements that will flesh out the world a bit and provide some context for how life on The Wall works.

Let me know if you have any questions or comments, and be sure to vote!

Against the Wall - WindmillAgainst the Wall - CityAgainst the Wall - City 2Against the Wall - Forest

Against the Wall - Gate