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.

No comments:

Post a Comment