All Projects → Moguri → pman

Moguri / pman

Licence: MIT License
A Python package to help bootstrap and manage Panda3D applications

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to pman

Panda3d
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU
Stars: ✭ 3,035 (+20133.33%)
Mutual labels:  gamedev, panda3d, panda3d-game-engine
UnityDebug
A wrapper script for Unity debug calls to use conditional attributes in order to avoid debug code being compiled into release builds.
Stars: ✭ 29 (+93.33%)
Mutual labels:  gamedev, gamedev-tool
panda3d-docs
Sphinx documentation for Panda3D
Stars: ✭ 37 (+146.67%)
Mutual labels:  panda3d, panda3d-game-engine
3d Game Shaders For Beginners
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
Stars: ✭ 11,698 (+77886.67%)
Mutual labels:  gamedev, panda3d
OpenLevelEditor
An open sourced modernized version of Disney's in-house Toontown Online level editor used to create .dna files.
Stars: ✭ 45 (+200%)
Mutual labels:  panda3d, panda3d-game-engine
gamedevguide
Game Development & Unreal Engine Programming Guide
Stars: ✭ 314 (+1993.33%)
Mutual labels:  gamedev
godot-polygon2d-fracture
A simple script for fracturing polygons. Also adds nice helper functions for polygons like calculateArea, triangulate, getRandomPointsInPolygon, getBoundingRect)
Stars: ✭ 148 (+886.67%)
Mutual labels:  gamedev-tool
ProceduralTerrain
Polygon is a procedural mesh generator in Unity.
Stars: ✭ 18 (+20%)
Mutual labels:  gamedev
com.unity.multiplayer.samples.coop
A small-scale cooperative game sample built on the new, Unity networking framework to teach developers about creating a similar multiplayer game.
Stars: ✭ 794 (+5193.33%)
Mutual labels:  gamedev
emerald
A 2D rust game engine focused on portability.
Stars: ✭ 383 (+2453.33%)
Mutual labels:  gamedev
Crystalshire
Legacy VB6 open-source ORPG
Stars: ✭ 24 (+60%)
Mutual labels:  gamedev
Zenject-2019
Dependency Injection Framework for Unity3D
Stars: ✭ 2,567 (+17013.33%)
Mutual labels:  gamedev
textureatlas
A simple, cross-platform Python-based tool and C library for creating and using a texture atlas in your application or game. Distributed under the terms of the MIT license.
Stars: ✭ 20 (+33.33%)
Mutual labels:  gamedev
hlml
vectorized high-level math library
Stars: ✭ 42 (+180%)
Mutual labels:  gamedev
alpha
alpha - deprecated 2015~2016. unrelated to the new engine! view the new engine here - https://luxeengine.com/
Stars: ✭ 573 (+3720%)
Mutual labels:  gamedev
ResourceCollection
A collection of handy resources, as recommended by Pharap
Stars: ✭ 18 (+20%)
Mutual labels:  gamedev
polymorph
A fast and frugal entity-component-system library with a focus on code generation and compile time optimisation.
Stars: ✭ 74 (+393.33%)
Mutual labels:  gamedev
codingame
My solutions for https://www.codingame.com
Stars: ✭ 26 (+73.33%)
Mutual labels:  gamedev
SSVBloodshed
C++14 arcade game, spiritual successor to "Operation Carnage"
Stars: ✭ 22 (+46.67%)
Mutual labels:  gamedev
Vortex2D
Real-time fluid simulation engine running on GPU with Vulkan
Stars: ✭ 91 (+506.67%)
Mutual labels:  gamedev

Build Status Panda3D Versions

Panda3D Manager

pman is a Python package to help bootstrap and manage Panda3D applications.

Features

  • Project quick-start
  • Automatic asset conversion
  • Automatically adds export directory to the model path
  • Convenient CLI for running and testing applications

Installation

Use pip to install the panda3d-pman package:

pip install panda3d-pman

Usage

Quick start a project with pman create. If you already have a directory for your project:

cd my_awesome_project
pman create .

pman can also create the directory for you:

pman create my_awesome_project

In addition to the create command, pman has the following commands:

  • update - re-run project creation logic on the project directory
  • help - display usage information
  • build - convert all files in the assets directory and place them in the export directory
  • run - run the application by calling python with the main file
  • test - run tests (shortcut for python setup.py test)
  • dist - create distributable forms of Panda3D applications (requires Panda3D 1.10+)
  • clean - remove built files

Configuration

Primary configuration for pman is located in a .pman file located at the project root. This configuration uses TOML for markup. The .pman configuration file is project-wide and should be checked in under version control.

Another, per-user configuration file also exists at the project root as .pman.user. This configuration file stores user settings and should not be checked into version control.

Settings in .pman.user take precedence over settings in .pman. Settings defined in neither .pman nor .pman.user will use default values as defined below.

General Options

Section name: general

option default description
name "Game" The project name. For now this is only used for naming the built application in the default setup.py.

Build Options

Section name: build

option default description
asset_dir "assets/" The directory to look for assets to convert.
export_dir ".built_assets/" The directory to store built assets.
ignore_patterns [] A case-insensitive list of patterns. Files matching any of these patterns will not be ignored during the build step. Pattern matching is done using the fnmatch module
converters ["native2bam"] A list of hooks to perform conversions. Any files not associated with a converter will simply be copied (assuming they do not match an item in ignore_patterns).

Run Options

Section name: run

option default description
main_file "main.py" The entry-point to the application.
extra_args "" A string of extra arugments that are append to the invocation of main_file.
auto_build true If true, automatically run builds as part of running the application (via pman.shim.init). This is disabled in deployed applications.

Hooks

To extend functionality, pman has supports for "hooks." There are currently hooks available for conversion (converters) and project creation (creation extras). These hooks are specified in config via Setuptools entry points. Hooks that ship with pman and their configuration options are described below.

Converters

native2bam

Entry point: native2bam Support file formats: egg, egg.pz, obj (and mtl), fbx, dae, ply

Loads the file into Panda and saves the result out to BAM. This relies on Panda's builtin file loading capabilities.

Options

None

blend2bam

Entry point: blend2bam Supported file formats: blend

Converts Blender files to BAM files via blend2bam.

Options

Section name: blend2bam

option default description
material_mode "legacy" Specify whether to use the default Panda materials ("legacy") or Panda's new PBR material attributes ("pbr"). This is only used by the "gltf" pipeline; the "egg" always uses "legacy".
physics_engine "builtin" The physics engine that collision solids should be built for. To export for Panda's builtin collision system, use "builtin." For Bullet, use "bullet." This is only used by the "gltf" pipeline; the "egg" pipeline always uses "builtin."
pipeline "gltf" The backend that blend2bam uses to convert blend files. Go here for more information.

Running Tests

First install the project in editable mode along with test extras:

pip install -e .[test]

Then run the test suite with pytest:

pytest

Building Wheels

Install build:

pip install --upgrade build

and run:

python -m build

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].