Note: This project was developed for my college assignment. It is not intended for production use. The project is currently on hold and may not be actively maintained. Feel free to use the code for educational purposes or as a starting point for your own projects.
A command-line RPG game written in C# featuring character creation, turn-based combat, and a dialogue system. Currently in early development.
-
Character System
- Choice of classes: Warrior, Barbarian, Paladin, Sorcerer, Conjurer
- Customisable attributes (Strength, Dexterity, Constitution, Intelligence, Wisdom, Charisma)
- Basic class-specific abilities
- Currently limited progression system
-
World Navigation
- Travel between regions and locations
- Basic building exploration
- NPC interactions
- Currently lacking environmental descriptions and detailed world-building
-
Combat System
- Turn-based combat with basic actions (Attack, Defend, Use Items, Flee)
- Simple enemy AI
- Limited item system
- Combat balancing needs work
-
Save System
- Manual saves with multiple slots
- Autosave functionality
- Save file backups
- Currently missing save file compression
- Limited content (NPCs, quests, items)
- Basic dialogue system lacking branching conversations
- Minimal character progression
- Simple combat mechanics
- Limited world interaction options
- Needs more extensive error handling
- .NET 9.0
- Windows/Linux/macOS compatible
- Terminal with UTF-8 support recommended
To build the project:
- Clone the repository
- Ensure you have .NET 9.0 SDK installed
- Run
dotnet build
in the project directory
dotnet run
Combat/
- Combat system implementationCommands/
- Game command handlersCore/
- Core game systems and state managementPlayer/
- Player character classes and attributesSave/
- Save system implementationUI/
- Console interface and window managementUtils/
- Utility classes and helpersWorld/
- World data structures and loadingResources/
- Game resources and localisation
Data/
- World definition dataworlds/
- World template filesnpcs/
- NPC definitionsitems/
- Item definitionsregions/
- Region definitionsdialogues/
- Dialogue tree definitionsquests/
- Quest definitions
This is a learning project but contributions are welcome. The project currently needs:
- More comprehensive documentation
- Additional unit tests
- Code cleanup and optimisation
- Content creation tools
- Better error handling
- Expanded world content
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- Follow existing C# code style and conventions
- Include XML documentation comments for public members
- Add unit tests for new functionality
- Update relevant documentation
This project is licensed under the MIT License.
This is an early development project created primarily for learning purposes. Many features are incomplete or in a proof-of-concept state. The code may contain bugs and security issues. Use at your own risk.
The focus is currently on establishing core systems rather than content. Breaking changes may occur frequently as the project evolves.
While effort has been made to handle errors gracefully, data loss could occur. Regular backups of save files are recommended if you choose to use this software.