5.14.2012

Isometric Camera !



Isometric games have their charm, mainly because it is home to many great old-school RPG and adventures games.

From a designer perspective its charm is also due to their tile-able possibilities, neat graphical advantages of refining modular pieces.

Inspired by that I started working on a Camera script for Unity3d. It uses an orthographic cam with the following script(JavaScript) attached:

var target : Transform;
var distance = 45.0;
var height = 45.0;
var distanceDamping = 3.0;
var heightDamping = 1.0;
function LateUpdate () {
     
    if (!target)
        return;
     
    var wantedHeight = target.position.y + height;
    var wantedDistance = target.position.x + distance;
    var wantedDistanceZ = target.position.z - distance;
    var currentHeight = transform.position.y;
    var currentDistance = transform.position.x;
    var currentDistanceZ = transform.position.z;
     
    currentHeight = Mathf.Lerp (currentHeight, wantedHeight, heightDamping * Time.deltaTime);
    currentDistance = Mathf.Lerp (currentDistance, wantedDistance, distanceDamping * Time.deltaTime);
    currentDistanceZ = Mathf.Lerp (currentDistanceZ, wantedDistanceZ, distanceDamping * Time.deltaTime);
    transform.position.y = currentHeight;
    transform.position.x = currentDistance;
    transform.position.z = currentDistanceZ;
     
    transform.LookAt (target);
}
Currently it's a very basic script, to have a true orthographic view, both distance and height variables should have the same number. It also has damping for each parameters.

5.07.2012

Hazel Dazzle Game Art

Here's a screenshot of a game that I'm currently working on at WakeStudios, Hazel Dazzle,a space adventure inspired by old school zelda games. It was important (and fun !) to achieve that dungeon mood.

4.28.2012

Street Update 2

Some screenshots from unity 3D wit lightmapping and a slightly levels correction in photoshop. Currently it's just the same cloned building, remember that I'm working with modules and tileables prefabs to allow flexibility on construction, still needs more props and variations.

3.21.2012

Street tiles [wip]

UPDATE

 Brand new spooky building starts to appears, so spooky that it feels empty. I'm looking forward to a more detailed scene, need to add props, decals, better lighting, etc.
Check out the wire of the tile based street, modules of 4x4, 2x2 and 1x1 so far. Also most of textures are tileable, very handy.

I started to add some trees, currently no leaves but I'm working on it. It's still winter here !.
The idea is that those trees grow in pairs, maybe a female and a male stuff going on there. Check out some early concept:



Real Time Blender Game Engine. Obviously there some issues running here, it doesn't feel seamless yet but that's what I'm currently working on, I felt like sharing some progress.



3.18.2012

RamGore - Camera System Test


Maybe an open world, small open world so I can achieve something. Actually it's a small terrain done with unity's terrain tool.

The point of this video is to show an idea of the camera system.

It combines 2 simples scripts:
One is SmoothLookFrame:
http://www.unifycommunity.com/wiki/index.php?title=SmoothLookFrame

Which works with 2 game objects and tries to keep them both on frame, pretty cool.

The other one is LookAtMouse I think:
http://www.unifycommunity.com/wiki/index.php?title=LookAtMouse

"This script will cause an object to rotate towards the mouse cursor along it's y axis."

That object I choose to follow is going to be framed by the SmoothLookFrame script along with the player, bingo, it'll look something like this:

Camera ---------> Player
             ---------> Cursor

With that I can make the player control the camera in a 2D plane. When it comes to Third Person Cameras, there's a lot of options, depending of the type of game, but in open world games, like for example, WoW, there is less control from the designer and more control to the player. So to make you pay attention to a specific spot or area of the terrain, it's very difficult.

On the other hand, non open world games allow more designer control, and direction. Examples like God Of War 3 are among the greatest I've ever seen in modern games. Not so modern games like the first Tomb Raider, combined these approach of "keep 2 thing in camera frame", when Lara enters attack mode. Check the video:


This type of Camera in TR, it's not only used when focusing on enemies, sometimes it's also used to hint something to the player, a path or a item.

Back to the idea of RamGore and my plan to combine these 2 types of camera system from 2 genres of third person games. There are many bugs to be fixed, for example, the cursor stays at the same height in which starts, so when the player wanders around the top of the canyon or mountains, the camera goes eagle view, top view, trying to keep in frame the cursor below. I want to be able to exploit that on some parts because it looks awesome.


Music from the video: Doug Laurent from Half-Life 1 soundtrack.

2.25.2012

Global GameJam 2012

MpLabs presence in the GGJ 2012 took place @ Barcelona - Spain, I joined forces with WakeStudios members to design a: auto scroller samurai game (in less than 48hrs.).

It's called Samuraider, it was made on Unity3d and features 2D art with some 3D art.
I was looking for a quick way to make 2D animation sprites so I worked with Flash for this project. The use of vector art as a master file makes it resolution independent which is a plus. Here's a sprite sheet:

