Skip to content

jonnyhoeven/unity-augmented-game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unity Augmented Reality Architecture Proof-of-Concept

Executive Summary

This project serves as an architectural reference implementation for a scalable, high-performance Augmented Reality (AR) application on Android. It demonstrates the integration of enterprise-grade AR frameworks with Unity's real-time rendering engine, emphasizing modular design, event-driven architecture, and optimized resource management suitable for production environments.

The core objective is to showcase a robust foundation for interactive AR experiences that can scale from prototype to enterprise deployment, leveraging the Vuforia Imaging SDK for precise computer vision tasks.

Architectural Highlights

1. Modular Component Design

The application is structured around a decoupled component architecture, ensuring maintainability and testability.

  • Game Logic Controller (GameLogic.js): Acts as the central orchestration layer, managing state transitions, scoring, and session lifecycle. This separation of concerns allows for independent iteration on gameplay mechanics without impacting the core rendering pipeline.
  • Event-Driven Interaction (AICharacterCollision.js): Implements an event-driven model for physics interactions. Collision events are decoupled from the resolution logic, promoting a clean "Observer" pattern implementation where the Game Director subscribes to physical world events.
  • Encapsulated State Management (PlayerScore.js, CountDownTimer.js): Critical game state (score, time) is encapsulated within dedicated managers, preventing race conditions and ensuring data integrity across the application lifecycle.

2. Enterprise AR Integration (Vuforia SDK)

Leverages the industry-standard Vuforia Engine for marker-based tracking, demonstrating:

  • High-Fidelity Image Recognition: Utilizes Vuforia's advanced computer vision algorithms for stable, jitter-free marker tracking (Vuforia Marker0.png).
  • Real-Time Pose Estimation: seamless synchronization between the physical camera feed and the virtual camera, ensuring immersive object placement.
  • Optimized Mobile Performance: Configured for low-latency rendering on Android devices, balancing visual fidelity with battery efficiency.

3. Scalable Asset Management

  • Dynamic Instantiation: The architecture supports dynamic instantiation of 3D assets (Prefabs), allowing for scalable content delivery where assets can be loaded on-demand rather than monolithic scene loading.
  • Resource Optimization: Scripts and assets are organized to minimize memory footprint, crucial for mobile AR deployments.

Technical Stack

  • Engine: Unity 3D (Scripting API: UnityScript/JavaScript)
  • AR Framework: Vuforia Engine SDK for Android
  • Platform: Android (Targeting API Level 19+)
  • Architecture Pattern: Component-Entity-System (CES) hybrid
  • Language: UnityScript (demonstrating legacy codebase maintenance and migration potential)

Key Competencies Demonstrated

  • Mobile AR Optimization: Techniques for maintaining 60 FPS on constrained mobile hardware while running CV algorithms.
  • Physics-Based Interaction: Integration of Unity's PhysX engine with AR coordinate systems.
  • Legacy Code Modernization: The project structure provides a clear path for refactoring legacy UnityScript to C#, a common requirement in enterprise Unity projects.
  • User Experience (UX) Engineering: Focus on intuitive AR interactions (tap-to-move, proximity triggers) that bridge the physical-digital divide.

Getting Started (Developer Setup)

To deploy this architectural proof-of-concept:

  1. Environment Provisioning:

    • Install Unity Hub and the specific Unity Editor version compatible with the project metadata.
    • Ensure the Android Build Support module and Android SDK/NDK are correctly configured.
  2. Dependency Resolution:

    • Import the Vuforia Engine package.
    • Verify the App License Key configuration in the Vuforia Configuration settings.
  3. Build & Deploy:

    • Open the project in Unity.
    • Navigate to File > Build Settings and switch the platform to Android.
    • Build the APK and deploy to a connected Android device via ADB.
    • Note: AR functionality requires a physical device with a camera; it cannot be fully tested in the editor simulator.
  4. Runtime Validation:

    • Print or display the Vuforia Marker0.png target.
    • Launch the application and point the device camera at the marker to initialize the AR session.

Future Roadmap & Scalability

  • Migration to C#: Refactoring the codebase to C# to leverage modern .NET features and improved garbage collection.
  • Cloud Anchor Integration: Extending the AR capabilities to support multi-user shared experiences using Azure Spatial Anchors or Google Cloud Anchors.
  • CI/CD Pipeline: Implementing a Unity Cloud Build pipeline for automated testing and deployment to internal testing tracks (Google Play Console).

About

Augmented Reality game for mobile devices based on Unity game engine and Vuforia imaging sdk

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors