The creature must be released!

September 30, 2010

Today is the day!

Our game is finally available to download, completely free!

Download it now in our “Download” section!

Enjoy its 20 challenging levels through five different areas: Ruins, Crystal, Mine, Jungle and Volcano.

It has also 20 collectible hidden objects + terrifying bosses + 2 extra bonus levels + 1 extremely happy and mysterious area with lots of secrets + 2 alternative endings + a whole original soundtrack composed specifically for the game.

Everything has been developed by five master students during a year.

This is the first version of the game. There will be a depurated release later, in october.

We really hope that you enjoy playing “the creature” game.

Thanks for your support!

Advertisements

The day has arrived

September 30, 2010

Today, the creature will be released…


Coding the Creature: Textures over Pawn Head

September 29, 2010

Hello everyone, Pol again writing here! 🙂

The second post about programming is very simple and short but quite useful for many people programming in unrealscript (and, unrealscript oriented, this probably won’t help you if you are working on other programming lenguage), it explains how to put textures over the pawn head (and obviously extrapolable to put textures in the hud wherever you want).

-From http://unrealmindset.wordpress.com/

In the UDK forums i’ve seen many people asking the same, if there is a way to put text/images over the pawn or over an enemy head. It’s pretty easy to do this. In our game, we have to put tooltips over the pawn head when it approaches to a key area, so, in HUD we draw it.

There is another trick we use in our game, that is to put a volume, that indicates if the texture should be drawed or not, and looking at the boolean created for this puropose, we can see it easly.

The result is the following

So, in HUD class, in the DrawHUD function:

1 if(TCPawn(PlayerOwner.Pawn).ToolTip==true){//check if we have to draw the texture
2 Canvas.DrawColor = MakeColor(100,255,100,255);
3 //print the message over the Pawn head
4 Canvas.SetPos( PlayerOwner.Location.Y + 36, PlayerOwner.Location.Z +130);
5 Canvas.DrawTexture(Texture2D'CriaturaPackage_Pol.ToolTips.Tooltip_W_low' , 0.5);
6 }

Coincidence? Nope! Serendipity!

September 28, 2010

Dead Rising 2 is a Capcom game designed by Keiji Inafune that has been released just a few days ago.

It’s a Japanese superproduction, where millions of dollars have been invested and hundreds of people have worked in its development.

The game is about a zombie outbreak (zombies are simply lovable). The main character, Chuck Green has to survive and protect his daughter using everything in his environment as a weapon.

But why are we talking about this game in our blog?? It can’t be related with the creature!!

Oh yes, it can.

This is Katie; Chuck’s daughter. One of the most important characters in the game.

And what’s that cute blue staff hanging from her bag!??! What can it be?!!? Can it be THE CREATURE!?!!?

Yes it is.

Thank you, Mr. Keiji Inafune for using our character in your magnificent game! We are very honored.

We are even considering adding zombies to our game to correspond you. (Actually we wanted to add zombies since the first day…)

The day is coming! We are terrified! Just wait a little bit more… the creature is about to be released!


Why the creature looks like this?

September 27, 2010

The creature has not been created randomly. There are some reasons that make it look this way.

The most important thing was to respect the evolution process. The creature needed to be prepared to look competed in every state of the game.

We can’t have a jumping torso without looking extremely strange and disgusting. Even without arms, legs, or head… the creature must look like a living being, without mutilated aspect.

That gave us two patrons:

  1. Its different limbs shall attach directly to the main body.
  2. The main body needed to be a creture by itself.

But… why does it have to be a ball?

There are several reasons for the creature to be a ball… some of them are involved with gameplay, and some are involved with design and visual perception.

Some gameplay reasons were:

  • As a ball, it doesn’t need any limbs to displace itself. It can roll.
  • It’s ball aspect allows us to create interesting gameplay mechanics, such as creating a “pachinko” looking level, use the creature as a cannonball, or use the inertia to create difficult challenges.

And some design reasons were:

  • Soft shapes use to be related with goodness and peace; and sharp shapes with danger. This is a common psychologic reaction that is not related with the culture or the education. Just as an example… there was an experiment about that. Just try to put name to these two shapes. One of them is called “Takete” and the other one “Maluma”.

If you called “maluma” the one on the left… congratulations! That was correct! curiously, almost everyone calls them this way. Even when they are completely abstract and they have no meaning at all.

