My First Unreal Engine Prototype
This project marks my first interaction with Unreal Engine, developed as part of my coursework for the Unreal Engine course at Wargaming, where I was concurrently working on the World of Warplanes project. The course was instructed by Dmitry Kostyukevich, an exceptional teacher, mentor, and colleague.
Sources of Inspiration
In creating this project, I drew inspiration from games such as Serious Sam, Quake, and Gunfire Reborn. My goal was to design a project that was complex, dynamic, and varied, allowing each player to complete it in their own style while ensuring that each attempt offered a unique experience.
User Interface (UI)
Developing the UI elements presented significant challenges. For instance, while creating the HP Bar, I encountered an issue with its visibility through walls. I resolved this by implementing a trace from the camera to the enemy, causing the HP Bar to disappear if an obstacle was detected. Although this solution may not be optimal, it suffices me for this project. Additionally, I made the weapon ui widget that shows the current and the previously held weapon, to quickly switch between them, current ammo, menu, and settings.
Animation
I familiarized myself with the animation retargeting system in Unreal Engine 4 and later in its 5th version. The weapon assets included character animations, which posed no issues until I introduced a pistol. Lacking specific animations for the pistol, I adapted existing animations to suit it. While Unreal Engine 5’s Rig system facilitated this process, Unreal Engine 4 lacked such capabilities. Furthermore, upon adding a sniper rifle, I noticed the sight appeared unnaturally matte and lacked glare. To address this, I delved into material creation, developing a material that displayed the view from a camera attached in front of the sight which creates a realistic effect. This exploration into materials also led me to create varied impact effects for different surfaces using physical materials, which yielded impressive results.
Level Creation
My objective was to dynamically load levels in varying orders to ensure a seamless and varied gameplay experience. Given the project’s time constraints, I implemented an invisible anchor at each level’s origin point, set to zero world coordinates, to facilitate level transitions. However, this approach initially resulted in a linear corridor-like progression. To overcome this, I introduced elevators, allowing for independent level positioning and flexible exit placements. To enhance gameplay, I designed levels requiring players to explore different areas to unlock doors, avoiding a straightforward from point A to point B progression. Additionally, I incorporated arena-type levels where doors open upon defeating the last enemy. The game features a difficulty system that adjusts the number of levels and enemies in the arenas.
AI System
Understanding the BehaviourTree and AI system, I was impressed by the extensive functionality available out of the box. Mastering this topic was straightforward. Initially, all enemies followed the same logic: they moved along a predefined route using target points and, upon the player approaching a certain distance, would run towards and attack. For arena levels, I implemented a different behavior where enemies would immediately target and attack the player upon spawning. This required a deeper understanding of the system and led to improvements in the patrollers’ logic: instead of following a set route, each enemy now has a patrol zone, resulting in more unpredictable NPC movement.
Vitality Component
One of the highlights of the project is the vitality component, which manages health processing with numerous flexible settings. For instance, it differentiates between body and head hits, allows toggling regeneration on or off, and lets you set the percentage of health regeneration per tick, the tick length, and the percentage of maximum health to regenerate. It also handles various types of damage, which can be created and added easily. For example, a turret takes minimal damage from firearms but significant damage from explosions.
Future of the Project
At this stage, the project lacks some planned mechanics, such as:
- Weapon Selection System: Allows the player to choose one primary and one secondary weapon.
- Experience System: Awards experience points for each kill, with a combo system that increases the experience multiplier for consecutive kills without taking damage.
- Skill System: Each weapon has its own set of skills that can be upgraded as the weapon levels up.
Conclusion
The overall feedback from testers is the project feels dificult, although I personally consider it to be hyper-casual. Nonetheless, I am pleased with the outcome. The project is dynamic, and the weapon impact is well-executed. I have identified areas for improvement, including optimization, level design, enhancing the variety of objectives within levels, expanding my knowledge of sound design, refining the player tutorial segment, making points of interest more noticeable, and improving overall balance.
I thoroughly enjoyed working on this project. Throughout its development, I utilized and learned numerous new systems and capabilities of Unreal Engine. This experience has reinforced my goal of using this engine to develop large-scale projects and advance my professional skills.
Leave a comment
Log in with itch.io to leave a comment.