An open API service indexing awesome lists of open source software.

https://github.com/pitercoding/the-terminal-awakens

[EN] Terminal-based RPG game built in Java featuring turn-based combat, character progression, equipment system, and ASCII ART. [PT-BR] Jogo de RPG em terminal desenvolvido em Java com combate em turnos, progressรฃo de personagem, sistema de equipamentos e arte ASCII.
https://github.com/pitercoding/the-terminal-awakens

ascii-art aventura-terminal boss-fight character-progression dungeon-exploration equipment-system game-development inventory-system java java-oop jogo-rpg learning-project object-oriented-programming programacao-orientada-objetos terminal-rpg-game text-based-game turn-based-combat

Last synced: 10 days ago
JSON representation

[EN] Terminal-based RPG game built in Java featuring turn-based combat, character progression, equipment system, and ASCII ART. [PT-BR] Jogo de RPG em terminal desenvolvido em Java com combate em turnos, progressรฃo de personagem, sistema de equipamentos e arte ASCII.

Awesome Lists containing this project

README

          


๐Ÿ‘๏ธ๐Ÿ–ฅ๏ธ The Terminal Awakens ๐Ÿ–ฅ๏ธ๐Ÿ‘๏ธ


๐ŸŒŽ Languages:

๐Ÿ‡ง๐Ÿ‡ท Portuguese |
๐Ÿ‡บ๐Ÿ‡ธ English

**The Terminal Awakens** is a **terminal-based RPG adventure game in Java**, where players explore a dungeon-like world, battle monsters, and grow their characters through XP, levels, and equipment.

The project features:

- Multiple **vocations/classes**: Knight, Paladin, Druid, Sorcerer
- **Turn-based combat** with special attacks and mana management
- **Equipment system**: Weapons and armor with bonuses
- **Inventory & items**: Health and Mana potions
- **Map exploration**: Random encounters, shops, NPCs, and final boss
- **ASCII portraits** and immersive text UI

---

## ๐Ÿ† Motivation

This project was created as a **personal learning project in Java**, focused on:

- Practicing **OOP, inheritance, and polymorphism**
- Building **terminal-based games** with clean code structure
- Implementing **combat mechanics, inventory systems, and level progression**
- Exploring **game balance, UX, and terminal graphics**

It was also an opportunity to reinforce concepts like:

- Designing **class hierarchies and abstract classes** for reusability
- Managing **game loops, events, and player states**
- Implementing **equipment, items, and stats system** in a RPG context

## ๐Ÿ“ธ Screenshots

Below are some screenshots showcasing key moments of **The Terminal Awakens** gameplay.

### 1. ๐Ÿ–ฅ๏ธ Game Start โ€” ASCII Title Screen
The ASCII art displayed when the game starts, presenting the world of **The Terminal Awakens**.

![Game Start](screenshots/game-start.png)

---

### 2. ๐Ÿง™ Character Creation & Starter Kit
The beginning of the journey, where the player chooses a vocation and receives the starter equipment.

![Character Creation](screenshots/character-creation.png)

---

### 3. โš”๏ธ Combat Example
A turn-based combat scenario against common enemies.

![Combat](screenshots/combat.png)

![Combat 2](screenshots/combat2.png)

---

### 4. ๐ŸŽ’ Inventory View
Viewing and using items such as Health and Mana Potions during gameplay.

![Inventory View](screenshots/inventory-view.png)

---

### 5. ๐Ÿ—บ๏ธ Map Exploration
Exploring the map, discovering paths, encounters, and hidden events.

![Map Exploration](screenshots/map-exploration.png)

---

### 6. ๐Ÿ‰ Boss Encounter
A dangerous boss fight that tests strategy, resource management, and survival.

![Boss Encounter](screenshots/boss-terminal-of-vortex.png)


## ๐Ÿ“š Learning Points

During development, these concepts were reinforced:

- **Backend / Game Logic (Java)**
- Abstract classes and polymorphism for characters
- Combat mechanics and turn-based system
- Equipment and inventory system
- XP, level progression, and stat growth
- Map, tiles, and event handling

- **Terminal UX & ASCII Art**
- Dynamic combat/status displays
- Grouped inventory and narrative messages
- Boss and monster portraits
- Slow console printing for immersion

## ๐Ÿš€ How to Run Locally

### ๐Ÿ“ฆ Prerequisites

Make sure you have:

- **Java 21+** installed
- **Terminal / Command Prompt**

### ๐Ÿ–ฅ๏ธ Run the Game

1. Compile the project:

```bash
javac -d out/production/the-terminal-awakens src/main/java/com/terminalawakens/**/*.java
```

2. Run the game:
```bash
java -cp out/production/the-terminal-awakens com.terminalawakens.Main
```
3. Follow the in-terminal prompts to:
- Create your character
- Explore the map using AWSD keys
- Fight monsters
- Visit shops and collect loot
- Challenge the final boss **Terminal of Vortex**

## ๐Ÿงฑ Project Structure
```bash
the-terminal-awakens/
โ”œโ”€ src/main/java/com/terminalawakens/
โ”‚ โ”œโ”€ character/ # Character classes, starter kit, stats, equipment
โ”‚ โ”œโ”€ creatures/ # Monsters, bosses, MonsterFactory
โ”‚ โ”œโ”€ engine/ # GameEngine & CombatEngine
โ”‚ โ”œโ”€ equipment/ # Weapons, armor, equipment logic
โ”‚ โ”œโ”€ items/ # Potions and ItemFactory
โ”‚ โ”œโ”€ shop/ # Item and equipment shop
โ”‚ โ”œโ”€ util/messages/ # ASCII portraits, SlowConsole, GameStart/GameEnd
โ”‚ โ””โ”€ world/ # Game map, tile types, position handling
โ”œโ”€ out/ # Compiled .class files
โ”œโ”€ screenshots/ # Suggested screenshots folder
โ”œโ”€ .gitignore
โ”œโ”€ LICENSE
โ””โ”€ README.md
โ””โ”€ README.pt.md
```

## ๐ŸŽฎ Gameplay Flow
```text
Character Creation
โ†“
Game Map Exploration (AWSD)
โ†“
Random Tile Events:
- Monster Encounter โ†’ CombatEngine
- Loot Tile โ†’ Collect items
- Shop Tile โ†’ Buy equipment
- NPC Tile โ†’ Dialogue / Lore
โ†“
XP & Level Up โ†’ Character Growth
โ†“
Boss Tile โ†’ Terminal of Vortex
```

## ๐Ÿ“œ License

This project is licensed under the **MIT License** โ€” feel free to use, study, and modify it.

## ๐Ÿง‘โ€๐Ÿ’ป Author

**Piter Gomes** โ€” Computer Science Student (6th Semester) & Full-Stack Developer

๐Ÿ“ง [Email](mailto:piterg.bio@gmail.com) | ๐Ÿ’ผ [LinkedIn](https://www.linkedin.com/in/piter-gomes-4a39281a1/) | ๐Ÿ’ป [GitHub](https://github.com/pitercoding) | ๐ŸŒ [Portfolio](https://portfolio-pitergomes.vercel.app/)