Sabtu, 15 Desember 2012

Digital Audio Signal Analysis

This latest update isn't about the stealth game but about an assignment that's nearing completion, one part of it is a music based game like Guitar Hero or RockBand, simple music, hit the keys in time with the notes on the screen. Originally we planned to write tedious code with the timing for each note in each song but nearing the due date I've written a script for audio spectrum analysis to recognize notes in the music. I have no experience in digital audio signal interpretation though so I've just been working my way forward learning as I go from trial and error but I have a working version now and some cool looking charts to go with it.

Amplitude time graph:

Amplitude time graph to the music we're using in the game:

Spectrum time graph:

Through trial and error I've come up with three options for beat recognition; simple amplitude check where any sound above a certain amplitude is counted, second I have a sudden start test that checks for sudden increases in amplitude and lastly I have a sudden stop test for sudden stops in amplitude. Almost everything is changeable as it plays, things like the cooldown before it checks for a new beat, sensitivity of each test and how far forward or back the sudden stop and start checks test for increase or decrease from.

The implementation isn't far from done now all that's left is converting the beats into arrows that scroll to the bottom of the screen in time with the song and letting the player input their presses.
templates-office.com Audio
Minggu, 09 Desember 2012

Aligning objects

A simple but very helpful tool that is often overlooked is the 'Align and Distribute'. It's the answer to a question I have been asked a few time 'How do you place your objects precisely in line?'.

The tool can do a lot more than that by aligning not only objects but groups of objects. 

In order to 'kill two birds with one stone' I am going to use and explain the tool while creating a cute animal. What defines cuteness? Cute usually is achieved by more 'child-like' proportions - round shaped heads, big eyes, small nose, small body. Perfect for my favorite start of a tutorial: "Let's create a circle" - well in this case we create three.     



Note:
Users familiar with Adobe Illustrator or CorelDraw for example might ask why I bother with the duplication and rotation when it's already build in. You create one copy, rotate it and the next copy will be a repeated version and you can create the full circle of triangles that way. 
I find this way easier and more controlled when creating evenly spaced content for a circular shape. 

Let's give the lion some facial features. The mouth might like conplexe but really it's just an up-side-down Y and if the deforming of the circle looks too difficult you might try using 3 separate elliptical shapes to create the same effect. 


I added another circle for the body, a deformed circle for the leg and the paw, duplicated them 3 times to create the legs and added a line with a deformed circle with a pointy edge for the tail. A simple (and in my opinion cute) little lion. 

With a little bit more detail (eyelids and eyebrows) it's easy to give the lion some features and create some variations.



Variations don't stop there. Taking the basic shapes, rearranging them and changing the colours you have a whole zoo at your fingertips.




I hope you enjoyed the tutorial and start playing around with the tools inkscape (and other vector tools) have to offer to create some magic. 




Get the source art (svg file) of this tutorial for
USD 3.00

templates-office.com

Alive and snowed under...

It's been a while and I haven't posted for a lot longer than I realized. I missed a major spike in traffic when a news site picked up the helicopter tutorial and barely kept up with the comments due to health problems, too much work, too much fun, too much happening in the real life and I am sure I can find another lot of excuses why I haven't written a new tutorial for a while... but... they will keep coming... I haven't given up on the never-ending quest for better 2D game art. :) 

For now I am snowed under in the true sense of the word. I woke up to a white world outside my window. It started yesterday with a little bit of a white cover but this morning I woke up to 5 cm of snow on my balcony and a good 15 cm (plus) outside. I know - that's nothing for you guys in Canada or other 'polar' regions - but way more than enough for me.

I made my way through perfectly white and fluffy snow (for the 2 minute 'polar expedition' from my flat to the office) for a cup of coffee.

A horrid time to run out of coffee at my place - and it keeps on snowing... 
templates-office.com
Sabtu, 01 Desember 2012

Path following

Guards can now be called on to find, then follow paths. Also the I took away the streamlining of the path, it was overkill to do that while drawing the path and it works better to do it while the guard walks, that way I can use his position to check if he can see any upcoming nodes as he walks and if he does, jump to those instead of any before them. The colored dev lines don't look as organized though :(
Also guard movement is smoothed so it looks pretty natural when he turns corners and along with the realtime checking for a more streamlined path it means that the movement looks a lot less node based because he doesn't need to get to the node before he turns, he just turns when he has a straight path to the next node. In the above picture you can see a non-steamlined path, the script then "sees" points one two and three drawing yellow lines to them, then because it can't see four yet it walks to three.
templates-office.com Pathfinding, Stealth
Kamis, 29 November 2012

Working A* pathfinding

The A* pathfinding system is now functional and very efficient, guards quickly generate a route to the player using the nodes placed on the map and then optimize the route deleting any superfluous nodes on the path. I ended up not using the arrays built into the nodes of closest other nodes because I would have to use that array and the open list of nodes on the pathfinding script at the same time constantly cross checking that a node in the node's array was also on the script's array and then finding the chosen node from the node's array in the script's array to remove it from the open list. I decided it would be more efficient to just check all nodes.
(Above) The pathfinder with no optimization finding the first route through the nodes to a set point. (Below) With optimization code (And fewer nodes) the script finds an efficient path to the target. Also switched to spherecasting instead of raycasting because rays were cutting corners too close and guards couldn't get past comfortable and from time to time would try to find paths through arrow slits.
One more addition needs to be made before the script is ready to be implemented by the guard movement script, that is back tracking. I haven't run into any problems that would need it yet, any failures of the pathfinding so far have been node placement related but as levels get larger and more complex it's probable that guards will start taking dead ends and the pathfinder will get stuck at the ends of hallways instead of reaching the target. To solve this the script needs to be able to backtrack one node at a time. So ad the end of the dead end it realizes its mistake and moves back one node and looks for a new closest node disregarding the previous choice, either it finds a new path or it moves back again until a new path is available.
Once all this is implemented guards will need some sort of smoothing to make their paths look more natural, also they may run this script over the course of a few frames to make sure it always runs smoothly and the guards don't need to move immediately anyway, a few frames to notice the sound or sight, then a few frames shouting out or looking around will only look natural.
templates-office.com Pathfinding, Stealth
Jumat, 16 November 2012

AI pathfinding nodes


I started writing an A* pathfinding system with branching nodes, each node is linked to it's closest eight nodes for more efficient path plotting. I wrote a script that would cycle through them and link them to their eight closest nodes who's paths don't intersect walls or obstacles. Above is the turn out when I got it right, below is the result when I accidentally required rather than disallowed raycasts intersect with walls and obstacles.



Two more examples, above just two links each, below is four which is probably the one I'll stick with for speed.



templates-office.com Pathfinding, Stealth

Light level


Light level is the first thing I've completed, the concept for measuring light seemed simple but it was so essential to the gameplay I decided to do it first to make sure it could be done efficiently and accurately.

The method is quite simple, since we're already using light objects in unity to create light we can add extra code to each of them to check how much they're lighting up the player. All the check does is raycast the distance from the light to the player to check for walls in the way, then if it finds the path clear it measures the distance to the player and assigns a percentage based on the distance. Unity handled all of this very well and the code ran smoothly with no difference in frame rate.

Past this there are still a lot of improvements to be made to this system, things like ambient light, how close the player is to walls and special areas like outside or rooms with windows. Also the checks run to the centre of the player so sides of the player poking out doorways won't register as putting the player in light and if it's dark in the middle of a room the player can walk through undetected even though logically the character would make a silhouette on the wall behind him if it was lit well enough. That said there's always room for improvement but as long as the basic system works I can go ahead with the project.
templates-office.com Stealth
Sabtu, 29 September 2012

Garshasp Temple of the Dragon Review

Hi, my name is Nik and today i am reviewing:


Garshasp Temple of the Dragon is a simple spectacle fighter.


