How I Made A 3D Game In GameMaker (2024)

How I Made A 3D Game In GameMaker (1)

Hey there! I'mFábio Fontesand I’m making cars do funky stuff inBuck Up And Drive!,a procedurally generated endless driving game with all the speeds and none of the common sense.

It's also fully 3D and made in GameMaker!

Making 3D games in GameMaker

What's that? “GameMaker can't do 3D?”

Yeah, I also had the "GameMaker no do them 3Ds" mindset. I knew it could be done, but figured it would be either crude-looking or a complete pain in the donkey to set up... or both.

How true is this mindset? Well, keep reading!

GETTING STARTED WITH 3D IN GAMEMAKER

I got into this rabbit hole throughDragoniteSpam's videos on how to set up a 3D environment by setting up a perspective camera, learning about vertex buffers (how 3D models are stored for use), and applying matrix transformations to them so we can put them in the game world.

After some fiddling...

How I Made A 3D Game In GameMaker (2)

WE GOT A BOX!

Shortly after, I realised I could also apply matrix transformations to sprites for some billboarding (see the sprite dude above). Add some crude collisions based on those of a top-down game, and... it actually looks like something now.


"Wait, this doesn't look like a driving game!", I hear you scream from the rooftops. Yep, this started as a general-purpose 3D environment, which is still in the game (looks a bit different now) and you can access it by hitting Shift+F5 in the main menu!


Then I added a "vehicle mode". Now we're getting somewhere.

IT'S BILLBOARDS ALL THE WAY DOWN

Now, what do you do when you have that nice 3D environment one could drive around?


You create a new one with a conveyor belt track because you wanna make an OutRun clone! Logically!


This is when the actual game started, and in many ways, it's still as crude now as it was back then. All those basic top-down racers people do as they're getting into gamedev? It’s that but with a fancier camera projection.


Background elements, cars, effects... all sprites moved around using matrix transformations and used as billboards. No fancy shaders (except the one for palette swaps by PixellatedPope) or anything.


At this point, the only 3D model was the skybox, as it was easier to rotate that than to set up some scrolling for the sky.


Laziness or convenience? You decide!

How I Made A 3D Game In GameMaker (3) How I Made A 3D Game In GameMaker (4)

So things would stay like this for a bit. While I COULD have verticality before, I was somewhat limited by the fact I'd have to make sprites for every action and manage them accordingly. If I wanted the car to jump, I'd have to get sprites for that.


Sure, pre-renders would make the process easier than actually drawing them, but I intended to add extra cars over time, and... you can see how unmanageable that'd potentially become. Keep your scope in check, kids!


I also couldn't move the camera around too much or it'd break the illusion from the billboarded sprites (that one still somewhat applies today).


I could import models, but at the time they'd lack that cel-shaded look, something I considered important to the game's visual flair. So I kept the functionality of the car a bit modest, while making it look over-the-top enough to be enjoyable.

That'd be enough... right?!

IT WOULDN'T BE ENOUGH

I started to mess with shaders for fun, specifically lighting, and I figured out how to implement the type of cel-shading I was using for the car pre-renders.


It's based on the techniques used by Arc System Works for their recent fighting games, focused on flat colors with clean, sharp lines, rather than intricate patterns, by having the UVs arranged in a somewhat unconventional way; as a texture that's almost exclusively just a bunch of squares.


For the shading itself, it uses a colour ramp like many cel-shading methods, but instead of affecting the colours directly, it shifts the model’s UVs to other areas of the texture that contain the same layout in different colours.


This allows me to have full control of which colours the model uses for shaded and highlighted areas, rather than leaving it to the lighting.


As for the rim light, that's achieved by using the camera's coordinates instead of the light sources.

How I Made A 3D Game In GameMaker (5)

That's when the cars changed to real-time 3D models. The sprite limitations were now gone.


The track would still stay mostly billboard-based, but I could now do whatever I wanted with the cars.


I could make their actions look more intense. Adding new cars would no longer require organising sprites - it was just a simple mesh swap. I could move the wheels independently from the car's body, and making the car jump was now trivial.


