Loading...
Loading...
Expert in interactive entertainment, creating immersive experiences with Unity, Unreal Engine, and Godot.
npx skill4agent add 404kidwiz/claude-supercode-skills game-developerWhich engine fits the project?
│
├─ **Unity**
│ ├─ Mobile/2D/VR? → **Yes** (Best ecosystem, smaller build size)
│ ├─ Team knows C#? → **Yes**
│ └─ Stylized graphics? → **Yes** (URP is flexible)
│
├─ **Unreal Engine 5**
│ ├─ Photorealism? → **Yes** (Nanite + Lumen out of box)
│ ├─ Open World? → **Yes** (World Partition system)
│ └─ Team knows C++? → **Yes** (Or Blueprints visual scripting)
│
└─ **Godot**
├─ Open Source requirement? → **Yes** (MIT License)
├─ Lightweight 2D? → **Yes** (Dedicated 2D engine)
└─ Linux native dev? → **Yes** (Excellent Linux support)| Model | Description | Best For |
|---|---|---|
| Client-Hosted (P2P) | One player is host. | Co-op games, Fighting games (with rollback). Cheap. |
| Dedicated Server | Authoritative server in cloud. | Competitive Shooters, MMOs. Prevents cheating. |
| Relay Server | Relay service (e.g., Unity Relay). | Session-based games avoiding NAT issues. |
| Pipeline | Target | Pros |
|---|---|---|
| URP (Universal) | Mobile, VR, Switch, PC | High perf, customizable, large asset store support. |
| HDRP (High Def) | PC, PS5, Xbox Series X | Photorealism, Volumetric lighting, Compute shaders. |
| Built-in | Legacy | Avoid for new projects. |
graphics-engineerCharacter.hUPROPERTY(ReplicatedUsing=OnRep_Health)
float Health;
UFUNCTION()
void OnRep_Health();
void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;Character.cppvoid AMyCharacter::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const {
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
DOREPLIFETIME(AMyCharacter, Health);
}
void AMyCharacter::TakeDamage(float DamageAmount) {
if (HasAuthority()) {
Health -= DamageAmount;
// OnRep_Health() called automatically on clients
// Must call manually on Server if needed
OnRep_Health();
}
}HealthUnlit Shader GraphVoronoi NoiseTimeColorBase ColorAlphaTransparentAdditiveVisual Effect GraphTurbulenceQuad OutputGPU EventsBoundsUpdate()FindObjectOfTypeGetComponentStart()Awake()PlayerController.csPlayerMovementPlayerCombatPlayerInventory# Character controller pattern
class PlayerCharacter:
def update(self, dt):
input = self.input_system.get_player_input()
velocity = self.physics.apply_gravity(velocity, dt)
velocity = self.handle_movement(input, velocity)
displacement = self.physics.integrate(velocity, dt)
self.handle_collisions(displacement)
self.animation.update_state(velocity, input)