{"id":49587628,"url":"https://github.com/dadavidtseng/protogame3d","last_synced_at":"2026-05-03T23:06:27.008Z","repository":{"id":306542578,"uuid":"934604541","full_name":"dadavidtseng/Protogame3D","owner":"dadavidtseng","description":"Protogame3D is a modern 3D game engine and prototype game built with C++ and custom engine architecture","archived":false,"fork":false,"pushed_at":"2026-01-25T22:37:45.000Z","size":102780,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-26T14:01:28.875Z","etag":null,"topics":["3d","3d-game","cpp","protogame","prototype"],"latest_commit_sha":null,"homepage":"","language":"HLSL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dadavidtseng.png","metadata":{"files":{"readme":"Docs/README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-18T05:29:18.000Z","updated_at":"2026-01-25T22:37:48.000Z","dependencies_parsed_at":"2025-08-27T15:04:45.615Z","dependency_job_id":null,"html_url":"https://github.com/dadavidtseng/Protogame3D","commit_stats":null,"previous_names":["dadavidtseng/protogame3d"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dadavidtseng/Protogame3D","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dadavidtseng%2FProtogame3D","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dadavidtseng%2FProtogame3D/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dadavidtseng%2FProtogame3D/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dadavidtseng%2FProtogame3D/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dadavidtseng","download_url":"https://codeload.github.com/dadavidtseng/Protogame3D/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dadavidtseng%2FProtogame3D/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32587829,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"ssl_error","status_checked_at":"2026-05-03T22:09:10.534Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d","3d-game","cpp","protogame","prototype"],"created_at":"2026-05-03T23:06:25.979Z","updated_at":"2026-05-03T23:06:26.999Z","avatar_url":"https://github.com/dadavidtseng.png","language":"HLSL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Protogame3D\n\nA modern 3D game engine and prototype game built with C++ and custom engine architecture, featuring JavaScript scripting support and professional audio integration.\n\n## 🎮 Overview\n\nProtogame3D is a comprehensive 3D game development project that demonstrates modern game engine architecture patterns. The project serves as both a functional game prototype and a showcase of custom engine development techniques, including modular design, scripting integration, and professional audio systems.\n\n## ✨ Features\n\n### Core Engine Features\n- **Custom 3D Engine**: Built-in game engine with modular architecture\n- **JavaScript Integration**: Dynamic scripting system for gameplay logic\n- **Professional Audio**: FMOD audio engine integration for immersive sound\n- **Modern Rendering**: Support for 3D models, shaders, and texture mapping\n- **Entity System**: Flexible entity-component architecture\n- **Resource Management**: Efficient loading and management of game assets\n\n### Development Features\n- **Cross-Platform**: C++ codebase with x64 architecture support\n- **Visual Studio Integration**: Complete solution and project files\n- **Debug/Release Builds**: Optimized build configurations\n- **Git Submodules**: Modular dependency management\n- **Configurable Settings**: XML-based game configuration system\n\n## 🏗️ Project Structure\n\n```\nProtogame3D/\n├── Code/\n│   └── Game/                    # Core game logic\n│       ├── Game.cpp/hpp         # Main game class\n│       ├── Player.cpp/hpp       # Player system\n│       ├── Entity.cpp/hpp       # Entity management\n│       ├── Prop.cpp/hpp         # Game objects/props\n│       ├── JavaScriptManager.*  # Scripting system\n│       ├── Framework/           # Game framework\n│       └── Subsystem/           # Engine subsystems\n├── Run/\n│   ├── Data/                    # Game assets\n│   │   ├── Audio/               # Sound effects and music\n│   │   ├── Fonts/               # Typography resources\n│   │   ├── Images/              # Textures and UI graphics\n│   │   ├── Models/              # 3D model assets\n│   │   ├── Scripts/             # JavaScript game scripts\n│   │   ├── Shaders/             # Rendering shaders\n│   │   └── GameConfig.xml       # Game configuration\n│   ├── Protogame3D_Debug_x64.exe    # Debug build\n│   ├── Protogame3D_Release_x64.exe  # Release build\n│   └── fmod*.dll                # FMOD audio libraries\n├── Engine/                      # Custom game engine (submodule)\n├── Docs/                        # Project documentation\n└── Protogame3D.sln             # Visual Studio solution\n```\n\n## 🚀 Getting Started\n\n### Prerequisites\n- **Visual Studio 2019/2022** with C++ development tools\n- **Git** for version control and submodule management\n- **Windows 10/11** (x64)\n\n### Building the Project\n\n1. **Clone the repository with submodules:**\n   ```bash\n   git clone --recursive https://github.com/yourusername/Protogame3D.git\n   cd Protogame3D\n   ```\n\n2. **Update submodules (if needed):**\n   ```bash\n   git submodule update --init --recursive\n   ```\n\n3. **Open in Visual Studio:**\n   ```bash\n   start Protogame3D.sln\n   ```\n\n4. **Build the solution:**\n   - Select your desired configuration (Debug/Release)\n   - Build → Build Solution (Ctrl+Shift+B)\n\n5. **Run the game:**\n   - Navigate to `Run/` directory\n   - Execute `Protogame3D_Debug_x64.exe` or `Protogame3D_Release_x64.exe`\n\n## 🎯 Game Configuration\n\nThe game can be customized through `Run/Data/GameConfig.xml`:\n\n```xml\n\u003cGameConfig\u003e\n    \u003cWindowClose\u003efalse\u003c/WindowClose\u003e\n    \u003cscreenSizeX\u003e1600\u003c/screenSizeX\u003e\n    \u003cscreenSizeY\u003e800\u003c/screenSizeY\u003e\n    \u003cscreenCenterX\u003e800\u003c/screenCenterX\u003e\n    \u003cscreenCenterY\u003e400\u003c/screenCenterY\u003e\n\u003c/GameConfig\u003e\n```\n\n### Configurable Options\n- **Screen Resolution**: Customize window size and positioning\n- **Window Behavior**: Control window close behavior\n- **Graphics Settings**: Adjust rendering parameters\n- **Audio Settings**: Configure sound and music preferences\n\n## 🛠️ Development\n\n### Architecture Overview\n- **Modular Design**: Separation between engine and game logic\n- **Component System**: Entity-component architecture for game objects\n- **Event-Driven**: Event system for loose coupling between systems\n- **Resource Pipeline**: Efficient asset loading and management\n- **Scripting Layer**: JavaScript integration for rapid prototyping\n\n### Key Components\n- **Game Class**: Main game loop and state management\n- **Player System**: Character controller and player interactions\n- **Entity Management**: Dynamic object creation and lifecycle\n- **Prop System**: Interactive game objects and environment elements\n- **JavaScript Manager**: Script execution and C++ binding\n\n### Adding New Features\n1. Create new classes in `Code/Game/`\n2. Add corresponding headers and implement functionality\n3. Register with the main game loop in `Game.cpp`\n4. Add any required assets to `Run/Data/`\n5. Update configuration files as needed\n\n## 📦 Dependencies\n\n### External Libraries\n- **FMOD**: Professional audio engine for sound and music\n- **Custom Engine**: Proprietary game engine (included as submodule)\n\n### Engine Features\n- Rendering system with shader support\n- Input handling and device management\n- Resource loading and caching\n- Debug rendering and tools\n- Math utilities and transformations\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n### Development Guidelines\n- Follow existing code style and conventions\n- Add appropriate comments and documentation\n- Test your changes in both Debug and Release builds\n- Update README.md if adding new features or dependencies\n\n## 📄 License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](../LICENSE) file for details.\n\n## 🔗 Links\n\n- **Engine Repository**: [Custom Game Engine](https://github.com/dadavidtseng/Engine)\n- **FMOD Audio**: [Official Website](https://www.fmod.com/)\n- **Issue Tracker**: Report bugs and request features\n\n## 🙏 Acknowledgments\n\n- FMOD by Firelight Technologies for professional audio capabilities\n- Custom engine development team\n- Open source community for inspiration and support\n\n---\n\n**Built with ❤️ using C++ and modern game development practices**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdadavidtseng%2Fprotogame3d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdadavidtseng%2Fprotogame3d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdadavidtseng%2Fprotogame3d/lists"}