Skip to main content

2D Level Visual (De)compisition and Preparing for a 2D Game

Alrighty you guys, I haven't been on in a while, as you can see with the massive delay between the Making Images in GIMP Part 2 and the to-be Making Images in GIMP Part 3, school has been piling on the projects and I can only work the video games during the slim slots of free time I have, so in order to keep from going completely off the map with blog posts, this will be a tipper in the composition of 2D game levels.

In the game we are currently working on right now, we have to focus on keeping a consistent style of a Kirby-esque side-scroller.  Doing something like this has its ups and downs, such as the nostalgia that comes from playing a straight-on game side scroller where the objective is clear while the game itself has some difficulties.  Arranging the actual environment, however, is quite the stress-inducer, and requires you to become organized if you aren't already, otherwise you won't be able to get through it without some  a hella ton of tears.  So get the folders ready, the will power revving, and the wrist exercised, because this is going to tax the hell out of your artist.


  • First off, get organized.  Don't just set up folders though, set objectives for yourself, create some lists and stick to them.  As tempting as it is to do the easiest stuff first, in the long run it's better to do the most important - though maybe more difficult- assets first.  This will typically be the environment (i.e. ground, background, transition, obscurities, etc.)


Mmm, look at that sweet, sweet, organization.  Keeping everything clean will make things easier for you and everyone you are collaborating with.



  • Second thing, get yourself physically ready.  You need to be able to sit down and get things done.  Eat a snack, drink a drink, take a piss, and DO SOME STRETCHES.  Stretch your back, touch your toes, prepare your wrists.  I mean, I'm not going to lie, it's going to get pretty boring, drawing everything, cleaning everything, making sure what needs to loop actually loops properly.  I mean, I have three different sets of trees, you just have to push yourself and remember that the ultimate outcome will actually look good.  You are going to want to cry and go to bed to the sweet sound of apathy.  But do you know what you have to do?


  • The actual working part is probably the worst part.  Through out it, you may find that somethings looks really good as individuals, but looks terrible all together, or vice versa, the best thing to remember is that things can be changed.  I've gone back and revised a lot of things, it's just a part of the process.  You have to keep in mind, a lot of things will come in sets.  Such as the trees, in order to keep things from looking too consistent, it's important to have a variety of scenery so that the player doesn't get bored.  Something just as important as variety though, is the way you layer things.  The game is 2D, but you still want to give it depth.  This is where staying organized (see step one) is important.  More than just foreground and background, you want something that gives the game more than just minimal depth.  This is where singular trees, rocks, fungi, etc. comes in.  The way that these obscurities layer on top of each other as well as inside the actual game gives extra pizzazz to the environment.  This gives the player the idea that you actually understand how perspective works if you size everything correctly (things get smaller as they go back, bigger as they come forward).  The best mindset to have probably is to not expect everything come out right the first time, and therefor not be daunted by mistakes.


Here's an example of what the scene looks like prior and during rendering of game play.  It's all about the layers and will power.  Things will come together in the end, you just have to believe in your capabilities.





Comments

Post a Comment

Popular posts from this blog

How To Import and Use Fonts

-Made by Chrome Fx Films

To use different fonts in your game, your going to have to acquire some fonts. You can go somewhere like 1001 free fonts and download ones you like and want to use.

When you download the file, you'll need to extract the file if its in  a .zip

The text file should have the extension .ttf. If you text files have a FFIL extension, simply rename the font file (yourname.ttf).
Drag the text file into unity to import. By default the Character variable should be labeled Dynamic.

The Dynamic setting means  that Unity won't pre-generate the texture, so if you look at your material containing your font, It probably will be blank. (read more here)
Now your over all objective should be getting your font to look like this (unless you prefer dynamic):
Where the characters of the font are not jumbled up and visible.
Now usually all you have to do to achieve this is change the Character variable from Dynamic to Unicode.
and that should work.
Now what some people over…

Handling Music and Sound Effects In Your Games

Initiative  While developing Treva's Adventure I had to figure out a way to handle multiple music tracks and sound effects in a clean manner or suffer horribly.  What was going to help me achieve a simple solution was taking all the different sounds and centralizing them in a single class in order to black box them.  Any other code trying to play a sound wouldn't even know the sound file's name.  All code trying to play a music track would reference a enum that defines all the track names.
Defining The Class Creating The Enum When I first started defining types in my enumeration,  I was naming the types to be exactly like the file name.  For a scary sound effect I had found a file named "ghost breath".  So around my code would be scattered lines like SoundManager.Play(SoundEffectType.GhostBreath);  This was fine until I found a sound that better fit the situation it was being used in,  and decided to use "ghost breath" for a different situation like a …

Don't Destroy On Load..

So if you want to keep an object or script that keeps up variables (or for any other reason) when you go from scene to scene, you need to attach a don't destroy on load static function, which goes something like this:

function Awake () {
    DontDestroyOnLoad (transform.gameObject);
}

The Awake function is call only once, when all the objects in the scene have been created. Read more about it here.

DontDestroyOnLoad has what ever is in the ( ) to not be destroyed when creating a new scene.

(transform.gameObject) is what will not be destroyed when the new scene is loaded, in this case, it will be the game object and all it's children the script is attached to.