Getting Started with Ashes of Velsingrad
This guide will help you set up your development environment and get Ashes of Velsingrad running on your machine.
๐ Prerequisites
Before you begin, ensure you have the following installed:
Required Software
- Godot 4.4.1 (Mono version) - Download from official site
- .NET 9.0 SDK or higher - Download from Microsoft
- Git - Download from git-scm.com
Recommended Tools
- Visual Studio Code with C# Dev Kit extension (recommended)
- Visual Studio 2022 (alternative)
- JetBrains Rider (alternative)
System Requirements
- OS: Windows 10/11 (64-bit)
- RAM: 8GB minimum, 16GB recommended
- Storage: 2GB free space
- Graphics: DirectX 11 compatible
๐ Quick Start
1. Clone the Repository
git clone https://github.com/Gammabra/aov-godot.git
cd aov-godot
2. Set Up Environment Variables
You need to set the GODOT_BIN
environment variable for testing:
Windows (Command Prompt):
setx GODOT_BIN "C:\path\to\Godot_v4.4.1-stable_mono_win64.exe"
Windows (PowerShell):
[Environment]::SetEnvironmentVariable("GODOT_BIN", "C:\path\to\Godot_v4.4.1-stable_mono_win64.exe", "Machine")
3. Open the Project
- Launch Godot
- Click "Import" in the Project Manager
- Navigate to the cloned repository folder
- Select
project.godot
- Click "Import & Edit"
4. Build the Project
In Godot, go to:
- Project โ Tools โ C# โ Create C# solution
- Wait for the build to complete
- If you see errors, try Build โ Rebuild Project
5. Run Tests (Optional)
To verify everything is working:
dotnet test --settings tests/.runsettings
Or use the GdUnit4 tab in Godot to run tests within the editor.
๐ง Development Environment Setup
Visual Studio Code (Recommended)
Install Extensions:
- C# Dev Kit (Microsoft)
- C# (Microsoft)
- godot-tools (optional)
- Conventional Commits (vivaxy) - for commit messages
Configure Workspace: Create
.vscode/settings.json
in your project root:
{
"dotnet.defaultSolution": "Ashes of Velsingrad.sln",
"files.exclude": {
"**/.godot/": true,
"**/.import/": true
},
"conventionalCommits.scopes": [
"player", "combat", "inventory", "ui", "audio",
"level", "ai", "save", "network", "build", "config"
]
}
- Set Up Debugging:
Create
.vscode/launch.json
:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Godot",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${env:GODOT_BIN}",
"args": ["--path", "${workspaceFolder}"],
"cwd": "${workspaceFolder}",
"console": "internalConsole",
"stopAtEntry": false
}
]
}
Configure Godot External Editor
- Go to Editor โ Editor Settings โ Dotnet โ Editor
- Set External Editor to "Visual Studio Code and VSCodium"
- Set Exec Path to your VS Code installation path
๐ Project Structure Overview
Here's how the project is organized:
AshesOfVelsingrad/
โโโ .github/ # GitHub workflows and templates
โโโ .godot/ # Godot engine files (auto-generated)
โโโ addons/ # Godot addons (GdUnit4, etc.)
โโโ assets/ # Game assets (sprites, audio, etc.)
โโโ documentation/ # Project documentation
โ โโโ docfx/ # DocFX configuration and content
โ โโโ readme-intl/ # Internationalized README files
โโโ scenes/ # Godot scene files (.tscn)
โโโ scripts/ # C# source code
โ โโโ player/ # Player-related systems
โ โโโ combat/ # Combat mechanics
โ โโโ ui/ # User interface
โ โโโ utils/ # Utility classes
โโโ tests/ # Unit and integration tests
โ โโโ unit/ # Unit tests
โ โโโ integration/ # Integration tests
โโโ project.godot # Godot project configuration
โโโ *.sln # C# solution file
๐งช Running Tests
Prerequisites for Testing
Make sure GdUnit4 is properly installed:
dotnet add package gdUnit4.api --version 5.0.0
dotnet add package gdUnit4.test.adapter --version 3.0.0
dotnet add package gdUnit4.analyzers --version 1.0.0
Running Tests
From Godot (Recommended):
- Go to the MSBuild tab and rebuild
- Switch to the GdUnit4 tab
- Click "Run discover tests"
- Select and run your tests
From Command Line:
# Run all tests
dotnet test --settings tests/.runsettings
# Run with verbose output
dotnet test --logger "console;verbosity=detailed"
# Run specific test category
dotnet test --filter "Category=Unit"
From VS Code:
- Use the Test Explorer panel
- Install C# Dev Kit extension
- Tests will appear automatically
โ Quick Validation
After setup, verify everything works:
- Build Test:
dotnet build
(should complete without errors) - Simple Scene Test: Run the main scene in Godot
- Test Suite:
dotnet test --settings tests/.runsettings
- IDE Integration: Open a .cs file and verify IntelliSense works
If all steps pass, you're ready to develop! ๐
๐ Your First Contribution
Ready to contribute? Here's a simple workflow:
1. Create a Feature Branch
git checkout develop
git checkout -b feat/your-feature-name
2. Make Your Changes
Follow our coding standards and commit message conventions.
3. Test Your Changes
# Build the project
dotnet build
# Run tests
dotnet test --settings tests/.runsettings
# Test in Godot
# Open the project and run a scene
4. Commit and Push
# Follow Conventional Commits format
git commit -m "feat(player): add wall jump ability"
git push origin feat/your-feature-name
5. Create a Pull Request
- Target the
develop
branch - Add a clear description
- Reference any related issues
๐ Next Steps
Now that you have the project running, here are some suggested next steps:
- Explore the Codebase: Start with the
scripts/
folder to understand the architecture - Read the Documentation: Check out our Technical Guides
- Join the Community: Connect with us on Discord
- Check Issues: Look for "good first issue" labels on GitHub
๐จ Troubleshooting
Common Issues
Build Errors:
# Clean and rebuild
dotnet clean
dotnet build --no-restore
Tests Not Running:
- Verify
GODOT_BIN
environment variable is set correctly - Make sure you're using the Mono version of Godot
- Restart your terminal/IDE after setting environment variables
VS Code IntelliSense Issues:
- Restart VS Code
- Run "Developer: Reload Window" command
- In Godot: Project โ Tools โ C# โ Sync C# Project
Permission Issues on Windows:
- Run VS Code or Godot as Administrator
- Check that your antivirus isn't blocking files
Getting Help
If you're still having issues:
- Check our GitHub Issues
- Join our Discord community
- Read the detailed Technical Documentation
๐ฏ What's Next?
- Learn the Game Design: Read about our Core Gameplay
- Understand the Architecture: Check out our Technical Documentation
- Contribute: Read our Contributing Guide
Welcome to the team! We're excited to see what you'll build with us.
"Every great journey begins with a single step. Thank you for taking that step with us into the world of Velsingrad."