GithubHelp home page GithubHelp logo

xiexinch / piccolo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from boomingtech/piccolo

0.0 0.0 0.0 150.66 MB

Piccolo (formerly Pilot) – mini game engine for games104

License: MIT License

Shell 0.15% C++ 93.82% C 0.40% CMake 1.42% GLSL 2.94% Batchfile 0.02% HLSL 0.63% Dockerfile 0.04% Mustache 0.57%

piccolo's Introduction

Piccolo Engine (formerly Pilot Engine)

Piccolo Engine logo

Piccolo Engine is a tiny game engine used for the GAMES104 course.

Continuous build status

Build Type Status
Build Windows Build Windows
Build Linux Build Linux
Build macOS Build macOS

Prerequisites

To build Piccolo, you must first install the following tools.

Windows 10/11

  • Visual Studio 2019 (or more recent)
  • CMake 3.19 (or more recent)
  • Git 2.1 (or more recent)

macOS >= 10.15 (x86_64)

  • Xcode 12.3 (or more recent)
  • CMake 3.19 (or more recent)
  • Git 2.1 (or more recent)

Ubuntu 20.04

  • 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)

Build Piccolo

Build on Windows

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

Build on macOS

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.

Build on Ubuntu 20.04

You can execute the build_linux.sh to build the binaries.

Documentation

For documentation, please refer to the Wiki section.

Extra

Vulkan Validation Layer: Validation Error

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).

Generate Compilation Database

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 .

Using Physics Debug Renderer

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:

  1. Please clean the build directory before regenerating the solution. We've encountered building problems in regenerating directly with previous CMakeCache.
  2. 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.

piccolo's People

Contributors

altair-alpha avatar ambiguoustexture avatar archibate avatar boomingtech-yuqiaozhang avatar boomingtechdev avatar boooooommmmmm avatar chaihahaha avatar chaphlagical avatar craftstarcn avatar hanetakachou avatar huandzh avatar hybcloud avatar hyv1001 avatar iaomw avatar jiangdunchun avatar killyice avatar kskun avatar kvm-explorer avatar kwbm avatar ljhg avatar luxiaodong avatar micro123 avatar ol6rin avatar olorinmedas avatar rocketman123456 avatar shenmian avatar snakeeye avatar sorvon avatar vitalyankh avatar wlbksy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.