Skip to content
/ ARES Public

🔥Ultra-fast Python/Cython software engine using MLIR, SDL2, & CUDA. Supporting both 2D/3D rendering for cross-platform development.

License

Notifications You must be signed in to change notification settings

NaXzyu/ARES

Folders and files

NameName
Last commit message
Last commit date
Mar 28, 2025
Mar 25, 2025
Mar 18, 2025
Mar 28, 2025
Mar 18, 2025
Mar 18, 2025
Mar 26, 2025
Mar 24, 2025
Mar 28, 2025

Repository files navigation

Ares Engine

A cross-platform Vulkan game engine with Cython GPU acceleration.

Features

  • SDL2-based windowing and input system
  • Cython-accelerated math and physics operations
  • Vulkan rendering support
  • Modern Python (3.12+) codebase
  • Comprehensive configuration system
  • OS Independent builds & executables
  • Parallel CPU cores with multi-threading support
  • Built-in CUDA and AMD support
  • 🔥Ultra-fast incremental build system

Installation

Requirements

  • Python 3.12 or higher
  • C++ compiler (Visual Studio, GCC, Clang)
  • Ninja build system (optional, for parallel builds)

Install from GitHub (recommended)

To install directly from GitHub, run:

pip install git+https://github.com/naxzyu/ares-engine.git

You can also add it to your project's requirements.txt.

Building

You may also choose to build the engine from the orginal source code from scratch. This is a relatively easy process if you follow the steps below:

Using setup.py (recommended for development)

Clone the repository and run the setup utility:

git clone https://github.com/naxzyu/ares-engine.git
cd ares-engine

# Creates a virtual environment automatically.
python setup.py

# Build the engine
python setup.py --build

Usage

The follow code snippets are examples of how to use Ares Engine:

import ares

# Create a window
window = ares.Window("My Game", 1280, 720)
window.show()

# Create input handler
input_system = ares.Input()

# Main loop
while window.running:
    # Process window events
    if not window.process_events():
        break
    
    # Update input state
    input_system.update()
    
    # Your game logic here...
    
    # Close with Escape key
    if input_system.is_key_pressed(ares.sdl2.SDL_SCANCODE_ESCAPE):
        window.close()

# Clean up
window.close()

Configuration

The configuration for Ares Engine is very straight-forward and modular. The Engine configuration is stored in INI files:

  • engine.ini - Core engine settings
  • build.ini - Build and compilation settings
  • package.ini - Source code definitions

Settings are automatically loaded at startup, and can be accessed through the configuration API:

from ares.config import engine_config, build_config

# Get current display resolution
width, height = engine_config.get_resolution()

# Change fullscreen mode
engine_config.set_fullscreen(True)
engine_config.save()  # Save changes

# Get build version
version = build_config.get_version_string()

License

This dataset is licensed under the Apache 2.0 License

Citations

Please use the following BibTeX entry to cite this dataset:

@software{ares-engine,
  author = {Kara Rawson, Aimee Chrzanowski},
  title = {Ares Engine: A cross-platform Vulkan game engine with Cython GPU acceleration},
  year = {2025},
  howpublished = {\url{https://github.com/NaXzyu/ares-engine}},
  note = {Accessed: 2026-01-26}
}

Contact

For questions or support, please contact us at:

About

🔥Ultra-fast Python/Cython software engine using MLIR, SDL2, & CUDA. Supporting both 2D/3D rendering for cross-platform development.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published