# Making My First 3D Game In Defold \[a Serious Game About Fireworks\]

**URL:** <https://forum.defold.com/t/making-my-first-3d-game-in-defold-a-serious-game-about-fireworks/83023>\
**Category:** Dev diaries\
**Created:** [July 17, 2026, 3:13am UTC](https://forum.defold.com/t/making-my-first-3d-game-in-defold-a-serious-game-about-fireworks/83023 "2026-07-17T03:13:48Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![gameoffate2018](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/gameoffate2018/32/20065_2.png) [@gameoffate2018](https://forum.defold.com/u/gameoffate2018)\
**Post date:** [July 17, 2026, 3:13am UTC](https://forum.defold.com/t/making-my-first-3d-game-in-defold-a-serious-game-about-fireworks/83023/1 "2026-07-17T03:13:48Z")

</div>

I recently completed my first ever 3D game! I wanted to share my process as well as some of the tools I used. I do see people occassionally ask if Defold can do 3D, so hopefully this post will be a good resource for people.

 ![title_screen](https://forum-defold-uploads.b-cdn.net/original/3X/f/5/f5a952c5f02fde650e0c9f53b1512f6266bd7417.png)

For context, I’ve been playing around with the 3D stuff for some time and have been working on a much larger 3D project (I’ll share more details when I have a demo for it). However, with this project, I wanted to practice making a 3D game end-to-end to see any unexpected issues I might encounter.

**The Time Limit:**

Early on in my game-dev journey I really enjoyed doing game jams, short quick sprints where I had something cool at the end to share with others. It has been nearly a year since I last did that.

I wanted to do something quick to not distract me from my current project but couldn’t find anything super well suited for it so I ended up doing a self-imposed challenge.

I gave myself 250 minutes to make a 3D game.

**The Idea:**

I decided to make a game about setting off fireworks. It seemed easy enough, I could reuse a lot of assets plus it lets me play around with a number of different things (Particles, models, lighting, etc).

The gameplay consists of running up to a firework, doing a quick skill check minigame then either successfully lighting the firework or failing and blowing it up.

Afterwords the game will give a quick replay of the show as a reward for completing the level.

**The Assets:**

I started by forking an existing 3D project I’ve been working on. Within this project I’ve been utilizing a number of projects from the defold asset portal including:

- Druid - [Druid - Component GUI Framework - The Defoldmine - Defold game engine forum](https://forum.defold.com/t/druid-component-gui-framework/64857)
  - Used this for all menus, utilized a wrapper I wrote to also integrate controller support with it

- Scene 3D - [Scene3D - collection of assets for 3D gamedev - The Defoldmine - Defold game engine forum](https://forum.defold.com/t/scene3d-collection-of-assets-for-3d-gamedev/70352)
  - Studied and used a very similar first-person camera set up and mouse capture logic

- Lights and Shadows - [Light and Shadows example - The Defoldmine - Defold game engine forum](https://forum.defold.com/t/light-and-shadows-example/71713)
  - Used for the lighting effects

Special shoutout to everyone who has contributed to the above projects, this would not have been possible without you!

**Development:**

I started off by creating a number of art assets for the game, my goal was to keep things simple and moving quickly.

Some highlights include: a grass texture, a lighter, and some firework colors to use as a particle FX:

 ![case](https://forum-defold-uploads.b-cdn.net/original/3X/c/1/c1de38a865c9ae74e77df24425380c84519b7182.png) ![grass](https://forum-defold-uploads.b-cdn.net/original/3X/d/9/d96b9090d416feda5172e3833aeda1c4c8c337d4.png) ![red_firework](https://forum-defold-uploads.b-cdn.net/original/3X/c/a/ca519cfde842a80e46d1e145e231b8af362229a5.png) ![blue_firework](https://forum-defold-uploads.b-cdn.net/original/3X/9/0/90fb9147ee270f50607839319ee7bfe069c68349.png) ![white_firework](https://forum-defold-uploads.b-cdn.net/original/3X/e/c/ecaf2229bd3ad2ba33289650660c4c38117900be.png)

After that, I moved onto modeling in blender. I created a rocket model as well as a hill scene for the game to take place on:

 ![image](https://forum-defold-uploads.b-cdn.net/original/3X/c/d/cd88012beb3b339be8c8d25787ff74aa8904530d.png) ![image](https://forum-defold-uploads.b-cdn.net/original/3X/3/1/31f7566481e192117073c19a3ceb7ca52e8cec5a.jpeg)

I am still working on my 3D art skills, so I decided to keep a low poly aesthetic. This also helped with my time constraint for the project.

After that I started the process of designing the play area within Defold.

 ![image](https://forum-defold-uploads.b-cdn.net/original/3X/e/b/eb02bafa26664fa63ac852ffc4c8b79f8e4c614d.jpeg)

I encountered two big issues while doing this. Firstly, I struggled to tell what was and was not in the world, the flat lighting in the editor made it hard to line up the fence at times. I ended up switching to the build-in model since it had some directional lighting already applied before going back to the lights and shadows model.

Additionally, the fence I made was only 2 units wide, so it was difficult to place. Using the in-engine move tool almost always moved it to far (1 unit at a time) so I had to enter fractions until it looked correct.

After this I began working on the first-person controller and allowing the player to move around the world:

 ![image](https://forum-defold-uploads.b-cdn.net/original/3X/8/2/8244684eb98a89969f51cbf9e8ee8cba61be1739.jpeg)

It felt too bright out, so I added in a skybox as well as adjusted the light levels some to make it feel more like dusk.

 ![image](https://forum-defold-uploads.b-cdn.net/original/3X/1/c/1c4f81b334cab4bf0dcb9447e78dc74933930405.jpeg)

The fireworks itself are a combination of a number of Particle FX to sell the illusion of the firework blasting off and popping. I am really happy with how the effect turned out.

 ![image](https://forum-defold-uploads.b-cdn.net/original/3X/6/9/694c15ad15b15161197ea13d16f68dc23c08a779.png)

To get the interaction system working I had a separate collision object in the rocket then another attached to the player’s camera to see where the player was looking.

- I ended up running a calculation every frame to see what the closest object was to interact with.
- I discovered that I needed to use physics.wakeup to make sure objects continued to interact and that the collision didn’t stop working after a few seconds.

 ![image](https://forum-defold-uploads.b-cdn.net/original/3X/2/e/2e01922017175560952c3d7bc54f4c1fe2ce5ef0.png)

The final piece was getting in a minigame to actually light the fireworks. I went with a skill-check minigame where you have to click at the right time to launch the firework. I had some major issues getting it work since I was trying to check based on the gui node position if it was overlapping with other nodes. Things were clearly overlapping when they shouldn’t have been. That’s when I learned about gui.screen\_to\_local which enabled the system to work correctly.

 ![image](https://forum-defold-uploads.b-cdn.net/original/3X/4/8/48a9c44267734ecbead1b1c86122bc7377aabe1d.png)

The hardest part of the entire project was getting the mouse to be consistently locked on HTML5. I have a pause menu on the project I forked, coming in or out of it sometimes did not result in the mouse being locked properly. I had to add a screen asking the player to re-click in order to look around.

 ![mouse_lock](https://forum-defold-uploads.b-cdn.net/original/3X/f/b/fb9f3300c31cf13f3253cbaa2df6f05c9cc77bc4.jpeg)

In the end I spent around 12 hours working on the project. While I severely missed by 250 minute goal, I did make a fun little game that I was proud of.

**Outstanding issues I still need help with:**

The main issue I was not able to solve is how to handle screen stretching. msg.post(“@render:”, “use\_fixed\_fit\_projection”) seems not to work (I confirmed it is in the render script still). When stretching the screen, the view of the camera just expands outwards. This leads to some things I did not intend to be in-frame at times being visible, such as the corners of the map on the main menu or later menus in the tutorial visible off screen.

How I expect them to render:

 ![image](https://forum-defold-uploads.b-cdn.net/original/3X/a/1/a11fe21455a429327ecbb4fa4a9e3ee78b9ae33b.jpeg)  
 ![image](https://forum-defold-uploads.b-cdn.net/original/3X/f/2/f25a63061864ab9192cee14fe37cd2192162ecc6.jpeg)

How they actually render when stretched:

 ![image](https://forum-defold-uploads.b-cdn.net/original/3X/c/f/cffc597b9f396bc35715f7f4e5ead59a257a3dda.jpeg)  
 ![image](https://forum-defold-uploads.b-cdn.net/original/3X/8/d/8dc0ed90a90c7a884952bda2897e10d0ad709560.jpeg)

If you know how to fix this (or have any suggestions, please let me know!

**What I learned:**

The biggest thing I learned is that 3D game development is far slower than I initially expected. I have made a number of 2d games over the past 9 years so I feel very confident in that. However, 3D game development has a different dimension to it (pun intended) that will take some getting used to.

I am excited to see what additional features Defold adds to continue making 3D game development easier.

Here is a link to the game if you’d like to try it out. I have not been able to test it only anything other than my PC, so please let me know if you encounter any issues with framerate.

[A Serious Game About Fireworks by IanGoGo](https://iangogo.itch.io/fireworks)
