Creating a Game Boy Color in Blender & Substance

Priskah Khazaei and Benjamin Galinier told us about their cooperation during the making of the Game Boy Color, talked about their workflow in Blender, and showed us how they made the project disassemblable.

Introduction

We’re Priskah and Benjamin, currently Environment Artists at Ubisoft. We have worked in the same team since 2018 on projects such as Ghost Recon Breakpoint, Immortals Fenyx Rising, and Assassin’s Creed: Valhalla.

We’re part of the cinematic team in charge of creating all the real-time cinematics in-game. Our main challenge every day is: “how to render cool things with cinematic quality with all real-time constraints we have bound to the Ubisoft-made engine.”

So that’s pretty motivating to get to dig into the tech or artistic solution, “to cheat and trick” to better serve the directors' needs on their storytelling.

Nintendo Gameboy Color Project

Recently, we were training on Blender 3D to keep up with the latest trends and alternative workflows.

We wanted to take on a rather challenging Hard Surface Props, and since the Gameboy Color is a cool piece of tech and brings back so many memories we just went for it.

We used Blender for the main modelization of the different pieces, ZBrush for the making of the high poly meshes, Maya for a bit of rigging, Substance Painter and Photoshop for the texturing, and Marmoset Toolbag for the rendering in raytracing.

We found a lot of useful stuff on repair websites, high-resolution photos of the motherboard, and the shell. There is a large community of old-school hardware fans and it was a goldmine for references.

Even with these references in mind, we ended up with completely different renders; Priskah wanted to create a fanart that reflects her memories attached to this prop and Benjamin wanted to stick to the real prop reference.

Cooperation

Working as a team was the easiest part of this prop creation since we are used to working together. 

Priskah: At first I had the chance to recruit talented Benjamin to carry my back on the cinematic team and since I feel like we complete each other in terms of knowledge and skills, So yes, it is always a pleasure to work with my teammate.

Our planning was simple, when we had the time we worked on it. We just had to launch Discord and we were ready to go.

Benjamin: In production, we often work on the same props but on different aspects, for example, I would do the modeling and Priskah the texturing. But this time we knew it was going to be different because we would both be working on the modeling, so we had to be coordinated to create a consistent model, something that would work well together in terms of shape, details, and topology. So we would often review our changes together, warn each other if we foresaw a potential blocker, and of course share our models often to make sure they match perfectly.

Workflow

We planned to cut the GBC in half, Priskah did the front shell, front pieces like buttons and screen, while Benjamin did all the back shell with cartridge and motherboard.

Our Blocking was made in Blender. We began with the cross-section of the shells and we shared it between us to ensure that we used the same exact measurements, and have a perfect fit in the end.

We did not hesitate to share our different Blender files and our different pieces. For example, for the screw holes that needed to be perfectly aligned with the motherboard and the other shell. We used extensively a very well-known Blender plugins combination called Hard Ops and BoxCutter that helped us to speed up our workflow and be more efficient.

HardOps basically adds a lot of smart features to Blender, to make it faster and even more powerful, while BoxCutter greatly simplifies the process of creating and managing booleans. We definitely recommend those addons to any intermediate to advanced Blender user, especially if you do Hard-Surface modeling.

High Poly

No sculpting was involved per se but we used ZBrush to produce a ZRemeshed version of our model, with an even topology that could be subdivided without artifacts and produce a clean high poly.

To do this, we start by defining UV islands in Blender, with a cut every time there is a Hard Edge. Then in ZBrush, we define Polygroups by UVs to help the Zremesher understand where it should not smooth the model.

UVing

HardOps can do most of the heavy lifting for you when it comes to UVs because there is a checkbox to automatically mark seams where there is a Hard Edge, which is exactly what you want when you are doing Hard Surface. A few seams were then done by hand.

We used two plugins, UVToolKit to straighten shells and UVPackMaster to pack them. 

Baking

We used Substance Painter to bake most of the pieces, and Marmoset Toolbag when we needed a bit more flexibility to tweak the cage easily.

Texturing

Priskah: Texturing part is so satisfying, looking for all the little details you made to make them pop up to the eyes, I loved playing with Roughness Map adding finger smudges, this is the interesting part when textures add a background story to the prop you’re making.

Benjamin: The plastic shader mostly took advantage of Marmoset Toolbag 4 ray-tracing capabilities, so in Substance Painter it was just a matter of creating a noisy Normal Map that would emulate all the little bumps on the shell. That Normal Map also helps Marmoset to diffract the light and make the plastic a little blurry. An anchor point also tells Substance Painter to avoid specific areas when placing the noise, because I wanted some parts to be smooth and shiny.

