My Room Decor
About
"My Room Decor" was an internship project that introduced me to isometric game development and the basics of augmented reality.
Project Info
Role: Gameplay and Design Programmer
Team Size: 2
Time Frame: 12 Weeks
Engine: Unity (C#)
Introduction
The project is based on existing isometric room decoration games. We decided to implement some ECS and unity's UI toolkit into the project. The UI toolkit is a package in unity that introduced a web-based design methodology for game UI. An augmented reality feature was added at the end using unity's AR foundation package.
UI Toolkit
UI Toolkit is inspired by standard web technologies. If you have experience developing web pages or applications, your knowledge is transferable, and the core concepts are familiar. The Unity Extensible Markup Language (UXML) document mimicked HTML and XML, while Unity Style Sheets (USS) mimicked CSS. Unity allows the instantiation of the UXML files using C# and further query elements from the visual tree to modify or register interactions. The list of Furnitures and the button interactions were all implemented with UI toolkit thus allowing the efficient reuse of each component.
Augmented Reality
The decision to integrate an Augmented Reality feature into the project was made a week prior to the completion of the internship. In a week's time I was only able to learn the fundamentals of AR and the core of the API provided by unity. With this limited knowledge I decided to implement a basic image recognition along with object placement. The feature allows the user to view the furniture models in AR. Unity provides an interface to upload images to be tracked and events that trigger on image detection. Using this I wrote scripts to receive the event and place the furniture models on the transform of the tracked image.
Models and Shaders
UI Toolkit is inspired by standard web technologies. If you have experience developing web pages or applications, your knowledge is transferable, and the core concepts are familiar. The Unity Extensible Markup Language (UXML) document mimicked HTML and XML, while Unity Style Sheets (USS) mimicked CSS. Unity allows the instantiation of the UXML files using C# and further query elements from the visual tree to modify or register interactions. The list of Furnitures and the button interactions were all implemented with UI toolkit thus allowing the efficient reuse of each component.
Check out the repository at github.com