Right now, it's Thanksgiving weekend. Had dinner with my family and returned to the city to get some work done. I showed up today to find the whole of the MAGNET center deserted, save for the security detail. There are three weeks left in the semester, and I'm dead-set on getting my thesis game in better shape before then.

Anyway, I'm pretty much alone on the floor, fretting about the Unity engine's complete inability to do client-side prediction for networked multiplayer games, and stressing over my to-do list. I decided to take a little walk around the floor and take pics of the place to share on the site.

I should preface this by saying that this whole Brooklyn-based facility is brand-spanking new. Last year, we were basically squatting in a couple of classrooms on the 9th floor of NYU Tisch. I kind of prefer everyone working in the same room and being in each other's faces. Anyway, here is the tour:

I get off the elevator at the 8th floor into a sort of glass antechamber area, then swipe my NYU ID to get in past the two sets of doors.

The West side of the floor is office space for faculty and Game Center MFA students. At the end of the hall are the classrooms 829 and 830, which we use exclusively. The rest of the floor is divided between NYU Poly and NYU Steinhardt.

Game Center MFA students are assigned shared office space for their final year of the program. Counting tuition, I consider it the most expensive workplace on the planet, and I'm pretty intent on getting the most out of it. There have been ongoing problems with heating this space for whatever reason. As I speak, I feel the A/C blowing on me. Still, it's a good setup, with a desk that can be raised to a standing position and a fancy desk lamp.

This is room 830, where Bennett Foddy teaches his studio classes. I'm Bennett's TA for one of these classes, acting as a helper and resident Unity know-it-all for the new crop of MFAs. It's also where we keep some office supplies and random hardware. Pretty big monitor for presentations and such.

This is 829, which is a sort of collective office for all of the MFA students in their first year. We had a place like this back at Tisch, only with slightly more sunlight and more random film students wandering in. There are a few busted arcade cabinets in here as well.

Here's the pantry on the East side of the floor. Not pictured: fridge, and the worst coffee vending machine on the planet. Otherwise, it's rather shiny.

Here's a shot of our Game's Library. Quite a few video and board games are stored here. Kind of dark with everyone gone for the break.

This is the centerpiece of our "Town Hall" area in front of the library. It's called the Winnitron, or as most refer to it: the Nidhogg machine. Nidhogg is a very cool game, the reigning champion of the floor being my classmate Zeke Virant. The buttons are currently busted due to over-enthusiastic play.

So that's a circuit of the floor, or the interesting parts, at least. If I ever have time, I'll post on the old Tisch Space and maybe take some shots of the Game Center when people are actually here.

I'm naturally a very reserved person, so posting to this blog or social media happens to be a challenge at times. Attending Metatopia over the weekend, I was repeatedly advised to drop these old habits and take to social media more, establish a rapport with fans. Naturally, the next thing I did was lose my phone charger and spend the next day without an internet connection. Regardless, I'm resolved to inform people about what's going on in my life a bit more, and get into the habit of documenting everything (interesting) that I'm going through, primarily through Twitter.

To start with, I'm still an MFA student at the NYU Game Center, so my attention is split between Against the Wall and my thesis game, a project called Asterisk. Now, Asterisk was designed to be as close to the opposite of Against the Wall as I could manage: It's a networked multiplayer 2D space shooter. I've posted a few times on my other blog about it, but posting there is like painting a picture and locking it in a drawer. I'll need to put up a dedicated Asterisk blog soon enough.

Just keeping myself active, busy, and my mind on more than one project. The alternative laser-focus has been detrimental in the past, I need to be able to switch off between things. This need to create a variety of things was what brought me to the Game Center in the first place. I've become a better designer through practice and experimenting with other forms, and have access to amazing advice from Bennett Foddy, Frank Lantz, and Clara Fernández-Vara.

So, in the past two months, I've taken AtW to IndieCade in the NYU tent, submitted it to the IGF, learned and experimented with networked multiplayer code (not for AtW), and started developing an actual story-centric tabletop. I'll write another post this week on the game plan going forward, and probably expand on what I've been up to.

