0% found this document useful (0 votes)
17 views4 pages

Unity 3D Potion Collector Game Prototype

The document outlines the development of a mini game prototype called 'Potion Collector' using Unity 3D for Android, integrated with Firebase and Addressables. The game involves collecting randomly appearing potions to increase the score, with data saved in Firebase and potion types loaded via Addressables. It specifies technical requirements, deliverables, and evaluation criteria for gameplay, event systems, Firebase integration, asset management, code quality, and documentation.

Uploaded by

lovely Pakkiee
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views4 pages

Unity 3D Potion Collector Game Prototype

The document outlines the development of a mini game prototype called 'Potion Collector' using Unity 3D for Android, integrated with Firebase and Addressables. The game involves collecting randomly appearing potions to increase the score, with data saved in Firebase and potion types loaded via Addressables. It specifies technical requirements, deliverables, and evaluation criteria for gameplay, event systems, Firebase integration, asset management, code quality, and documentation.

Uploaded by

lovely Pakkiee
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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 [Link] 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 [Link]@[Link] and dinesh@[Link],
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
[Link]@[Link], dinesh@[Link]
○​ 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

Common questions

Powered by AI

Firebase user properties such as player_level, session_count, and preferred_potion_type can be leveraged to personalize gameplay experiences and enhance user engagement. By tracking these properties, developers can implement adaptive difficulty settings, unlocking features as players progress (e.g., introducing new potion types at higher player levels). Customizing content based on session_count could involve offering rewards for milestone sessions, thus promoting continuous engagement. Recognizing user preferences like preferred_potion_type allows for tailoring in-game offers or events that cater to individual user interests, enhancing player satisfaction and retention .

To optimize Firebase data sync in a Unity mini game, consider using batched writes and transactions to minimize database writes and ensure consistency. Leveraging Firebase's offline capabilities can also help manage data sync efficiently, enabling local data persistence when connectivity is intermittent . Challenges include managing network latency and ensuring data consistency across sessions, especially in scenarios with high-frequency data updates like real-time leaderboards. Additionally, optimizing the structure of database queries to reduce latency and employing Firebase's built-in security rules are essential for enhancing performance and data integrity .

Anonymous login with Firebase Authentication simplifies user onboarding by allowing instant access to the game without registration, which can lead to increased initial engagement and minimized drop-off rates . This approach also facilitates user data capture from the first session, helping developers tailor experiences to increase retention and personalize content. However, drawbacks include challenges in transitioning users to permanent accounts, as it requires additional effort to link anonymous data to a persistent identity. Anonymity can also limit the ability to provide long-term personalized features unless users convert to identified accounts .

A custom event system in Unity plays a pivotal role in managing asynchronous game operations by facilitating loose coupling and enhancing modularity. By dispatching events to subscribed listeners, it allows different game components to react to changes without direct dependencies. This can be achieved through implementing an event manager or signal system that broadcasts events such as GameStartedEvent or PotionCollectedEvent . The integration involves defining event signatures, implementing listeners across relevant game objects, and invoking these events during gameplay states. Such systems harmonize complex interactions like UI updates, audio effects, and data syncs, optimizing performance and easing future modifications .

Providing a detailed README file and gameplay video is essential for conveying comprehensive information to collaborators and end-users alike. A well-structured README file offers clarity on project setup, Firebase configurations, and event system explanations, streamlining the onboarding process for developers . It ensures transparency of the development architecture and provides essential guidance for establishing the development environment. A gameplay video, conversely, visually communicates the game's features, controls, and core mechanics which is crucial for stakeholders to quickly grasp gameplay quality and mechanics without needing to run the game directly. This dual-documentation approach enhances both technical understanding and project accessibility .

Organizing a GitHub repository involves structuring files into coherent directories such as Assets, Scripts, and Prefabs, and maintaining a clear commit history to reflect development progress . This organization is critical for collaboration as it enhances navigation and comprehensibility of the project codebase for team members. It facilitates version control, crucial for managing changes and integrating contributions seamlessly. Regular updates through descriptive commit messages help in tracking modifications and rollbacks when necessary, which is essential for sustaining the code's integrity and assisting in debugging. Additionally, providing access to stakeholders and maintaining a README file contribute to effective project management and collaboration .

Implementing a ScriptableObject inspector for managing potion data in Unity is crucial for enhancing data organization and usability within the game development process. ScriptableObjects provide a versatile way to manage large amounts of shared data, allowing developers to separate script logic from game data. The custom inspector enhances this by providing a user-friendly interface in the Unity Editor for direct real-time modification of potion properties, such as name, potency, and visuals . This improves data management efficiency, supports team collaboration by standardizing data handling, and reduces runtime errors by allowing data updates without recompiling scripts, thus accelerating the development workflow .

Addressables in Unity provide a way to handle asset management efficiently by allowing asynchronous loading and unloading of assets, which can be stored remotely or locally. This system supports scalability by reducing the initial load size and enabling the updating of assets without re-deploying the entire application . Integrating Addressables with Firebase enhances this system by leveraging Firebase's realtime database or Firestore for dynamic data integration, such as saving scores and loading leaderboards, which facilitates a seamless update and synchronization of game state data across different sessions .

Custom events are integral to the game's lifecycle as they manage state transitions and UI updates, enhance system architecture by decoupling game logic, and improve inter-component communication. For example, custom events like GameStartedEvent, GamePausedEvent, and PotionCollectedEvent encapsulate state changes and trigger corresponding updates across the game's modules . These events drive UI updates, such as score displays, and sound effects, leveraging event managers to handle these actions asynchronously, reducing direct dependencies between different modules. This not only enhances gameplay through real-time feedback and seamless transitions but also improves system design by enabling easier maintenance and scalability .

A 3D hyper-casual gameplay mechanic, characterized by simple and intuitive controls such as tap-to-collect, significantly boosts player engagement in mobile games. These mechanics lower the barrier to entry, broadening appeal across different demographic segments and enhancing immediate engagement due to their accessibility . The simplicity of interaction allows players to quickly understand and immerse themselves in the game, often resulting in higher retention rates. Additionally, the visual and interactive richness of 3D environments makes the gameplay experience more engaging and dynamic, sustaining player interest over time due to evolving challenges and the visually rewarding experience of asset collection .

You might also like