This project is designed to learn the features of Unreal by replicating the Cropout Sample, a representative game sample of Unreal Engine 5, in CPP.
The goal of this project is to learn, so progress may be a bit slow.
(If I were developing AI with Behavior Trees, I would be learning BT in Unreal Engine from scratch).
I'm new to Unreal Engine, and as a result, there may be some weird functionality, structure, or grammar issues.
(These will be addressed as I gradually refactor).
If you find any errors or have any suggestions, please feel free to let me know.
- Unreal Version : 5.3.2
- IDE : Rider
Cropout is a sample top-down casual RTS game. It demonstrates how to build a project with cross-platform in mind, and also showcases some useful features built with Blueprints (all of which are developed with Blueprints).
It includes the following features
- General UI
- Enhanced Input
- Geometry Script
- Behavior Tree
- EQS
- Animation Mongate
- Sound
- Key and Curves - Timeline play
- Save-Load
- Blueprint Interfaces
- Mobile & PC Packing
- develop everything in the Cropout Sample into a CPP.
- Resources will inherit from the existing Sample.
- Do not refactor until all content/features are developed with CPP.
- Once the development is complete with CPP, we will test it for refactoring, performance profiling, and cross-platform CI/CD.
- If there are features that can be extracted as plugins during the above process, we will OpenSource them
- clone the develop branch of this repository to your local PC.
- open Cropout_Clone_Cpp/CropOut_Clone_Cpp.uproject through Unreal engine.
- Open Content Browser -> Conten/Level/InGame level and play.
Caution - Paths to all resources are hardcoded. Caution.
We are currently about 60% of the way through the task.
[ What has been worked on ]
- Geometry Script to generate terrain
- Spawning of all Entities
- Interaction using Enhanced Input
- Villager AI via Behavior Tree
- Attach & Dettach Objects based on Villager's behavior
- Sound Play
[ What to work on ]
- Adding UI System
- Developing Game Logic with UI
- Switching between Levels
- Setting win/loss conditions for the game
- Save/Load functionality
- Cross-Platform Testing
- Data flow refactoring for Interactable, Buildable, and Build UIs
cropout.cpp.sample.mp4
Translated with www.DeepL.com/Translator (free version)