Well, I was interested on the creature to look completely inoffensive, lovely and cute. This is a complete contrast with the creature described on the legend… It’s supposed to be powerful, evil and chaotic… but since you start playing, you are nothing but the smoothest, cutest and pacifist geometric form ever: a sphere. Funny paradox.

  • The second reason was to fight with the common WOEAI phenomenon (Where On Earth Am I??). This strange syndrome affects lots of casual gamers, and it’s even worst if they play on multiplayer games. They get really stressed because it’s impossible to discern which of the moving forms of the screen represents them. If you are a casual gamer or you know what I’m talking about… fear not! The creature game is completely WOEAI-proof! The circle is a form that automatically caught our attention. The creature is a circle with two circles as eyes, with two circles as pupils. Also, the eyes are self-iluminated, which means that they always will be visible, even in the darkest areas.

Oh! Oh God! WOEAI!?!!? Let’s play wii sports!!


Coding the Creature: Mouse Projecting

September 26, 2010

Hello, i’m Pol Urós, a member of The Creature Dev team, and a programmer too 😉

As Kevin said yesterday, we are going to publish posts about game design and programming, and today we are going to publish the first programming post in the blog  (focusing on unrealscript).

With David (the other programer of The Creature) we started a blog about programming in unrealscript along with examples of aplicating that articles in the creature. I and David are going to publish a series of a programming articles, first publishing all the articles in our blog, and then new articles.

So here are the first post, about Mouse Projecting. (Note that first, the blog are focused on only programming questions, but this is the blog of our game, the posts from the blog are a bit technical but in the new posts we will try to make that posts more easy-to-read to all people visiting the blog)

-From http://unrealmindset.wordpress.com/

Hello everyone, i’m writing this article to help anyone having troubles with mouse system and canvas Project/Deproject system to make the projection of the mouse from the HUD to the 3DWorld.

