DEV Community

Cover image for To Create or not to Create, A Game Dev Endeavor
Jose Correa Mesquita
Jose Correa Mesquita

Posted on

To Create or not to Create, A Game Dev Endeavor

By Jose Correa

Genesis

Last week I set out to start my biggest project to date and I encountered a major issue. I have experience with web development and I decided that I wanted to learn something new. Game Development! But the problem was - game development... What is game dev? What even is a game engine for real? It sounds cool... How do I even start? It wasn't long before my autodidact instincts kicked in and I began researching, reading up on what I could. That was me a week ago and now that I have a better grasp on the topic. The point of this blog will be to share the knowledge i've accumulated thus far as well as show where I am in my own build process for my core project. If you're a beginner on their first "Hello World" I hope to motivate you to give this a try. If you're a seasoned game dev, you can see how someone new to this side of programming can learn and leverage your art into something of their own! Oh and as for the answer to the last question I had posed. You can start right here with me!

What we aim to cover:

What is a game engine

To put it simply, a game engine is a powerful framework that streamlines the process of developing video games. Think of it like this: imagine you created a grade automation program for a school, and now you're making a similar one for another school. You wouldn’t want to build the whole thing from scratch again — you'd reuse your existing system to save time and effort.

Game engines work the same way. Instead of creating all the core systems from the ground up, developers use pre-built engines to focus on the unique parts of their game — like mechanics, story, or visuals.

Game engines come with different built-in features, but most include a suite of tools and systems to support game development, such as:

  • Graphics/Rendering engine

  • Physics engine

  • Audio engine

  • Input handling

  • Animation system

  • Scripting system (e.g., Python, C#, Java)

  • Asset management (e.g., sprites, models, sounds)

  • And more!

Why Create an engine

There are 3 main reasons to create a new engine,

  • You want to learn: The best way to learn anything is to do the work. Make it yourself, tinker, break things, fix them. Research and make your own custom engine. It can even be a clone of an already existing one, but the key take away is - you know how it works from the inside out because you made it yourself.
  • Necessity: There are plenty of games out there that run custom engines. Noita (https://store.steampowered.com/app/881100/Noita/) for example: In this game, every pixel is able to fall in the custom built - everything falls engine. This isnt availible in engines on the market so the developers had to make a custom engine to implement this feature! Another great example is, FEZ (https://store.steampowered.com/app/224760/FEZ/). This game features a 2D character in a 3D world! At the time this was revolutionary and there was absolutly nothing like it on the market.
  • Ego: This is not a vaild reason to create a new engine. I've gone through forums, and videos where some developers have the opinion that "real" game devs create their own engines. This is simply untrue. This would be similar to saying that true mathematicians invent calculus from scratch. "Give me 6 hours to chop down a tree and i'll spend 4 hours sharpening the axe." When using a game engine on the market, its like getting a sharp axe from the beginning. You dont always have to re-invent the wheel. Ego is never a reason to do anything. Learn and do things for the love of doing it!

My Goal in Creating

I am new to game development, and my goal is to create my own game engine in Java. The reason I am aiming for this is because I want to learn what goes into making a game engine. Plus there are features I may implement in the future that would not be available in other engines. This project will not just be my first game, but my first production game too. A lot of effort will be put into this. After 5 week project build timeline I plan to partner with a few friends in the game development sphere and build on it further to create a full fledged IP!

Making Snake

Linked below is a GitHub repository of a snake game I created to practice making a simple game loop. I encourage you to clone it down for yourself and mess around with it. Break it, and fix it up again. Change colors around, maybe add some better graphics to it, make the snake and apples look cool. This repo was made in IntelliJ CE (community edition) which is a free IDE by JetBrain. Its what I used to run Java code. The game is built using the standard Java2D and Swing that is build in to the Java language.

Github repo: https://github.com/403-ko2/Making-Snake.git

How I learned fast

If you want to learn quickly they're are a few main ways to go about it. It depends on two main things. Whether you have experience programming or not. Depending on who you are its probably going to be easier if you already know a programming language or two well. But don't be detured, if you dont have expereince at all the process can be just as quick!
In my case I already knew Javascript and programming fundamentals. All I need to do was get used to the syntax differences in Java, I studied this one video: https://www.youtube.com/watch?v=RRubcjpTkks
I googled any questions I had on the language and started building my first small project ill link below. I do plan to upload another blog going indepth on how to learn Java from Javascript and place a link to it here. I really took a different mind set in taking on this project, and I feel like this video sums it up:
https://www.youtube.com/watch?v=piKJOD2s8KY
All of the sudden it didnt feel like a chore creating curtain projects. When learning something new, I believe its best to learn what you think is the most fun. You'll end up learning what you need to in regards to whatever your building anyway. Sometimes overly structured learning can be demotivating, then again some people have that preference and strive. Thor explains it well in this youtube short

My personal project

I have set out to make a 2D RPG completely from scratch. My own engine, my own sprites, story, music, sounds, etc. I wanted to be able to scale it later with my friends and create something that we can all be proud of and have fun making. Of course the end goal is to be able to publish the game. I will have updates on my youtube channel I will link on the bottom. This is because I am still learning and I found this a fun way to keep myself accountable.

  • Wrap things up
  • Provide links to resources that you used to help you learn the language.

Inspo

Top comments (0)