Hello! I’ve been doing game development for while now and people have asked how to start. There are many ways to get into game development so here is my advice to learn to program video games.
I personally use Unity3d for making games. There are many engines out there and a lot of them are good but I prefer using unity. If you want to make games, do not make your own engine. You will spend all your time making an engine and not a game. Of course, making an engine is a great learning experience but don’t expect to get anything done soon with it. Make a game engine if you want to dive deeper into how games work, otherwise use an existing engine if you want to make a game.
Here is a list of some popular engines.
Unity3d - My engine of choice, a good general purpose engine. Program with C# and has visual scripting packages in the giant Unity Asset Store.
Unreal - Probably the best looking out of the box free game engine. Code in C++ or Blueprints, their visual scripting interface.
Game Maker Studio - A great and easy to use 2D engine. If you want to make 2d games, focus on an engine that specifically does 2D instead of a generalized one.
There are many more engines I might try to cover some time but these are some of the bigger ones you might want to try. The rest of the resources here are going to be for Unity3d.
A good place to start using unity is to check out the learn section and tutorials. The classic starting tutorial is the Roll-a-ball tutorial. There are also the 2D Game Kit and 3D Game Kit with a lot of game ready assets to use.
One of my favorite programming books is Game Programming Patterns. It is available free online but I bought the book to thumb through.
Find local groups! There are gamedev groups on Meetup and local IGDA chapters everywhere. You might even want to start one if there is very little currently in your area. Join gamejams, online and local. Every few months there is Ludum Dare and every January there is Global Game Jam. Game Jams are great for working in groups and learning with others.
The best way I learn is through practice. Read books, work and tweak tutorials, join local groups, and just keep at it. You don’t have to be a good programmer to make a great game. It does take time though. Practice and get good.
Now tutorials are great to start but I’m sure you want to make your own games. Make a game design document to plan everything for your game and use tools like Trello or HacknPlan for task management. Your games should start small but you will want to make it larger and work with other people. Writing it down lets you share your idea with others and plan before you write a lot of spaghetti code.
Once you get to designing your own games, start small. Game development is easy to get into right now so it’s easy to think of the grand dream game but it is still very hard to complete something. Start small, and build your way up to larger and larger games.
Don’t be like me and try to make an MMORPG solo. It takes a long time and you probably won’t finish. But instead, make a small game in a week, then in a month, then in a few months and so on. Completing and shipping games is an important skill that many developers unfortunately don’t learn quickly. Finishing and publishing a game is a huge sign that you have what it takes to make games. However, never forget that dream game. Keep it in the back of your mind, so that when you are ready you can attempt it. Let it drive you.
Finally, once you have something working, post it online! Sites like Itch.io and Gamejolt are great places and easy to post your games where other can find and play. You don’t even need to complete the game, just get something working and upload it and share it with friends.
There is also steam but that has an upfront cost and should probably be the last place you publish. Wait until you have something more complete that you are proud of.
You can see my game stuff at www.cookiedragon.games