Against the Wall Has Been Greenlit!

It's official! As of the 28th of August, my game was Greenlit on Valve's game distribution service. Thank you to everyone who up-voted Against the Wall and making this possible. I received this news directly before my 29th birthday and shipping off to PAX on a red-eye to Seattle. It's been pretty hectic, but I finally found some time to post here.

I've been on Greenlight for a total of 9 months. In December and January, I went through the 5 stages of grief before just letting it climb the ranks naturally and not checking the Greenlight page every other hour. It was not the best experience, but the game had enough merit to pull through.

PAX Prime and the Indie MEGABOOTH

I just got back from PAX Prime. I had a mini booth at the Indie MEGABOOTH for Friday and Saturday. The mini booth is a table inside of a larger game booth, a space that I shared with 15 other developers. I had a blast showing my game to dozens of attendees, though there was a hitch on Friday: the tables were arranged in a way where it was very difficult for people to reach the games in the center, including mine. This was corrected on the second day, however, and I managed to have a number of cool play-throughs.

I should mention that PAX is the ideal QA forum. People from all different backgrounds stopped by to play Against the Wall for the first time, and it was enlightening to see them learn how to control the character and move through the world. Also, they managed to break the game in ways I had not thought possible. It was extremely informative, to say the least.

Oh, and I gave my pitch of the game several hundred times, at the booth, on the show floor, and at the after-parties. The shortest way to pigeon-hole my game is to call it a cross between MYST and Portal 2, but set on an infinite open wall-world. I should probably do a longer post on my current design which leans more on MYST tropes, a focus on world-building and atmosphere with interrelated levels.

In other news: I shook hands with Jonathan Blow and Tim Schafer without acting like a total fan-boy.

Also, as I am writing this, I am getting the feeling that I may be sick very soon, perhaps with the dreaded PAX Pox. Just in time for the Fall semester which starts tomorrow.

Oculus Developments

I met the team behind the Oculus Rift at one of the PAX after-parties. The Oculus guys were very cool and down-to-earth, recalling their days with headsets held together by duct tape and wishes, and their Kickstarter experiences. During the show, I snuck in a session with the HD rift. The operator seemed disappointed that this was not my first rift experience, the usual response being one of awe, while mine was one of clinical product testing. I kept swaying and swishing my head from side to side, observing the problematic motion-blur effect that induces some level of sickness in users. The blur is still there, but at least you can't see the damn pixels anymore, which was half the problem. I'm sure they'll fix this, now that John Carmack has joined the team as the Oculus CTO.

Still, I was impressed by the quality of the view-screen, the sleeker design of the unit, and the fact that I didn't make myself sick this time around. We'll see how the unit holds up on extended play sessions, but I'm very impressed with their progress.

The lineup for this year's Indie MEGABOOTH at PAX Prime has been posted, and Against the Wall is on it! I have a minibooth on the 30th and 31st. A minibooth is essentially 1/16th of a large square booth. It's for game developers who are largely independent of money. Here's my rather bare-bones page on their site, with the ancient trailer that I always fall back on.

Prep Work

I enjoy chatting up folks about my game like a regular carnival barker. I spent 5 hours at GDC's Killscreen party last year, talking to people as they played my game which was projected onto a side of the room. Pretty sure that I can handle PAX's sensory overload. The whole marketing side of things is a baffling mystery to me, but I'll try to put myself out there and try to generate a little buzz.

Whatever. Developing the game is the important thing. I've dolled-up the game's starting area a bit. Finally stopped using static red bricks for the windmill's structure. Realized that it looked to bare and flat, so I fleshed it out using the Outpost tile set that I made in June. No plans on showing the ending areas of the game, of course.

This is the interior of the windmill. Unfurnished at the moment. Cut a large chunk out of the building's rear with some new "destroyed" models. The support columns are part of the elevator/windmill structure.

