Labels

Friday 29 November 2013

Sound & Sound Track Design

For the game's sound track i am using Logic pro a music production software that allows for a wide range of sounds and effects.

i have tried to stay relatively true to original 8-bit pieces.  
Rather than samples of live instruments, all sounds are synthetic and created through synthesisers.

however for these pieces i have used live drum samples but applied an effect called 'Bit Crusher' to imitate the 8-Bit sound allowing for better quality and edibility.


Here is a visualisation/Timeline of the track and the elements with headings at the start of each section 



Here is the audio

Bare in mind, These are short snippets of each worlds sound track and after the intro section of each will be looped until the level is completed e.g 

Start menu will be looped between - 0:27 to 0:41

Fire world will be looped between - 1:17 to 1:30

Ice world will be looped between - 2:07 to 2:20


Monday 25 November 2013

Game Developer - Modelling progress.

Like the schedule says i started modelling the main character this week. Using symmetry and box modelling i blocked out the basic shapes and overall size of the character first. Getting the chunky features and stylized body shape was important first. I am happy with the legs and body but when it came to do the head i had a few problems, heads are not my strongest point in modelling but i am not leaving it how it is. I would like to go back and give the head more defining features but with a cartoon stylized look its hard to imagine what features he shall have. 


Overall i am happy with the shape of the body, the hair is just a place holder for now i shall need to go back to give the hair a better flow and overall shape.

Scan lines and visual effects

Over the weekend i was doing some research and stumbled across a device called SLG 3000 scan line generator, the SLG 3000 enables you to enjoy the look of authentic arcade style scan lines on a modern television or PC monitor. It can be used with most retro systems provided you first convert the video output to a 640x480 VGA signal. Here is a video demonstration of the device being used with a Dreamcast as it natively outputs in this format so it's ideal for use with the SLG3000:

http://www.youtube.com/watch?v=vscKaVByjRU

Now, obviously this device cannot be used in our game as we are not running from a console but this gave me the idea of emulating scan lines to give our game a true arcade style. Now i am obviously not sure how this could look on a 3d platformer as this look has typically only been on 8-bit/16-bit games due to the the CRT technology at the time. Here is an example of of genuine hardware scan lines- on a 240p source running on a Sony BVM monitor..


Now i believe this would be a really nice effect that should be easily do-able in unity as a full screen shader or screen effect. I can't imagine this being something that is too hard to do, obviously we won't be able to emulate interlaced signals. Here is an example of the difference between non scanlines and scanlines to show the difference.

Another idea would be to have the bubbled/fish eye type screen around the edges, like the older CRT screens with curves glass screens. Here is an example that was done with screen filters on a emulator:


Here is a few more examples of other screen effects and filters and glitched out problems that we can try to integrate into our game, visually and physically. Stuff like this on boot up and when the character dies etc.

Character Movement Updates

Since the previous post on the Unity demo scene, much has been changed to the main characters motor script as during the presentation of our demo scene we found the controls to be too unresponsive and "clunky" causing the level to become much harder to navigate.

Originally the main characters character controller was driven by an axis based system, which was used as the key presses would return an emulated analogue value between 1 and -1. What this effectively means is that when a key was pressed instead of simply acting as a switch and toggling between on and off, when you pressed a key down the returned value would interpolate between 0 and its respective value, 1 for right and -1 for left. 

This decision was originally made for two reasons, the first being that it made scripting the direction change initially easier, as the positive and negative values correspond directly to the direction in which the character needs to move. This allowed me to simply multiply the returned key press value by a set speed to allow the character in the desired direction. This at the time seemed to be much easier than the alternative, which was to use the key presses to then figure out what direction the character should move in and then with that data multiply the move speed by either a positive or a negative number to correspond with the chosen direction.

The second of these reasons being that if we used a controller with an analogue stick to play the game, the player would have more control over the main characters speed, as they could stick to a certain position with the analogue stick limiting the main characters maximum speed.

However during last week this system was scrapped. This was due to the fact that the interpolation of the keys returned value was handled internally by unity which meant that I lost a large amount of control over the values fed into the movement scripts. Which was preventing me from being able to properly integrate a good momentum and inertia based movement system.

I re-wrote the scripts based of the keys acting as switches and created my own acceleration system, that to some extent replicated some of the same effects that was achieved by the axis based system, but this allowed me full control of the values being used to drive the movement script. As I had full control of these values I was able to create a much smoother and complex movement system.


This is a comparison of the two systems being used with just basic movement:


The above is the old system based on the interpolated axis values of the key presses.

This is the updated script with the new system implemented.


Once the basic movement had been finished to a good standard using code snippets that I edited from Unity's default character motor script I was also able to implement support for sliding down steep slopes.

Other features that I have so far been able to implement include:

  • When the character hits an object while moving while in the air they will slow down accordingly.
  • When the character hits an object above them while jumping they are pushed back down with a force that is equal to the force they hit the object with.
  • Jumping is time based, you only jump when the button is pressed down however there is a 0.2 second allowance for human error, so it is possible to jump if you press the button less than 0.2 seconds before you are actually grounded.
  • The motor script supports moving platforms, allowing the character to move along with any platform that may move.
