Sky’s The Limit

I put the old cloud-billboard system out to pasture and replaced it with a retooled sky dome shader. The shader now allows the backdrop clouds to move relative to player movement, so that as the player falls, the clouds respond by appearing to rise upwards (I fake everything, nothing really moves). This new version of the sky also features a higher-resolution texture, and it adds colors together rather than multiply them… well, practically, this means that when clouds overlap each other, they no longer appear to be bright white.
I’ve also written a weather script from scratch. I had purchased a weather system off of the Unity asset store, but will be using it for its art rather than its junk scripting. Really, it said in 4000+ lines of code what I was able to do in 100. Before this whole deal, I was merely transitioning the fog color when the player crossed biomes. Now, it transitions:

  • Ambient color and fog color/intensity
  • Post-processing fog color/intensity
  • Sunlight color/intensity
  • Sun shaft intensity
  • Atmosphere Color
  • Rain and mist intensity/sound

The weather system is mainly used to regulate differences between the six biomes. Each biome has a fixed weather pattern that is associated with it. I’ll post a video when it’s further along.

Crunch Time

School’s back and my month-long crunch has ended. The game has progressed steadily feature-wise, but still needs polish. I’m hoping to release an exclusive alpha version of the game to backers. I was originally calling this a beta version, but I do not believe that it is far enough along to warrant that label. For this exclusive alpha release, I will need to get access to a Mac for some lengthy testing sessions. I’ve already installed an Ubuntu partition on an old laptop. The game runs just fine on Linux, save for a graphical glitch that shouldn’t be too hard to handle.

School’s In

I’ve started my second semester on Monday for the NYU MFA in Game Design. I’m taking a course on minimalist design with Andy Nealan, two courses with Eric Zimmerman, and a course with Katherine Isbister called Human Computer Interaction. I was rather cagey about my school progress last semester, but I’ll attempt to be more open about what’s going on in my life, and how what I learn feeds into Against the Wall. Also, no more staying up all night and sleeping all day.

Artsy

28-year-old male programmer and independent game designer seeks compatible 3D environment artist. Must love games.

My Analog Life

One of my groups from school has been producing a board game in our spare time. I’ve taken a leadership role on the project in seeing it to a commercial release. It won’t be too much of a burden thanks to the four talented individuals that I am working with. Things move a bit faster in the analog world, but I’ll hold off on a press release until it is further along in production.

Meta

I realize that this blog post could have been broken up into sections and released over time, but I actually prefer this info dump. Oh, and I’ve realized why I refrain from using Twitter: it’s a giant Kafkaesque chat room that you can never really log out of. Really, when I’m coding and in the zone, the last thing I’m thinking of is Tweeting or posting a status. Anyway, though I could promise to post more often, that doesn’t sound like much fun to me. Not a natural marketer… that said, I should probably Tweet a bit more.

Press

I spent some time talking to Paul Dean of PCGamesN the other week. He posted an article on the game today, and the crazy process that led me to create this game.
The game was also covered by PCGamer and regarding Greenlight.
Also, it received the prestigious(?) Horace Award For Just Being A Brilliant Idea, among a list of games overlooked for this year’s IGF. (regarding the IGF: maybe I’ll get in next year, when this product is more polished and/or released).

Postscript Playlist

Why not mention the random stuff that I’ve been playing in my vanishing free time?

  • I bought Antichamber but have yet to install it. Got the THQ pack from Amazon (no longer available) but haven’t touched that either.
  • FTL is like a forest fire, only this particular forest is populated by time instead of trees.
  • Also Just Cause 2, for no particular reason.
  • I don’t understand Proteus, so it must be art.
  • Greenlight is an okay ARG. It features crowd-based gameplay: your progress is determined by strangers voting on your page. Getting other people to participate is the core game mechanic. My score is at a tantalizing 91% of the way to making the top 100 list!
  • I will not touch Dragonborn out of fear for my remaining free time, but I wanted to observe: the third expansion for Morrowind takes place on Solstheim and is a miniature Skyrim, and the third expansion for Skyrim takes place on Solstheim and is a miniature Morrowind.
  • In analog, I’ve played Lost Cities and Forbidden Island for the first time and envy their designs.

I’ve written quite a bit. I should probably get back to work. Happy Groundhog Day!

New Textures and Site Updates

No More Stretching

Brick Texture ComparisonSince early in this game’s development, I’ve had an issue with textures stretching on the bricks. The problem was, a small brick and a large brick would have the exact amount of texture image mapped on them. On larger bricks, the effect looked rather ugly, you could see the stretched out pixels over the surface of each block. The problem was especially bad for the sides faces of each brick.

Following some advice from my friend Itay, I explored several options that would allow me to reduce or remove stretching. I spent all Saturday researching and testing this before I came up with a solution. Continue reading “New Textures and Site Updates”

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

Texture Tweaking

Against the Wall Brick Textures