I will be adding two new features: 1) optional automatic "death" when the player hits terminal velocity and is pretty much dead anyway. Won't have to reset the game as often at the conference with this option. 2) No saving while in midair or on a moving platform. Should prevent a quick-save while hurtling towards the ground at 60mph. Also, saving on certain moving objects could easily result in a load where the player is halfway inside the object, or the lift is loaded in the wrong state (e.g. standing still rather than moving). This addition will stick around for the final game. Just a note: At one point, I entertained the idea of disabling quick-saves and relying on checkpoints. I realized how dumb this was, and reversed course. If people want to spam the quick save button, they are welcome to.

Finally, I'll pepper the area with hidden paths, rooms, and interesting junk. Puzzles don't seem to play well at these conferences, than again, neither do slow-paced exploration games. I've been experimenting with very simple Myst-inspired puzzles, so maybe I'll finish one up and throw it in somewhere.

OVR and OVR Again

The NYU Game Center is in the process of moving to the its new building in Brooklyn. I haven't had access to the Oculus Rift (OVR) in that time, but I've come up with a simple first step for integrating the new tech: create a new Unity scene identical to the normal one, only with the stock OVR character motor and cameras, tweaked to feel close to the existing motor. Players would not be able to swap modes on the fly, but this should save me about a month or so of headaches trying to fit the OVR code onto the existing character motor. Will have to add crouching, sounds, and fall damage. Really, I think that my game is a perfect for the Rift, considering the lack of HUD, simplistic controls, slow pace, and the immersive environment. Oh yeah, and the gut-wrenching heights may be a plus as well.

What I've Been Playing

I've been using Netflix to play the pilot episode of Twin Peaks. Man. It's one very surreal series. I watched the Giant Bomb EnduranceRuns for Deadly Premonition, and knew that it was referential to Twin Peaks. I just didn't know how closely it stuck to the source. Loving it so much for how off it is, how it plays with and destroys expectations left and right, and the main character so damn endearing in his strangeness. Will need to find some time to catch up on the other eight episodes (hear the second season was not well received).

Bought a copy of Demon's Souls. Only played it for an hour, but it's pretty much is Dark Souls so far, though it lacks that Metroidvania-style contiguous world. I loved Dark souls, so I'm at home in this game. I also bought Brain Age to play some Sudoku puzzles on the commute (and not for the patronizing pseudo-science). Also, got copies of Catherine, Hotel Dusk, and Shadow of Destiny, but who has the time to play Video Games?

Last week, I coded a draft of the game's ending. Allow me to be terribly vague about the specifics, but I'm very excited about what I've been producing.

I've always had an ending of some sort planned for Against the Wall, but on reflection, I never had a very good one. The goal that I listed on the Kickstarter project was that your are "struggling to return to a village located miles above the starting point." Nearly two years ago, that was a major component of the ending. It's changed and evolved much since then. The other week, during a discussion with my friend Atlas, I had an idea for a new conclusion that would be a fun challenge for me to implement. Since then, I've added a couple new layers to the meaning of this ending, and smashed my fists into a keyboard until it was coded.

Note that I still have a ways to go on the other set pieces of the game, the last thing that I produce before beta should be the intro area.

Progression

Let's talk about the game's progression.

Part of this game's original experiment was to create a linear game that's gated not by invisible walls or narrow corridors, but by the sheer difficulty of sequence breaking. You could skip almost everything and head right for the highest city, but you're not exactly making it easier on yourself. The experiment has changed a bit. I will be including some backtracking as part of the progression and visits to side areas, though this will always be aided by rail vehicles or elevators.

This change was born out of a suggestion that I received at a the Game Center's Practice conference last November. I asked a crowd about the challenge of guiding players through a linear path in an open world. The best recommendation that I received, via Kevin Cancienne, was that I should just embrace the openness of the world. I originally intended a more-or-less straight linear progression from city to city, the idea being that a player could jump off the highest town and view all the bricks they extended on the way down. While this sounds neat, I'm more interested in creating a good experience on the way up, and fleshing out the world horizontally.

