Tuesday 4 December 2012

Elements of Game Technology Part 1: Game Engines



Now that I have dipped my toes into the basics of importing assets into UDK, I think it’s time to look into various other game engines and what they have to offer!
Here are some of the game engines that I have discovered and will be comparing:

CryEngine 3
Source Engine
Unreal Engine 3

I’ll start from the top with the CryEngine 3.

Oh Timesplitters, you so crazy! Bring back the madness Crytek!
CryEngine 3 is the game engine from Crytek that runs games such as Crysis franchise, Homefront 2, Mecha Warrior Online, to name a few. Crytek UK was formerly known as Free Radical Design responsible for one of the awesome game franchises that I grew up on known as 'Timesplitters' (a bit pointless, but it's what comes to my head when I think Crytek!)
It’s not free software and is reported to cost roughly 1.2 million dollars to have it licenced. However there is a version called CryEngine 3 SDK that’s free of charge for educational purposes and non-commercial game development. If distributing a game you had created for free then it also requires no license.

Truthfully, there are a whole lot of things that I read up about game engines and I have only the slightest clue in what they mean by it at the moment, but I'll do my best to research them and get a better understanding of them!
Apparently unlike many other game editors that use a subtractive style of editing which retracts areas away from a filled space in the world the CryEngine 3 uses an additive style within their sand box.
Hmm, I think I preffer the CryEngine in this image
Since the sand box can potentially be large, it uses an algorithmic form of creating the textures onto the landscape and other objects. It does this by utilising many parameters within the software to work out the distribution of textures and vegetation, etc. It supposedly saves time and makes it feasible to edit large terrain and maintain the sandbox free roaming style.
Because of something called “What you see is what you play”, you can jump right into whatever you were designing.
A few disadvantages with this engine is that it’s limited in its free version and that it’s only compatible with Windows and the Xbox 360 and PS3 consoles, limiting itself further. For me though, it’s fine as I’m still at the stage of learning game engines and what not.

The Source Engine was developed by the Valve Corporation and games such as Half Life 2, Team Fortress 2 and Dota 2.
The game was originally designed for powering FPS games, however it has also been used to professionally used to create many other genres such as side scrollers and RTS games.
As with UDK and CryEngine, there is also a SDK version for educational and free use.


However upon doing some further research into the engine I have learnt that it has been criticized for being outdated and a “near broken” state with bugs and crashes. It requires varying level of (potentially long) text based scripting manually before the commands are executed.
Currently a new set of tools is being created by valve so time will tell if the problems will be addressed. I think I’ll stay away from the Source Engine for now…
It's a shame cos it looked quite nice in that video. I might look it up at some point when it's updated.
It can however support the Mac, Xbox 360 and the PS3 (as well as Windows of course).

Ahh UT... brings back memories... *teary eye*
Unreal Engine 3 was developed by Epic Games. When I think of the name Unreal I instantly think about the Unreal Tournament games I had enjoyed oh so much back in the day (I make myself sound so old…)
Anyways, moving on swiftly; some games that ran on the Unreal Engine 3 are Batman: Arkham Asylum and Arkham City, Borderlands 2 and the upcoming games BioShock Infinite and Aliens: Colonial Marines a currently being developed on the engine.
Like the Source Engine, it was primarily designed for running FPS games, however many other genres have been successfully developed such as MMORPGS. It is a rather popular game engine used by many game developers. It could be because of its support of C++ making it very universal and familiar to use.
It’s also in support many of the current platforms such as Windows, Mac, PS3, Xbox 360, Wii U, the iOS and Android.

Hmm, I think I prefer the Unreal Engine in this image
The latest Unreal engine (that being 3) is designed for the use of Direct 9,10 and 11 and can read systems using OpenGL managed by the non-profit technology consortium Khronos Group.
With UDK, anyone can sell there games by paying Epic 99 dollars and 25% royalty on UDK related revenue all UDK based games or commercial applications above 50 000 dollars.
One advantage with the Unreal Engine is that it’s considered widely as being ‘easy to use’ compared to a lot of other engines. I guess if I were in need of some tutorials or need find out a problem, it would be more likely to find an answer using this engine as many people use this popular engine.
Since UDK is free, it’s no surprise that its features are limited. The platforms are severely limited to only Windows and the iOS and it costs around the 1 million dollar mark to get a license for Unreal Engine 3.
This shouldn’t be a problem to me though as I’m only learning the program through educational purposes.

So now that I’ve looked into these three engines, I think I’ll give the SDK version of CryEngine 3 a crack at some point. Though learning UDK should probably be my first choice for now (especially since the group projects are coming up!)


This is pretty interesting. I personally find them both to look quite appealing and have their own little charms (in this demonstration at least). I'll definately be giving these two a go probably and getting a grasp at them before checking out another game engine... (probably... :p)


Also, saw this very recently and just remembered. I'll just leave this here... ¦3

http://www.psu.com/a006835/CryEngine-3-vs-Unreal-Engine-3-Comparison

Monday 3 December 2012

Abbey Park Final: The Pencil and the Digital Hybrid

Okay so I got round to working a little more into my Abbey Park final! I wanted to kind of keep the texture of my pencil strokes from my previous attempt of a final and see how the hybrid traditional and digital mediums worked as a team.

Well, not bad I guess...
It didn’t really have that impact that I was going for so I may end up removing the pencil texture and just focus purely on digital since I can barely see any pencil in there.
However though, I would love to make it work so I might continue playing around and experimenting a little longer before making such a decision to remove it completely. I definitely need to up the detail a lot more seeing the as the graphite from the pencil didn’t give it the push I wanted.

Gotta keep experimenting and practicing!

The Blitz Building Project: Part 2



So moving onto UDK, a program I’ve never used before (besides play testing a racetrack created by an old friend for her project) I was a expecting a massive headache navigating through the program and getting used to it's interface when I'm so used to 3DS Max!
It actually wasn’t all too bad really; it was much simpler that I thought it would be (for now).
The tutorial I followed was easy to follow and I got the hang of it rather quickly. The only problem though was that it took forever!
I was just spending hours upon hours sitting in front of the computer importing and linking Textures to Materials and creating new materials blah blah.
But first, let me talk about the collision meshes.

Yay jump node!
So because my intention was to be able to have access to the second floor through the balcony with my trash pile serving as my platform (as mentioned in part 1), I had to set the collision meshes much larger so that the player wouldn’t be able to jump and fall through the building. As I was setting the creating the collision mesh, I felt that the trash pile wouldn’t tall enough for the player to jump off. I later thought that I could perhaps use one of the blitz building’s fire escape ladders to climb up onto the fire escape ledge and drop onto the balcony from there.
However the trash pile still wouldn’t reach the fire escape ladder and that it was a little obscure for the player to figure that out. So after lookingto what UDK can do, I stumbled across a tutorial which let me creat a jump node.
Looks dangerous...
This was perfect in letting me create a boost for the player to land onto the fire escape ledge and dropping onto the balcony. 
It may look a little out of place, but at least the player knows it exists and you can reach the second floor!

When creating the collision meshes for the interior, I asked one of my lecturers If a standard plane can be used as a collision mesh. I was pretty sure the answer was yes but when I came to it during play testing, the collision for it didn’t work. It must have been an error on my part but one of my colleagues mentions that it has to be a box of some kind. I’m not too sure, but it’s something I’ll have to investigate further some in the future.

Anyways, after setting all of my collision meshes and naming them appropriately, I moved onto saving everything down as an ASE file.

Now comes the point that took me the longest…

As I read the tutorial I followed it correctly and did everything just right. And it said something a long the lines of “repeat this for all other assets” or something. So that’s precisely what I did, I imported the next mesh and named the mesh, imported the textures again and sorted them out in to categories and then created materials and linked the textures to it in which I then linked the materials to the assets. I repeated the process again for the next mesh and textures, redragged the same textures and renamed them like I did the other ones and made the materials, etc. This was taking me forever, I was getting sick and tired of renaming everything the same thing even though I have already imported the same textures and created the same materials about 40 times!

A little dark... could do with some lights
As I finally finished, I was relieved, and I started moving onto putting everything onto the scene. As I was wondering how I was actually meant to save it and load it, a friend told me that in order to load up your scene, you have to load up your package first. I said:
“What, all of your packages?”
And he replied “No you should only have one package”
That’s when it hit me, I had created a package for each bloody mesh and imported all the blitz textures and my building textures, renaming them all the same thing, etc.
I felt so stupid and died a little inside. I misunderstood the tutorial and made things much longer for myself. I could’ve have finished it so much faster and wouldn’t be so stressed for time.
The annoying thing was that I had to deal with the problems with merging everything together (which wasn’t that hard) and having to figure out if I have any duplicates of the same file under a slight change in the names.
Well in the end I got there and everything started to make a little more sense. I’m relieved that UDK processed weren’t ACTUALLY that long so it was in a way another relief to me.

Well, after I lined everything up and brought everything into UDK and got the level playable, I went to check out how the collision meshes were.
Everything from the bottom floor was great, there wasn’t any problem with the collisions but the jump node wasn’t working. I had followed the tutorial precisely but nothing would change. I had a suspicion that it only worked if it was in the ‘game mode’ (with the guns and double jump mechanic). After finding out from a friend on how to activate it, I was finally able to confirm my suspicion and I was correct; it had started working after it was enabled.
Whoops, I can walk through this!
As I landed a top the fire escape, the first thing I noticed was that I was able to see through the buildings as I didn’t put the collision mesh close enough to the static mesh.
I continued to drop into my balcony and found out that the planes I used as a collision mesh for the walls didn’t work and I walked right through them.

A little disappointed with how it turned out with the interior, I have run out of time to make any fixes so I can only take in all the mistakes I made and be extra careful for future projects and practices. I feel I may have been a little over ambitious with the idea of creating an interior.
As I was walking around in the interior, I thought to myself that it would have been nice to add some subtle lighting to the ceiling and made me think about looking into lighting in UDK sometime soon.

Although disappointed, the project was pretty interesting (besides the whole create 40 packages thing). UDK really wasn't as bad as it seems.
Oh yeah, after all that trouble with the packages, I forgot to add one tiiiiiiny little asset on the road...

fml... ;_;
HURRR I SO DUMB (Seriously, this might not look that bad, but it took me suuuuch a long time *cries to sleep*

The Blitz Building Project: Part 1



Towards the beginning of this project, I decided that I wanted a kind of castle-like architecture for my building. Originally, it was to be more akin to medieval Europe. I wanted to also play around with the scale of the building to stop it from look too similar to the other 2 buildings (within a certain extent of course!)
As I was analysing the building further, I noticed that the windows in had Chinese writing on them. This almost instantly made me change my idea because I found that a more suitable setting for the scene be something oriental. I finally decided to stop onto a restaurant with a slight old fashioned theme on the outside of the building. I researched into oriental doors and roofs and what could be in a scene of a restaurant.

I really wanted to add the lion statues commonly found in front of Chinese restaurants. Unfortunately I didn’t want to raise my tri limit that much further. I decided to make an interior after I played around with the idea of having a balcony on the second floor. “Since you can see inside, why not just make in inside!” I thought to myself and this is where most of my tris went into.
I made the mistake of making the chairs (unintentionally) high in the poly count. Because restaurants had many chairs, I figured they had to be an important feature to make look good.
The Balcony
However in the end I ended up reaching over 10k in tris! I really had to tone that down somehow.
I went and created and extremely low poly chair with a few of the high ones remaining however at the same time I also changed my mind to wanting to create access to the interior when I imported it into UDK. So I scratched the idea of the high and low poly chair and made them all medium low poly chairs (so much trouble for chairs!)

Second Floor Interior one side
I opened the front double doors and dragged the interior from the balcony to the bottom floor so that the player would be able to walk into. It was going okay until I ended up realising that there is many things missing that would be on the bottom floor of a restaurant (like a registration desk for waiters to show confirm the customers numbers and show them to their seats, etc.)

I ended up dragging it back upstairs to the balcony floor and went with the idea of trying to import my trash scene to use a platform to jump onto the second floor.
Second Floor Interior the other side ¦3
I was really disappointed with how my building turned out with the roof as I had trouble trying to get the shape and never went back to it after leaving it for a little while.
Because I had dragged my interior downstairs, I wanted to create a window in which you can see the stairs leading to the upper levels in the back of the room.

With the texture sheet I didn’t really know how many texture sheets we could use since I was unsure about how UDK works. To play it safe I ended up putting all assets onto one unique diffuse. This gave me barely any space to put much detail on many things. Rather than the 1024 texture sheet I usually go for, I upped it to double the size (2048) to see if I can compensate for having to fit everything on one sheet.

In the end I was a little disappointed with how the building turned out, the brick textures was an extreme pain to try and match with the other two buildings. One of my lecturers gave me some advice with perhaps creating some grime and dirt on alphas to perhaps match the other two buildings but unfortunately I had run out of IDs (up to 5) because of my tile-able textures.

So much to do, so little space... D:
I’m always learning from my projects though so I’m not completely bummed out by my performance. I've also realised that I do a lot of oriental related projects I tried to steer away from it for the this project but I ended up doing it anyways! I've decided that I'm done with the orient themes for a while as I'm sure everyone (as am I) is getting bored of it!

I’ll take it to part 2 of the project and fill you in on my struggles of importing everything into UDK!

My Trash pile



Creating the trash pile sounded a little dull to begin with but in time I actually ended up getting quite into the project. From the get go walking around inspecting trash looked a little silly but didn’t think much of it as I’m sure most of the art students have done many things that made them look like a tit! So now that that was out of the way, I researched into what kind of trash I wanted to do and wanted to do a trash pile of wrappers and random gross objects sticking out of the wall I found around the University campus. I decided against it however as it was a little small and didn’t really have much to it. 

I settled with my final idea of creating several boxes, fast food wastes and a broken cheap table. At first I wanted to fill the boxes full of bottles. However I only had about 500 tris to work with and I felt that I couldn’t quite lower the poly count on the bottle without making it look too low. I made the decision of creating just one bottle and having the scene populated with various fast food wastes.
One of the biggest mistakes I made was how I prioritised the texture space for certain assets. I definitely should’ve made the bin bag look more convincing. Another mistake I made was I positioned everything before I unwrapped them. This made it awkward to unwrap as the angles were all funny.
Because the bin bag looked quite weak, I made the tactical choice of slightly obscuring it under the table!
I had a lot of problems when I was experimenting with the lighting. When I entered day time system everything went completely dark and I was stumped on how to fix it. I couldn’t find any relevant information on how to fix it from the web so I decided to stick on a few Omni lights to light up the scene; giving it a tint of colour to the lighting.
I played around with the threepoint lighting technique to see what kind of effects I can get for the final renders

Threepoint Lighting

I have learnt a few things from the project which are to dedicate my spaces more effectively to certain assets and not to position everything before unwrapping them.