Now that these features have been implemented all that leaves to be done to the character motor script is to bug test it further and eventually attempt to incorporate a system that allows for wall jumping to be achieved.

Hand Painted Textures


This week along with modeling the main character i decided to do some hand painted textures to test my ability in painting and to see what visual style i could achieve. My first test was to try hand painted lava floor, this could be used for platforms or cave walls. I am happy with the finished texture as it tiles quite nicely apart from several rocks that have similar shading directions so if this is too noticeable in game then i can easily repair this at a later date.

This is an example of the same texture tiled. As you can see it isn't the seam that is the problem, there are several similar vertical shaded rocks in the same direction that break the illusion of it being tiled but like i said it isn't TOO much of a noticeable problem but can easily be solved in need by the time it is in game.


Here was another wood test, i was easily able to tile the initial wood planks but i was confused about how to get the details to tile. Once i tried out tiling the lava texture i am a little more confident in making other tileables so i will go back and add a lot more to depth and detail. The colours are still quite bland and the details don't pop so i am nowhere need finished this texture so i will go back to it soon.



Monday 18 November 2013

Level asset designs


Here i have designed several environmental pieces for the forest themed level that i believe we shall need to model for background purposes. Simply items and assets to fill out the background environment, we would like the level to feel fleshed out and not flat unlike the 2d style games we are going for. I've gone with more basic designs and ideas as we shall most likely need to model A LOT of these types of objects and i think it would be best not to have them too complicated.

Wednesday 13 November 2013

The Mechanic


Here i dived straight into photoshop to get some basic silhouettes of how the mechanic could look. He is our  navi, our claptrap and loyal companion so we need to get him right. These designs still look gritty but still has a friendly look on him, and i think that is what we will aim for. Homemade bug killing machine with various tools and weapons to solve puzzles and help the developer along his way. I will soon advance more on these and paint up some finished versions.

Silhouettes



Tuesday 12 November 2013

Scripting and Unity

Toon Shading

After my last post there has been significant progress made to the toon shader. Previously I had encountered a problem with the shaders bands of shadowing and real time shadows creating strange graphical artifacts.

The problem was resolved by disabling the receive shadows property on objects experiencing the artifacts. Also previously the shadowing bands used by the shader were completely procedural and created by the shader code. As this in some cases made the normals of models appear grainy, I created an alternative shader that implemented a ramp texture to be used to create the shadow bands instead, which also allowed me to create smoother shadow transitions.

Both shaders are still in use in the game as we felt as a group that some objects looked better with each type of shadow banding than others.

In the example below, the character on the left has the procedural shadow banded shader applied while the platform in the background and the rock to the right use the ramp texture shader. There is a clear visual difference and we hope to incorporate both to create a good aesthetic for our game.


Character Movement Continued and our Unity Demo Scene

I have been continuing to script the character controller to improve the feel of its movement. As it stands the difference between the new version and the older are quite minimal in appearance. Most of what has been done to change it has simply been re-writing the already existing code that allows me to incorporate sliding, momentum and acceleration far easier. I have also recently scripted in the support for moving platforms as our demo scene has moving platforms implemented in it and without the support for it the character controller would simply fall through the platform.

Modelling

Below is a screen shot of the basic models that I created in 3DS Max to give some sort of visual representation as to how the final game may look. The models are fairly low poly and are acting as simple place holders for the time being. Eventually they will be replaced with the final models, textured and unwrapped.



The Unity Demo Scene

For our pitch I have constructed a basic scene in unity comprised of the above modes. The purpose of this scene is to give a visual representation of roughly how the game may look and also to house some basic mechanics that will be implemented into the final game. The screen shot below shows the scene with all of the models set up before any mechanics have been implemented.


Once all of the models have been correctly positioned I moved on to begin scripting mechanics that demonstrate what sort of mechanics we will be having in our final game, these are however still just basic examples and may be subject to change.

The first was the wind system, this allows the player to jump into a "gust of wind" being generated by some sort of in game object that will slowly push the player upwards giving the appearance that they are being blown from underneath. Also included is an example of how I could possibly use physics materials and rigidbodies to design some puzzles for the ice level.

In the demo scene I have simply applied a physics material to one of the "ice" platforms that represents the properties that a frozen platform may have; very hard and very slippery. To also demonstrate this there is a cube with a rigidbody attached that the player must push along the ice to jump on to to reach the next platform. As this rigidbody is sitting on an object with the ice physics material applied it will carry on sliding after the player has stopped pushing it, to make it appear that the "icy" floors are slippery.

