Unreal Engine: a brief history
Published: 2023-10-16 01:59:52



![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qjumv1sxeubsh6k4nlba.gif)

- What is a gaming engine? 
Gaming engines can be described as a software platform that is a combination of features that can help in the design and deployment of video games. They have built-in tools and libraries that help designers streamline development of gaming software. Normal features are graphics rendering, scripting, sound, input/output handling and many more. 
https://en.wikipedia.org/wiki/Game_engine


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8zqottcz8jkc95vx3rdi.jpg)

## First gen Unreal
Initially development by Tim Sweeney, who went on to found Epic Games, it was released with Unreal video game in 1998. The game was groundbreaking at the time for its rapid, 3D first person shooter rendering, and would set a benchmark for the industry. Written in C++, this allowed most developers to be able to pick up the engine quickly. The advancement from 8-bit to 16-bit color added striking feature changes that few other engines were capable of producing. Another key feature Sweeney designed was a level editor that allowed developers to make changes to their layout in real time.  

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tfgjw69x4mmyn2sk3jg6.jpg)

## Unreal Engine 2
First released in 2002 along with the game America's Army, a recruitment tool for the US Army, this would be the first time we saw a console use Unreal in a live environment with Xbox live and Unreal Championship. Epic would continue to advance their graphics rendering with the addition of cinematic editing tools and features such as vehicles. 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kp0y4k9lo3vvieyh2bgy.jpg)

## Unreal Engine 3
The third generation of Unreal was a huge jump for all of gaming design. First released in 2006 with Gears of War on the Xbox 360, UE 3 added a fully programmable shader functionality. This would allow all lighting/shadow rendering to be done pixel by pixel instead of by vertex. This was also one of the first times developers were able to be fully cross platforms and eventually with mobile logic a few years later. With the additional graphic capabilities, designers were able to adapt to not only FPS games but include RPG's such as Mass Effect. 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3d9abih15t5v5abns5s3.jpg)

## Unreal Engine 4
Officially released in 2014 with the game Daylight, UE 4 was the first time the game design universe really opened up for everyone. With this release came the implementation of the Blueprint Visual Scripting system which is a scripting system that allows developers to create games through a visual node-based interface (https://docs.unrealengine.com/4.27/en-US/ProgrammingAndScripting/Blueprints/GettingStarted/). This would allow non or junior programmers to be able to work on game and design projects. This would also be one of the first times a gaming engine would embrace VR and AR components. 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cp74ftmf8rsea9elsqi8.jpg)

## Unreal Engine 5
UE 5 was formally released for developers on April 5, 2022 and has continued to change the game for development and digital rendering. One of the most impressive features added was the Nanite engine, which allows users to import high quality photorealistic images to be easily added to games. Nanite uses virtualized geometry to stream only the necessary amount of detail in a real time environment. UE 5 is on par to become an integral part of not only game design but film and tv as well. 

## Setting up a FPS project
After you've downloaded UE 5, navigate to the create button to start a new project environment. Select the C++ project type and find the template_default selection through the engine folder. Select it as your basic level editor and save your first map as an FPS map. 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o959hmynmrsnuxi9eweh.jpg)
Now that we've created the basic level code, we can open with Visual Studio in order to edit our C++ file. Within tools, find the Open Visual Studio (different from VS code) selection and launch the code with VS. Now that our code is viewable we should be able to see some basic C++ already built in through the template. To add some code of our own, we can create a display Hello World message with our FPSProjectGameModeBase.cpp and FPSProjectGameModeBase.h files. 

The FPSProjectGameModeBase.cpp should look like this where we've created a StartPlay function that will run our message: 

```
// Copyright Epic Games, Inc. All Rights Reserved.

#include "FPSProjectGameModeBase.h"

void AFPSProjectGameModeBase::StartPlay()
{
    Super::StartPlay();

    check(GEngine != nullptr);

    // Display a debug message for five seconds. 
    // The -1 "Key" value argument prevents the message from being updated or refreshed.
    GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Yellow, TEXT("Hello World, this is FPSGameModeBase!"));
}
```


and your FPSProjectGameModeBase.h should look like this where we need to override startplay so it displays the message at the beginning: 



```
// Copyright Epic Games, Inc. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "FPSProjectGameModeBase.generated.h"

/**
 * 
 */
UCLASS()
class FPSPROJECT_API AFPSProjectGameModeBase : public AGameModeBase
{
    GENERATED_BODY()
 virtual void StartPlay() override;
};
```

Now we can head back to UE 5 and compile the code we just wrote. Once we've done that, we can our C++ code to the built in Blueprints by creating a blueprint class.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gk7862utnrnk4phop81i.jpg)

We can then set up our blueprint class as the default game mode and select the green play button at the top of the tool bar to see our message! 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6xuqqols1cqwxi7ssj4g.jpg)


In conclusion, whether you're an experience developer or a complete Newb, the Unreal Engine has continued to raise the bar in game design. Each release has pushed the boundaries on what is possible. With the addition of Nanite and Lumen, the engine will break out of the gaming environment and change the film industry as well. 

Sources: 
https://en.wikipedia.org/wiki/Unreal_Engine
https://docs.unrealengine.com/5.0/en-US/setting-up-your-project-in-unreal-engine/