Run, jump, attack, land, hit.
An early run animation loop (6 frames):



The unfinished look of the animation, with lack of clean up, etc., was decided to be able to finish the game in a short time. We weren't able to achieve the exact game we wanted, but maybe with more time this could turn into a nice game, at least the idea was born and raised a bit, the Samuraiders. Oh and we made a prologue for a background story:






Overall the gamejam it's a great experience to know different kind of people sharing a same objective, to pass out in front of the computer to make a great game !. 

You can play the game here:

download:SamuRaider_0.2.zip
more info: http://globalgamejam.org/2012/samuraider


12.24.2011

KullGore Low Poly

I'm creating this character, it's supposed to be a demon with a glowing skull but still needs some work, currently it looks like is wearing a chicken head.

I started the concept on photoshop (quick sketch, nothing fancy), then took it to blender but since I'm learning how to model on 3d studio max I decided to give it a try. So the character was modeled in 3ds max, rigged and animated in blender. A way to learn the work-flow between those softwares.

Finally Unity 3d, a quick build of a third person character, a couple of animations, mouse orbit camera and a terrain done with unity3d itself.

Here's the video:


Some images and animations:






video's music: http://soundcloud.com/3uho/untested-xpecimen

Until next time !

12.04.2011

Platform Piano test

An experimental platform gameplay test, using one sample sound and altering the pitch properties on of each audio source. Something quick and simple.
Maybe it could turn into a music game.


















12.03.2011

New Model

Allright, I'm working on a new 3D model for a game, I don't know if I'll use it for "Kzu" or for another project in mind called "RamGore", I'll show off some images and animation loops.




11.19.2011

Terminal2D bombing gameplay test


Gameplay test for the drop bomb weapon and terrain art.
Too tired to write any further.

Till next update.

10.22.2011

Terminal 0.1 Log 07

A prototype for a boss fight. Currently feels very chaotic and messy but I want it to feel like an intense battle.

10.15.2011

Terminal 0.1 Log 06


* Added new Main Menu prototype
* Space level
* Performance increased due to massive debugging.

10.09.2011

Scripting: Shooting a double cannon from a flying ship.

About the blaster gun on Terminal 0.1:
The idea I had in mind was a gun that fires each shot from 2 different positions, but not at the same time, it had to be one and then the other, kind of like a switch (defined by a boolean) that changes between 2 positions every time you press the fire button.

The script requires you to set 2 transform for each instantiate position, also requires you to assign the main Rigidbody of the parent object (spaceship or whatever you have) for a very important reason: to detect the speed of the flying character (using RigidShip.velocity.sqrMagnitude) and sum that amount to the speed of the bullet, so firing doesn't look slow and inaccurate while flying.

Here's the script, feel free to use it:



var BulletSpeed = 0;
var bulletPrefab:Transform;
var fireRate = 1.0;
private var nextFire = 0.0;
private var OnOff : boolean = false;
var TurretPos1 : Transform;
var TurretPos2 : Transform;
private var ShipSpeed = 0;
var ShipRigid : Rigidbody;

function Update (){


    var RigidShip = ShipRigid.GetComponent(CharacterController);
    var ShipSpeed = RigidShip.velocity.sqrMagnitude;

  
  
//     print(ShipSpeed);
     Shoot ();
 
   }


function Shoot(){

    if(Input.GetButton ("Fire1")&& (Time.time > nextFire))
    {
  
        OnOff = !OnOff;
           
        var Tpos : Transform;
               
        if(OnOff){
       
            Tpos = TurretPos1;

            }if(!OnOff){
  
            Tpos = TurretPos2;
       
            }
        BulletSpeed += ShipSpeed;
       
        nextFire = Time.time + fireRate / 20;
       
        var bullet = Instantiate(bulletPrefab, Tpos.position, transform.localRotation );
       
        bullet.rigidbody.AddRelativeForce(transform.forward * BulletSpeed);
       
    }
}
Of course, there's probably other ways to do that, even better ways, this was my first approach so it might change.
Till next time!

}


Terminal 0.1 Log 06

New video
Plenty of updates here:

* Added new gun, rapid fire blasters.
* Added animations to the ship so it leans to the side.
* Added infinite terrain (credits to quickfingers below).
* New sound effects and music.
* Spaceship now has 2 energy engines below the wings.
* Added "Run key" when pressing "shift", this increases the field of view of the camera in order to look more speedy shot. * Now with HD support (720p).

Till next time.

10.02.2011

Terminal 0.1 Log 05

The updates:
  • Added infinite terrain (credits to quickfingers here)
  • Explosion prefabs with debris
  • Paint job to the spaceship
  • City Landscape
  • Higher Res support
  • Space tunnel
  • Radar (from unify)
  • Particles on bullets
  • New sound effects and music
  • Spaceship now has 2 energy engines below the wings
  • Added "Run key" when pressing "shift", this increases the field of view of the camera in order to look more speedy shot.

