ICT unreal, final project/presentation, unreal engine report--- pre--version

 

Introduction

Everyone of us has played video games whether it is an online multiplayer game with friends or an offline open world game featuring a story. But, who could have ever imagined that the simple, 2D, pixelated, and small games of the past would evolve into the ultra-realistic, stunning, relatable, and open world games we play today? This became a reality all thanks to professional game development engine called The Unreal Engine, developed by Tim Sweeny, the founder and CEO of EPIC Games. The Unreal Engine is the most useful, powerful, and professional game development engine which has provided us with the best games we play today such as Fortnite, PUBG, The Matrix Awakens and many more.

The Motives Behind Development

What was the driving force behind the creation of the unreal engine itself? Following are the main motives behind the development of unreal engine:

         Leveling-Up the Gaming Standards

         Providing latest image rendering technology to promote level of detailing in games

         Building and providing the best lighting technology to create a realistic environment

         Providing the most realistic physics implementation in games to promote realism

         Providing the best graphics, sound and detailed animation systems

         Enhancing multiplayer gaming experience by providing stability

All this set up a bar for gaming and made the gaming experience as realistic as possible

         Facilitating the Developers

         Providing built in assets and functionalities as everything had to be implemented from scratch through a rigorous process of writing the same functionality every time

         Making the development process as easy, fast and relevant as possible

3)   Optimization Along with Performance

         Increasing the level of detailing by maximizing the hardware capabilities of GPU

         Improving the gaming experience on low end platforms by providing effective resource management which is necessary for a smooth and optimized performance

4)   Cross Platform Development

         Providing a single platform to developers to target audience across all platforms ultimately to increase availability

         Increasing the reach of the gaming market ultimately to increase revenue

5)   Promoting Creativity

         Providing a development platform to everyone so as to develop the best and the most creative games, since many people have potential but lack the required resources

         Encouraging modding and independent development, to provide the ultimate room for creativity and drive innovation.

The Evolution of Unreal Engine

The evolution of unreal engine is just straight up ‘EPIC’ with each version having the latest technology of its time. 

Unreal Engine 1 (1998)

         Showcased in 1998 with Unreal FPS game

         Provided support for software rendering that is rendering of images using software

         Detailing with distance and better lighting effects were introduced

         Provided supported for Windows, Linux, Mac and Unix

         Started licensing with other developer companies to form a support network

Unreal Engine 2 (2002)

         Showcased in 2002 with the game America's Army

         Provided support for hardware rendering that is rendering of images using GPU

         100 times more detail with cinematic, particle and skeletal animation systems

         Supported PS2, XBOX and GameCube Consoles

         Further promoted licensing to allow easy modding ultimately promoting creativity

Unreal Engine (2006)

         Showcased in 2006 with the game Gears of war

         Supported Multi-threading (parallel processing to speed up responsiveness and performance) with DirectX 9 (set of software libraries acting as a bridge between application and hardware such as GPU) as API (Application Programming Interface)

         Graphics, Physics and sound systems were added and calculations per pixel were made to increase speed

         Initially supported Windows, PS3, XBOX360 while IOS and android were added later

         Development kit was introduced which allowed everyone to create games for free by providing basic toolset for personal use, aimed at discovering talent.

Unreal Engine 4 (2014)

         Showcased in 2014 with Fortnite

         Visual scripting was introduced which eliminated the need for writing traditional code

         Global Illumination (accurate simulation of behavior of light), Physically based rendering (simulating physical properties of materials) was introduced with the elimination of precomputed lighting (calculating lighting effects beforehand)

         Supported almost all platforms

         Unreal marketplace was introduced for selling assets and already built code snippets

It can be seen that during the development of each version, the motives were always under serious consideration.

 

Intro to Unreal Engine 4: 

Epic Games is the developer of Unreal Engine 4 (UE4). UE4 defeated its predecessors by quite a bit when it was introduced in 2014.

It is a well-known and powerful game engine that transformed the gaming industry. Enables developers to produce environments that are astonishingly realistic and appealing. (Deeper, more complex tasks.)

SALIENT ASPECTS:

1. An entirely new level of experience:

Improved vision clarity is one of its primary features. became the go-to choice for interactive media producers, game developers, and filmmakers worldwide. It creates a whole new experience by creating:

1. high-graphic games

2. new VR experiences

3. different cinematics 

4. Mixed reality experiences

2. Visual Scripting Blueprint:

It includes a robust blueprint system for graphical scripting. (UE4 offers two techniques: Blueprint Visual Scripting and C++). Blueprints consist of nodes to connect different elements of game. It basically acts like providing features of programming that are only known or available for developers to make logics and connect them. It connects different classes and functions related to objects to provide functioning. 

Augmented reality (AR) and virtual reality (VR):

Encourages the development of augmented reality (AR) and virtual reality (VR). Performance improvements combined with integrated VR and AR development support for a smooth, captivating experience. Integrated VR and AR use pins to connect various program components so that users can interact with them.

Moreover, it is being used in many industries to improve experience.

1. in gaming:

to provide real functioning to user for different components of a game.

2. in designing:

to provide a real-time view and performance of a particular product before official launch.

3. in learning:

to provide a realistic experience of a car or bus or a plane so that user can drive it virtually like in the real world and learn to drive a car or bike or an aero plane.   

Toolkit for Persona animation: 

Comprehensive tools for creating and modifying animation, like the Persona animation toolkit, which makes complex control rig setups and character animation possible. A wide range of tools and adaptable functionality. 

It allows user to create characters and to move them through different animations. Moreover, one can design the structure and skeletal system, poses, physical appearance, and meshes for characters.

Tool for World Composition:  

The World Composition tool is for streaming enormous landscapes and the Landscape system is for sculpting terrains and adds features for creating large, complex open worlds. 

Tiles can be created in the same world so that different team members can work simultaneously on different sections of world together.  There is tool through which different heights of particular sections of world can be changed easily especially in creating caves and mountains.

Landscape management system allow users to create and merge different terrains in a same world to showcase different visuals of land types in a single project.   

Access to C++ Source Code: 

Full access is being provided to the engine's source code, enabling substantial optimization and customization to satisfy project-specific needs. This is done so that whether a single person is working or a famous company is making a complex project can manage and optimize and change the settings and behavior of unreal engine according to their work or preferences.

Navigation system and AI: 

In the beginning, an efficient integrated navigation system was presented. Moreover, AI was later included in a major update as well. AI tools and navigation enabled complicated AI operations and realistic pathfinding.

AI integration can help in finding the shortest path or the playable area in a game and allows users to find the functioning of a character or an object through different paths and terrains.

Drawbacks of UE 4:

Using Unreal Engine4 to create a wide and realistic visual experience was quite challenging.

1.         Limitation in the creation of polygons:  Few million polygons could be handled by Unreal 4. It hindered the creation of increasingly sophisticated and expansive works by storytellers.

2.         Limitations on performance:  Large, open-world multiplayer games may have performance problems with UE4, requiring further developer optimization. Sometimes UE4's complexity is too much for smaller projects where simpler engines were more suitable for tasks.

3.         Issues with building a massive project:  UE 4 made it difficult to generate previously unachievable vast environments and cityscapes. Complex collision structures can sometimes produce unexpected behavior, especially when complex object interactions are involved. Shader code errors can cause visual defects and performance problems. 

4.         Artificial lighting:  Since UE4's lighting was entirely fake; you had to create a realistic appearance. In order to create a realistic image, it created complexity by maintaining each object's original textures and shadows. Moreover, creating so much light objects made the program size much larger and hence optimization decreased. 

5.         A challenge for novices:  Since sophisticated hardware is sometimes needed to run Unreal Engine 4 efficiently, some developers may find it challenging to get started. The engine might be challenging for inexperienced users to master due to its numerous features and complex technological aspects.

UNREAL ENGINE: IT’S CURRENT FEATURES,

SPECIFICATIONS AND USES

 

1_INTRODUCTION TO UNREAL ENGINE:

Unreal Engine is a 3d modeling and real time 3d creation tool with a complete suite of tools for programmers like game developers, cinematographers, virtual reality creators and engineers. It’s developer is epic games, and it has evolved as the most powerful 3d creation tool of all time.

