Featherweight 3D / 2D Ascii console game engine for Python 2.7+ with no external dependencies and in pure Python.
Project description
Asciin.py
A 2D and 3D Ascii game engine written for performance (still under development).
ReadTheDocs | PyPi Project | Github Repo | Dev server
Status Demo
- Matrixes Patterns
An example in working with PixelPainters.
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
-
Instantiate a
Asciinpy.Window
class with the desired values. -
Define your game loop and decorate it with the
Asciinpy.Window.loop
decorator that should accept one parameter of typeDisplayable
. -
Write some fancy code with or without built-in models to render.
-
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 theLine
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 whyutils
andamath
aren't categorized into dimensions. - 2D specific models are now subclassed under
Plane
which is a renamed class of version 0.1.4Model
~ while the 3D base model class is namedModel
.
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
File details
Details for the file Asciin.py-0.1.7.tar.gz
.
File metadata
- Download URL: Asciin.py-0.1.7.tar.gz
- Upload date:
- Size: 19.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbced2478a25e919592b8267b77680940254d5afd9f28013af960192805a2c68 |
|
MD5 | d75b4d113aec0a5e8fa08202766b367b |
|
BLAKE2b-256 | 3c9b71432737d92df4b724e7cd8955cb4b5fb716a4ef52514cd174b22cc96179 |