Metadata-Version: 2.4
Name: nateng3d
Version: 1.2.8
Summary: A Python 3D engine inspired by Source Engine with SDK and editor
Author-email: Natsuki <mvd_general_RF@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/Natsuki/nateng3d
Project-URL: Bug Reports, https://github.com/Natsuki/nateng3d/issues
Project-URL: Source, https://github.com/Natsuki/nateng3d
Keywords: 3d,game-engine,graphics,tkinter
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.21.0
Provides-Extra: dev
Requires-Dist: pytest>=6.0; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Dynamic: license-file

# NatEng3D - 3D Game Engine

A Python-based 3D engine inspired by Source Engine, featuring a complete SDK with level editor.

## Installation

```bash
pip install nateng3d

Quick Start
python

from nateng3d import NatEng3D, Vector3
from nateng3d.engine.core import PrimitiveGenerator

# Create engine instance
engine = NatEng3D("My Game", 1280, 720)

# Create a cube
vertices, indices = PrimitiveGenerator.create_cube()
mesh = engine.load_mesh("my_cube", vertices, indices)

entity = engine.create_entity("Cube")
entity['mesh'] = mesh
entity['position'] = Vector3(0, 0, 0)

# Run the engine
engine.run()

Features

    Pure Python - Built with tkinter and numpy

    3D Rendering - Perspective projection, camera, meshes

    Entity-Component System - Modular architecture

    SDK with Editor - Hammer-like level editor

    Primitive Generation - Cubes, spheres, planes

SDK Tools

Run the level editor:
python

from nateng3d.sdk import HammerEditor

editor = HammerEditor()
editor.run()

Controls

    WASD - Camera movement

    Arrow Keys - Camera rotation

    F1 - Toggle wireframe mode

    F2 - Toggle debug info

Examples

Check the examples/ directory for more usage examples.
