Skip to content

πŸ‘Ύ An effort to make Panda3D more robust and user friendly for artists and game developers.

License

Notifications You must be signed in to change notification settings

CodeCreatePlay/PandaEditor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

72 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PandaEditor is an open-source 3D level and scene editor designed for games, simulations and scientific projects. It is powered by Panda3D game engine and offers support for scripting in both Python and C++.

TableOfContents

  1. Prerequisites and Configuration
  2. HelloWorld Tutorial

Prerequisites and Configuration

Prerequisites

  • Git
  • Panda3D SDK
  • C++ Compiler
    • Windows: Microsoft Visual Studio (with MSVC) -OR- MSVC Build Tools
    • Linux or macOS: GCC or Clang
  • CMake (Version 3.14 or higher)
  • ImGUI

Note: All dependencies except for Panda3D and C++ compilers (which you can download from the links above) are downloaded at runtime by the build scripts if they are not found in the system path.

Install

  • Make sure you have Panda3D installed and a C++ compiler based on your OS.
  • Download the repository as a ZIP file and extract it to a location of your choice on your system.
  • On Windows, right click buildMSW.ps1 and select Run With PowerShell. On Linux and macOS, simply run the build.sh script. Build scripts should download and extract all necessary dependencies.

HelloWorld tutorial

PandaEditor uses a project-based workflow managed by its build system, simple run the build script based on your OS and it should handle most of the setup and initialization. For now, everything is managed through command-line interface.

Creating a new project

  1. Start the build.sh or buildMSW.ps1 script.
  2. When prompted, enter the project name or index number.
  3. If the specified project does not exist, you will have the option to create it or choose another.

The system will then search for the project in two directories:

  • game β†’ Stores user-created projects.
  • demos β†’ Contains built-in demo projects.

Each folder inside game or demos represents a separate project, and source files from only the selected project are included in the build.

Project structure

Here is an example of how the project strcuture should look like.

src/
β”œβ”€β”€ game/                     # Main directory for user-defined projects
β”‚   β”œβ”€β”€ UserProject           # Example user project
β”‚   β”œβ”€β”€ AnotherProject        # Another example user project
β”‚   └── YetAnotherProject     # Additional example user project
β”‚
β”œβ”€β”€ demos/                    # Directory for demo projects
β”‚   └── roaming-ralph         # Demo project: Roaming Ralph
β”‚
β”œβ”€β”€ builds/                   # Directory for build output
β”‚   β”œβ”€β”€ UserProject           # Build output for UserProject
β”‚   β”œβ”€β”€ AnotherProject        # Build output for AnotherProject
β”‚   β”œβ”€β”€ YetAnotherProject     # Build output for YetAnotherProject
β”‚   └── roaming-ralph         # Build output for Roaming Ralph demo

Getting started

To get started take a look at the code generated when a new project is created, basically, all you need to do is get an instance of Demon class (which would set up and initialize the Panda3D game engine and editor environment) and call its start method. For further details and usage example refer to the included demo projects.

Common Issues

  • Unsupported Compiler
    • Ensure you're using a supported compiler MSVC on Windows.
    • GCC or Clang otherwise.
  • Panda3D installiation not found
    • Ensure that cmake.config exists (it should be automatically generated by the build system) and that PANDA3D_ROOT is correctly set to the root directory of your Panda3D installation. See the example below.

       # Path to the root installation of Panda3D
       set(PANDA3D_ROOT "C:/Panda3D-1.10.15-x64" CACHE STRING "Path to the Panda3D installation")
       
       # Include and library directories
       set(PANDA3D_INCLUDE_DIR "${PANDA3D_ROOT}/include")
       set(PANDA3D_LIBRARY_DIR "${PANDA3D_ROOT}/lib")
      

About

πŸ‘Ύ An effort to make Panda3D more robust and user friendly for artists and game developers.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published