Recreating Nintendo Game Boy Color in Blender & Adobe Illustrator

Matthew Gilbert shared the workflow behind the Nintendo Game Boy Color project, explained how the plastic material was made, and talked about the texturing process.

Introduction

Hi all! I’m Matt Gilbert, a 3D and 2D designer from the UK, who specialises in brand visualisation and product rendering. I’ve two cats as well, but you probably didn't come here to read about me talking about them.

So, my first introduction to 3D was in 2016. It started out as most people do, which is opening Blender, seeing all of the settings, all of the modifiers and all of the tools, and thinking to myself, “How am I ever going to get to the bottom of this?” Going on from there, it was a case of following the legendary by this point donut tutorial from Andrew Price, to gain the basics of the software. From there, I started out by making a few smaller isometric 3D scenes and it kind of just ballooned from there as a hobby. It wasn't until I studied graphic design at university that I realised this was actually something that could translate into commercial design.

Apart from my side freelance work, my day-to-day job is working at a creative design studio in London called OMSE. I’m the ‘3D guy’ there, so it’s my job to not only participate in the concept and ideation of brands and branding in general but then translate our vision into the brand itself. Some past projects I’ve worked on, both at OMSE and whilst freelancing, were an Indo-Japanese gin (DOJA), a unique online gardening marketplace (Sproutl), a creative conference (Renaissance), and then further afield in my freelance work, a company that specialises in revolutionising the way that properties are sold (Flyp), for a branding agency called How&How. 

The Nintendo Game Boy Color Project

I always try to push my skills as a 3D designer, and realised I’d never really tried to model something as accurately as possible, so thought this would be a brilliant exercise to push my skills.

There’s often a bit of a divide between hyper-accurate modelling and hyper-real renders – on the one hand. you’ll use a software like CAD to make a model that's super accurate but is just a series of grey, untextured, and unlit objects. On the other hand, you have a hyper-real render of an object, but it might not be the most accurate depiction of the model, dimensions- and detail-wise. I thought it would be a good idea to push myself to combine both of these styles together in Blender. Also, I absolutely love the look of semi-transparent tech. If I’m honest, that’s the main reason I started this.

With regards to working with reference images, I find it best to use a scattergun approach at first – going out onto the internet/into books and finding basically anything that remotely ties to the project you’re working on. I also use a piece of software called PureRef to organise and sort my references. It helps that due to the Game Boy Color being such a modded and tinkered-with device, there are lots and lots of reference images available on the internet – the tricky thing though is finding suitable high res images suitable for the details and photo-scanned assets. 

Modelling

As you've already probably guessed, my main rendering and modelling software is Blender. Whilst there are other pieces of software, such as Houdini for particle simulation and Marvelous Designer for cloth simulations, I think Blender is the one case where "jack of all trades, master of none" doesn't apply – the amount of flexibility where you're able to do 95% of a project's work inside one piece of software is, to me, what makes it stand head and shoulders above anything else. 

Modelling it began with, as most projects do, a main blockout. It's about getting the main shapes and form of your object and making sure the shapes and sizes of the individual elements work with each other. Having good references at this stage is paramount to making sure it all fits together in the end, especially when there are two sides of a device that have to fit together perfectly with screw holes. 

One set of add-ons that are worth their weight in digital gold is that of HardOps and Boxcutter. The ability to very quickly block out and then get to work with easy-to-access booleans and bevel controls is immensely useful. Saying that, however, I feel like I've had a bit of reliance on the plugins recently, and wanted to go back to basics! One downside with HardOps/Boxcutter/Boolean plugins in general is the messy geometry they can often leave behind after you've applied the operation. A focus for me on this project was to try and keep the mesh as quad-based as possible. I think I'm very used to having a model that just looks nice but doesn’t have the best geometry, so I wanted to really focus on making sure all elements were as good as they could be.

As mentioned earlier, having good reference material is paramount to modelling an object in detail. That was very important when it came to the buttons, batteries, silicone pads and all the other smaller objects of the Gameboy. One resource I found very useful here was the secondhand/replacement and teardown scene. The amount of good reference you can grab from someone taking photos of them pulling apart one of these Game Boys is massive, especially when you're going to be doing exactly the same thing, but in the digital space! 

Some components were easier than others. Take the batteries and screwdriver for example. These are everyday household items I had lying around, so it was super simple to grab image textures and references for these. Well, except for the batteries – I'll get back to it later regarding stickers, but I ended up having to do all of the type you see on the device and batteries by hand in Adobe Illustrator due to both poor-quality photos on my end and a lack of (really specific) image references. Having to find the Duracell fonts wasn't the easiest thing in the world! 

All of the interior and PCB textures for both the Game Boy, daughter board, ribbon cable, and Zelda cartridge were found from super high-resolution images online. Having high-res images really helps when you go to create bump, displacement and metal maps, etc. Saying that though, there was a lot of manual painting and texture work needed in Photoshop to remove any unwanted elements that would be modelled physically rather than relying on the photo scans – this led to me painting out all of the bigger capacitors, battery contacts, and motherboard ports (e.g., the headphone jack and charging port) to then be replaced with physically modelled objects.  

Topology & Unwrapping

As much as I love Blender, I'd say the general agreement with most Blender users is that UV unwrapping isn't its strongest area. This was one area in which I was glad I had super clean mainly quad geometry. It led to an easier unwrapping experience than if I had mainly n-gons. The Game Boy is a pretty blocky object by nature, so the seamlines naturally found their own places to go – there weren't too many odd seamlines across the model as a whole, for which I was pretty thankful for! 

