Theasis : An tiny FPS game, as part of my final year thesis

My main goal as part of my thesis project was to create a simple fps game.

It was a project I have abandoned for a long time because it seemed too hard, feeling inadequate and I didn’t have the proper skillset to tackle it.

At first I tried vanilla opengl which seemed super hard then moved onto webgl which seemed slighly less hard but how the hell could I code every system a game needs, then threejs which gave interesting results but seemed too barebones for my skills back then. I didn’t want to drop my ego and move onto Unity or Unreal as my professor and everyone around me suggested. I didn’t want the “easy” way out (not that game engines are not worth it but you get what I mean, I’m actually fiddling around Unity the past days and it’s awesome).

Then my last try was BabylonJS which drew my attention upon the 4.0 release. Took it as a sign and turned out into a wonderful experience. The clean API, the documentation and damn once I joined the forums everything felt so smooth.

I was too spammy maybe at times creating threads about stupid questions but everytime someone was there to clear my misconceptions and guide me.

The end result is the one in the github repository above. It was only at the final stages of the project that many of the things clicked better so it includes lots of horrible code but I HAD to make it work this time cause of all the times I’ve given up in the past. I was learning JS, BabylonJS, game development and general code design at the same time so that’s why some things are coded horrible by most standards BUT it works and serves the purpose of a game !

I could not have done it without all of you. From the awesome devs to the awesome users I want to say Thank you from the bottom my heart ! You are all great and awesome !

Most of the time it was like you were all my teammates in this. A great learning experience provided by wonderful folks. :slight_smile:

(Some bugs are still there and missing features and I feel sooooo bad but it’s time to move from the project at last)

10 Likes

Thanks a ton for this kind feedback. IT is the very reason why I created the engine initially so thanks again for sharing your thoughts!

Adding @PirateJC FYI

3 Likes

Yeah in my actual thesis document I outline the things I learned from BabylonJS in detail.

BabylonJS exposed me to what a clean API looks, how an organized documentation is formed (and read ) and most importantly I characterized it as the golden ratio of low level and high level tools that are available.

You can be as creative as you want or as math-y as you want, and I didn’t even use the official editor or shader node system.

I actively encourage anyone that I know to give it a try especially cause in computer graphics and/or game dev the entry barrier seems so high.

Now, beginners have a better option and that is BabylonJS imo.

2 Likes