Objective
Build a mini game prototype using Unity 3D for Android, integrated with Firebase and
Addressables. The architecture should follow an event-driven approach.
You can use any unity asset for UI or GameObjects.
Game Concept: Potion Collector
● Randomly few potions will appear on screen or in the world.
● Users will simply click on potions and collect them.
● Potions will disappear after a few secs.
● Each potion increases the score.
● The score and session data are saved in Firebase.
● Different potion types are loaded via Addressables.
● Custom events manage the game flow and UI updates.
Technical Requirements
1. Unity 3D (Target: Android)
● 3D environment with hyper casual gameplay mechanics (e.g., tap to collect, timed
spawns).
● No character control system; gameplay should revolve around player interaction with
spawning potions or timed actions.
● Collectible potion items placed randomly in the world.
● Score UI that updates when a potion is collected.
● Build must run on Android devices and support common screen resolutions.
2. Firebase Integration
● Use Firebase Realtime Database or Firestore to:
○ Save: Player score, session start, and session end time.
○ Load: Top 5 high scores for leaderboard display.
● (Optional) Use Firebase Authentication with anonymous login.
3. Addressables
● You can use https://bunny.net/ for hosting addressables and fetch it (14 days trial).
● Use Unity Addressables to load potion prefabs asynchronously.
● Implement a custom ScriptableObject inspector for managing potion data (e.g., name,
potency, icon, and description). The custom inspector should allow for easy editing of
potion properties directly within the Unity Editor, using features like text fields, sliders,
object fields, and text areas.
● At least 3 potion types with unique visuals/behaviors.
● Demonstrate ability to simulate remote updates (e.g., changing labels).
4. Event System
● Implement a custom or Unity-based event system.
● Fire and listen to at least 10 custom events throughout the game lifecycle. These should
include relevant parameters to facilitate data flow and logging. Examples include:
○ GameStartedEvent — parameters: timestamp, sessionId
○ GamePausedEvent — parameters: timestamp
○ GameResumedEvent — parameters: timestamp
○ GameEndedEvent — parameters: timestamp, totalScore
○ PotionSpawnedEvent — parameters: potionType, position
○ PotionCollectedEvent — parameters: potionType, value, timestamp
○ ScoreUpdatedEvent — parameters: newScore, scoreDelta
○ LeaderboardLoadedEvent — parameters: topScores[]
○ FirebaseSyncStartedEvent — parameters: operationType
○ FirebaseSyncCompletedEvent — parameters: operationType, success
● Events must drive UI updates, sound effects, Addressable asset loading, and Firebase
syncing.
● Encourage use of event managers or signal systems for decoupling logic.
Additionally, implement the concept of User Properties using Firebase Analytics or Firebase
Remote Config:
● Set properties such as player_level, session_count, last_active_date, and
preferred_potion_type.
● These properties can help customize gameplay, experiment with feature variants, and
segment users for analytics.
Deliverables
1. Submission Timeline
○ Submit the project within 3 days of receiving the task assignment email.
2. GitHub Repository
○ Full Unity project hosted in a public or private repository (include access if
private). Add
[email protected] and
[email protected],
if private repo.
○ Must include organized folders (Assets, Scripts, Prefabs, etc.) and commit
history.
3. README File
○ Game overview and interaction flow.
○ Firebase setup guide (exclude API keys).
○ Addressables usage notes.
○ Description of event system and its usage.
○ Build instructions for Android (include Unity version used).
4. Android APK Build
○ A working .apk file compatible with Android 8.0+.
○ Upload to Google Drive, GitHub Releases, or similar.
○ Include QR code or direct download link.
5. Gameplay Video
○ A 1–2 minute video showcasing core gameplay and Firebase/Addressables
usage.
○ Share via Google Drive, YouTube (unlisted), or Loom.
6. Firebase Console Access (Optional)
○ Editor access to a demo Firebase project (with mock/test data) to
[email protected],
[email protected] ○ Ensure no production credentials are exposed.
Evaluation Criteria
Area Focus
Gameplay Smooth control, intuitive experience on Android
Event System Clean decoupling using events
Firebase Proper implementation of data sync
Addressables Efficient and scalable asset management
Code Quality Modularity, readability, maintainability
Documentation Clarity and completeness