Benjamin: For the motherboard, I was lucky enough to find a very decent photo of both of the sides on the Internet, so I just mapped it on a low-resolution model with some extrudes here and there to add a bit more volume to it. The photo was perfect because it was High Resolution, it had even lighting and almost no perspective, which is ideal for a texture. But I had no Normal, Roughness, and Metalness to work with, so I used Substance Designer to generate the two first and I hand-painted the Metalness.

Priskah: I wanted to add a personal touch to the final render adding stickers on the GBC shell. Basically, these are stamps all over a mesh decal I placed over the GBC shell.

I used Procreate to draw them and then with Substance Painter I created brushes with alphas on the different shapes to stamp them all over the mesh decal surface: 

Assembling and Rendering the GameBoy

Priskah: First thing I think about before rendering is the lighting. What do I want to highlight, what is the mood of the scene? Here come tons of experiments in terms of colors shading lights.

I used the video importer from Eddie Ataberk to get a flipbook from a video .mp4 for the screen making.

Benjamin: The setup for the plastic shader is simpler than it looks really, we just turn on the Refraction in the Transmission tab, give it the desired tint, plug in the Normal Map and Marmoset takes care of the rest, provided we turn on the ray-tracing of course, otherwise the render doesn’t look nearly as accurate.

Then for the lighting, I started by importing an HDRI that I like from Substance Painter to Marmoset Toolbag, called “Tomoco Studio”. You can usually find Painter’s HDRIs in this folder on your computer:

C:\Program Files\Allegorithmic\Substance Painter\resources\shelf\allegorithmic\environments

Once I had this inside Marmoset Toolbag, I adjusted the brightness, turned the background into a solid color, and added a few soft lights where it was needed. Usually, when I'm not looking for a specific mood and just want to light a prop evenly, this is my go-to method.

For the final render, my process was to crank up the light Bounces and Transmission in the Render Tab, as well as the samples while rendering to denoise: it makes the renders significantly longer but gets rid of a lot of lighting artifacts if you're going for the absolute crispiest quality. This would be useless on a less demanding shader though, so try and adapt this to your needs.

Good practice in my opinion is also to render your work in a higher resolution than needed and then downscale it. Upon experimenting, I found that you get to keep more details that way.

Making an Animation

Benjamin: For the animation, I created a very simple rig in Maya, then I animated the explosion and used the graph editor to time it a little better. The rotation was handled by a “Turntable” object in Marmoset Toolbag.

Conclusion

It took us almost 2 weeks to assemble everything.

Priskah: My main challenge would be on using a completely new modelization software for me. In that case, it was Blender and digging deep into it and its addons/plugins to create a totally new workflow on hard surface modelization. I had to focus a lot on not forgetting those shortcuts, trying my best to optimize as much as I could the number of clicks.

The main advantage I wanna say that we just had to launch Discord and talk for hours about how or where those screws would match each other's shells, laughing nervously late at night tired of tweaking those hard edges for hours, forgetting shortcuts, and that’s what we can call teamwork. When we’re on the same boat sharing our momentary struggle, we’re so happy to be done with this project, really it was worth the patience.

The major advice I wanna give is not to give up on trying, on being curious, on looking around, and always keeping a child soul if I can say is easily amazed by new process or what you discover, this is when you keep on being excited by the project you’re working on that you’ll find a new precious process and keep up. Do not be afraid of trying new things even if it can be hard. Yes, there will be mistakes but that’s fine! That’s part of the process, believe it or not, but if you had it all right and perfect at first strike this won't be fun. Ask Saitama.

Benjamin: I’d say the main challenge that I faced was to keep everything as accurate and functional as possible, I really wanted to stay faithful to the original because it’s a beautiful piece of tech as well as a great memory for me, it was my first ever gaming device.

As for the advantages of working as a team, it made the whole process more fun, we tried to solve the problems together, we gave each other feedback, we laughed, and I’m convinced that the result is better than what we would have achieved if we did it on our own without sharing anything, it really is the best of both our worlds.

To the aspiring Props Artists, I’d like to say: stay curious, do projects that you like, submit your work to the appreciation of your peers even if you’re shy, and lastly I understand that Digital Arts can be very time-consuming but don’t forget to have other hobbies, interests, and relationships that will influence your artistic vision.

Now that we have acquired the basics in Blender we want to push it a step further by creating a full cinematic environment inside of Unreal Engine, with Blender as our main modeling tool. It’s definitely going to be a challenge but now, we are ready!

Thank you for your interest in our work! 

Priskah Khazaei & Benjamin Galinier, 3D Environment Artists at Ubisoft

Interview conducted by Theodore Nikitin

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more