Might be an odd thing to say, but I find UV unwrapping a super cathartic part of the process, only me? 

Materials

So I do all my texturing in Blender, and for any type work, I'll use Adobe Illustrator. Blender has a brilliant set of ‘default’ shaders, which are not only super easy to use but also don't need much tinkering at all to get a really high-quality and realistic look.

I've attached a node group below, but the main plastic texture is just the default principled BSDF shader, with very subtle plastic injection moulded texture, subtle scratches plugged into the bump and normals, and fingerprints and dust textures plugged into the roughness output. All my materials and texturing are done here in this node editor, with all my type or image textures made in Adobe Illustrator or Photoshop. Keeping it all in Blender is super useful as it keeps it within one workflow - there isn't much exporting necessary into external software, except the UV maps. 

All the other materials used are created by plugging in any roughness/bump/normal/custom displacement or imagery into this node tree and then moving the sliders to get the desired effect. For instance, to get the glass material, it was a case of adding any scratches or fingerprints needed, and then moving the transmission value from 0 to 1. 

Texturing

The interior parts and smaller surfaces were all modelled with the help of extensive image references. Saying that, however, this was one area where my model varies from the real-world Game Boy itself – a few of the interior parts have been approximately modelled to scale, as the reference imagery necessary just didn't exist. When an issue like this crops up, it’s a case of making sure that whatever you end up modelling not only fits alongside the rest of the model looks-wise but also fits dimension-wise.

All of the smaller surface details (such as mould release lines) and smaller surface textures were all modelled in Illustrator as bump maps, and where more detail/geometry was needed, displacement maps were exported instead. A problem that often comes up when texturing an area that is both very small, is going to be viewed close up and is going to be bump/displacement is that of resolution. If the tiny type is too low-res, then on close-ups you’ll notice stepping and pixelation in the displacement and bump. As such, due to Blender only recently adding UDIM support, it meant that the entire image texture that the small type was present on had to be mega-high res, just so that one individual element could be high resolution enough to be shown in close-ups. Thankfully, just before I rendered out the final images, I upgraded to an RTX 4080, so running out of video memory wasn’t too much of an issue.

The screen shader was something I was very eager to get correct. The old LCD panels used in Game Boys of the time suffer from off-axis colour shifting and a lot of moire. I made a screen shader a few years back now from a since-deleted Reddit tutorial/article which gave the desired effect. As such, the panel looks super accurate when the model spins around, and when it’s viewed off-axis.

As for workflow wise, I’ll set up all my UVs in Blender and export the UVs as transparent PNGs which can then be imported into Adobe Illustrator. I’ll then put each of the individual maps on an artboard separately, and then get to work doing the individual layers for each element of the texture. I’ll have one layer for colour, one for bump, displacement, roughness, etc.

One tip I've recently come across to speed up workflow is that of naming your artboards individually so when it comes time to export the images from Illustrator, you only have to give it the appropriate layer name on export, and the artboard name will fill in the rest. For example, I’ll name one artboard ‘Gameboy-back’, so when it comes time to export, I’ll export it as ‘Colour_01’, and when saved out, the file will pop out of Illustrator as ‘Colour_01_Gameboy-Back’ – this massively speeds up getting your finished image textures out of illustrator as you don’t have to spend ages renaming, and if you ever have to append or change an image texture later on, they’re properly named for future reference and file storage.

Rendering

Whenever I go to set up a model for final lighting and rendering, I never really follow an exact formula! It’s always a case of messing around with lights to just see what looks right. There will always be parts of a model that will need specific directional lighting to highlight a certain area, or from a certain angle I’ll add in a backlight to highlight a specific edge of the model. 

I like to do all my colour correction and minor editing in Photoshop, however, I do like to keep as much of the modelling and error fixing in Blender itself. If something is broken on export, I’d rather fix it in Blender than deal with the separate render passes and masking to fix in post. 

Creating Appealing Props

I come from a traditional graphic design background, where we’re taught to always tell a story or a concept through our design. When it comes to prop making, it is exactly the same. Whilst the Game Boy might not appear to tell a story or have a general theme, small details such as fingerprints, what game has been slotted into the Game Boy itself, any wear and tear, etc., can tell the story that this device has actually been used and loved by its owner. 

I am a perfectionist though. I was very aware of that when I started this project – I wanted it to be as accurate as possible, from all angles, inside and out. This can often be to a fault. When modelling a prop, you’ve got to know the context of how it’ll be used. I knew from the beginning that the project would include close-ups of super small details, and as such, I had to model and design for that outcome. On the flip side, if the prop you’re modelling is only going to be viewed at an arms distance or at a small scale, then if you start to model details that no one will see, you’re taking away time that could be spent on lighting, texturing or something else that people WILL notice. I guess you have to take a step back and realise both WHO you’re designing for and WHY. 

Advice-wise, you’ve probably heard this a thousand times, but just get started. I always suggest starting on a mini-project to begin with, as you’ll start to learn the tools that you’ll actually be learning on a day-to-day basis. If you go into a massive bit of software like Blender and try to learn everything at once, you’ll very quickly get overwhelmed. As mentioned before, due to Blender being free, there is so much knowledge on platforms like YouTube, so follow a free course or tutorial there to get started, and who knows where you’ll end up in no time at all.

Matthew Gilbert, 2D and 3D Designer

Interview conducted by Theodore McKenzie

Join discussion

Comments 1

  • TheUnreal Abyss

    Nice article. As a graphic designer who is also the 3D guy in our office this hits home. :)

    0

    TheUnreal Abyss

    ·11 months ago·

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