❓ Frequently Asked Questions
General Questions
What is R-Type?
R-Type is a multiplayer space shooter game inspired by the classic R-Type arcade game. Built with modern C++20 and featuring networked multiplayer, it brings the classic shoot-'em-up experience to modern platforms.
What platforms are supported?
- Windows: Windows 10/11 (x64)
- Linux: Ubuntu 20.04+, Debian 11+, Arch Linux
- macOS: Not officially supported (may work with modifications)
Is the game free?
Yes! R-Type is an open-source project available under the MIT license.
Installation & Setup
How do I install the game?
- Download the latest release from GitHub
- Extract the archive
- Run the executable:
- Windows:
r-type_client.exe - Linux:
./r-type_client
- Windows:
See the Getting Started Guide for detailed instructions.
What are the system requirements?
Minimum:
- CPU: Dual-core 2.0 GHz
- RAM: 2 GB
- GPU: OpenGL 3.3 compatible
- Storage: 200 MB
- Network: Broadband for multiplayer
Recommended:
- CPU: Quad-core 2.5 GHz
- RAM: 4 GB
- GPU: Dedicated graphics card
- Storage: 500 MB (SSD preferred)
- Network: Low-latency connection (<50ms ping)
Do I need to install dependencies?
Windows: All dependencies are included in the release package.
Linux: You may need to install SFML:
# Ubuntu/Debian
sudo apt install libsfml-dev
# Arch Linux
sudo pacman -S sfml
Gameplay
How do I play multiplayer?
- One player starts the server:
./r-type_server - Note the server's IP address
- All players launch the client:
./r-type_client - Enter the server IP in the connection menu
- Press "Connect" and wait for all players
How many players can play together?
Up to 4 players can play simultaneously in cooperative mode.
Can I play solo?
Yes! Launch the game without connecting to a server for single-player practice mode.
How do I save my progress?
Progress is automatically saved locally. Scores and achievements sync with the server during multiplayer sessions.
Are there difficulty settings?
Yes! Choose from:
- Easy: For beginners
- Normal: Standard experience
- Hard: Challenging gameplay
- Nightmare: Expert mode
Access difficulty settings in the main menu.
Controls
How do I change the controls?
- Edit
config/client/controls.json - Restart the game for changes to take effect
Example:
{
"up": "W",
"down": "S",
"left": "A",
"right": "D",
"fire": "Space",
"special": "LeftShift"
}
Does the game support controllers?
Yes! Most standard controllers (Xbox, PlayStation, generic USB) are supported. Controller mappings are detected automatically.
My controller isn't working. What should I do?
- Ensure the controller is connected before launching the game
- Check that it's recognized by your OS
- Try a different USB port
- See Troubleshooting Guide
Performance
The game is laggy. How do I improve performance?
-
Lower graphics settings in
config/client/video.toml:vsync = false
fps_limit = 60
fullscreen = false -
Close background applications
-
Update graphics drivers
-
Disable shader effects (edit config to disable colorblind/vignette)
What FPS should I expect?
- Modern systems: 144+ FPS
- Mid-range systems: 60+ FPS
- Minimum spec: 30+ FPS
The game caps at 144 FPS by default but this can be changed.
Network lag in multiplayer?
- Check ping: Should be <100ms for smooth gameplay
- Use wired connection: WiFi can introduce latency
- Close bandwidth-heavy apps: Streaming, downloads, etc.
- Play on nearby servers: Physical distance affects latency
Networking
How do I host a server?
./r-type_server
Configure the server in config/server/server.toml:
port = 8080
max_players = 4
What port does the server use?
Default: 8080 (UDP)
Ensure this port is:
- Open in your firewall
- Forwarded in your router (for public servers)
Can I play over the internet?
Yes! The host needs to:
- Forward port 8080 (UDP) in their router
- Share their public IP address with players
- Ensure firewall allows the connection
How do I find my public IP?
Visit: https://whatismyipaddress.com/
Or use command line:
# Windows
curl ifconfig.me
# Linux
curl ifconfig.me
Can I host a dedicated server?
Yes! Run the server on a separate machine or VPS:
./r-type_server --dedicated
See Server Administration Guide for details.
Technical Issues
The game won't start
- Check system requirements
- Verify all files were extracted
- Try running as administrator (Windows)
- Check error logs in
logs/directory - See Troubleshooting Guide
"SFML library not found" error (Linux)
Install SFML:
sudo apt install libsfml-dev libsfml-graphics2.5 libsfml-window2.5 libsfml-system2.5 libsfml-audio2.5 libsfml-network2.5
"Failed to connect to server"
- Verify server is running
- Check IP address is correct
- Ensure port 8080 is open
- Check firewall settings
- Verify network connectivity
Game crashes on startup
- Update graphics drivers
- Verify game files integrity
- Check
logs/client.logfor errors - Disable shaders in config
- Report the issue on GitHub with log files
Black screen after launch
- Update graphics drivers
- Try windowed mode: Set
fullscreen = falseinconfig/client/video.toml - Check OpenGL support: Game requires OpenGL 3.3+
- Try different resolution
Configuration
Where are the config files?
- Client config:
config/client/ - Server config:
config/server/ - Game config:
config/game/
How do I reset to default settings?
Delete the config files and restart. The game will regenerate defaults.
Can I customize game difficulty?
Yes! Edit config/game/enemies.toml to adjust:
- Enemy health
- Bullet speed
- Spawn rates
- Damage values
How do I change the resolution?
Edit config/client/video.toml:
width = 1920
height = 1080
fullscreen = true
Development & Modding
Can I modify the game?
Yes! R-Type is open source. Fork the repository and make changes.
How do I build from source?
See Contributing Guide for build instructions.
Can I create custom levels?
Yes! Edit level files in config/game/levels/ in TOML format.
Can I add new enemies?
Yes! Define new enemies in config/game/enemies.toml. See Add Enemy Tutorial.
Can I create custom power-ups?
Yes! Edit config/game/powerups.toml and follow the Add Power-Up Tutorial.
Is there a modding API?
Not yet, but the ECS architecture makes it relatively easy to extend. Documentation coming soon!
Community & Support
How do I report a bug?
- Check if it's already reported in GitHub Issues
- Collect information:
- OS and version
- Error logs (
logs/directory) - Steps to reproduce
- Create a new issue with details
How do I request a feature?
Open a feature request on GitHub Issues with:
- Clear description
- Use case
- Examples if applicable
Where can I get help?
- Documentation: docs/website/docs/
- GitHub Issues: Bug reports and questions
- Discord: (Link TBD)
- Email: (Contact TBD)
How can I contribute?
See Contributing Guide for:
- Code contributions
- Documentation improvements
- Bug fixes
- Feature development
Advanced Topics
What is the ECS architecture?
Entity Component System - a design pattern that separates data (Components) from logic (Systems). See ECS Guide.
What network protocol does R-Type use?
RTGP (R-Type Game Protocol) v1.4.3 over UDP. See RFC Document.
Can I use R-Type code in my project?
Yes! R-Type is MIT licensed. See LICENSE file.
How do I profile performance?
See Profiling Guide for detailed instructions.
Still Have Questions?
If your question isn't answered here:
- Check the full documentation
- Search GitHub Issues
- Ask on Discord (link TBD)
- Open a GitHub Discussion
We're here to help! 🚀