( It is the world’s most successful game engine by Guinness World Records 2014).

2_FEATURES:

1.      High graphics quality

The main reason of success of unreal engine is the quality it provides, from most realistic 3d environments to 3d characters, the distribution of light, ray tracing, texture simulation, all combine to provide a real life experience to the user.

2.   Real time visuals

Programmers can see what they are building, during the process of construction. This helps them to reduce build errors and simplifies the process of world building and motion. Unlike unreal, programmers have to first code the whole 3d objects in other engines.

3.   blueprint

blueprint is a visual scripting for unreal engine (just like manually drawing something). It requires minimal code or no code at all, and is easy in respective to real time 3d development.

4.   Using unreal engine, both objects ( like persons, cars etc. ) and environments (like cities, villages, gaming open worlds ) can be built.

5.   Unreal engine uses textures, the type of surface. (like wood, metal, shine or rough surfaces), to give a realistic look to the objects. This is done by simulating how light rays will reflect from that particular surface. It is called reflection environment.

6.   Objects can be given motion visuals using rendering, in which the object is animated using techniques like keyframe animation (position of object), skeletal animation (walking or running), physics simulation(like chaos) and motion blur.

7.   Rendering is controlled and organized by pipelining. Pipelining is the flow of data. When an object is given motion, it is loaded in the memory using pipelining. It allows the smooth animation.

8.   Support for audio and post-processing effects (blurs, intensifying)

9.   Ray tracing (rendering technique to control the behavior of light)

SPECIAL FEATURES:

1.      Lumen:(global lighting system: unreal engine calculates how light will bounce from each and every surface, how much it will reflect and then where it will scatter to reach again the next surface to illuminate the completely natural way)

         Programmers don’t have to worry about the lighting mapping(open world games where direction of light can change, any environment to have changed light source direction, like a city with sun)

 

