Posts List
moustapha.dev : I started my game development journey blog post cover image

I started my game development journey

September 19th 25

TL;DR: If you're feeling too lazy to read this post, get yourself Digestmark, a browser extension I built and summarize it 😉.

September 9th, after a day at the pool, I felt very inspired to try something new. It's something I had in the back of my head for some time now but didn't know where to start my exploration. I think I feel a little bit bored for doing web development for so long in some way. I still like it, a lot but it's been a while since I learned something really exciting.

That being said, recently, I came across a very interesting new project, ripplejs and it somehow put me back in love with the web. It's a wonderful typescript UI library, yes, yet another JS library; but it's different and I think it takes the best from React's versatility and Svelte's elegance. As I started contributing on it's playground and documentation, I want to take this as an opportunity to deeply understand web frameworks. I'll write for sure, a post entirely about it in the future.

I generally don't consider myself a big gamer, at least compared to most of my friends. But since quitting my job, I had more time and spent more playing, often on my iPad. I really like 3D FPS games. Call of duty being one of my favorites. I built my first 2D game about four years ago, out of curiosity. The famous snake, with pyGame. At that time, I didn't really feel interested to go further. But last week, when I decided to explore game development, I felt very obvious.

Choosing an engine

One of the first things you need to build a game, is a game engine. Think of it as a toolbox that helps you manage complex and repetitive things like rendering graphics on the screen, interfacing with controllers or simulating physics. Some people build their own engines but most use Unreal engine, Unity 3D, Godot etc. I decided to go with Unity. It's the most famous, which means there's plenty of content around it and also, it would be easier to find help online. Unity is also relatively simple yet very powerful. It's the engine behind one of the biggest games like Hollow Knight, Call Of Duty mobile etc. It's cross-platform, build once and deploy everywhere. Unity is also a 3D game engine. As I'm starting, I intend to build 2D games. Using Unity means I don't have to learn another engine if I want to build a 3D game later. Godot was also an option. Specially knowing it's open-source, uses GDScript, something simple, close to Python. I'll give it a shot in a near future.

Mindset shift

I think I realized something very interesting, which is the mindset shift between typical web development compared to game development. It almost feels fundamentally different. I would even say that I spend most of my time doing something different from code. Game development is more creative than logical. Right now, I feel like writing code is the easy part. You need to understand your game engine, being able to draw graphical assets, compose sounds effects and musics, know a little bit about animation, color composition and orchestrate all of that in a scene. I also think, depending on the game, that you need to be a good storyteller and understand a little bit of math if you intend to do some custom physics. It's a very beautiful intersection of technical skills. Of course you can also choose to purchase game asset packs but I don't necessarily have the budget and I don't think that's a good idea as the final result can be a mess and pretty inconsistent if it's not done correctly. In the real world, you would need several people to work on a game. But you can also choose to be an indie game dev and since some years now, it's a little bit trendy and you can find thousands of people online doing so. Personally, I spent the last week learning more about Unity, how to do basic physics through scripting. Unity uses C# (C sharp) and I think I like it. I built a simple flappy bird from a YouTube tutorial as well as the famous pong game, in order to practice. I also spent a lot of time learning to draw. Right now, it feels the least intuitive part of the process. But I'm improving quickly and I really enjoy the process. YouTube channels likes Nonsensical2D, JADOKAR has been very helpful and inspiring, helping me understand quickly the basics and realize that everyone can train and become good at art. Drawabox is also another absolutely dope resource for learning to draw. I'm drawing on an iPad, on Procreate and it's a very nice experience. I also use the wonderful Aseprite for pixel art. For everything sound effect and music, I'm using beepbox.co and FL Studio.

A bush drawingA rock drawing

Some of my drawings

My immersion

Writing this post helped me reflect and last week's events and deeply experience something that I've been advocating for so long. If there's only one skill that you need in today's world, it's learning. Everyone needs to learn how to learn. It's fundamental to be able to search exactly for what you need, understand the general scope of the subject you're approaching, to realize what you know, don't and need to, visualize your learning path and prioritize; find the right people to not only teach you but inspire you, entertainment you and make the process fun. When I take a step back, it's crazy to see how information and knowledge is free and accessible today. I mean you just need to start showing interest about a subject, to see optimized social algorithms suggest you relevant and quality content. Everyone can learn everything, more easily and more quickly. In my case, a live game development session that I saw on YouTube helped me so much on uncovering the game development landscape. I also bought my first game, Hollow Knight, on Steam in order to analyze it, to discover what makes it so good and how I can use those aspects to make great gaming experiences. Joining online communities on platforms like Reddit and Discord also helps a lot. You can share your progress, ask for feedback, get help when you feel stuck. But most importantly, it helps you feel being part of something. And I think that naturally translates to be a part of your identity. It then becomes easier to stick to it, consistently, even on days you don't want to.

What's next

Right now, I want to put my focus into learning game art and game design. I plan to specialize on building 2D platformers. I already have in mind a game that I want to build. I'll start working on it as soon as possible. It's going to be a great learning opportunity. I hope to be able to publish it one day on Steam. I have a lot to learn but I'm so excited about this chapter. I can't wait to see where it's going to lead me. Moving forward, I plan to buy a PC, as Macs aren't the best choice for gaming. So feel free to suggest me one if you're into gaming. I also feel drawn to start sharing again on my YouTube channel. So if it's not the case, subscribe now to stay tuned.

Thanks for reading.