30 Tips For Newbie Game Programmers

Started by
19 comments, last by SuperVGA 11 years, 4 months ago

I want to talk a little about 8th tip:
If you're developing your own game -please I beg you- don't make a clone game. Nobody needs a another bubble game. Clone game development causes you to not to learn the game design iteration process.


I think it's really important for us, I'm talking about novices in gamedev which are looking for idea to realize.
There is no need to realize ping-pong, asteroids, breakout and other crap, being implemented so many times...
[/quote]

I disagree; If you're learning to program it's great to have a clearly defined goal to stick to, so you can focus on dealing with the programming thing.
It's like saying don't play "bad bad leroy brown" on the guitar when learning to play guitar. Play something new and different!
Or saying; improvise while learning to cook! It will make you a better cook.
If I'm not sure if I'm making spaghetti, I'll both be figuring out what I'm trying to cook, while running all over the kitchen,
failing to memorize where I put the knives. - Just because somebody else cooked spaghetti with meatballs, my kids won't enjoy my meal as much?

If you know you're creating a jawbreaker game, pong or asteroids, you have a pretty good idea of what you want to end up with.
You can program your way there; that is the actual challenge, and what you actually need to learn.
As superman3275 said, the statement seems to originally be directed towards established/upstart game developers (with prior programming experience implied).

And aside from how games are received by the public, I think it's up to the individual developer to decide what he or she enjoys developing more. Unless you're looking to become popular, or make money off development, why would you develop a game based on what
other people like? If it's my hobby, I intend to create something I enjoy. That's what drives indie development IMO.
Only pleasing the end user is sort of a commercialization of the scene, I think.
Advertisement
Tip 3 of the same article:


If you're developing your first game and you've no idea about game development. Start with tetris / a basic platform game or an arcanoid game.
[/quote]

I suggest Tip 8 aims at people that can actually code and design a bit already. It tip is more about learning how to come up with a new idea, create a game design, create a software design for the game design and implement it [ignoring iterations here]. If you clone an existing game you skip the first two steps and are directly at creating and implementing a software design. Therefore skipping the game design step.
Moving to YA.

Wouldn't you agree that some people just have to learn things the hard way?


No, I wouldn't.

The unfortunate truth is that pretty much every teenager discounts experience. Schools don't value experience, just intelligence. Games don't value (actual) experience, just grinding through enough work to get to the next level. There will always be that hard lesson for people to learn in their lives.

When people discount experience, they're stubborn and won't take advice. They think that they're special and can do more than the average person; that the rules don't apply to them. The thing everyone has to learn the hard way is that as you grow up, you aren't competing against the average high school student, you're competing against the average intelligent person with an aptitude for programming.

If you're someone who just has to learn things the hard way, you will lose that competition for jobs and for sales against all of the other people who are smart enough to learn the same things just as well the easy way.
[quote name='AlexB.hpp' timestamp='1353442105' post='5002741'] I think it's really important for us, I'm talking about novices in gamedev which are looking for idea to realize. There is no need to realize ping-pong, asteroids, breakout and other crap, being implemented so many times...
If they're novices, do you really think they should be spending their time to do something that's never been done and losing their way with less chance from getting help from experienced developers? At least, if they do something that's been done, others will likely know how to assist them in it because they have probably done it themselves. Sides, most people who want to go into game development, have plenty of ideas they want to utilize, but their lack of skills is what holding them back. Which is why they redo simple games to learn the skills so they can get to what they really want to do. [/quote]

People learning to program don't need to learn game design iteration. They need to be able to take an idea and make it work in code. Game design just muddies the waters.