We are currently working on a project in that we need the mouse in the HUD, to be projected in our world. Our project is basically a 2D Platformer but in a 3D world. So, when I first think in projecting the mouse into the world I remembered a function in Canvas called Deproject ( http://wiki.beyondunreal.com/UE3:Canvas_%28UDK%29#DeProject ). This function supposedly takes a ScreenPosition and outputs a vector in the world space and a vector for the direction.

So looking at the screen at the top left corner we have debugging information internal of our game, the scene itself and the red mouse pointer (almost in the upper middle position).

At the first view, we can’t notice what is wrong in the mouse but we can identify accurately what is happening if we make a trick:

Putting the Mouse over the Pawn position, the position of the Mouse and the Pawn should be the same (note: X axis of the Mouse are the same as the Pawn in our 2D game).

I red-highlighted the zones in the debugging information that we should focus to see the problem. Here we can see that the position of the Pawn and the Mouse are not the same.

First, I think I’m doing something bad (and I can still miss something, but I don’t have more time to loose and experiment with Canvas.DeProject), but after some days of investigation, I can see what I’m doing wrong, so I tried another way to project the mouse.

The idea behind this other way is the following: Project the pawn to the hud and an arbitrary point in our 3DWorld that we know his coordinates in the 3DWorld. We know the distance between this 2 points in the World (I tried a point that is Y+100 and Z+100 of the Pawn), so we have to see the relation of this 2 points in the HUD, and, knowing where the Mouse in the HUD was, extrapolate the relation of the pawn and calculate manually the Mouse in the 3DWorld.

Explanation in-depth:

(Note: I calculate this into the HUD class, I save the mouse coordinates in 2D in the PlayerController, our classes are have “TC” in the name, so, you can figure easily how to include it to your game).

In the PostRender() function, we make a call to our function for the calculation:

01 local Vector pawn100;//this variable is to save the point 100 units far in X and Y from the Pawn
02
03 pawn100.X = (TCPawn(PlayerOwner.Pawn).Location).X;//as sayed before, we ignore X
04
05 pawn100.Y = (TCPawn(PlayerOwner.Pawn).Location).Y + 100;
06
07 pawn100.Z = (TCPawn(PlayerOwner.Pawn).Location).Z + 100;
08
09 CalculateMousePos( Canvas.Project(TCPawn(PlayerOwner.Pawn).Location).X, Canvas.Project(TCPawn(PlayerOwner.Pawn).Location).Y, Canvas.Project(pawn100).X,Canvas.Project(pawn100).Y);
10
11 //And we make the call to our function for the calculation

Now, we have our function:

01 function Vector2D CalculateMousePos(float PawnX, float PawnY, float Pawn2X, float Pawn2Y)//we don’t have to return nothing, but it’s ok
02
03 {
04
05 local Vector2D ret;
06
07 local float PawnXdef, PawnYdef, MouseX, MouseY;
08
09 PawnXdef = Pawn2X - PawnX;
10
11 PawnYdef = Pawn2Y - PawnY;//Here, we substract the values of the pawn and the pawn+100 projected to see the diference in the HUD of the two points.
12
13 PawnXdef = PawnXdef/100;
14
15 PawnYdef = PawnYdef/100;//100 are the number of units added from the world location of the pawn, so, dividing this from the distance from the two points calculated in the HUD, we can stablish a relation between points into the 3dworld/HUD
16
17 MouseX = PawnX - TCPlayerController(PlayerOwner).PlayerMouse.X;
18
19 MouseY = PawnY - TCPlayerController(PlayerOwner).PlayerMouse.Y;//Here we pick de difference of positions, between the pawn and the mouse
20
21 MouseX = MouseX*PawnXdef;
22
23 MouseY = MouseY*PawnYdef;//And having the relation previously calculated we calculate the position the mouse should be in the real world.
24
25 TCPlayerController(PlayerOwner).MousePosWorldLocation.X = (TCPawn(PlayerOwner.Pawn).Location).X;
26
27 TCPlayerController(PlayerOwner).MousePosWorldLocation.Y = (TCPawn(PlayerOwner.Pawn).Location).Y - MouseX;
28
29 TCPlayerController(PlayerOwner).MousePosWorldLocation.Z = (TCPawn(PlayerOwner.Pawn).Location).Z – MouseY;//And finally, we put the mouse into the 3DWorld.
30
31 }

Final notes:

-First, i have to say there is another way to set the mouse positions using fov and camera properties knowing the position of the 3dworld located into the fustrum, i think the way described avobe is lightly less complex.

-For our game, that is possible to climb walls, we have to tune it a bit because when the creature is 90degrees inclinated and 180 or 270, the orientation of the camera is not the same and the calculation is slightly different.


The mask project

September 25, 2010

Hi! I’m Kevin Cerdà, the game designer of “the creature”!

I’m introducing myself just for a reason… because I’m going to write some posts about game design!

These post will be about my opinion and my own thoughts and experiences, not about the game itself or other developers disciplines.

Soon there will be also some posts talking about programming issues; where Pol and David, the programmers, will explain some of the features of the game and how they are made!

And why there are suddenly posts about this??

As you know, the game will be available on 30 of september… and you can find a lot of information about it here, in this blog. We can’t keep giving you more information every day, because the game needs some secrets to be revealed while playing!

That’s why we are going to start writing posts about some interesting and specific issues related with game design or programming that have affected the development of our game. (Don’t worry, you are gonna love them!)

And I will start talking about the masks!

When the team was formed, in october of 2009, more or less… we realised that we had no concept artist in our group. Nobody knew how to draw something beautiful.

So… we had to engage a project that wouldn’t have art department at all. And the enemies where not yet designed.

The role of all of them was specified in the first game design document (the typical foe that would go from left to right until you jump on him… another similar that would fly through the air… one that shoots you…)

But we had to draw them before starting 3D modelling!

That’s when I thought about the masks!

All the enemies in the game would wear the same mask. That made them easier to design… and I started drawing with my five years old drawing skills:

A fraction of a second and the enemies were made!

(The brawler and the stomper are not included in the game, but they were in the original game design)

But the best part was all the advantages that the mask represented:

  1. Masked enemies means nor facial expression and modelling. That means less hours creating the enemies; more hours to create the game.
  2. Making them all simple and masked, makes them all similar. That makes them easier to recognize as enemies, and also gives more strength and cohesion to the design.
  3. It gives us a lot of narrative material, because it’s original and also mysterious… what will be under the mask… a face? nothing at all? Is the mask part of their body? It also gives them a common origin… which is the connection between them? there is somebody ruling them?
  4. My favourite one. If they have the same mask… we create a symbol. We all recognize the symbol of “peace” when we see it; even when “peace” is an abstract concept that cannot be drawn. Well, in our game we use this association effect. Putting the same simple face to all the enemies turns this:

What does it mean?.

.

Into a symbol that means danger. We can paint it everywhere we want inside the cave… and everyone will understand its meaning, no matter they language or they culture. Because is a self-made symbol.

.

That’s why the enemies wear mask, and that’s why the mask looks bad and self-confident. It represents the evil in our game.

More interesting posts about game design soon! Like… why the creature looks this way?

And keep checking the blog, because… these new specific sections doesn’t mean that we are not going to reveal new information about the game…

The final boss will be revealed through the next week…

Thanks for your interest!