Sunday, 7 September 2014

To infinity and beyond!

I got a little distracted about posting this update, but we recently added Update 8 to our Steam Early Access, it's primary additions being voice acting for the androids and the last of our three main game modes - Infinity Drive.

Infinity Drive is our take on an endless mode where you fight waves of enemies until you fall. Sessions easily stretch to half an hour or more so it's pretty great if you just want to play a whole lot of Cactus and set in a new stage capable of rearranging itself.

"Oh great, who spilt the blue everywhere?"

Initially we released it with functional whitebox art, and I intended to leave it that way while I worked on other areas of the game but we had such a good reaction that I thought it was important to dress it up sooner rather than later! Since we had all the gameplay worked out from the whitebox, that meant I could start modelling straight over the top.

step 1 : take an egg slicer to the walls

The level is built out of four pieces - the non moving parts, the middle (which is capable of being raised, lowered or forming an island for turrets to sit on) and two wedge shaped pieces that are duplicated to form the main ring.

The visual motif is that the stage should look like it's built out of these metal hoops, like you're inside a stainless steel chamber. After fleshing out the walls, I started cutting into the space below the chamber - the goal was to add some geometry that'd only be visible when enough of the floor pieces retracted, that'd give the appearance of gears or machinery that could be animated and add visual interest.

step 2 : add ambiguous JRPG style architecture

I was switching between texturing and modelling at this stage, I wanted to keep the checker board pattern, but also give the whole thing a clean brushed metal look. From the other levels with changing configurations, I knew it was important that when a floor piece rises to become a wall, the top of it switches over to match the "border" material - this way the space you can walk on reads clearer - and while Influx used flipping plates, I decided Infinity Drive would use sections that slid up and down.

The sliding kept the rig relatively simple, there were a lot of moving parts but they only had to move on one axis so after setting that up I skin-weighted everything and prepared for animation.

step 3 : Green boxes. Lots of green boxes.

Something I learnt from Influx was having a lot of animated meshes on screen (that don't move) is surprisingly expensive, it's much better to have static meshes of their final states and switch them on to replace the skinned mesh renderer when the animation finishes. An added benefit is the static states can be stripped of any geometry that won't be seen once the animation finishes, which means the stage you're actually fighting across contains a pretty efficient amount of mesh.

With the animation set already defined from the prototype/whitebox, I was able to just go ahead and animate everything as one big set. Note the middle piece has more animations as it also has to handle Island state. I animate everything to the same timing, in game we have a small delay between one block and the next block animating to generate a ripple effect (just like Influx although far less noticeable in Infinity Drive) and keeping timings consistent gives me more control when it comes to adding procedural variance.

I could watch this all day - serious danger to my productivity

I have been exporting things to Unity as I go to test, but this is the point where I clean up the last few things and export everything as FBX, then create prefabs and generally set everything up properly inside of Unity, including creating and setting up materials. Fun minor detail! To maintain the checker board pattern on the main ring I had to make alternate versions of the two wedge shapes with altered UV's.

Once everything's in place, the level looks a bit like this!

it'd take practically an army of robot workers to keep this thing polished!

Certainly an improvement, but not particularly colourful! Which was intentional and brings me to the finishing touch. The plan was always to treat Infinity Drive like a space that adapts dramatically - it springs to life as you enter and is full of vivid colour. A much smaller game we worked on in the past called Antibody changed colours as you advanced through score brackets and it worked really well to convey progression.

To pull off a colour change effect, I used a Unity feature I'd only recently heard about, setting global shader properties. When the stage transitions, I set the colour, vector position (the characters current position) and then animate a 0-1 value over time to control the sweep. Inside the shader I use the vector to calculate the distance, modulate it by sine/cosine as well as the alpha value of the texture to make the edge more interesting, and away we go! Setting global properties was a way of reaching every material using a particular shader at once, without having to keep track of renderers/material instances. I wrote a simple script that assigns colours to each of the level configurations and handles the transitions.


The neat thing about handling this effect inside the shader is the versatility - I'm just changing the colour, but it could easily be blending diffuse textures, or normal maps or specular calculations. Anyway, that's the state of Infinity Drive! It's also a bunch of fun to play!

11 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Thanks for providing this information. If you having any issues related to Yahoo Email and get help then Visit
    Yahoo Login Error
    Update Yahoo Mail App
    Yahoo Mail Issues

    ReplyDelete
  4. Such a great post thanks for sharing its really helpful, i am ava an accounting assignment help expert. I have worked with several organizations where her key role was to write expert content. Presently, I am leading the content marketing team And provides academic support and the australian assignment help to students.

    ReplyDelete
  5. From the previous month, my HP printer has stopped working. Hence, I am not able to work on my HP printer. Due to some technical faults, my HP printer is not responding properly. I am new to this technical error, hence I don’t have the technical potential to sort out this technical glitch. There may be countless causes of this technical error. I have applied my effective HP Printer Troubleshootingsolutions for resoling HP printer stopped working problem. I don’t get the success in solving this technical problem. Can you recommend the quick ways to resolve this error.

    ReplyDelete
  6. If you want to set up Canon Pixma MG 3600, and facing technical difficulties for the set up process, you can choose us as a reliable third-party technical support company. We work delicately with our live technical professionals for setting up canon MG 3600 in the right technical ways. Our technical experts have many years of experience for Canon mg3600 wireless setup process in the right technical ways. Our tech-geeks are comfortably available at our helpdesk to provide immediate support or specialized assistance for any type of technical issues.

    ReplyDelete
  7. Great Post for Beginner to understand. I ultimately found extremely good publish here. Thanks for the information. maintain sharing more articles. For More details Visit: Gramin GPS Maps Updates. Then call out toll- free number for more information.

    ReplyDelete
  8. Assignment Help allows you to access quality services of professional academic writers at very reasonable rates in Australia. Make sure to connect with a reliable service provider for effective communication and the flow of knowledge.
    My Assignment Help
    Assignment Help Online
    Online Assignment Help

    ReplyDelete
  9. Virgo ALFA is a high-quality advance aluminum composite panel best for giving timeless beauty to new & existing buildings, constructing roofs, and signage as well as interior applications. Virgo ALFA ensures outstanding construction quality with a rich array of colors & surface choices. It is coated with PVDF (Polyvinylidene Fluoride), which is especially resistant to solvents, acids and heat. It also comes with Anti-Fading Technology (AFT). It is weather proof and even its color does not fade after exposure to sunlight. It also has effective heat insulation, fire resistant and sound reduction properties.

    ReplyDelete
  10. Hi, thank you for writing this excellent piece of content. I am really flabbergasted! Your article helped me clear my head around this topic. Also, anyone who is looking for some additional assignment help online can visit my company’s site. They are providing low cost high quality Assignment Help to students. I know writing assignments can be a real pain. So it is better that you take someone’s help. Why should you not contact them instead of wasting or dreading for failing the grade? Don’t do that. You can get better grades with some academic help.
    Assignment Help Online
    Best Assignment Help
    Assignment Helper
    Assignment Help In USA
    Online Assignment Help
    Assignment Help Company
    Assignment Help Experts
    Assignment Help Service
    Online Assignment Help Services

    ReplyDelete
  11. Are you looking for replacing the ford f100 steering column of your classic ford trucks? Then go through the following page of Carolina Classics, where we have mentioned a wide range of our products related to Steering Column including steering flange plate, shift liver bushing, signal switches and lower bearing retainer etc.

    ReplyDelete