So I amended the plan, but initially kept the same ending. I won't go into specifics, but the original ending was predictable and cliché. I wasn't excited about it, and this lack of excitement was a stumbling block for me for quite a while. The real obstacle was my own obstinance; I was sticking to a set of narrative points that I developed back in May 2011 when I started the project. E.g. I won't reveal X, I won't explore Y, the player can't do Z. Well, I broke my rules in order to create something cool. I'll forgive myself eventually.

School Daze

I should mention, I will have a job and a few classes during the semester. One of these classes is for a thesis project that is the complete polar opposite of Against the Wall: a networked multiplayer sci-fi 2D twitchy action game. I'm trying to position Cartwheel as an eclectic indie studio, a bit like how Double Fine develops an odd mix of cool, quirky games. I suppose the thread that will tie all of my games together is a kind of expansive minimalism. If that fails, I could try to play the pretentious artist whose work is never understood boo-hoo.

What I've Been Playing (With)

On Monday, I messed with the Game Center's Oculus Rift virtual reality headset (OVR). What's great about this device is that it gives you a good sense of vertigo and a feeling that you occupy space in the world. It's perfect for Against the Wall, though I cannot bet that the thing will go mainstream. The biggest problem with OVR is motion sickness. I played Half Life 2 with the headset for all of five minutes before I had to stop in my tracks. I'm just not used to experiencing games this way, I suppose. Still this could be a great feature for VR buffs and anyone who wants a fully immersive experience on the Wall.

So, I played with the headset and poked the SDK a bit. From this, I've made a list of what needs to be done in order to implement this feature:

An OVR mode should be added to Video Settings in the Menu. This would override the following settings:

Resolution will be fixed to 1280x800, full screen. This is the OVR's screen resolution.

The crosshair will always be on.

Anti-aliasing will be forced on and set to 4x, rather than optional and using 2x.

Currently, the player has a camera that renders the world, another camera is used for the GUI, and a third camera for the loading screen. To be compatible with OVR's stereoscopic 3D, I need one camera for each eye, and a special script that adds filters to them and controls how far apart they are. Swapping the camera set-ups will be the most difficult technical challenge with OVR.

I need a mouse-driven crosshair, rather than the fixed reticule in the center of the screen. This would present the steepest game-feel problem with OVR.

The Character Motor and Mouse Look scripts need to be modified to account for head-tracking and crosshair tracking.

The wand would appear to be hovering in mid-air. A solution may be to tie its position more closely to head-tracking movement, so the player never sees the whole thing.

Xbox controller support.

Configuration and calibration options in the video settings menu.

Disclaimer message. I'm not in the business of replacing keyboards.

Implementation should take two days of work, with another day for testing, and another for fixes (generous estimates). It will be a weekend project for sure, as this is a secondary feature. I should be able to provide an update on this by the end of the month.

The Wheel Keeps Turning

Today, I founded a new game company called Cartwheel Games. Perhaps someday I will be able to justify the 's' at the end of my company's name, but for now, Against the Wall is the only title being developed. I spent the day setting up a new (rather empty) website, YouTube channel, Facebook page, getting the legal stuff squared away, and writing a blog post.

This has been a long time in the making. I came up with the name early last year, but never saw an imminent need to actually register a business. I also redesigned he logo dozens of times before I settled on the current version. I'm rather proud of it. I suppose that the next step is to write a provisional mission statement. How about this:

The mission of Cartwheel Games is to create and maintain whatever games Michael Consoli feels like making. Quality.

In the process of setting up the company, I've been trying to separate my personal and business online identities with mixed success. YouTube doesn't allow channel changes or transfers, so I'm just going to leave the old consolim1 channel as it is, and will only post to CartwheelGames in the future. If you subscribed to the former, I suppose you should switch over to the new channel.

What I'm (not) Playing