The story starts with Garshasp and his wimpy brother going in the Temple of the Dragon, in search of the Mace of Trit. Now that is the first problem - this game has a story. Its a problem, because of two things - the worst voice acting i have heard in a long time, and unskippable cutscenes.

The game would have being better, if the story wasn't there at all.



At least the gameplay is better then the story, but not by a lot. The biggest problem is that there is no camera control, therefore you will find your self making blind jumps, or being hit by an enemy you didn't saw, and this gets really frustrating after a while.

Also Garshasp Temple of the Dragon is a really slow burner, because you dont have access to your cool attacks at the start, you have to unlock them by leveling. You cant get to the interesting part, without dying of boredom.



As far as combat goes its standard spectacle fighter like Devil May Cry, or God of War, but its just not as good. This mostly comes from the bad sound effects, that make you feel weak and puny, instead of  making you feel like a bad ass, killing machine.

To add insult to injury, Garshasp is plagued by frame dropping, even on the lowest settings and this makes me think that this game is more of a joke than anything else.



To top it all of, Garshasp Temple of the Dragon is a disappointing and boring experience. 



I hope you liked my review of  Garshasp Temple of the Dragon .
If you did, comment, share with your friends, like me of facebook, or follow me on twitter.
My name is Nik and i hope you are having a nice day.
Kamis, 27 September 2012

Things you find on the internet...

I check the blog statistics every now and then (not often enough if I wanted to manage this blog more professionally - but hey... I am an artist at the core not a blogger)... but... there was a referring site that looked strange. I followed the link: 

http://gamerboom.com/archives/60814

and found this:

Someone took the time and effort to translate all my gamasutra blog posts to chines - taking out my text from the images and putting new text in. 

I don't speak any chinese so I can't say if they did a good job or not - one thing is for sure - they do a quick job. The tutorials appear on their site a day later... and they have been doing it right from the start.

The do mention me as the author - so... thanks GAMERBOOM.com for the extra exposure. :)



templates-office.com
Rabu, 26 September 2012

Dogfight 1942 Review

Hi, my name is Nik and today i am reviewing:



Dogfight 1942 is an arcade flight sim set in world war II.

Do i really need to know about the story? You are a pilot in WW2, you must follow orders, engage is aerial dogfights, and complete missions. That is all you need to know to enjoy the game.

Before i start the review, i want to point out the this game is best played with a xbox 360 pad, and i strongly recommend using one. Also there is no built-in in joystick support.


The most important thing in a flight sum is the plane handling and i am happy to say that Dogfight 1942 doesn't disappoint. All of the planes have weight, inertia and they cant turn on a dime, this makes them believable and enjoyable to fly. For fans of WW2 planes, the game  also provides a large selection of over 20 planes.

The sense of speed is also fairly good, because of effects like zooming out, and motion blur. And this is where my first complaint come is, the game has too much motion blur, and no option to turn in down. 


Now lets talk a bit about the guns. Every plane has several machine guns, rockets ,and if the mission requires it - bombs. I would like to point out the the bombs hit detection is kind of bugged, and sometimes when you hit the target - it doesn't take any damage.
Still the weapons feel very destructive, because of the good sound and visual effects. Probably half of the budget went in to the explosions - they are just very detailed and beautiful.

Now i can tell you where the budget was extremely small - writing and voice action. Some of the lines are really really bad, because they tried to imitate the military lingo of the '40s and they failed completely. They also failed in the british accents, which are juts horrible. At least the american accents are a bit better - i can listen to they without wanting to kill myself.


But the biggest problem i have with the game, is that it runs terrible. Even on my middle class PC is lag and stutters, on minimum setting. And that is just unexceptable, when i know for a fact that this PC runs better looking games, without this bugs. I hope that this gets resolved soon, so i can give this game a positive recommendation. 


To top it all of, Dogfight 1942 is a fun, fast arcade flight sim, with some serious performance issues, and terrible voice acting.

I hope you liked my review of  Dogfight 1942.
If you did, comment, share with your friends, like me of facebook, or follow me on twitter.
My name is Nik and i hope you are having a nice day.