2.   Nanite:(very much like blueprint, just it has unlimited triangles(the very basic geometry) ; as the geometry is specified to only one shape, it reduces processing load and helps to give infinite details(billions of triangles) and also makes construction build faster

         Nanite is a way to make things easier using only one shape as basic block

3.   World partition :open world environment is divided into parts

4.   Frustum culling: the only things that come into the view of camera are loaded.

5.   Occlusion Culling: Only things that are illuminated by light are loaded, similarly if they are hidden by opaque objects, they are not loaded.

6.   Niagara : To visualize how particles interact with each other. Like molecule interactions in chemistry.

7.   Mass AI : For crowd placement and trafficking

8.   Chaos: to simulate the chaos, physics and physics of explosions. It tells the behaviour of explosions taking place in unreal engine environments.

 

SECONDARY BENEFITS:

1.      Cross platform : mobile, pc, virtual reality machines, consoles, AR(augmented reality)

2.      Supports 2d animation

3.      Supports 3d-creation and animation

4.      AI integration

5.      Market place and assets

6.      Web supported, used in web development (3js library)

7.      Support by community with complete guidance and documentation.

8.      Support for large teams and integrations (just like github allows to share code and workplace with other team members, unreal also allows developers to work collectively even if they are remote)

USES:

Unreal engine is used for these listed purposes:

1.      Game development

2.      Film tv cinematics

3.      Architectural virtualization (bridges and buildings)

4.      VR_ virtual reality, AR_ augmented reality: Windows mixed reality, Samsung VR technologies, Apple vision pro

5.      Automotive(tesla cars, especially aircraft to check their weight distribution and other things)

6.      Chemistry and Physics Researches : simulation, like 3d behaviour analysis how molecules will interact

EXAMPLES:

         Movie: Allahyaar and The Legend of Markhor

         Game: The Matrix Awakening, The Dune Awakening

         Building: Habitat 67: housing complex in real Canada, its construction was first checked using unreal engine (it used 4.5 billion triangles).

         Automotives: TESLA cars and other luxury cars. (like Audi , Ferrari, BMW)

Requirements:

These listed are the minimum resource requirements to run unreal engine for development and creation:

         Heavy requirements

         32 GB of RAM

         Good processor (2.5 GHz or faster)

         Good Graphics processor (at least DIRECTX 11)

         Memory: when a project is built, it takes a lot file size, smaller projects typically need 70 GB of storage if they do not have an environment

         Nanite and lumen take a lot of RAM.

Demand from programmers:

         Learning is difficult and time consuming

         Building is time consuming to give details to objects and environments

         Requires practice and skills to remove errors

Problems faced

1.      It needs heavy resources like graphics processing RAM memory and other things

2.      it is difficult to optimize

3.      Difficult to learn

4.      Crashing and Buggy experience (big projects can sometime crash unexpectedly.

5.      Blueprint errors: blueprint is visual scripting, but it sometimes does not act as expected.

6.      Third party interactions are not very good. Like when developers import assets like audio, or pre formed 3d assets from other developing sources (blender), unreal engine is difficult to organize and keep running that.

CONCLUSION:

Unreal engine is a powerful tool, but it is only suitable for large enterprises or teams that can invest time and can afford to form 3d creation in it.

Programmers require good skills and patience for creating something meaningful in unreal engine.

 

(Waqar ul Hasan)

Enlighten vs. Lumen: A Comparison of Real-Time
Global Illumination Systems

Lumen (Unreal Engine)

         Virtualized Global Illumination (VGI): Lumen uses VGI, a revolutionary technique that allows for fully dynamic global illumination. This means that lighting can adapt to changes in the scene, such as moving objects or dynamic lights, in real-time.  

         Real-time Updates: Lumen excels at real-time updates, even in large and complex scenes.

         Performance: Highly efficient, utilizing modern GPU hardware to achieve stunning visual effects.

         Flexibility: Offers greater flexibility and control over lighting setups, allowing for dynamic and interactive lighting scenarios.

 

Enlighten (Unity)

         Precomputed Radiance Transfer (PRT): Enlighten primarily relies on PRT, a technique that precomputes the way light bounces around a static scene. Precomputed lighting is called backed lighting or static lighting. This precomputation allows for real-time lighting updates, but it's limited to static geometry. 

         Real-time Updates: While Enlighten can handle dynamic lighting, it's less efficient than Lumen, especially when dealing with large and complex scenes.

         Performance: Can be demanding on hardware, especially for large-scale projects with complex lighting setups.

         Flexibility: Less flexible than Lumen, as it relies heavily on precomputed data.

 

 

Graphics and Visual Fidelity

Lumen (Unreal Engine)

         Advanced Rendering Capabilities: Unreal Engine provides advanced rendering capabilities, including realistic lighting, shadows, and reflections. Features like Nanite virtualized geometry and Lumen global illumination allow for incredibly detailed and realistic visuals

         Blueprints: Unreal Engine offers Blueprints, a powerful visual scripting system that allows developers to create game logic without writing code. This is particularly popular among designers and artists.

Enlighten (Unity)

         High-Definition Render Pipeline (HDRP): Unity's HDRP enables developers to achieve realistic visuals, making it a strong contender for high-fidelity graphics.

         Visual Scripting: Unity has introduced visual scripting tools (formerly known as Bolt) that aim to provide similar functionality to Unreal’s Blueprints, but it’s not as mature or integrated

 

Ease of Use:

            As far as the user experience is concerned, Unity 3D is much ahead of the Unreal engine. The interface of Unity 3D is quite easy to use as it is very convenient for the new developers to create games without any hassle. Although with the last update Unreal engine came up with many improvements in terms of user experience it is still behind Unity 3D.

 

Motion Capture (Film Industry)

            Motion capture, also known as mo-cap, is a technology that records the movement of objects or people. This captured movement data is then used to animate digital characters in 2D or 3D computer animation.

         Unreal's powerful real-time rendering capabilities allow you to visualize and refine the motion capture animations in real-time, making the workflow more efficient.

         Sequencer: Unreal's timeline-based animation editor, provides granular control over motion capture data, allowing you to blend, edit, and retarget animations seamlessly.

         Unreal integrates well with popular motion capture solutions like Xsens, Vicon, and OptiTrack, streamlining the workflow from capture to in-engine implementation

         While Unity has improved its real-time rendering capabilities, it may not be as powerful as Unreal Engine in this regard.

         Unity's animation tools are not as advanced as Unreal Engine's, especially for complex motion capture workflows

Learning curve

         Apart from the ease-of well but, it is difficult to use Unreal as a filmmaking environment. So many of the templates and terminology are designed for games (e.g. scenes being referred to as ‘levels’) that it can feel like you are trying to use the platform for something it wasn’t designed to do.

         Unity is more seamless in this regard, with more broadly applicable terms throughout the interface. Unity’s official learning paths for linear animation are easier to follow than the equivalents for Unreal. Unity also has excellent community content

Performance and Optimization:

         Unity: Generally, performs well but can struggle with large-scale projects and complex rendering techniques. Optimization techniques like profiling, asset bundling, and script optimization are crucial.

         Unreal Engine: Offers high performance and excellent optimization tools. Its powerful rendering engine and C++ programming language allow for fine-grained control over performance

 

In conclusion,

         Unreal Engine generally offers superior graphical capabilities and is considered the leader in high-fidelity visuals, particularly for complex 3D environments and projects prioritizing visual impact. It is the go-to choice for AAA games and high-budget productions. It excels in projects requiring photorealism and advanced visual effects.

         While Unity is more focused on scalability and accessibility and provides a more versatile approach with a good balance between graphics and performance, making projects suitable for a wider range of hardware. It’s a perfect fit for games that don’t require photorealism

 

Future Technologies:

                     Hardware requirements:

Unreal Engine 5, which is the latest defined version of the original Unreal Engine launched more than 2 decades ago. However, with the timely advancements the system demands tend to increase. For instance, the recently introduced Lumen and nanite technologies are very demanding both in the terms of CPU and the GPU. To be specific the system should comprise of at-least a quad-core CPU and a GPU with large number of CUDA cores with 8Gb of VRAM minimum. But in the near future through proper hardware and software optimizations that are being done day by day, more efficient rendering systems will be introduced which will allow this specific engine to work flawlessly on merely mid-spec systems.

                      Improved Ray-Tracing Performance:

Firstly, to give the introduction about Ray tracing. Ray tracing is basically defined as the technique through which different types of game engines produce highly realistic lights scenarios like shadows, glare, reflections etc. However, it is not quite stable due to the incompatibility of Graphics units, means that specifically unreal engine it doesn’t fully and proper utilize the RT cores of majority of the graphic cards in the market. Fortunately, developers are working to introduce different updates which ensure better ray tracing compatibility in the coming future.

                     Integration of AI:

Epic Games are collaborating and are planning to scale these collaborations with the AI giants in the near future. Basically, to improve the already integrated AI features in the unreal engine. Features like the Nvidia DLSS and Nvidia Reflex are being used in game engines. What these features do are that they predict and generate new frames by consuming little to no resources and also improving the graphic details by syncing with the resolution. Therefore, in the near future we can expect different AI features that will not only improve the actual game but also improve the overall gaming experience for an average user.

                     Decrease in Development Time:

Developing complex projects not just by using Unreal but any game engine can be very time consuming. This can be a serious concern because there is always a set deadline for a certain project and majority of the time developers fail to deliver their part on time. A very famous example is the “Grand Theft Auto VI” based upon Rockstar’s R.A.G.E (Rockstar Advanced Game Engine) is not ready still even its predecessor GTA V was released in 2013. As a result, companies like Epic and rockstar are collaborating with different companies like Open AI, Nvidia and more, just to research and implement different technologies to decrease the development time.

                     Memory Management Problems:

Different features like especially the Ray tracing can significantly increase the memory requirements as the number of 3D models or more specifically “Meshes” increase. More memory requirement decreases the performance. Thankfully, work is in progress therefore, in the future, advancements in effective memory management will allow better performance and reduce lag.

                     Increased Compatibility:

Major work is being by the developers so in the future we can shift different projects based upon different engines to basically create a new or refine an old project.

 

 

 

0 Comments