Making it do silly flips in mid-air? Same thing.


From here I just went hog wild.

THE TAKEAWAY

My current setup has limitations, I'll be the first to say it.


There's no advanced lighting with multiple light sources. Skeletal animation's taking a leave of absence. There's jank all over the place. Performance could be better. A lot of it is put together with duct tape and a wish. And there's no 4k texelated-raytraced-sample mapping, or whatever the current technical buzzword is.


But it does what I need it to do, and it looks pretty.

How I Made A 3D Game In GameMaker (6)

Written by

Ross Manthorp

Ross Manthorp handles all things community at the GameMaker team. When he’s not pulling the strings from behind the scenes he’s enjoying Nintendo games, indie games, and getting emotional over cartoons and comics.

Back to blogs

How I Made A 3D Game In GameMaker (2024)
Top Articles
Guide de loterie DV 2025 | USAHello
Mega Millions Lottery - Winning Numbers & Results
Craigslist Warren Michigan Free Stuff
Swimgs Yuzzle Wuzzle Yups Wits Sadie Plant Tune 3 Tabs Winnie The Pooh Halloween Bob The Builder Christmas Autumns Cow Dog Pig Tim Cook’s Birthday Buff Work It Out Wombats Pineview Playtime Chronicles Day Of The Dead The Alpha Baa Baa Twinkle
Craigslist Houses For Rent In Denver Colorado
Junk Cars For Sale Craigslist
The Daily News Leader from Staunton, Virginia
Craigslist Mexico Cancun
Songkick Detroit
Puretalkusa.com/Amac
Parks in Wien gesperrt
CSC error CS0006: Metadata file 'SonarAnalyzer.dll' could not be found
Nashville Predators Wiki
3472542504
Painting Jobs Craigslist
Cinebarre Drink Menu
Invert Clipping Mask Illustrator
CANNABIS ONLINE DISPENSARY Promo Code — $100 Off 2024
Nine Perfect Strangers (Miniserie, 2021)
Ezel Detailing
Wemod Vampire Survivors
Pirates Of The Caribbean 1 123Movies
Rochester Ny Missed Connections
How to Watch Every NFL Football Game on a Streaming Service
Boxer Puppies For Sale In Amish Country Ohio
Sienna
Lexus Credit Card Login
Craigslist List Albuquerque: Your Ultimate Guide to Buying, Selling, and Finding Everything - First Republic Craigslist
Effingham Daily News Police Report
Nikki Catsouras: The Tragic Story Behind The Face And Body Images
Rubmaps H
Missing 2023 Showtimes Near Mjr Southgate
Elanco Rebates.com 2022
Fedex Walgreens Pickup Times
Dreamcargiveaways
Rocketpult Infinite Fuel
Roto-Rooter Plumbing and Drain Service hiring General Manager in Cincinnati Metropolitan Area | LinkedIn
Pill 44615 Orange
Staar English 1 April 2022 Answer Key
Foolproof Module 6 Test Answers
Cookie Clicker The Advanced Method
Mid America Irish Dance Voy
Mytime Maple Grove Hospital
Thor Majestic 23A Floor Plan
Zeeks Pizza Calories
Market Place Tulsa Ok
Ajpw Sugar Glider Worth
Barber Gym Quantico Hours
Ics 400 Test Answers 2022
The Love Life Of Kelsey Asbille: A Comprehensive Guide To Her Relationships
Island Vibes Cafe Exeter Nh
Wayward Carbuncle Location
Latest Posts
Article information

Author: Cheryll Lueilwitz

Last Updated:

Views: 6315

Rating: 4.3 / 5 (54 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Cheryll Lueilwitz

Birthday: 1997-12-23

Address: 4653 O'Kon Hill, Lake Juanstad, AR 65469

Phone: +494124489301

Job: Marketing Representative

Hobby: Reading, Ice skating, Foraging, BASE jumping, Hiking, Skateboarding, Kayaking

Introduction: My name is Cheryll Lueilwitz, I am a sparkling, clean, super, lucky, joyous, outstanding, lucky person who loves writing and wants to share my knowledge and understanding with you.