diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..d4769a7 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,41 @@ +# Contributing to FrogFPS + +## Coding Standards + +### C# Conventions + +- Use `PascalCase` for class names, `camelCase` for methods/properties +- Godot nodes: use `[Export]` for inspector-exposed fields +- Signals: connect via code using `Connect()` or `[Signal]` attribute +- Prefer composition over inheritance where possible + +### Scene Files (.tscn) + +- Keep scene hierarchy flat — avoid deep nesting +- Use unique node names (no "Node", "Node2D", etc.) +- Group related nodes under a named parent + +### Git Workflow + +- Small, focused commits with descriptive messages +- Branch naming: `feature/`, `bugfix/` +- Pull requests should include what/why, not just what changed + +## AI Development Guidelines + +When working with AI assistants on this project: + +1. **Context first** — share relevant scene structure and existing code before asking for implementations +2. **Godot patterns** — AI should follow Godot 4 C# conventions (signals, `_Process`, `_PhysicsProcess`, etc.) +3. **Incremental changes** — one feature at a time; verify each works before moving on +4. **Scene integrity** — don't modify `.tscn` files directly unless necessary; prefer code-based node creation + +## Quick Reference + +| Concept | Pattern | +|---------|---------| +| Node script | `public partial class MyClass : Node3D { ... }` | +| Export variable | `[Export] public int Health { get; set; } = 100;` | +| Signal | `[Signal] public delegate void HealthChangedEventHandler(int newHealth);` | +| Process loop | `public override void _Process(double delta) { ... }` | +| Physics loop | `public override void _PhysicsProcess(double delta) { ... }` | diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..030cd10 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Imrayya + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..24ca484 --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# FrogFPS + +A Godot 4.7 + Mono (.NET 8) FPS game project. + +## Tech Stack + +- **Engine:** Godot 4.7 (Forward Plus) +- **Language:** C# (.NET 8) +- **Physics:** Jolt Physics +- **IDE:** VS Code / Rider recommended + +## Getting Started + +### Prerequisites + +- Godot 4.7+ with .NET SDK installed +- .NET 8 SDK + +### Build & Run + +```bash +# Open in Godot Editor (recommended) +godot --path . + +# Or build from CLI +dotnet build FrogFPS.sln +``` + +## Project Structure + +``` +. +├── Base.tscn # Root scene node +├── FrogFPS.csproj # .NET project file +├── FrogFPS.sln # Solution file +├── project.godot # Godot project config +└── icon.svg # Project icon +``` + +## AI Development Notes + +This project is set up for AI-assisted development. Key conventions: + +- C# scripts follow Godot 4 patterns (`[Tool]`, `Node3D`/`CharacterBody3D` base classes) +- Scene files are in `.tscn` format (text-based, version-controlled) +- See `CONTRIBUTING.md` for coding standards and AI interaction guidelines + +## License + +MIT License — see [LICENSE](LICENSE) for details.