click on the image to expand

That's it so far.

9.18.2011

Terminal 0.1 Log 04

I made a video this time:


some parts of the video have a bit of lag due to the screen recorder software (gotta fix that).
gameplay runs smoothly on my pc.

the updates:

* added animations to the spaceship
* better sound fxs
* black grid for testing gameplay
* hp above enemies
* a radar that detects friendlies and foes. this script can be found here

screenshots:





















an awesome .gif:





I guess that's it so far.

peace !




9.13.2011

Scripting an Enemy

A common idea for a enemy in a shooter: 
In a very abstract form, an Enemy must reach the Player, stop at a certain distance, consider this a shooting range, then avoid Player's shooting by rotating around its. 

I did a sketch on paper before going into the computer to break down the idea:
- the "P" stands for player
- "E" enemy
- and the circle around "P" is the desired range where the "E" should stop and start rotating.

A keyword here is "distance", that's where this function on Unity3d becomes in handy

Below I will share with you the script and how it looks on gameplay.



 in action:
Basically it is switch between 2 functions, ChasePlayer and if the distance desired is correct (3.5 in this example) RotateAroundPlayer.
Mind that I'm not a programmer master so, if you find this script crappy, sorry I'm a learning n00b.

Also I got some help with a part of my script from this guy here
Moving the Player














My script currently looks something like this (javascript):

var Player : Transform;
var ChaseSpeed = 1.0;
var RotateAroundSpeed = 20;
var timeToChange: float = 0;
var minTime: float = 1; // min time to revert direction
var maxTime: float = 5; // max time to revert direction
private var direction: float = 1;

function Update (){
DetectDistance ();
}

function DetectDistance () {
      
    var dist = Vector3.Distance(Player.position, transform.position);
    Debug.Log ("Distance to player: " + dist);
      
    if(dist <= 3.5){
   
    RotateAroundPlayer();
           
    }    else {
        ChasePlayer ();
        }
    }

function ChasePlayer () {
    transform.position = Vector3.Lerp(transform.position, Player.position, Time.deltaTime / ChaseSpeed);

}    
function RotateAroundPlayer () {
     if (Time.time > timeToChange){
        timeToChange = Time.time + Random.Range(minTime, maxTime);
        direction = -direction;
    }
    var Rotate_Speed = Random.Range(1,RotateAroundSpeed);
    transform.RotateAround (Player.position, Vector3.up, direction * Rotate_Speed  * Time.deltaTime);
    }

Thanks for reading !

9.08.2011

Terminal 0.1 Log 03

So, if Starfox is an inspiration for Terminal 0.1, why not create my own characters? After all I like to draw too. I'm going to share with you 2 sketch characters for the game (*SPOILER ALERT!*):
The concept idea that I have right now it is to keep it simple, a main character and a commander.
The player receive quests [quests + complete them = advance the story line] (Yes, I'm planing a story)

Rain
My main character by now, not sure if it looks like a woman or a man (or a Alien) but Japanese do that a lot!, . It's late and I'm tired.
He's supposed to be a cold blooded thinker, maybe that's why he's blue(?)
Lila
This one is Lila, she's like the BIG brain of the team, the hacker, etc, you know, all the information? she got it !, her CV says that she helped a lot at Wikileaks.







The reason for the passport photo style of the characters is  because it belongs to the dialogue GUI. In the game, it should look something like this:


















of course, the blue background should be fill with actual gameplay. The dialogue script is a modified version of this one over here

thanks for reading, more content soon !

9.04.2011

Terminal 0.1 Log 02

Some improvements on Terminal 0.1:

Enemy Fire (red one) with a better contrast, particles now leave a trail so it helps to understand the direction of the attacks. The second screenshot shows a "hurt screen", bloody, red to let the player feel visually the damage taken. Among this effect the camera "wobble" when you receive damage, this last script can be found here.

Third screenshot shows a starting point for the player, a special pod where to reappear if the player dies. Le Checkpoint !

Also added a kill cam and some physics to the spaceship when your life reach 0 hp. give it a try to see what's have been accomplished  so far !
Control scheme beta design (I'll probably add a couple commands)

8.27.2011

Terminal 0.1 Log 01

Spaceship Shooter 0.1

a friend of mine and I had been working on this spaceshooter inspired by StarFox (but without rails) or and old pc game called Terminal Velocity, do you remember that one ?




So basically, there are some improvements on the ground  texture, adding some layers and bump maps. more progress soon !

8.03.2011

kzu test 01

A 2.5D platformer game, starring a girl name Kzu, this is like a huge personal project so expect to see some updates. I'm working with Blender on a hipoly version of Kzu to obtain a better lowpoly.
So far I have developed a bit of a background story for the game, with main characters living in a post-apocalyptic world, so they're up to reverse the damage to the planet, an echofriendly theme there.
CLICK TO PLAY