Steam claimed thirty of my dollars on the last day of the Summer sale. I have yet to play any of these games, but the list is: Machinarium, Q.U.B.E., The Swapper, and The 39 Steps. I figured that puzzle platformers and adventure games could serve as research for Against the Wall. I turned down Don't Starve, since I actually want to work in August. Oh, and I've been trying to get my hands on a copy of Catherine. At one point people were drawing parallels between Against the Wall and this fast-paced third-person puzzler/dating sim. Go figure. Though I should play it for reference, regardless.

Oh, and Virtue's Last Reward consumed a weekend, in the same manner that its predecessor 999 did in June. Contact me if you've played either game. I really want to get into a discussion about all of the crazy stuff this series has churned out.

This week has been a weird one so far. The passing of Giant Bomb's Ryan Davis hit me pretty hard. I've listened to his voice everyday for five years in podcasts and videos. I really admired the guy, his opinions, his wit, and the depth of his pop culture knowledge. The man had a deep fear of heights, so I was looking forward to his reaction to my game. My thoughts go out to his wife, his family, and his many friends.

I needed to get my mind off of things the last three days, so I opted to dip back into coding, which requires more concentration, rather than advance the art. I created two new things that gives me some flexibility with level creation. Namely, Dynamic Super Props and Prop Containers.

Props in Against the Wall come in six flavors:Static: Immobile permanent objects, they are not saved in the player's game file. e.g. houses, the windmill.Dynamic: Mobile props that don't respond to physical forces (kinematic). They can transition between chunks and be saved in the new chunk. e.g. Elevators.Entity: Limited-mobility props that the player can interact with and change the state of. e.g. levers, buttons.Dynamic Entity: Mobile props that are physics-enabled (rigidbody). E.g. the scarecrow, anything that can be picked up.Super: Immobile props that are very large. These props are not saved with chunks, but rather are saved and loaded from files representing large areas called super chunks. If something needs to be seen from very far away, the prop is marked as super. e.g. cities.Dynamic Super: This is the new category of prop. These props are for anything that can be seen from far away and may have multiple state changes or movement. e.g. trains, rising bridges, large platforms.

The other innovation is a special sub-class of prop called a Prop Container. These props are capable of generating and managing other props. If I want to have a train, the container can spawn the cars, the seats, controls, etc. All containers themselves are either dynamic props or dynamic super props, since they are meant to move around. All that's left is the bug testing for these features, then I'll return to the art.

I've been co-working with friends frequently, going to this cafe or that, being as productive as possible. I should mention that I participated in Molyjam last weekend, and made a small puzzle game with my friend Atlas.

One more thing, I made a few models for what may be a "facility" or "factory" tileset. Not in love with the design, so there will be a few more iterations on the sketches. That's it for now.

Completing the Outpost Set

I've managed to get the Outpost models into a presentable state, inside and out. Rather than use multiple textures on each mesh, I am using vertex colors to add red coloration to the building components.

I also recreated all of the generic material textures for the game (wood, metal, etc.) to be a bit more flat and fitting with the minimalistic aesthetic. Excluding furniture, the outpost is complete. Tomorrow's task is to start work on a heavy industry building set.

Other Progress

I've submitted the latest version to IndieCade, here's hoping that the game becomes a finalist. I've fixed a boatload of bugs over the past couple of days, mostly centered on the elevators and checkpoints. Here are a few bug fixes that may help you if you are a dev:

I've fixed this one audio bug that was annoying me for a long time. Apparently there is a bug in Unity's audio system that causes popping or scratching sounds when 3D audio is played or stopped. Setting the doppler variable to 0 averts the problem entirely.

In general, when modeling a modular set, make sure that the objects in the set overlap each other by a very tiny amount when positioned next to each other. That is, if you have a wall mesh that is meant to occupy a space of 4 x 4 x 0.5, it would pay to extend it to 4.0001 x 4.0001 x 0.5001. Why? Due to floating point imprecision, there will be a very tiny gap in between meshes that line up exactly next to each other. You will see ugly seams everywhere unless you make minuscule overlaps between objects. The overlaps are not readily visible, but the seams that they prevent are highly noticeable.

Greenlight