[quote name='AlexB.hpp' timestamp='1353442105' post='5002741'] I want to talk a little about 8th tip:
If you're developing your own game -please I beg you- don't make a clone game. Nobody needs a another bubble game. Clone game development causes you to not to learn the game design iteration process.
I think it's really important for us, I'm talking about novices in gamedev which are looking for idea to realize. There is no need to realize ping-pong, asteroids, breakout and other crap, being implemented so many times... [/quote] I disagree; If you're learning to program it's great to have a clearly defined goal to stick to, so you can focus on dealing with the programming thing. It's like saying don't play "bad bad leroy brown" on the guitar when learning to play guitar. Play something new and different! Or saying; improvise while learning to cook! It will make you a better cook. If I'm not sure if I'm making spaghetti, I'll both be figuring out what I'm trying to cook, while running all over the kitchen, failing to memorize where I put the knives. - Just because somebody else cooked spaghetti with meatballs, my kids won't enjoy my meal as much? If you know you're creating a jawbreaker game, pong or asteroids, you have a pretty good idea of what you want to end up with. You can program your way there; that is the actual challenge, and what you actually need to learn. As superman3275 said, the statement seems to originally be directed towards established/upstart game developers (with prior programming experience implied). And aside from how games are received by the public, I think it's up to the individual developer to decide what he or she enjoys developing more. Unless you're looking to become popular, or make money off development, why would you develop a game based on what other people like? If it's my hobby, I intend to create something I enjoy. That's what drives indie development IMO. Only pleasing the end user is sort of a commercialization of the scene, I think. [/quote]

Learning process isn't easy. That's why we need to be patient and use iterations on finding some answers by ourself. There is no right or wrong way to learn game making. There is only your way. If you don't know how to create a bunch of classes to hide your functions you should read some books. If you don't know what game to develop so you probably need to delay it and read something or just sleep to get some inspiration. If you don't know how to use some lib - create your own to get it. And so on.
You should do it step by step - learn it point to point and after sometime you will be able to create really nice game, so you could get some good critics and even some profit.
You can't ignore design part of gamedev. It's just like team without leader - it won't do something good because someone should get control on a project and lead it to success. So in the future you will have to deal with design anyway.

There is only one thing I'm talking about - inspiration. When you could imagine some nice game, describe it and implement. I wanna to remember Phil Fish's story of making Fez. He was working on it for 4 years. He was insane about improve it and changed whole design for 3 times. You can say - stupid, but I say - it's inspiration. It's some kind of magic going of inside of everyone.

To create something really cool you should do as much as possible and don't ignore even a little issues. Responsibility greatest motivator for programmers.

So now let's see how much experience you will gain complete a breakout or complete some little nice game which was imagined by yourself. It's all about making a decision - do I like to programming and creating games or don't.
C x 2 C x o C x C f nice C x C s C x C c

[quote name='3Ddreamer' timestamp='1353469635' post='5002844']
Wouldn't you agree that some people just have to learn things the hard way?


No, I wouldn't.

The unfortunate truth is that pretty much every teenager discounts experience. Schools don't value experience, just intelligence. Games don't value (actual) experience, just grinding through enough work to get to the next level. There will always be that hard lesson for people to learn in their lives.

When people discount experience, they're stubborn and won't take advice. They think that they're special and can do more than the average person; that the rules don't apply to them. The thing everyone has to learn the hard way is that as you grow up, you aren't competing against the average high school student, you're competing against the average intelligent person with an aptitude for programming.

If you're someone who just has to learn things the hard way, you will lose that competition for jobs and for sales against all of the other people who are smart enough to learn the same things just as well the easy way.
[/quote]

There is the norm and then there is the long way to reach things. I still know that some people make bad learning decisions early. I must add that many of those correct themselves later after hard lessons. For some the "rewiring" of the brain is a reality and others it is only a matter of correcting bad choices. History contains millions of people who started rough but became efficient.


[quote name='3Ddreamer' timestamp='1353469635' post='5002844']
Wouldn't you agree that some people just have to learn things the hard way?

No, I wouldn't.[/quote]

This seems to contradict this:


There will always be that hard lesson for people to learn in their lives.


