Learning Programming with Game Development

Welcome to another video by Jesco The Rising
Phoenix Dev and today, we are going to go over the event of people not wanting to follow
my last set of advice and is dead set on the idea of, “I want to learn both my game engine
of choice and programming language at the same time!” And you know what? That is perfectly fine, although I personally
don’t recommend going that route as outlined in my previous video on this subject, however,
I do have suggestions for you if you REALLY want to go that route. We can actually use some very classic and
simplistic games to build that are great for building some solid foundations. I will keep this as language and game engine
agnostic as possible so that it doesn’t matter which one you use, you will be able
to use this advice. The classic games that I am suggesting for
you to first recreate are Pong, Breakout, Centipede and Space Invaders. Each of these games are small enough that
you can easily recreate a single level of and solve the problems presented by them. Which definitely goes into one of the biggest
assets a developer can have, the ability to solve problems. From these four classic games, you could then
move on to more complex classic games like Pac-Man, Galaga, Donkey Kong, and Frogger. These four games present more complex challenges
that build upon what you would have learned from the previous games. These include slightly more complex AI in
the games to environmental hazards. Following these, you can move on to Paperboy
and Commando. These will lay the ground work for more AI
on the screen, more environmental hazards and boss battles. Then, if you really want to get fancy, you
can try to recreate Mega Man, Super Mario Brothers, Metroid and Castlevania. Each of these really stand out for level design,
more complex character movement and AI, along with matching gameplay with the overall tone. This would allow you to not only learn the
programming side of game development, but also aspects that are more able to encompass
the whole of game development. The key point to all of these recreations
is to not try to find tutorials or walkthroughs that hold your hand and walk you through how
to do these things step by step, you should try to figure it out on your own and when
you get stuck on a problem, there is no shame in looking for a solution to a similar problem
to learn from it. Now this doesn’t mean to just copy the code
blindly, rather you should try to dissect the code and really understand what it is
doing. Doing all of these would cement your understanding
of building games, designing levels, building AI and programming. The only downside is that it would only be
focused to your game engine and programming language of choice, so my next suggestion
would be to pick up and try to learn another game engine that uses the same programming
language so that it can be used to expose you more to your programming language and
how drastically different the programming is between them. This would most assuredly get you ready to
handle most single player game development hurdles and paves the way for being able to
do 3D as well. You could further compound these ideas by
trying to incorporate a simple peer to peer networking game to learn about networking
with game development. Following this, if you feel you are ready
to begin tackling 3D game development, there is some very important information to know
right off the bat. 3D game development is technically just an extension on 2D game development,
so many things you learned from your previous practice with 2D will carry over. It is at this stage that you should be able
to think of or be inspired by other games to try to implement mechanics from them. Which leads into my present series that I
am working on where I implement game mechanics from well-known games in 3 different game
engines. This has been Jesco The Rising Phoenix Dev
and remember, this is just my advice and it is up to you to decide if you want to give
it a shot.

Tags: , , , , , , , , , , , , , , , , , , , , , , ,


Leave a Reply

Your email address will not be published. Required fields are marked *