The game's Greenlight rank is now at 98% of the way to the top 100. It's been around this level since mid-January, feels like being caught in limbo. Then again, I haven't exactly been on top of marketing the game.

What I've Been Playing

I played through Nine Nine Nine over the weekend. This game hooked me pretty bad, I couldn't stop playing until I saw every ending. The story was engaging and surreal, the puzzles difficult but fair, and the characters subvert the archetypes that they seem to embody. I was able to figure out who the mastermind was early on, but the game still had plenty of other unexpected twists and turns. Can't wait to pay the sequel.

There's another visual novel called Save the Date that you should check out. It's difficult to describe it without ruining the experience, but it scratched a few of the same itches that Nine Nine Nine did, only in a much shorter game.

On Friday, I had second go at the models for the outpost. I divided each mesh into submeshes, so that there can be multiple materials applied to various parts of an object (in this case, wood and stone). In the pictures below, I'm just using some generic stone and wood textures, and will replace these with brick, tile, carved wood textures in the near future.

Here are shots of the outpost in-engine:

In the first image, you can see the outpost's gatehouse and a balcony to one side. The balcony has a broken staircase on the right that points towards the windmill building.

The second shot is of the new interior models for the outpost. There's a door, some room partitions, staircases leading to a second story, etc. I should note that I split all of the 2-story wall sections in half, so that I can mix and match windows, entryways, and flat walls. Also, I can make buildings of any height by stacking these wall segments on top of each other.

Next step is to add the final textures and script the opening sequence.

Website Woes

My site was slow for a while now, but I took some time yesterday to root out the problem. It was taking 10 seconds to load, and not indicating that messages were submitted in the contact form. Also, I disabled the forum. I'll re-enable it when I release something new for when people need to submit bugs and such. Bbpress forum software is severely lacking in features, and it's near impossible to export data out of. It's a real bummer to use, but eh, it works with WordPress.

What Else

I've been co-working with a few of my New York indie developer buddies Itay and Joe. I'm much more productive when I have other people in the same room as me to work out problems with, even if hey are on their own projects. Can't believe I didn't try this before. Also, it gets me out of this apartment from time to time.

Yesterday, I spent the day working in a coffee shop in Brooklyn, whipping up some meshes. These meshes are part of a modular set that can be pieced together into buildings (walls, roofs, columns, etc.). For the demo that I'm submitting to festivals, I plan on starting the player in a building that uses this set. For now, I'm calling these assets the "outpost" set, since this initial building is rather remote from civilization.

In the first image below, you can see my inital 3D sketch, a few grey boxes lumped together with some indication of a doorway. I was originally planning a three-level shanty. The middle building is my second attempt at a sketch. At this point, I had decided to make the building look more like a tower or castle, with arrow slots, two-story-tall walls, and thick entablatures. I then set about using this sketch as the basis for the modular components. I took these components, which are arranged in the second picture, and assembled them into the building in the top picture on the right. I also decided to add kite-shaped crenels to the set, just to make it look cool.

Sketch 1, sketch 2, and the assembled outpost

Modular components of the outpost

Keep in mind that this is a very rough first pass at a mesh set. As stated in my last post, I will just do a box unwrap on these meshes and assign them multiple textures each. This is not the most efficient way of modeling/texturing, since it increases draw calls. The alternative is to use texture atlases, which I really, really hate generating and takes up a ton of time. Also, creating buildings out of small modular components can potentially slow the load times for the particular chunk that they are located in, since there are more objects in a location. On the plus side, the modular set means that I can easily create buildings of many shapes and sizes.

I haven't decided the color set just yet, but I am leaning towards white walls and red detailing. The whole thing looks more like a mini palace than a military outpost, so I may be adding some components such as wooden scaffolds, cranes, and lookout turrets to make it a bit more utilitarian. The whole game will feature rather blocky and minimalistic structures like this one, keeping with the stark aesthetic of the world while also operating within my capabilities as a modeler. The next step will be to create the interiors, doors, platforms, support brackets, details, and materials.