The last level mechanic to be implemented was the moving platforms and rising lava level of the volcanic themed section. Also incorporated in this section is a concept that may potentially make it into our final game. The idea behind this concept is that some objects may break into the foreground and as the player approaches the section that obstructs the foreground and the players view will fade away, allowing the player to clearly see what they are doing. In the demo scene this is represented by a mini volcano that has been split in half. The front half is is hidden once the character approaches it and the re appears when they are further away again. The screenshot below shows the final demo scene set up with all of these mechanics in place.

Also I have implemented a simple death and respawn system to make the demo scene feel like more of a simple game demo.




Anti Axis Schedule - December - May


Environment Concept Art - Elliot Bird

Environment Concepts
Elliot Bird
 
Fire World
 
The fire world is set near and around a volcano, the idea is that as you progress through the level the lava rises forcing you to speed up however these designs show a horizontal gameplay and not a vertical one that had been discussed as a possibility.
 
I like the shapes and hard edges leading to a rigid rockey feel, also colouring only the lava adds to the awareness of it and makes it an obvious danger. The chains i also thinke a solid aestethic, it gives an industiral feel and adds to the gritty atmosphere
 
Te black chain on the top strip is supposedly meant to be interactive indicating that the high platform is lowerable, after detatching the chain from the platform it is attatched to (lower left platform)

 
 
This concept i added the Fire World specific enemys into to see how it might look as a working level





Monday 11 November 2013

Level designs and ideas.


Here i gathered a bunch of game screens with similar environments to get a overall feel of the color pallette and to reference the various themes and styles of each world. 


Here is where i blocked out some platforms and surroundings. This one here is for the Forest level and you can see multiple ideas that we can use to really bring out a forest/ruined temple type environment. The only problem i think is that this concept has more of a jungle feel to it, i felt it was much easier to gain character and bolder silhouettes from doing a more jungle scene but i'm not completely sure that is what we are aiming for. 


Another blocked out scene of how some of the ice level could look. I wanted the start of the level to seem like antarctic plains, with snowy hills to populate the background. This level will feature slippy floors what means harder gameplay and puzzle elements like sliding blocks to advance. 

The main idea of these concepts is to get a feel of the depth and the types of platforms in each environment, but also I thought it would be a nice idea to have each level go through two different area types - 

World 1 : Forest - Ruined temple.  
World 2 : Snowy Plains - Ice Cavern
World 3 : Lava Mountains - Volcano

While the gameplay is nothing new, we are hoping to bring out new and exciting mechanics through the each individual levels.
We have gone through several ideas on how the levels will work. One of the thought processes were having each level divided into sections, first half of the level would be platforming while the second half will contain a puzzle or two before you can advance. This is something to consider a little later on in development as one of our main concerns is whether switching to the mechanic will break the speed and the flow of the retro style platformer we're aiming for. We want the Mechanic to be controllable by either keyboard controls or even possibly the mouse, as this is the change the gameplay up a little during play to either complete puzzles or to change the environment so you can proceed.

Each level has a game changing mechanic to advance difficulty throughout.

The first forest level shall contain various points where there is winds, either blowing from below to reach further jumps and to give the player more of a challenge.

The second Ice level will contain Ice floors. This is will be to challenge the player and for other puzzle elements. Slippy platforms will make it harder to control the character or even moveable blocks on the icy floor to use for different puzzles.

The third Fire level will contain more environmental hazards of any other level. Meteors falling from the sky and volcanic magma rolling across the floor. On this level the platforms shall move too, something that wouldn't previously be in any other levels and also keeping puzzles to a minimum as we want this level to solely rely on platforming. While all generic platforms have you running and jumping to the left we wanted another idea to be to switch to vertical style platforming half way through the level.

Our last and final level is going to be a mixture of all 3 previous levels. By using platforms and mechanics from the other levels to increase the difficulty; Forest winds, Icy platforms and fire hazards. The level will be based off technology and glitches, and being inside the game. Another idea for this level was to be 'chased' by the game breaking glitch or 'binary' so the level cannot be done slow. This will hopefully add speed and difficulty to the final level.

Monday 4 November 2013

Concepts - MainCharacter Game Dev

Here is several sketches of ideas for the main character. I wanted him to be a loveable guy with a reconizeable silhouette. I want to hopefully paint this up as a concept poster at some point down the line, maybe even for the final degree show.


Here is a colored sketch that i whipped up in photoshop to get an idea of the
 different views for better reference when 3d modeling.

I have also been working on a test model based off the earlier concepts. Here is a ambient occlusion wireframe render of the main character, this will not be used in game as i will most likely redo the model from a more finalized concept but this gave me a nice idea of how the character could look. Gave me a nice idea of his overall structure and build.  



Here is the finished main character, this is the guy we have decided to go with. Mixing many ideas from mine and elliotts we have chosen a cartoony retro looking nerd. 


We have not decided whether we are going to have the messenger bag due to rigging and animating purposes but once i have done a few tests we will be able to see if it is possible.  

You can also see that we plan to use several textures for different environmental effects. Obviously depending on the area the main characters textures could change to give the effect of the character being in muddy/snowy or volcanic ash terrain. 

I am planning on starting the 3D model based off this design soon.