Skip to main content

Featherweight 3D / 2D Ascii console game engine for Python 2.7+ with no external dependencies and in pure Python.

Project description

pipenv release platform documentation status

Asciin.py

logo

A 2D and 3D Ascii game engine written for performance (still under development).


ReadTheDocs | PyPi Project | Github Repo | Dev server


Status Demo

  1. Matrixes Patterns
    An example in working with PixelPainters.

demo

Credits to LuckyDevStuff for the examples ~

More examples here.

Installing

Python 2.7 or higher is required

// Windows
py -m pip install -U asciin.py

// Linux/macOS
python -m pip install -U asciin.py

Quick Start

  1. Instantiate a Asciinpy.Window class with the desired values.

  2. Define your game loop and decorate it with the Asciinpy.Window.loop decorator that should accept one parameter of type Displayable.

  3. Write some fancy code with or without built-in models to render.

  4. Call the Asciinpy.Window.run method!

from Asciinpy import Displayable, Window, Resolutions
from Asciinpy._2D import Square
# Define a window

window = Window(resolution=Resolutions._60c)

@window.loop()
def game_loop(screen): # type: (Displayable) -> None
   coordinate = (0, 0)
   length = 8
   texture = "%"
   Square = Square(coordinate, length, texture)
   while True:
      screen.blit(Square)
      screen.refresh()

window.run()

Contact me at Neo#1844 for inquiries.

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

The changelog only keeps track of updates post version 0.1.4

[0.1.6] - 2021-08-13

Notes

  • This is the last update until major release 0.2, which is expected to feature 3D elements at first hand and a more concrete structure definition, although there are possibilities of bug fixing releases before it.

Added

  • Concept and Classes on Line, made up of two sets of points
  • Concept and Classes on Triangle, only made possible on derivation of the Line class
  • Birth of amath module in the general scope
  • Concept and Classes on Matrix, the genesis of all 3D objects and concepts for the future ;) supports all operable actions with and on itself and other compatible types
  • An installable extension package which is a code interpolator that condenses any post version 0.1.4 distributions of the library into one singular .py file that can be shipped off readily. The condensed python contains version information, resolved relative dependencies, system dependencies and licenses as well ~ it will also support the submodule importing syntax e.g. from Asciinpy.twod import Plane; as it makes-up classes under the namespace of the sub packages with their contents defined.

Changed

  • Objects are now appropriately categorized onto their respective sub-packages (_2D and _3D)if said dimensions are an integral part of differientiating and using them ~ objects lower than 2D are put in the general scope, this is for example why utils and amath aren't categorized into dimensions.
  • 2D specific models are now subclassed under Plane which is a renamed class of version 0.1.4 Model ~ while the 3D base model class is named Model.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Asciin.py-0.1.6.tar.gz (19.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page