Created a simple color wheel picker UI, allowing users to customize their store’s color. The interface includes a circle with a reticle for hue and saturation calculation, a slider for brightness computation, and a dynamic square’s color background reflecting real-time changes according to the selected hue, brightness, and saturation values.
Developed an intuitive avatar editor UI, enabling users to personalize their avatars with owned clothes and accessories. Categorized items in separate tabs based on asset type, with a 3D viewport for real-time visualization of changes on the user’s avatar
Ensured full compatibility across computer platforms and mobile devices for both user interfaces.
KaraOkulta serves as Mexico’s office for the Romanian game development company Amber Studios. They mainly provide QA services for other studios or game projects, but they also develop mobile and Roblox games/experiences.
In 2023, KaraOkulta launched their newest Roblox project, Secret Neighbor. With this newest experience, they were ready for a new project. So with a friend of mine, we decided to apply for the new intern positions.
After being accepted at the studio, we had the decision to join a Unreal Engine project (C++) or a Roblox project (Luau). We decided to join the Roblox project because it was a rare opportunity and sounded fun.
A team of 3 (my friend, my lead, and me), were in charge of all the engineering and programming of the “project”. Each day we had a daily standup with the whole team, where we talked about what we did yesterday, what we are doing today, and if we had any obstacles; we sometimes shared our progress on features with the whole team.
But on Thursdays, the whole engineering team had a separate meeting, where we shared with more technicality the features we were working on. Due to being a hybrid internship, we had our meetings on Microsoft Teams, and we managed our project on Bitrix24 and Bitbucket.
I worked on User Interfaces (GUI’s in Roblox Studio). I implemented and programmed the interfaces following our Game Design Document. Each time I finished one, I asked for feedback from our Game Design team. And of course, all the art and assets came from our Arts team.
Some interfaces were easy to implement, like clicking a button and saving a color, updating the name of the player’s store in-game, or selecting an image for the user’s store to show up in the minimap. But other features were more complicated to develop.
For example, I had to create a color wheel from scratch, because Roblox Studio doesn’t have a native one. This color wheel helps the player to change the color of their in-game store. So with some research, Roblox Studio documentation (which is superb), and YouTube videos, I created a color wheel that worked on the Hue, Saturation, and Value model (HSV). Also, this color wheel had to work on the PC platform and the mobile platform, which proved to be challenging for some days.
Other user interfaces that I worked on were a Player Avatar Customization and a Store Decoration system. These too proved to be challenging, because they were to be updated in real-time and had to be responsive to the players’ Roblox inventory and purchases.
At the start of the project, it was fun, but by the end, we were not developing a game (more like a service/experience); and that took the fun and the passion out of me. I’m grateful for this internship, it let me see and participate in these dynamics that occur in game development when working on a medium-sized team.
Of course, I gained valuable experience and knowledge when it comes to estimating your deadlines and collaborating and communicating with your colleagues. But, this internship also showed the not-so-kind and pretty side of the game development industry.