Skip to content

LoL Engine Services Checklist

Profiles: RPG, Roguelite, Puzzle Purpose: Fast, practical default service toggles per game type.


Legend

  • ON = Enable by default
  • OPT = Optional (depends on your design)
  • OFF = Usually unnecessary at first

Input is handled via Unity Input System directly and is not currently a ServiceConfiguration toggle.


Service Matrix

Service RPG Roguelite Puzzle
Event Manager Service ON ON ON
Resource Service ON ON ON
Object Pool Service ON ON OPT
Audio Service ON ON ON
Save System ON ON ON
Serialization Service ON ON ON
Compression Service OPT OPT OFF
Encryption Service OPT OPT OPT
Auto Save Service ON OPT ON
Quick Save Service OPT OFF OFF
Localization Service ON OPT OPT
Time Service ON ON OPT
Notification Service ON ON OPT
Game State Manager Service ON ON ON

RPG Checklist (Content-heavy, persistent progression)

Core

  • [ ] Enable Event Manager Service
  • [ ] Enable Resource Service

Gameplay + UX

  • [ ] Enable Audio Service
  • [ ] Enable Game State Manager Service
  • [ ] Enable Notification Service
  • [ ] Enable Time Service

Persistence

  • [ ] Enable Save System
  • [ ] Enable Serialization Service
  • [ ] Enable Auto Save Service
  • [ ] Enable Localization Service
  • [ ] (Optional) Enable Compression Service
  • [ ] (Optional) Enable Encryption Service
  • [ ] (Optional) Enable Quick Save Service

Performance

  • [ ] Enable Object Pool Service

Roguelite Checklist (Run-based, high spawn/despawn)

Core

  • [ ] Enable Event Manager Service
  • [ ] Enable Resource Service

Gameplay Loop

  • [ ] Enable Object Pool Service
  • [ ] Enable Audio Service
  • [ ] Enable Game State Manager Service
  • [ ] Enable Time Service
  • [ ] Enable Notification Service

Persistence

  • [ ] Enable Save System
  • [ ] Enable Serialization Service
  • [ ] (Optional) Enable Auto Save Service (if mid-run resume is supported)
  • [ ] (Optional) Enable Compression Service
  • [ ] (Optional) Enable Encryption Service
  • [ ] (Optional) Enable Localization Service

Puzzle Checklist (Lean runtime, clean UX)

Core

  • [ ] Enable Event Manager Service
  • [ ] Enable Resource Service

Gameplay + UX

  • [ ] Enable Audio Service
  • [ ] Enable Game State Manager Service

Persistence

  • [ ] Enable Save System
  • [ ] Enable Serialization Service
  • [ ] Enable Auto Save Service
  • [ ] (Optional) Enable Encryption Service
  • [ ] (Optional) Enable Localization Service

Optional Systems

  • [ ] (Optional) Enable Object Pool Service
  • [ ] (Optional) Enable Time Service
  • [ ] (Optional) Enable Notification Service
  • [ ] Keep Compression Service OFF unless save size justifies it
  • [ ] Keep Quick Save Service OFF unless game design specifically needs it

RPG (safe default)

Enable all except: - Compression Service - Encryption Service - Quick Save Service (Then turn these on only when requirements demand it.)

Roguelite (performance default)

Prioritize: - Object Pool Service - Time Service - Game State Manager Service - Audio Service Keep Auto Save optional unless you support run resume.

Puzzle (minimal default)

Start with: - Core services - Audio - Save + Serialization - Game State Manager Add extras only when concrete features require them.


Rule of Thumb (Important)

Do not enable services "just in case." Enable only what the current milestone uses, then expand intentionally. This keeps initialization simpler, reduces debugging noise, and avoids hidden dependencies.

Resource tuning note: - Configure both memory budget and cache entry cap in ResourceManagementConfig (maxMemoryBudgetMB, maxCacheEntries).

Notification hygiene note: - Ensure all notification subscriptions are unsubscribed on object teardown. - High subscriber counts now produce warnings to help catch stale listener buildup.


Quick Boot Verification (all game types)

Before Play: - [ ] ServiceConfiguration asset exists - [ ] ImprovedGameInitializer is in entry scene - [ ] ServiceConfiguration assigned on initializer - [ ] Entry scene is Scene 0 in Build Settings - [ ] No compile errors in Console

After Play: - [ ] Services initialize without timeout - [ ] No "Service not found" errors - [ ] Enabled services can be resolved through ServiceLocator