Metadata-Version: 2.2
Name: KdnEngine
Version: 0.7
Summary: A simple game engine for 3D games
Home-page: https://github.com/KdntNinja/KdnEngine
Author: KdntNinja
Project-URL: Source, https://github.com/KdntNinja/KdnEngine
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
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
Classifier: Programming Language :: Python :: 3.13
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PyOpenGL
Requires-Dist: pybullet
Requires-Dist: pynput
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: project-url
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# 3D Engine Development in Python

## Overview
This project aims to create a 3D Doom-like game engine from the ground up using Python. The engine will support basic 3D rendering, physics, audio, input handling, and potentially its own scripting language.

## Steps

### 1. Define the Scope and Requirements
- **Game Type:** 3D Doom-like FPS
- **Target Platforms:** PC
- **Features:**
  - 3D rendering
  - Physics
  - Audio
  - Input handling
  - Basic AI
  - Level editor

### 2. Set Up the Development Environment
- **Programming Language:** Python
- **IDE:** PyCharm
- **Libraries and Tools:**
  - Pygame (for window management and input handling)
  - PyOpenGL (for 3D rendering)
  - PyBullet (for physics)
  - Pygame.mixer (for audio)

### 3. Core Components
- **Rendering Engine:**
  - Implement a basic rendering loop using PyOpenGL.
  - Load and render 3D assets.
  - Handle shaders and materials.
- **Physics Engine:**
  - Implement collision detection and response using PyBullet.
- **Audio Engine:**
  - Load and play sound effects and music using Pygame.mixer.
- **Input Handling:**
  - Capture and process user input (keyboard, mouse).
- **Scene Management:**
  - Implement a scene graph to manage game objects.
  - Handle object transformations and hierarchies.

### 4. Additional Features
- **Scripting:**
  - Integrate a simple scripting language (optional).
- **Networking:**
  - Implement basic networking for multiplayer support (optional).
- **UI System:**
  - Create a system for rendering and managing UI elements.
- **Animation System:**
  - Implement skeletal and sprite animations.

### 5. Tools and Editors
- Develop tools for asset import/export.
- Create a level editor for designing game levels.
- Implement debugging and profiling tools.

### 6. Testing and Optimization
- Test the engine with sample projects.
- Optimize performance (rendering, physics, memory usage).
- Fix bugs and improve stability.

### 7. Documentation and Support
- Write comprehensive documentation for engine features and usage.
- Provide support and updates for users.

## Directory Structure
```
docker/
├── Dockerfile
├── docker-compose.yml
doomlike_engine/
├── __init__.py
├── main.py
├── rendering.py
├── physics.py
├── audio.py
├── input.py
├── scene.py
├── ui.py
├── animation.py
├── scripting.py
assets/
├── models/
├── textures/
├── sounds/
├── levels/
tools/
├── level_editor.py
├─��� asset_importer.py
tests/
├── __init__.py
├── test_rendering.py
├── test_physics.py
├── test_audio.py
├── test_input.py
├── test_scene.py
├── test_ui.py
├── test_animation.py
├── test_scripting.py
.gitignore
README.md
requirements.txt
setup.py
```

## Notes
This is a simplified overview, and each step involves significant detail and effort. Start with a minimal viable product (MVP) and iteratively add features and improvements.
