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!

13 comments:

  1. This comment has been removed by the author.

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

    ReplyDelete
  3. Sometimes spectrum wifi password change can be a task. If you want to change the password you need to feel tsome steps. First of all you need to find a pre-set password than only you will be able to change it. To reset the password first sign in to your account, if you don't have an account create a new account. select the option saying “internet” available under the “Services” section. it will display the network's name, change them click on the update option and save the settings.

    ReplyDelete
  4. Great post. I like to read your post. I am waiting for your next post. How to Setup HP Deskjet 3755 Printer on Windows 10 is the one of the most common problem in the printer. There are simple steps to follow and get out from the issues.

    ReplyDelete
  5. MKVPoker merupakan situs poker online terpercaya 2020 diantara agen poker idn terbaik di Indonesia.
    MKVPoker selalu berusaha mengikuti perkembangan zaman agar dapat memberikan pelayanan terbaik.
    Sehingga semua player yang daftar idn poker online dapat bermain dengan aman dan nyaman.
    Serta melakukan proses deposit withdraw dengan cepat, dana sudah terkirim ke rekening tidak sampai 5 menit

    Website : https://mkvpoker.pw

    ReplyDelete
  6. If your living space is full of mold and you don't know what to do and where to contact you can easily reach us either by visiting our website mold removal solution or call our customer support service providers to offer you peace of mind and complete satisfaction. Our professional members are well-trained and industry-certified to perform mold inspection and remediation services to solve all the issues and remove mold from every corner of your home altogether.

    ReplyDelete
  7. When I instruct my HP envy printer for printing the urgent documents, my HP envy printer shows offline status. I am applying a suitable command to my HP envy printer, my printing machine is showing HP envy printer offline error. The offline error is a very complicated error, so I want to take the appropriate resolutions for solving this offline issue. I am searching the appropriate causes of this offline issue, but I don’t obtain the success to find out the main reasons of this offline problem. So, it has become a big technical difficulty for me. So anyone can suggest the solid methods to sort out this offline issue.

    ReplyDelete
  8. At this moment, mistakes or issues related with my HP printer actually made me hauling my hair out. In the wake of setting up my HP printer for the extremely introductory time, it consistently showing printer is disconnected mistake and along these lines unfit to give any print. By visiting hp com setup and downloading the most state-of-the-art driver programming I can end this issue. Aside from one thing that I am inexperienced with the means to download programming from this website so I required direction to enable me to out in this issue.

    ReplyDelete
  9. You will have to put up the right answer (case sensitive), and then you can finally submit your request to change the password. Now you can select the new password of your choice and re-access your BellSouth email Login. If you find any problem then you can take the help of BellSouth experts.

    ReplyDelete
  10. It was not first article by this author as I always found him as a talented author.
    Detroit Become Human Connor Jacket

    ReplyDelete
  11. Downloading new Garmin guides and refreshing old ones is the most ideal way ... you to download and introduce the GPS map update guide updater utility.

    ReplyDelete
  12. I like to read your blog. If you are facing issues regarding your canon Printer we are always their to resolve the issues like Printer Offline, etc.

     HP Printer in Error State windows 10

    Can i Remove the Spyware through Activation of Windows Defender

    ReplyDelete