At first, I was making a procedurally rendered dungeon crawler. But as you could Imagine that is a rediculous place to start for ones first game. I got about 2 / 3 into the development. But that would take too long for my first game, and it would dispute the common keyword here for new developers. “More”. If I sunk all my time in that, I’d be taking in more information than I could handle. And I’d hardly be learning anything. I was following TheCherno’s game programming tutorials, these to be frank, are great…but sometimes not so much. The explanations are not very in depth. He offers tutoring, but the hourly rate, is too much and it doesn’t seem practical. Considering a majority of the users on this forum didn’t any studying methods which included tutoring. He’s a great programmer, but I’m not understanding him on a complete level, even when he is catering to the very beginners. So if I wanted to make a pong game, and learn from this, where would I go, guys? Thanks JGO gang ;D
My first game wasn’t pong, so I have no idea where to look for resources on how to make pong specifically. But what you should do isn’t so much find a tutorial to make pong as much as you should find tutorials to make the various parts of pong. I think you’ll learn more in the long run.
For example, if I were to make pong, I already know I need to know a few basic things:
How to move an image on a screen, or generate geometry shapes and move those. (For pong, I would generate geometry)
How to do collision detection. There are many methods, but for pong I would look up methods that involve using geometry and intersecting with them
How to make a super, super basic physics system. (Just detect the angles something is going when you hit it with the paddle, and send it back)
Scoring system, and a way to detect when the ball passes the paddle.
Now, there’s a ton of other stuff I could do later:
Adjusting the velocity/trajectory of the ball based on the direction the paddle is moving at the time of impact.
Basic computer AI, where the opponent “tracks” the ball
Particles
Sound Effects (The coding side)
Power ups
(WARNING: Totally my personal opinion) The best way to learn is to sit down and think about “what mechanics does a pong game need to function correctly?” and research those mechanics, not so much the entire game. If you find a tutorial to make the entire game, chances are you won’t actually know what you coded by the time you finished it because you glossed over the confusing parts not realizing you practically copy/pasted your code from examples. But if you look up each part and learn them on their own it’ll help you to understand how they work, because you’ll have to not only code them, but figure out how to make them work together.
I’m the admin of a site called Static Void Games, which, among other things, contains a bunch of tutorials that take you from “knowing nothing about programming” to “being able to make a simple game in Java”.
But you should probably start with an even simpler tutorial, which you can get to from that same link. I actually recommend starting with Processing instead of Java, and the tutorials start out in Processing. But it’s up to you.
I’d be happy to answer any questions you have about anything.
I should also note that we’re in the middle of open-sourcing the whole site, so some things are still a little bit rough. In the tutorials, some of the images are missing, and some of the code is unformatted, but the basics are there.
That is a great resource. I will surely use this to apply more information to my current, and very little knowledge of Java. I really appreciate the help from this forum as well ;D
I’m slightly skeptical of the kind of tutorial you get these days which doesn’t require the “student” to do anything more than read (optional) and then paste in the full working code. Is there any research showing how many people do anything more than skip to that step?
My advice to Nick is you’ll learn much more by following Rayvolution’s sketched-out steps. Yes find blog posts/tutorials/javadoc for each piece of the jigsaw like “draw shape on Swing panel”, “detect keyboard input” and so on, but following detailed instructions for the entire project seems pointless. You need some kind of challenge to learn properly. Teachers don’t say “here are this weeks homework questions, and now I will show you how to answer them”, for obvious reasons
Nick, if you do use the StaticVoid tutorial, will you promise us that you will do the extra exercises at the bottom of the page?
Too often I find this to be exactly what happens. :emo:
Then I’m a “genius” for being the one of a handful of people who knows how to actually do the work outside of class.
But yeah, conceptual learning is essential if one wants to go farther than just following step-by-step instructions.
You might also want to check out code.org’s Hour of Code, which Processing participated in. Lots of resources at code.org, especially in the Hour of Code, and especially in Processing’s Hour of Code: http://hello.processing.org/
This is a valid concern. I am very against spoonfeeding full-code solutions to people. However, novice programmers do need to be shown the basics before they can do anything by themselves. I look at the tutorials as “the in-class lesson” where the teacher will walk students through the process of setting stuff up through an example. Then the “assignments” at the bottom are more like homework, or more generally, the stuff people want to do next is the homework. I assume OP’s end goal isn’t actually to create Pong, but to build upon that knowledge until he’s making “real” games. Now that he knows how to create Pong, can he add some extra stuff to Pong? Can he create Arkanoid? Tetris? Mario?
In other words, although the tutorials do walk you through to the end process of creating Pong, that isn’t where anybody actually wants to finish. My hope is that they’ll be able to use that knowledge to create bigger and better games. And then when they have a problem, I can say “a-ha, looks like you didn’t really read this part of the tutorial, better go back and read it more carefully”.
Of course! I’m actually using it, and I’m building on to it. It’s a hell of a good time just to come up with ideas of my own. In fact, I’m about to post a thread regarding how I could improve game flow and such. This is my first time working with collision, so it’s a little new to me. Some of this information I new previously, but thanks for the reply. I really appreciate your answer on the thread. They really help a bunch
I can understand that, but I already understand how to work outside of classes, even though I’m new. It’s a very important concept to keep in mind when programming. I usually prefer to stay organized by doing this, but I pretty much just stayed within two classes for this pong mini project thingy