Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

FIRST LESSON
I learned a few really important things. One of which I just learned TODAY the hard way. Apparently an entire function I built into the game doesn't work correctly in web browsers because of a security concern. Fun!

So the issue is caused by me trying to lock the players view in place in a certain way whenever they interact with this wheel. Sadly this is not supported by browsers. Big sad. I DID find a workaround though it's janky af.

When you click and hold on the wheel, if you hit the escape key also (still holding left click) your mouse will become visible and you'll be able to crank the wheel! Yay! This does definitely mess up the flow big time  and kind've makes it impossible to play full screen BUT it is at least playable.

SECOND LESSON
Working with placeholder 3D models and then later replacing them  is a lot harder than you might expect. Especially if it's your first time trying that sort of swap. I'm not sure how much is a limitation/issue with the engine I was using and how much was an issue with me being unfamiliar with importing premade 3D assets but it was rough. And I spent way longer reworking animations and scripts to transition from MeshInstance3Ds to Kay models than I ever expected it would take. If it weren't for this issue I would've been able to add voice lines into my game like I wanted--it seriously took me like 5 hours to sort out the models

THIRD LESSON
PIVOT SOONER. I had maybe 4 other issues that I sunk multiple hours into. All 4 of them felt like I was so close to figuring out the solution. When I finally did pivot to doing something else, most of the time I was able to create a new solution in under an hour. My instincts for how close I was to successfully debugging an issue are apparently terrible. But at least now I know! Lol.

All in all I learned a ton finally taking a project from beginning to end. Even though a lot got left on the cutting room floor, I'm most proud that I was able to craft a complete game loop with a beginning and an end.

I can fully relate to lesson 3! Especially in the last few hours I kept on sinking time into problems I could just not assess anymore instead of pivoting to something else. Very important, indeed :)

And to lesson 2: This is probably one of those things that need to be learned by hard. Because in a professional environment this is very usual. I don’t know much about the 3D-pipelines of other engines but in Unreal it usually is not a big problem, once you know where the limitation of pre-viz are and how to keep world scale throughout the whole thing. I guess for Unity it should be the same. Can’t think of a reason why it should not be in Godot, too. What have you been using? And maybe that is something to give Kay feedback about :)

I'm sure it was absolutely just a skill issue on my part. This was literally my first time trying to use that workflow (all of my other personal projects are still in the greybox phase) so I underestimated everything about it haha. I knew that working that way is fairly "industry standard" so I think I just assumed it would be as simple as just dropping the new asset in. The problem in Godot (at least as I was running into it) was that it was importing the object as an inherited scene. So it wasn't a simple process of editing the pieces of the model or its children pieces because I was innately locked out. And I couldn't figure out how to have this not happen on import nor could I find a simple way to just batch "clear inheritance" on the entire model. So that meant I couldn't create custom animations (at least not reasonably) because that would require manually going through the entire tree and finding the special place to "Make Unique" on every bone and limb that I'd want to manipulate. This just didn't feel worth it in the context of a jam (and luckily the model already had animations built in).

This was a bigger problem when replacing my placeholders for effects and in world UIs. Like using a cylinder as a placeholder for a laser is simple. But then when swapping that I had to completely change up my code to work in a different way. With a cylinder I could just stretch it simply along an axis to give it a "shooting" effect. I think the object I tried to swap it with was like a mushroom? And just stretching it along an axis wasn't working the same way for me. 

All in all I'm sure there's a better and more correct way to do it. The real issue was that I left this for last when I only had like 6 or 7 hours until deadline. Once I started hitting issues I was torn between just trying to bruteforce things or taking the time to slowly learn an entirely new process. And doing anything slow at that point felt like the wrong choice. Especially when, at that point, I still had the starry eyed hope that I'd have time to add voice lines in!