Advertisement

Why Does Everyone Tell Newbies To Make Games?

Started by April 26, 2015 04:57 PM
39 comments, last by Gian-Reto 9 years, 8 months ago

newbies are told to make games to improve their skills.

Can you cite some examples where a newbie hasn't specifically asked about improving game programming skills? I.e., I don't accept the implied premise of your statement - that "make a game" is a common response to someone who's asked about improving general (non-game- and non-graphics-oriented) programming skills. I don't recall many posts where the OP stated something like "I know a little C++. How can I learn more?" - to which the response was "Program a pong clone game."

I've seen a lot of posts regarding game-related questions - "Where do I start?" <-- "Write a guess-the-number game." Or, "I've done a guess-the-number game. Where next?" <-- "Write a pong clone."

Please don't PM me with questions. Post them in the forums for everyone's benefit, and I can embarrass myself publicly.

You don't forget how to play when you grow old; you grow old when you forget how to play.

There tend to be two types of newbies -- the humble ones, and the ones who have delusions of grandeur and immediate gratification.

For the former group, they can usually met the challenge and they're willing to take things one step at a time. They know what their skill level is, and realize they can't learn everything at once. They might fail, they might bite off more than they're ready for, but they'll learn from the experience regardless.

For the latter group, they have no grasp of the realities of game development and its probably best to knock them off their cloud as soon as possible. Often times, they only way to humble them is to utterly fail at that thing they think will be so easy. They need to attempt and fail at making a game before they're really ready to learn.

But you're right that everyone needs a grounding in programming before they can take on a game. And I don't just mean syntax or basic code engineering skills, I also mean problem-solving and math skills, and most importantly they need a baseline skill-set, domain knowledge and self-confidence to recognize and reject the poor advice they'll innevitably find (AKA -- they need a good bullshit detector). Real-time games have lots of moving parts -- parts that move all at once, no less -- and that's a lot different than turn-based games (most text games, many puzzle-style games), the complexity of orchestrating that is a lot to get your head around -- and that's to say nothing of the plumbing that lets any of it happen. Those skills necessary to wrangle this kind of complexity build up upon one another, I'm not aware of any way to skip right to the end.

throw table_exception("(? ???)? ? ???");

Advertisement


For example, I had before attempted to make a pong clone in Monogame, only to be frustrated and not understand how it was meant to work.

Monogame is an open source implementation of XNA. Googling for "XNA pong" yields lots of tutorials and videos. Honestly, what more do yo u want? There is so much information on the internet.

I might be painfully obvious to you Phil, but the reality is that it isn't obvious at all when you are a newbie.

The trick is how to convey that obviousness to people completely new to the scene.

Too many projects; too much time

So what do you recommend to newbies then? Not make games?

I guess this is kinda same as I always try to convince people not to use C++ as their programming language when they are just starting with programming. I really think giving good tools would be something that can make it or break it when someone tries to take their first steps on programming. It is quite some time when I tried to use XNA, and I noticed its definitely not the easiest one to start with. Before learning how to use the engine, you'll first have to learn to code C# and stuff about classes and inheritance.

If I were to recommend something I would probably suggest trying out love2d. Even tho there are a lot of questionably named libraries for it, I think using LUA would be easier to get started with. Not to mention you can draw stuff on screen in less than 10 minutes by writing 10 or something lines of code.

It might not be the most fastest nor optimized, but it should be good enough for almost any kind of 2d game people would make.

As for making pong or tetris, making even that one game will be more than what most people will be able to ever do. Even better if your final goal has similar elements as the first game you are trying to make, or maybe make small games that have the elements that you are planning to have in your dream game. Then eventually building the game piece by piece in small steps. You probably won't win olympic gold in 100 meter sprint if you haven't yet learned how to even walk.

Advertisement

I find it kind of odd that newbies are told to make games to improve their skills. Making a text game is pretty straightforward, but a game like pong? That's just a whole new level, which newbies don't have experience in. How're they expected to make games using graphics? I mean, I know there're tutorials, but some frameworks don't have many. For example, I had before attempted to make a pong clone in Monogame, only to be frustrated and not understand how it was meant to work.

Just curious about this.

Programmers have to research, read documentation, and example source code that is included with the different libraries they use. Not everything has tutorials, but usually it does have included examples that show how to use a feature. Telling a beginner to make games to improve their skills is no different than someone telling a person to learn to create a boot loader when learning assembly. As a programmer you have to push yourself. If you are using a framework or library with little to no tutorials then it just means you will then have to sift through the examples and documentation to learn the framework. If you don't understand something then you can google or come to this site and post your problem to receive advice and guidance.

Maybe we should say make an ATM application using WPF with Visual C#...? You can sit in console all day long or you can start to venture out and challenge yourself. No one wants to keep making text applications for years and years at some point you want to actually do something visually stimulating.

Edit: Also there are plenty of tutorials on SFML out there to do something worth while like creating a simple game like Pong or Tilemap tutorials.

Your question doesn’t make sense unless you phrase it in a, “Why make games, as apposed to…?”, form. It would be a lot easier to give a specific answer if we could also explain why a specific alternative is not as suitable as game programming. For example, why not database programming? The answer would likely be more along the lines of motivation. If programming meant doing databases, I simply would not be a programmer, period.

You also make something seem hard that doesn’t have to be hard.

Game-programming doesn’t have the monopoly on overly challenging areas. You can get too far in over your head no matter what type of programming you pursue. Being able to take things one step at a time at your own pace is a completely separate subject. Just because we say, “Make games,” it doesn’t mean we are saying, “Start programming graphics before you are ready.”

Working at your own pace should be considered implicit when we suggest making games. The focus on games is mainly (I would assume) a means of maintaining motivation while also sticking to a subject that is directly applicable to one’s future (we assume these people want to get into the video-game industry).

L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

In some ways many game engines/frameworks available today are simply too high-level to write games like Pong or Tetris in their most basic form, with their 3D-oriented abstractions (cameras, projections, models), interactive physics systems, node-based programming and whatnot, and they are most likely to confuse and discourage you than teach you anything.

If you are starting out just moving up from text-based games, all you really want is an event loop and a canvas, so that's what I'd recommend.

Yeah, it's kindof funny seeing people making Pong in unity, having to mess with the camera and whatnot.

What will you make?

This topic is closed to new replies.

Advertisement