Tuesday, 10 December 2013

Game Engines

So, what is a game engine? My understanding of a game engine is that it is the place where all the elements come together to create a playable game. The main thing I use them for is to create a playable level to showcase assets I have been working on. Things like 3d assets, textures, terrain, sounds, AI and other scripts come together in one place to create a final product.
There are many different engines to choose from so it is important to choose correctly as things like lighting and shaders are dependent upon your choice.
The amount of different effects and elements you can achieve also depend on the engines features.

So, most engines are based on licencing and again prices can vary depending on which you are looking at. So some companies choose to create an ‘in-house’ engine; ‘In-house’ engines can be a very viable option as it gives the developer the freedom to have any features that are necessary for their game. If they have the time, money, staff and patience to create one (and make it usable for more than one title) it can be very effective in the long run as they will avoid licencing and royalty fees.
While some developers may opt for ‘in-house’ engine, a lot of companies will still choose the licencing as it may often work out easier and cheaper. The benefit of using well established engines means that the bugs have already been fixed and there are often lots of tutorials available. While some engines can limit the visuals or features of a game, more commonly used engines like Unreal Development Kit (UDK) is known to have adaptable styles. While UDK is relatively easy to use and offers great features especially for first person shooters, it may prove a challenge for other types of game (not unachievable, but more of a challenge.)

All  above created using UDK (Bioshock Infinite, Dishonored, Mass Effect 2)
So, UDK still one of the most used engines boasts a variety of different titles and different visual styles, it is popular because of its flexibility and versatility. Because it is so widely used there are plenty of online resources to help with achieving a variety of different features and styles.
Another reason it is so popular is because of its node-based shader system, the layout is somewhat similar to other texture and shader compilers and is easy to grasp.
The lighting in UDK is not real time and is baked onto a lighting map. While this does not limit the lighting effects you can achieve, plus it is a lot cheaper than real time lighting, but it does take up extra time making sure all the lighting maps are correct.

All above created in CryEngine (Crysis 3, Far Cry, Ryse)
Another popular engine is CryEngine which was originally developed as a tech demo for Nvidia, which after its potential was realised was made into a full game engine. Crytek are re-known for creating beautiful games with ground breaking graphics and their Engine sure doesn't disappoint. The real time lighting is stunning and it has an easy to use flow graph system for shaders and in-game events. While it is relatively easy to jump into (with a bit of prior knowledge of other engines) it still requires a bit of adjusting to get used to importing assets. It makes it easy to create levels that look pretty good and as an artist it is pretty simple to get triggered events and other effects working without having much knowledge of programming.
However, CryEngine is not nearly as flexible as other engines and the lighting is set up for photo realistic styles. So trying to create a more stylised or cartoon-y effect can be a challenge. Also, because of the lighting it is often easy to distinguish when a level has been created using CryEngine.

All of the above created in Unity Engine (Guns of Icarus, Kerbal Space Program, Anna)
Although I do not know much about this engine, I feel it is worth a mention; Unity. Unity has long since been regarded as an engine for hobbyists and amateurs, but since its development it has drawn the attention of many companies. It’s vast tools for mobile games and has a pretty cheap licencing fee have helped build its popularity. It is easy to access and is surprisingly versatile with plenty of shaders and tools available. Unity is also well rated as it works for browsers; the Unity web-layer enables Unity levels to be accessible via internet browsers, as well as created and played over the internet with hardly any download necessary. Another important thing to look at is the fact that it imports max and maya files which helps speed up the work flow.
However as it is still being improved the lighting is not amazing, especially when competing with CryEngine and UDK; but there are plenty of plug-ins available from companies like Marmoset, which help improve this tenfold.
Obviously there are lots of other exciting game engines out there; these are just the three I am most accustomed to. It is worth researching other engines as they can offer even more different features and effects that would be more suited for whatever project it is you are working on. It is always worth looking out for new engines as well as the market is constantly changing so new programs will be developed to suit its needs.

Monday, 9 December 2013

Mock up on Documentation

My mock up practice brief;

My project will be a 3rd person Fantasy RPG game where it is driven by narrative and quests, there will be lots of vast environments to explore. I will write a project outline for one area in the game. I want the level to be immersive and have lots of exploration elements. All concept work with be produced at the beginning.
It will be specified for PC and consoles and will be created in Unreal Engine as I am most familiar with it. The audience is ages 15 upwards and will have a realistic style. The other programs I will be using are 3D Studio Max, Photoshop, Crazy Bump, World Machine and Zbrush.

There will be;

  • ·        A lead character

o   The lead character will be either a male or female generic hero type character. The player can chose between dual wielding weapons, bow and arrows, mage’s staff or stealthy daggers.

o   Character no more than 30 000 tris
o   2 x 1024 x 1024 (diffuse + alpha) 32Bit
o   2 x 1024 x 1024 (specular + gloss) 32Bit
o   2 x 1024 x 1024 (normal) 24Bit

o   Weapons no more than 5000 tris
o   2 x 512 x 512 (diffuse + alpha) 32Bit
o   2 x 512 x 512 (specular + gloss) 32Bit
o   2 x 512 x 512 (normal) 24Bit

  • ·        An NPC

o   The NPC will be one of the enemies. As the player traverses the environment they will encounter many different enemies. The NPC I will create will be the basic ‘undead soldier’ character, who will be one of the most common enemies.

o   Character and weapons no more than 10 000 tris
o   1 x 1024 x 1024 (diffuse + alpha) 32 bit
o   1 x 1024 x 1024 (specular + gloss) 32 bit
o   1 x 1024 x 1024 (normal) 24 bit
o   Should include 3 LOD’s

  • ·        A vehicle

o   The vehicle used will be a small row boat that can be used to traverse over lakes and rivers in the environments.

o   No more than 5000 tris
o   1 x 1024 x 1024 (diffuse + alpha) 32 bit
o   1 x 1024 x 1024 (specular + gloss) 32 bit
o   1 x 1024 x 1024 (normal) 24 bit
o   Should include 3 LOD’s

  • ·        An environment

o   The level will be a castle ruins in a forest by a lake, where the aim in to make it to the ruins as an ancient relic you player requires is hidden within.

o   Will consist of terrain and skybox
o   Including heightmap
o   4 x 1024 x 1024 (diffuse + alpha) 32 bit
o   4 x 1024 x 1024 (specular + gloss) 32 bit
o   4 x 1024 x 1024 (normal) 24 bit

  • ·        Prop or scenery objects

o   Most of the props will be foliage and other plant life; so trees, shrubs, grasses, bushes, rocks, dirt, etc. There will also be the ruined castle which where possible will be modular, with more unique assets like statues and gargoyles.

o   All props minor props should be under 1000 tris and hero assets can go up to 5000 tris
o   Should all include 3 LOD’s
o   Each minor asset can have;
o   1 x 512 x 512 (diffuse + alpha) 32 bit
o   1 x 512 x 512 (specular + gloss) 32 bit
o   1 x 512 x 512 (normal) 24 bit

o   Each hero asset can have;
o   1 x 1024 x 1024 (diffuse + alpha) 32 bit
o   1 x 1024 x 1024 (specular + gloss) 32 bit
o   1 x 1024 x 1024 (normal) 24 bit

My personal aims for this project will be to develop my organisational skills, my understanding of UDK, my understanding of budgets, my understanding of artistic direction, creating a set of assets that harmonise to create a visually pleasing level, to practice using lighting well and also to help me understand good level design, so that the environment is easily traversed with a clear goal, while also encouraging exploration.