ProjectsNovablocks

Senior Product Engineer / Tonic LabsJune 2022 - May 2023

Sandbox building & coding virtual world where the only limit is your imagination. Novablocks is a ThreeJS sandbox browser-based game built with React and Rails.

Emmet in the world of Novablocks.

Context

After working on the no-code database for a long time, I decided to try out a new project. So I asked my employer if it's okay for me to work on another project. He agreed and asked if I was interested in a project that he and his friends are building.

The project was a sandbox game built with ThreeJS. It was similar with sandbox games like Minecraft, Roblox, and RecRoom. I agreed to work on it so I decided to learn ThreeJS and manage to build a simple Minecraft clone, called Minecrafui, for practice. It was a rough start at first since I was in a new codebase. Also, unlike in the previous project where I was mostly working on it independently, I now have teammates in this project.

They have a core game engine built but wanted to create more UI functionalities and make use of a back-end to customize the game. With this, I became a great addition to their team in building features that are critical for the first version of the game. I contributed a lot to it, like refactoring the codebase from Rails views + Hyperscript to ReactJS, changing texture packs, developing the world and blocks editor, adding a visual programming UI via Rete.js for block events, and more.

  • Research
  • Product Design
  • Database Design
  • Development
  • Documentation

Tech stack

Overall Experience

I've got to learn a lot of things in regards to ThreeJS and game development. I grew more as a dev since I got to also work with AI (OpenAI and Elevenlabs) and built a visual programming editor and engine's interpreter using Rete.js. Having background with building full stack apps, database design, building compilers, experienced with playing games and having a product sense, I was able to be a valuable addition to the team. To which I was able to give my feedback and help in the product direction of the game.

Moreover, I built a lot of critical features that contributed to hitting the target investor funding and the success of the project when it got presented at Game Developers Conference at San Fransisco.

The best experience that I have with the project is being able to contribute not only to the development, but also to the product design and it's direction. Having freedom to explore and experiment with ideas for the game, and the team being open to hearing and implementing it made me enjoy my time there.

Moving forward, the team is expanding, bringing in more 3D modellers and developers to the mix. I'm excited to see how the game will evolve and grow. As for me, I'm ready for my next adventure.

Notable Contribution

Helped build core features and get the first version out and raise investor funding.

List of critical features that I've built:

Other features that I've built:

  • Inventory
  • Emotes System
  • Prototype for Game Mechanics
  • Resource Loader improvement
  • I also did some bug fixes and minor improvements like:
    • allowing non authenticated users to use the hub.
    • adding a Tree Generator that spawns trees in the world. (e.g. balloon, matchstick, pyramid, etc.)
    • adding invert/sculpt indicators.
    • adding an update skybox functionality (uses CubeTexture - ThreeJS)
    • fixing how the chat open and closes.
    • remove unnecessary UIs.
    • hides "create world" for a joined player.
    • adding a first-person model playing a placing/removing block animation (uses ThreeJS)
    • etc.

PS: I got permission to write about the features I've built at Novablocks.

Client Feedback

Feedback I got from the client after a year of working with them.

Generally speaking, Joey has been a huge value add in helping get the game off the ground, particularly through the midst of uncertainty.

Joey’s quality of output & general consistency is of an extremely high standard - and the features Joey has built have had a tremendous impact on the game itself already.

Working with minimal product spec, working through obfuscation, being proactive and taking initiative, considering the product and experience, sharing that and moving into implementation.

Consistency and communication. Consistent in updates to GitHub and Slack. Demo-ability / showcasing of features is outstanding.

Product skills - going into Excalidraw and considering journey and UI.