A 3D open-world RPG/simulation game about human evolution, from the Stone Age to the conquest of space.
Knowledge is a game based on discovery and evolution. The player explores a living world, collects resources, and discovers new tools and objects through a unique combination system. The central theme is knowledge - every discovery advances humanity through time.
- Discovery System: Combine objects to discover new tools and technologies
- 8 Eras: From Stone Age to Space Age
- Ecosystem: 30+ animal species with realistic behaviors
- Dynamic Weather: Climate affects gameplay with natural disasters
- NPC Interactions: Reputation system with factions
- Character Customization: Create your character with various options
- Unity 2021.3 LTS or later
- Visual Studio or VS Code
- .NET SDK
-
Clone the repository:
git clone https://github.com/Xflofoxx/knowledge.git
-
Open the project in Unity Hub
-
Open the project in Unity Editor
-
Build and run
Assets/
├── Scripts/
│ ├── Core/ # GameManager
│ ├── Player/ # PlayerController, CharacterEditor
│ ├── Discovery/ # DiscoverySystem
│ ├── Systems/ # KnowledgeSystem
│ ├── Environment/ # EcosystemManager, WeatherSystem
│ ├── AI/ # NPCManager
│ └── UI/ # UIManager
├── Tests/ # Unit tests
├── Prefabs/ # Game objects
└── Scenes/ # Unity scenes
We follow C# coding standards and Unity best practices:
- Use PascalCase for classes, methods, properties
- Use camelCase for variables
- Add
[SerializeField]for private fields editable in Inspector - Use
readonlyandconstwhere appropriate - Add XML documentation for public APIs
See spec/CODING_GUIDELINES.md for detailed guidelines.
feature/description- New featuresfix/description- Bug fixesrefactor/description- Code refactoringdocs/description- Documentation updates
Use clear, descriptive commit messages:
feat: add new discovery recipes
fix: resolve player death respawn issue
refactor: improve ecosystem performance
docs: update README
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Wait for review and address feedback
Run unit tests in Unity:
- Window > General > Test Runner > Run All
Required test coverage:
- All public methods must have unit tests
- Integration tests for system interactions
- Project structure specification (
spec/SPEC-STRUCTURE.md) - Core Game Manager implementation
- Singleton pattern with DontDestroyOnLoad
- Pause/Resume game state
- Time scale control (0.1x - 2x)
- Knowledge points system
- Save/Load with JSON serialization
- Scene management
- Save/Load System implementation
- Multiple save slots
- Auto-save functionality
- JSON serialization for game data
- Player, Discovery, World data persistence
- Settings Manager implementation
- Graphics settings (resolution, quality, vsync)
- Audio settings (master, music, sfx, dialogue)
- Control settings (key bindings)
- Gameplay settings (difficulty, UI scale)
- PlayerPrefs persistence
- Unit tests for GameManager, SaveLoadSystem, SettingsManager
- Gitignore and gitattributes aligned for Unity project
- gh-pages branch converted to docs folder in master
- Initial project setup with specifications
- Documentation structure with modular specs
- GitHub Pages documentation site
This project is licensed under the MIT License - see the LICENSE file for details.
- Unity Technologies
- Open source community
- Contributors
For questions or suggestions, please open an issue on GitHub.