Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/dundd2/wip-a-heros-redemption-2d

Simple turn-based RPG using Love2D. Personal demo for learning game mechanics.
https://github.com/dundd2/wip-a-heros-redemption-2d

2d-game love2d love2d-framework love2d-game

Last synced: 15 days ago
JSON representation

Simple turn-based RPG using Love2D. Personal demo for learning game mechanics.

Awesome Lists containing this project

README

        

# A hero’s redemption 2D

A hero’s redemption 2D is a simple RPG battle game built using the LÖVE 12 Beta game engine.
It serves as a personal demo to better understand the mechanics and systems that will be used in a larger Unity 3D group project later this year.

## Project Overview

This demo showcases a turn-based battle system with basic skills, enemy AI, and a rudimentary story system. The purpose is to gain practical experience with Love2D and implement core game concepts like:

* **Turn-Based Combat:** Implementing a system where the player and enemy take turns to perform actions.
* **Basic Skills:** Creating a skill system with different actions like attack, defend, special attack, and heal.
* **Enemy AI:** Developing a basic AI for enemies to make decisions in combat.
* **Story System:** Adding a basic dialogue system to give the game context and narrative.
* **Game States:** Managing different game states (menu, level select, story, battle, victory, defeat, ending).

## ScreenShot
![ScreenShot1](https://github.com/dundd2/WIP-A-Heros-Redemption-2D/blob/main/assets/Screenshot/SC(1).png)

## Built With

* [LÖVE2D 12.0](https://love2d.org/): A free, open-source 2D game engine.

## How to Play

1. **Download Love:** Download and install LÖVE from [https://love2d.org/](https://love2d.org/).
2. **Download or Clone the Project:** Clone or download this repository to your local machine.
3. **Run the Game:** Drag and drop the project folder (the folder containing `main.lua`) onto the `love.exe` executable (on Windows) or run from terminal.

### Controls:

* **Menu:**
* **Up/Down Arrow Keys:** Navigate menu options.
* **Enter/Space:** Select menu option.
* **Level Select:**
* **Up/Down Arrow Keys:** Choose a level.
* **Enter:** Start the story and begin battle for the selected level.
* **Esc:** Return to main menu.
* **Story Mode:**
* **Enter:** Continue to the next dialogue line.
* **Esc:** Skip the dialogue and go directly to the battle.
* **Battle:**
* **Up/Down Arrow Keys:** Navigate skill options.
* **Enter/Space:** Select a skill.
* **Esc:** Pause the game.
* **Tab/I:** Toggle skill information screen.
* **Up/Down Arrow Keys (Skill Screen):** Select a skill from the skill information screen
* **Pause Menu**
* **Mouse Click:** Click the button to continue,restart or return to menu
* **Victory/Defeat Screen**
* **Mouse Click:** Click the button to restart or return to menu

### Game Mechanics

* **Main Menu:** You can choose to start a level or exit the game.
* **Level Select:** Select the level you want to play.
* **Story Mode:** Before each battle, there will be a story dialogue. Press Enter to continue, or Esc to skip.
* **Battle System:**
* The battle is turn-based. Player and enemy alternate their turns.
* On your turn, you can choose between Attack, Defend, Special Attack and Heal skill.
* Each skill has a cooldown period.
* The enemy uses a simple AI to decide whether to attack or defend.
* The battle ends when either the player's or the enemy's HP reaches 0.
* **Pause Menu:**
* Press ESC in battle to pause the game
* You can chose to continue the game, restart the game or return to main menu
* **Victory/Defeat:**
* After a battle ends, you can restart the game or return to main menu

## Skills Used

This project utilizes the following skills and concepts:

* **Lua Programming:** The entire game logic is written in Lua.
* **Love2D API:** Utilizes Love2D's core functionalities for:
* **Graphics:** Drawing images, text, and shapes.
* **Audio:** Playing sound effects and background music.
* **Input:** Handling keyboard and mouse input.
* **Timer:** Implementing delay and cooldown systems.
* **Particle System:** Creating simple visual effects.
* **Game Design:** Implementing core game concepts such as:
* Turn-based combat mechanics
* Skill and cooldown systems
* Basic enemy AI
* UI/UX design
* Level design
* **Data Structures:** Using Lua tables to manage game data.
* **Object-Oriented Concepts:** Implemented in Lua using tables and functions.
* **Game Logic:** Implementing game state logic, battle logic, and story progression logic.

## Thanks

I would like to express my gratitude to the Love2D team for providing such a fantastic, free, and open-source game engine. Their work has been instrumental in my game development learning journey.