A Unity-like 3D engine in Python using pygame
Project description
GamEngine3D is a Python 3D engine for creating interactive 3D scenes. This README focuses on basic usage.
Quick Start
from gamengine3d import *
# 1. Initialize the engine
engine = Engine(1200, 800, background_color=Color.light_blue)
# 2. Create objects
floor = Cuboid(size=vector3d(5, 0.1, 5), color=Color.light_grey, name="Floor")
player = Cuboid(name="Player", color=Color.light_red, size=vector3d(0.2), pos=vector3d(0, 1))
# 3. Add objects to the engine
engine.add_object(floor)
engine.add_object(player)
# 4. Attach behavior to objects
player.attach("player_controller.py", engine.context)
# 5. Run the engine
engine.run(dynamic_view=True)
Notes
Engine: Manages rendering, lights, and the main loop.
Objects: Add cubes, spheres, or custom shapes with Cuboid(), Sphere(), etc.
Attach Scripts: Use .attach("script.py", context) to add movement, input, or custom logic.
Run: engine.run() starts the simulation; dynamic_view=True enables interactive camera movement.
Example: player_controller.py
from gamengine3d import *
import math
class PlayerController:
def __init__(self, obj, context):
self.obj = obj
self.context = context
self.speed = 1
self.context.on_key_held("up", callback=self.move_forward, dt=True)
def update(self, dt):
pass # called every frame
def move_forward(self, dt):
# simple forward movement
yaw = math.radians(self.obj.rotation.z)
forward = vector3d(-math.sin(yaw), 0, math.cos(yaw))
self.obj.pos += forward * self.speed * dt
This minimal PlayerController shows how to attach a script to an object and respond to input.
The 2d version of gamengine3d is out under gamengine2d
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gamengine3d-1.5.0.tar.gz.
File metadata
- Download URL: gamengine3d-1.5.0.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9ea1a6807833e5578838a3b4edd128959a2e0a3ca8ad5e6316bd919473caba5
|
|
| MD5 |
3e8f6736045a6ffbc8f56fc8dcfeb797
|
|
| BLAKE2b-256 |
67a888ebcfb82e940d883f79e595f3dd763bc5f7309ed53e583af91899ae8fe8
|
File details
Details for the file gamengine3d-1.5.0-py3-none-any.whl.
File metadata
- Download URL: gamengine3d-1.5.0-py3-none-any.whl
- Upload date:
- Size: 16.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d6ec42c7cdeefb3a09fbb1899525154606bf4efbd68f2b1ac97ed5c9ae82af6
|
|
| MD5 |
968d846ee5d00700ccdd60da0083bc63
|
|
| BLAKE2b-256 |
b8f0534b9567269ef4a910179210ca2386b7db8f937a76ef019d70887b6b41b8
|