Popular opinion has always been in error in some subjects. Many people condemn unsuccessful learners as having no future, but I give the possibility of great success to most people who struggle in the early stages. At 46 years of age, I have seen many examples of people who struggled for years, but later got on track and became successful. I wish that I had no need to pull the age and experience card, but it really is relevant.

Clinton

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer

There's a difference between people who struggle early, and people who must follow the rough and tumble way in order to be successful at all. After all, people can struggle even on the easy path.

No; I believe that people need not learn things the hard way. People do, but it just seems like a waste when the easy path is right there. As someone who has spent far too much time wasted on the hard and stubborn path, I would be negligent to simply let others make the same mistake.

[quote name='Kale' timestamp='1353463130' post='5002824'] [quote name='AlexB.hpp' timestamp='1353442105' post='5002741'] I think it's really important for us, I'm talking about novices in gamedev which are looking for idea to realize. There is no need to realize ping-pong, asteroids, breakout and other crap, being implemented so many times...
If they're novices, do you really think they should be spending their time to do something that's never been done and losing their way with less chance from getting help from experienced developers? At least, if they do something that's been done, others will likely know how to assist them in it because they have probably done it themselves. Sides, most people who want to go into game development, have plenty of ideas they want to utilize, but their lack of skills is what holding them back. Which is why they redo simple games to learn the skills so they can get to what they really want to do. [/quote]

People learning to program don't need to learn game design iteration. They need to be able to take an idea and make it work in code. Game design just muddies the waters.


[quote name='AlexB.hpp' timestamp='1353442105' post='5002741'] I want to talk a little about 8th tip:
If you're developing your own game -please I beg you- don't make a clone game. Nobody needs a another bubble game. Clone game development causes you to not to learn the game design iteration process.
I think it's really important for us, I'm talking about novices in gamedev which are looking for idea to realize. There is no need to realize ping-pong, asteroids, breakout and other crap, being implemented so many times... [/quote] I disagree; If you're learning to program it's great to have a clearly defined goal to stick to, so you can focus on dealing with the programming thing. It's like saying don't play "bad bad leroy brown" on the guitar when learning to play guitar. Play something new and different! Or saying; improvise while learning to cook! It will make you a better cook. If I'm not sure if I'm making spaghetti, I'll both be figuring out what I'm trying to cook, while running all over the kitchen, failing to memorize where I put the knives. - Just because somebody else cooked spaghetti with meatballs, my kids won't enjoy my meal as much? If you know you're creating a jawbreaker game, pong or asteroids, you have a pretty good idea of what you want to end up with. You can program your way there; that is the actual challenge, and what you actually need to learn. As superman3275 said, the statement seems to originally be directed towards established/upstart game developers (with prior programming experience implied). And aside from how games are received by the public, I think it's up to the individual developer to decide what he or she enjoys developing more. Unless you're looking to become popular, or make money off development, why would you develop a game based on what other people like? If it's my hobby, I intend to create something I enjoy. That's what drives indie development IMO. Only pleasing the end user is sort of a commercialization of the scene, I think.[/quote]

Learning process isn't easy. That's why we need to be patient and use iterations on finding some answers by ourself. There is no right or wrong way to learn game making. There is only your way. If you don't know how to create a bunch of classes to hide your functions you should read some books. If you don't know what game to develop so you probably need to delay it and read something or just sleep to get some inspiration. If you don't know how to use some lib - create your own to get it. And so on.
You should do it step by step - learn it point to point and after sometime you will be able to create really nice game, so you could get some good critics and even some profit.
You can't ignore design part of gamedev. It's just like team without leader - it won't do something good because someone should get control on a project and lead it to success. So in the future you will have to deal with design anyway.

There is only one thing I'm talking about - inspiration. When you could imagine some nice game, describe it and implement. I wanna to remember Phil Fish's story of making Fez. He was working on it for 4 years. He was insane about improve it and changed whole design for 3 times. You can say - stupid, but I say - it's inspiration. It's some kind of magic going of inside of everyone.

