Sphere and Now - A C++ / Unreal Engine Project

About

Sphere and Now was created to help me understand C++ and the Unreal Engine. A majority of this project was programmed in C++ from scratch.

In this game demo you roll a sphere on a course while picking up other spheres along the way. The goal is to get as many spheres as possible to the end.

I designed and developed this entire project.

Important Points

  • Majority of the project is in C++ code that I wrote
  • Made in the Unreal Engine
  • Physics are used such as sphere rolling and a section with wind that pushes objects.
  • Different materials and foliage are used in the terrain to help me learn more about the engine

Details

Programming Structure

This project was mainly created with C++, however I did not neglect using Unreal Engine’s Blueprint system and have learned how to use it. I wanted to really learn the engine so I used different aspects and tools found throughout the editor. The code involves physics interactions and communication between the Actors such as other spheres following.

Overall, this helped solidify my understanding of Unreal Engine and C++.

Design and The Reasoning Behind

The map has a number of cosmetic choices. This so I can learn about Unreal’s artistic aspects.

I learned about the material system and the particle system in Unreal along with post processing, bloom, foliage, light emission, skyboxes, and more.

Biggest Challenges

The biggest challenge was learning C++ and Unreal Engine. I transitioned from C# and Unity but was able to understand fast. Unreal Engine structures things differently than Unity, that includes how C++ works, but I was able to adapt quickly and produce this project from scratch.

The structure of Unreal Engine also challenged me. One example is Unity uses Gameobjects with components and scripts attached to them, while Unreal uses a class (“script”) as the base which then attaches components to them. There are a number of other differences in structure that challenged me, but I was able to learn in the end.