- Modified from games104's piccolo engine
- Add colorgrading post-processing code to achieve the screen color conversion
- Add the FSM state machine method for character animation, able to change the motor movement state through the input and then switch the movement state through the state, the state includes: standing, walking, running mixed state, three jumping state
- Add a blend-state animation mixing method that interpolates between several animations, e.g., idle, walk, run
- Add an automatic way to go up and down stairs to the character's controllor, automatically going up and down stairs within a certain height, going up beyond that height will get stuck, and going down will become a jump
- Add a way for character controllers to slide against a wall to be able to move along a component parallel to the wall in the direction of movement without getting stuck while attached to the wall.
- Modify the lua component to add the Attack component as another component of the character, the component includes two fields: blood and attack power. Set the character's attributes via json reflection, or you can modify them in the editor. In addition, by modifying the input component to read the user input and pass it to the Attack component, you can realize that the blood field will be increased and decreased when you press E,R respectively.
Piccolo Engine is a tiny game engine used for the GAMES104 course.
Build Type | Status |
---|---|
Build Windows | |
Build Linux | |
Build macOS |
To build Piccolo, you must first install the following tools.
- Visual Studio 2019 (or more recent)
- CMake 3.19 (or more recent)
- Git 2.1 (or more recent)
- Xcode 12.3 (or more recent)
- CMake 3.19 (or more recent)
- Git 2.1 (or more recent)
- apt install the following packages
sudo apt install libxrandr-dev
sudo apt install libxrender-dev
sudo apt install libxinerama-dev
sudo apt install libxcursor-dev
sudo apt install libxi-dev
sudo apt install libglvnd-dev
sudo apt install libvulkan-dev
sudo apt install cmake
sudo apt install clang
sudo apt install libc++-dev
sudo apt install libglew-dev
sudo apt install libglfw3-dev
sudo apt install vulkan-validationlayers
sudo apt install mesa-vulkan-drivers
- NVIDIA driver (The AMD and Intel driver is open-source, and thus is installed automatically by mesa-vulkan-drivers)
You may execute the build_windows.bat. This batch file will generate the projects, and build the Release config of Piccolo Engine automatically. After successful build, you can find the PiccoloEditor.exe at the bin directory.
Or you can use the following command to generate the Visual Studio project firstly, then open the solution in the build directory and build it manually.
cmake -S . -B build
The following build instructions only tested on specific hardware of x86_64, and do not support M1 chips. For M1 compatible, we will release later.
To compile Piccolo, you must have the most recent version of Xcode installed. Then run 'cmake' from the project's root directory, to generate a project of Xcode.
cmake -S . -B build -G "Xcode"
and you can build the project with
cmake --build build --config Release
Or you can execute the build_macos.sh to build the binaries.
You can execute the build_linux.sh to build the binaries.
For documentation, please refer to the Wiki section.
We have noticed some developers on Windows encounted PiccoloEditor.exe could run normally but reported an exception Vulkan Validation Layer: Validation Error when debugging. You can solve this problem by installing Vulkan SDK (official newest version will do).
You can build compile_commands.json
with the following commands when Unix Makefiles
generaters are avaliable. compile_commands.json
is the file
required by clangd
language server, which is a backend for cpp lsp-mode in Emacs.
For Windows:
cmake -DCMAKE_TRY_COMPILE_TARGET_TYPE="STATIC_LIBRARY" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -S . -B compile_db_temp -G "Unix Makefiles"
copy compile_db_temp\compile_commands.json .
Currently Physics Debug Renderer is only available on Windows. You can use the following command to generate the solution with the debugger project.
cmake -S . -B build -DENABLE_PHYSICS_DEBUG_RENDERER=ON
Note:
- Please clean the build directory before regenerating the solution. We've encountered building problems in regenerating directly with previous CMakeCache.
- Physics Debug Renderer will run when you start PiccoloEditor. We've synced the camera position between both scenes. But the initial camera mode in Physics Debug Renderer is wrong. Scrolling down the mouse wheel once will change the camera of Physics Debug Renderer to the correct mode.