Hi to you all who use this site.
Firstly my name is Kevin and am glad to have finaly signed up to a game
dev comunity. I have been wanting to get into game dev as I feel I have
some decent ideas. Maybe great ones maybe not, who knows and right now
who cares. They are ideas I do believe would be fun. First problem is
while I have the ideas, I have no way of fleshing them out into
something playable. Second problem, how do I flesh them out into
Yes I have seen some posts asking the same thing. But nothing realy
answering the questions I have. Sorry for the irritation of spiting it
all out again, but my greatest thanks go out to anybodie who remembers
how daunting it was when they started and are willing to lend a hand.
So here wo go.
1) What langauge to learn. It apears C++ is the way to go. And I guess
that’s what I will pick up as I don’t think I could handle learning
something on the easier side to just have to pick C++ up at a latter
stage. I am willing to put in the time needed to learn the language. As
its just a hobbie right now I’m in no rush.
2) What would be a good book to start with. I have seen some around
writen from the point of game dev. Has anybodie read any like this or do
you all prety much go the route of a straight forward C++ everything you
need to know book.
3) Now that I have a language to focus on and a book or 2 to work
through. What programs would I need to get going. I hate to think about
having to work my way through 2D before going onto 3D, but as I don’t
want to take on something so big that I hate the task and give up all
together, I understand 2D is the place to start. So whatever is necesary
to start up there please. Like what program do I use to program with.
What is good for making sound effects. And something for sprites of
objects, and to animate them too. And on a side note, I don’t want to
make my own resources just yet, so is there any place you guys recomend
to get them free.
And finaly, for now.
4) When learning something new we all know its best to break it down
and focus on smaller areas. So is there a “traditional” sort of route
through game dev. Like start with this type of game, then move onto this
and finaly this. And presto. You have lernt all the baisics in a sneaky
manner without knowing by picking up how to make a charecta move from
one game, and decent collision detection from another and now can make a
simple game that isn’t just a straight clone of Mario or Tetris.
Is there any sort of structered lessons on this forum for beginners
looking to jump strait in and begin learning.
I’m sure there’s plenty more I should be asking. But I just don’t know
enough of what I want to do to know that I don’t know what is necesary
to do what it is that I want to do to be asking what it is I should be
asking. Or some such.
Thanks for the help.
Please log in or register to post a reply.
Regarding the language to learn: I know you said you just want to jump
into C++ and it’s good that you’re willing to put in the time, but I
would still recommend starting with Python first. Note that Python isn’t
a baby language or anything. It’s a powerful language in its own right,
plenty of professonal coders use it for various tasks, and there is
plenty of gamedev you can do in Python, e.g. with
PyGame. Why start with Python? It has
a lot simpler syntax than C++, so you spend more of your attention
learning actual coding skills as opposed to memorizing arbitrary rules
of the language. It requires a lot less code to get something working,
because the language is doing more for you under the hood; this makes
your iteration-time faster. (It’s not uncommon for something to take 1
line of Python that would take 50 or 100 lines of C++.) Python’s
standard library has excellent documentation and it’s all in one
place. And there are some
excellent free online books about learning Python, such as Think
Python or Learn
Python the Hard Way.
Now, everyone is different, and you personally might do fine jumping
into C++ directly; I have no way of knowing. The thing about C++ is that
you will have to mentally keep track of a lot more details all at once,
and it has a greater potential to be confusing. Yes, C++ is a more
powerful language in some senses (it’s also much less powerful than
Python in other senses), but it’s also more difficult to work with. C++
is like a fancy sports car while Python is like a Camry or something.
Which one do you want when you’re just learning to drive? ;)
By the way, once you’ve learned one programming language well, others
will be a lot easier to pick up. Many of the concepts that you learn
in Python will translate straight over to C++ or almost any other
language. And it would be wise to spend some time working on basic
programming concepts before doing stuff with even a 2D game. I’m not
saying you have to work through the entirety of one of those books I
linked to before you crack open Pygame and start making a 2D platformer
or something. Just that again, it’s a matter of balancing how many
details you’re trying to keep track of at once. If your brain’s still
trying to get a handle on loops and variables, for example, it’ll be a
lot harder to figure out your player character’s jumping physics. :)
Likewise, I think it’s a wise decision to stick with 2D first and save
3D for later.
You are going to get a lot of disagreement on this topic. My own feeling
is that c++ is not the way to go if you want to develop a 3d game in the
shortest time possible. You will need an engine now days to do a 3d game
because it took those engine developers years and years to perfect that
engine. You don’t need to reinvent the wheel, and they make sure it runs
on all systems. The engine is written in c++ and is 90 percent of the
code in the game, so using a scripted language, which is much easier to
debug, will only slow the game by about 5 to 10 percent, not noticeable
by most hardware.
I generally recommend writing a few games in 2d because you will be
doing your own basics like rectangular collision detection, grid based
movement, astar path finding, simple physics (what goes up must come
down) and finite state machines as well as things like game loops which
become somewhat hidden in engines. You could learn those things in a 3d
engine like Unity, but it tends to hide them with higher level tools.
Still, it’s up to you. Many people do begin with 3d programming in an
engine like Unity without doing 2d work.
If you haven’t programmed at all, I think Python is an excellent
language to learn programming. Once you have learned one, it’s fairly
easy to learn the next. However, I don’t think it’s necessarily the best
way to share your games with other people who will give you input on
design. For that, I think perhaps FlashPunk is a good place to start, so
you can put your games on Kongregate or something similar. Other choices
might be Impact, which costs 100 dollars and is an html5 engine, or
possibly EaselJS, which is free.
One thing you don’t want to do is to get in too big of a hurry. That’s
the kind of thinking that leads people to start large projects before
small projects and pick the hardest language like c++ as a first
language. Almost all colleges that teach programming will not start
their students out with c++. They do that for a very good reason, to
keep as many people as possible in the program and graduating.
Thank you both for the help. I will look into Python. If it makes me
better in the long run.
As for the programs needed, is Pygame all I have to get a hold of to
get started. Thanks for the book links to. Will go through them as soon
as I get a chance. Yes that’s much better, learning what’s hapening in
the back ground of an engine by doing it myself is a great way in. Hate
it when things just appear to hapen and I have no idea why. Thanks again
Pygame is the usual choice. Another library that’s interesting is
Pyglet. It’s a little lacking in documentation, but looks pretty easy to
get up and running. No external dependencies, and written in a more
object oriented way. Since you will be using it as a stepping stone, you
might want to give it a look. Also, you have to make sure you use the
version of python for the library since there was a big break between
version 2 and 3 in Python. There’s a little tutorial here:
If you are following along with most books, they will probably use
Pygame, so check that out. If you just want to get the job done and
learn about game loops, ai, etc, then I think Pyglet might be a good
choice, but you won’t find a lot of examples.