I’ve given the different brick types their own textures. This adds a bit more variation to the wall, in addition to making the brick stand out a bit more in contrast to each other. Also, this will hopefully help color-blind people differentiate between certain brick types immediately. The way things are currently set up, bricks will be sharing the same five textures drawn from a 2048×2048 image. I may bump the size of this image up to 4096×4096 and have twenty-one different textures to choose from, but much of this could be wasted space as there are only about twelve brick types planned. There are actually two textures per type, one for the front face and another longer one for the sides. This helps reduce some of the stretching on narrower bricks.

I had implemented multiple brick textures in the past, but the results were not satisfying to me, appearance-wise. I think that it finally looks presentable enough. Part of the problem is the distortion and stretching that happens on the brick side faces. It is really noticeable when a texture has been smashed into a narrow space like that, especially if the texture has many little details. The texture for the regular white bricks is passable in this case, being mostly noise without distinct features. One solution would be to up the size-up the source image and include texture variations for each brick size. Right now, things are passable, so it is not really an issue for me. I should not be spending too much time on such finicky details, rather concerning myself with more level design.

Practice Makes Perfect

Right now, I am preparing for an event at NYU called Practice; I’m attending it as a student of the NYU Game Center. So far, this semester at NYU has been an interesting experience. I can summarize it as a series of game jams laid back-to-back and overlapping. Physical games, digital games, board games, etc. just cranking out new things all the time. It’s been giving me a ton of new ideas for Against the Wall, in terms of goals, set pieces, and art.

Art in particular has been by current focus for the game. This past Summer, I spent too long on optimizations and basic functionality. This was a task that could have potentially gone on forever, there is always something that can be improved. It is much better to get things to a working state, then moving on to other tasks.. As a result, I have not been touching code outside of bug-fixes and tweaking the game’s feel. I’ve been experimenting with and churning out art assets, then testing them as level elements on the Wall.

My current strain of thought is to continue embracing minimalism and using my limited talents in the area of modeling and texturing as a constraint, rather than as an obstacle. The art style of the game will be guided by what I am capable of using the tools and skills I have, rather than stress out over not looking like an Unreal engine game. I’m making the art according to a set minimalism theme, then moving on before I become obsessed with details.

I’ll post some screenshots later. Right now, the event has already started and I should go out there and mingle a bit.

IndieCade Recap

Against the Wall at IndieCade

The other week my game was featured at IndieCade. I traveled out to Culver City in LA to show off my game in the “Digital Selections” tent. First, I participated in the IndieXChange, a meeting of many of the devs who submitted to the festival. It was an interesting meet-and-greet, and I felt at home with all the other New York City people who were there. The following days were spent inside the tent, which was rather packed. I had to do a number of random bug fixes that patched over issues that broke the save function.

IndieCade Selection 2012

While I managed this fix, auto-saving at checkpoints just was still not happening. Despite this, people managed to climb up to the forest area without too much difficulty or falling at all. I spent the better part of one day just sitting back and covertly watching people play the game. Having the developer hovering over somebody’s shoulder can be intimidating to some, and certainly changes how people play. At no point did people seem lost or frustrated with the controls, so that was a huge relief. I managed to get some good feedback all-around.

This past week I gave a short talk at NYU that was supposed to be me going over my IndieCade experience, but instead I just went on a rant on my ambitions for this project. All well and good. Met a few fans of the game there as well!

Right now, my plan is to submit to a few festivals and also get a Greenlight page up as soon as possible. I’ll need to create a new trailer at some point soon as well. If anyone is willing to assist me in creating a video for credit in the game, send me a message through the site’s contact form.

Recent Changes

Current Events

Against the Wall is now one of IndieCade‘s Official Selections. This is still an honor to be recognized, even though I didn’t get a nomination (there’s always next year!). Also, this Wednesday I’ll be showing off a newer version of my game at the NY Game Conference.

Yesterday was my orientation for the NYU’s new MFA program for Game Design. I’m very excited to have the opportunity to attend and act as a pioneer for future graduate students at the NYU Game Center. There are 18 other people attending the program, coming from a variety of backgrounds and skill sets, all with a common passion for game design. Keep in mind that Against the Wall is still my full-time job, and that I’ll be working on it in tandem with school work.

Babycastles

Last weekend I attended the Babycastles Summit. I define Babycastles as a DIY arcade hacker collective. They often take existing games and build unusual interfaces around them, such as Ms. Pac Man played on the walls and ceiling of a room or original Mario Bros with an unwieldy giant controller. Also present was my friend Joe Kowalski, a graphic and interface designer at Double Fine. He had a great presentation that centered on doing things that he was never asked to do at work. For instance, when at Harmonix he designed the Guitar Hero logo in his off hours, and did the same with the Rock Band logo later on. He also designed the main menu interface of Double Fine’s Brutal Legend without initially being assigned this task. Kotaku’s Evan Narcisse did a write up on Joe and his video pitch for Guitar Hero III (which was not adopted). Continue reading “Recent Changes”