Ever wanted to make a game just in python console, but it looked awful? Well: now you can do it with a beatiful Ascii look Pygameengine is a Python-based ASCII game engine designed for terminal-based games that require robust account, localization, and save management. It provides a modular system for user interaction, persistent data handling, and extensibility for building text-based games.
- Dynamic language selection at startup.
- Language packs for localization of UI strings.
- Persistent storage of user language preference.
- Supports creation and login of user accounts.
- PIN-based authentication with secure hashing.
- User account data stored as JSON files.
- Multiple saves per user, each with a custom name and unique ID.
- Save creation, selection, editing, renaming, deletion, and file path copying.
- Saves stored as individual JSON files for easy backup and transfer.
- Automatic slot management: always fills the lowest available ID.
- Modular UI using
boxgen.pregenfor rendering menus, prompts, and info boxes. - Supports colored UI elements and custom headings.
- Clear, structured prompts and error messages for better UX.
- Modular code with utility libraries (
tools,boxgen). - Designed for easy feature expansion and game logic integration.
- Placeholder for main game logic (
game.main()).
- Startup: User selects a language. The choice is saved and used for all interface messages.
- Authentication: Users create or enter a PIN to access their account. PINs are securely hashed.
- Save Management: Users can create, select, rename, or delete saves. Save files are managed automatically.
- Menus & Prompts: All user interaction is handled via modular, styled terminal boxes.
- On launch, select language from a menu.
- If new user, create an account with a PIN; if returning, enter PIN to login.
- Choose, create, or manage saves through a guided menu.
- Proceed to game logic (to be implemented by you).
| Engine / Feature | Python | Terminal UI | Modular Menus/Prompts | Account System | Multi-language Support | PIN Authentication | Save System | File-based Persistence | Extensible Architecture | Made for Text-Based Game |
|---|---|---|---|---|---|---|---|---|---|---|
| Pygameengine | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 🔷 | JSON | ✅ | ✅ |
| pygamii | ✅ | ✅ | ✅ | ❌ | 🟡 | ❌ | 🔹 | JSON | ✅ | ✅ |
| scrap_engine | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | 🔹 | JSON | ✅ | ✅ |
| pyplayscii | ✅ | ✅ | 🟡 | ❌ | ❌ | ❌ | 🔹 | JSON | ✅ | ✅ |
| Bane-Of-Wargs | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | 🔷 | JSON | ✅ | ✅ |
| Asciin.py | ✅ | ✅ | 🟡 | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| AsciiEngine | ❌(CSS,C) | ✅ | 🟡 | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| roguelike-ascii-vs-pygame | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | 🔹 | JSON | 🟡 | Example Only |
| Symbol | Meaning |
|---|---|
| ✅ | Yes |
| ❌ | No |
| 🟡 | Partial/Kinda |
| 🔷 | Advanced |
| 🔹 | Basic |
- Clone this repository or downlaod the most recent release.
- Install requirements if any still needed (see requirements.md).
- Run the main script:
python main.py
- Follow terminal prompts for language, PIN, and save selection, so you have your base settings
- Program your game in
game.py(How you use the librarys is shown in the soon coming WIKI)
data/
accounts/
ackknow.json
sellang.json
saves/
s1.json
s2.json
..
lib/
__init__.py
tools.py
boxgen.py
main.py
game.py
- Implement your game logic in the
game.main()method. - Add or modify language packs in the
data/lang/directory. - Use
boxgen.pregenfor custom UI elements and prompts.
Check LICENSE.md out!
- this Project has no Inspirations!
- this Project was made after long long time of thinking, how to do it the best.
- README.md,LICENSE.md and REQUIREMENTS.md were generatet by AI on purpose with modifications