To create something really cool you should do as much as possible and don't ignore even a little issues. Responsibility greatest motivator for programmers.

So now let's see how much experience you will gain complete a breakout or complete some little nice game which was imagined by yourself. It's all about making a decision - do I like to programming and creating games or don't.
[/quote]

The learning process isn't easy, that's sort of a given, yes. That's why it takes time. To make this more efficient, we have schools and courses, that teach development in small steps.
When you and mr. Ozer talk about design, it seems like you get software design and fluffy creative ideamaking "game design" mixed up. (Sorry idea people, that was a little harsh) The two are in my opinion very different. I agree that there's no right and wrong way, and you can crack idea upon idea, and fighting with it may make you a good and satisfied developer.

But if one seriously cares about learning and isn't blinded by all the could-be's, there are still better overall places to start with.
This "start by making pong" vs. "start by making crysis III" is basically the same discussion as "start by learning python" vs. "start by learning c++"
It can be done that way, sure. But it's not course material for programming 101. Unless you're a bad teacher.

It's likely that one will pick a big, difficult project (like simulating complete worlds through individual molecules and such), and learn from it.
I know, because I picked a lot of difficult projects, that I then abandoned. Until recently, in fact.
I think my ideas and dreams are all quite unique, but dreaming about them and biting off more than I can chew isn't cool:
It is aside from the fact that I do learn something all the time, a little frustrating.
Based on these experiences I encourage newcomers to game development (again, not merely people having hatched a unique idea) to start small, -with Pong, as suggested.


If you're developing your own game -please I beg you- don't make a clone game. Nobody needs a another bubble game. Clone game development causes you to not to learn the game design iteration process.

I wonder what he would respond with if you were to ask him what he meant by "game design iteration process", and how cloning a game
will cause one to not learn it. Really. Clone DOOM. I dare you to not learn "game design iteration process" - even if by accident! :)
I agree with his other points, though. Seems reasonable in general, although some parts seem to contradict oneanother.


There is only one thing I'm talking about - inspiration. When you could imagine some nice game, describe it and implement. I wanna to remember Phil Fish's story of making Fez. He was working on it for 4 years. He was insane about improve it and changed whole design for 3 times. You can say - stupid, but I say - it's inspiration. It's some kind of magic going of inside of everyone.
[/quote]
Here it just seems like you say it's ok that you want please mr. Ozer by creating something new and inspired, screw it up for yourself and abandon the project,
only because it was something new. But nobody will ever see that, so mr. Ozer probably won't be pleased after all. (That said, fez is pretty much "just" Mario where the level can rotate. I'm not even sure if I'm so thrilled about it's level of innovation. I know he put a lot of work into it, and it was interesting from a technical perspective, but hardly a groundbreaking concept.)

Had you really considered my analogy, you would probably have understood what I meant.
I can dream up a grand 5 course meal for my first dinner party, but that will mean absolutely
NULL
when people show up for 5 rounds of charcoal followed by food poisoning.

Just start by learning how to cook an egg, alright?
Good post, the only thing I don't agree with is discouraging the user of SDKs. I think it depends on what the developer/designers focus is. For instance, I am not a programmer by trade, and I do not desire to be a "developer" of sorts, but I need to know how to program to execute my design and create my game. I am not trying to cut corners or ignore core principles which may cause more memory to be utilized or create a poor design, I am learning as much as I can and soaking up the knowledge, but I find Corona and other similar SDKs to be a very good bridge to help me learn, and receive results. This encourages me to continue learning more, designing more, and at the end of the day I get to compile and build a version of my game which is playable.

I'm just a guy - that's it.

Hm. SuperVGA, I've got your point. But however it's always better to do what you really want to do. Actually you can cook an egg in few different ways. So you can spent time on figuring out all possible ways of an egg cooking or do smth else. It's only your very own choice. And I believe if you going that way it will lead you to success. You're very own success.
C x 2 C x o C x C f nice C x C s C x C c

This topic is closed to new replies.

Advertisement