A free, open-source 2D online RPG engine built with C# and SFML. NetGore provides a strong and flexible foundation for creating side-scrolling and top-down 2D online games using a client-server architecture.
Note: This project is no longer under active development by its original creator but remains maintained by the community.
- Overview
- Features
- Quick Start
- Architecture
- Building the Project
- Running the Game
- Project Structure
- Recent Updates
- Documentation
- Contributing
- License
NetGore is a complete 2D game development framework designed for creating online RPGs. It provides:
- Client: Game client with SFML.Net 2.6.0 rendering
- Server: Game server with networking and world management
- Editor: Visual map and content editing tools
- Database: MySQL-backed game data storage
The engine supports both side-scrolling and top-down perspectives, making it suitable for a wide variety of 2D RPG styles.
- SFML.Net 2.6.0 rendering and audio
- Client-server architecture with network synchronization
- MySQL database integration for persistent game data
- Lidgren networking for efficient multiplayer
- Cross-platform support (Linux, Windows, macOS)
- Character management and leveling
- Inventory and equipment system
- Skill and stat systems
- Quests and NPCs
- Guilds and peer trading
- Map editing and world management
- Particle effects and animations
- Sound and music support
- WinForms Editor: Original editor for Windows (fully functional)
- Avalonia Editor: Cross-platform editor with basic UI skeleton (work in progress)
- .NET 8.0 SDK
- MySQL Server (for running the server)
- SFML native libraries (for graphics and audio)
# Clone the repository
git clone <repository-url>
cd netgore
# Build all projects
dotnet build
# Or build specific projects
dotnet build DemoGame.Client/DemoGame.Client.csproj
dotnet build DemoGame.Server/DemoGame.Server.csproj
dotnet build DemoGame.Editor.Avalonia/DemoGame.Editor.Avalonia.csprojcd DemoGame.Server
dotnet runcd DemoGame.Client
dotnet runAvalonia Editor (Cross-platform, work in progress):
cd DemoGame.Editor.Avalonia
dotnet runNote: The Avalonia editor is still a work in progress. Use the WinForms editor (DemoGame.Editor) for full functionality.
WinForms Editor (Windows only):
cd DemoGame.Editor
dotnet runThe repository includes batch files for quick launching:
Run Server.bat- Start the game serverRun Client.bat- Start the game clientRun Editor.bat- Start the WinForms editorRun InstallationValidator.bat- Validate installation
NetGore/
โโโ NetGore/ # Core game engine library
โโโ NetGore.Db/ # Database layer
โโโ NetGore.Features/ # Shared features
โโโ NetGore.Features.Client/ # Client-specific features
โโโ NetGore.Features.Server/ # Server-specific features
โโโ NetGore.Features.Editor/ # Editor-specific features
โโโ NetGore.Editor/ # WinForms editor utilities
โโโ DemoGame/ # Game logic and database objects
โโโ DemoGame.Client/ # Game client
โโโ DemoGame.Server/ # Game server
โโโ DemoGame.Editor/ # WinForms editor
โโโ DemoGame.Editor.Avalonia/ # Cross-platform Avalonia editor
โโโ NetGore.Tests/ # Unit tests
โโโ DevContent/ # Game assets
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โ Client โ โโโโโโโบ โ Server โ โโโโโโโบ โ MySQL โ
โ (SFML) โ TCP โ (Lidgren) โ SQL โ Database โ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
- .NET 8.0 SDK
- SFML native libraries (platform-specific, via SFML.Net 2.6.0 NuGet package)
- MySQL Server (for server-side features)
All projects build to a shared bin/ directory structure:
bin/
โโโ net8.0/
โ โโโ NetGore.dll
โ โโโ DemoGame.Client.exe
โ โโโ DemoGame.Server.exe
โ โโโ Content/ # Game assets
Game content is automatically copied from DevContent/ during build.
- Configure the database connection in
DemoGame.Server/DbSettings.dat - Run the server:
dotnet runinDemoGame.Server/ - The server will start listening for client connections
- Ensure the server is running
- Run the client:
dotnet runinDemoGame.Client/ - Connect to the server and create a character
- Server settings:
DemoGame.Server/app.config - Client settings:
DemoGame.Client/app.config - Database settings:
DemoGame.Server/DbSettings.dat
- NetGore: Core game engine with rendering, networking, and game logic
- NetGore.Db: Database abstraction layer with MySQL support
- NetGore.Features: Shared game features (stats, skills, quests, etc.)
- DemoGame.Client: Game client using SFML.Net 2.6.0 for rendering
- DemoGame.Server: Game server with world simulation
- DemoGame.Editor: Visual map and content editor (Windows)
- DemoGame.Editor.Avalonia: Cross-platform editor skeleton (work in progress)
- DemoGame: Game-specific logic, database objects, and content
The entire project has been modernized from .NET Framework 4.0 to .NET 8.0:
- โ Modern SDK-style projects
- โ Cross-platform support (Linux, Windows, macOS)
- โ Updated NuGet packages
- โ MySqlConnector integration
- โ Improved performance and compatibility
See: MARKDOWN NOTES/DOTNET8_MIGRATION_COMPLETE.md
A cross-platform editor skeleton has been created:
โ ๏ธ Basic UI structureโ ๏ธ Docking system set upโ ๏ธ Some panels implementedโ ๏ธ Work in progress - not fully functional
Note: This is still under active development. Use the WinForms editor for full functionality.
See: DemoGame.Editor.Avalonia/README.md for current status
- Migrated to SFML.Net 2.6.0 via NuGet
- Migrated from MySql.Data to MySqlConnector for cross-platform support
- All database queries updated
- Improved async/await support
Located in MARKDOWN NOTES/:
- START_HERE.md - Quick start guide for the Avalonia editor
- DOTNET8_MIGRATION_COMPLETE.md - .NET 8 migration summary
- AVALONIA_MIGRATION_COMPLETE.md - Editor migration details
- SFML_MIGRATION_STATUS_FINAL.md - Graphics library status
- DemoGame.Editor.Avalonia/README.md - Avalonia editor status and progress
- Note: The Avalonia editor is still under development and not fully functional
- Inline XML documentation in source files
- Architecture patterns documented in markdown notes
Core Libraries:
- SFML.Net 2.6.0 via NuGet (graphics and audio)
- MySqlConnector 2.3.7 (database)
- Lidgren.Network (networking)
- log4net (logging)
Editor (Avalonia, work in progress):
- Avalonia 11.0 (cross-platform UI)
- Dock.Avalonia 11.0 (docking support)
- CommunityToolkit.Mvvm (MVVM helpers)
Note: Basic skeleton created, full functionality pending
# Install SFML libraries
sudo apt-get install libsfml-dev
# Build the solution
dotnet build NetGore.sln
# Run the Avalonia editor
cd DemoGame.Editor.Avalonia
dotnet run# Visual Studio 2022 or later
# Open NetGore.sln
# Or use command line
dotnet build NetGore.sln- Create a MySQL database for the server
- Run the schema from
db.sql - Configure connection string in server settings
Contributions are welcome! This project benefits from community maintenance.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
- Follow the existing code style
- Update documentation for new features
- Test on multiple platforms when possible
- Use meaningful commit messages
This project is licensed under the GNU General Public License v2.0.
Original project: NetGore by NetGore contributors
Original homepage: http://www.netgore.com/
- NetGore creators for the original engine
- SFML community for excellent graphics library
- Avalonia team for the cross-platform UI framework
- Community contributors who maintain and improve NetGore
- Check existing documentation in
MARKDOWN NOTES/ - Review the Avalonia editor README
- Examine the migration guides for technical details
- Open issues for bugs or feature requests