I don’t know whether it has been linked yet, but I think this forum-wiki-page might help you
Big fan here, btw
I don’t know whether it has been linked yet, but I think this forum-wiki-page might help you
Big fan here, btw
Would be so much fun if this was just a troll
Don’t tell kids too much about libraries, there is nothing wrong with Java2D (for beginners).
I programmed my first year only in Java2D without any libraries, and it was a nice year.
Java is a really good developed language, you can create very cool games with just plain Java.
As it is more ‘low’ than OpenGL, they have to think more, creating particle systems theirselves, etc.
Performance is no problem for beginners either, maybe for you, someone who is working on a Skyrim game, but not for beginners, creating simple games.
In other words, don’t talk about gaming libraries, that’s for later.
That’s my opinion, anyways.
And tell them about this forum
Its always nice to have something where you can communicate with people that do the same, learn and to get inspired.
PS:
Tell them about the livestream page from Notch, he programs a lot of awesome Java(2D! Just Plain Java) games there, that’s what they all want, NOTCH!
I really like his livestreams and I have watched them a lot (his games are cool).
That’s fantastic about the presentation. If there’s a Guinness book of records for inspiring the most game devs in 1hr, you’ll be the favourite to win it this year!
Those minecraft fans (of which myself and brothers are included) will be anxious to see something on the screen as quickly as possible.
Perhaps specific no-pain instructions about how to install the JDK and an IDE like Netbeans to code up hello world is best to start:
http://docs.oracle.com/javase/tutorial/getStarted/cupojava/netbeans.html
Then copy some basic game code into the IDE that shows graphics on the screen. I think you were right to think that Java2D is the best graphics library to start with since loading native openGL libs is too fiddly and brittle for beginners. This site looks like it has some great examples:
http://zetcode.com/tutorials/javagamestutorial/
Also handy:
The java docs: http://docs.oracle.com/javase/7/docs/api/
IDE auto-complete
The cool open source libs that exist. Box2D is pretty wicked IMO, here’s the java port http://box2d.org/forum/viewforum.php?f=9&sid=26f75d6c5a0d693622bdbda83dbd71b3
JGO and the resources thread: http://www.java-gaming.org/topics/java-gaming-resources/26897/view.html
The beginnings of minecraft (http://www.java-gaming.org/topics/minecraft/20505/view.html) and some of the smaller but also very cool games that markus and all of the other talented creative people have had fun making http://www.java-gaming.org/boards/games/60/view.html
The way java’s free
It would be cool to see your presentation slides after it’s all done, if you’re allowed to show them.
Cheers,
Keith
I did something similar with a simple example of animation in RPL (HP 48 GX). It’s possible to find some very simple visual stuffs. I didn’t want to display text
Turns out this thread is completely legit. Proof
I can’t wait to see what this turns out like and how much this inspires people!
Record it.
You could try to tell people about bad decisions people make that they regret later.
@jeb_,
thanks for joining the forums ;D,
I would also talk about code formatting and the use of comments for quicker debugging (which is something that have yet to master :-).
[Edit]
Also, explain progression because most people will want to jump right into 3D programming and I can tell you that doesn’t work
Formatting? Ctrl-Shift-F ;D
My advice would be, don’t overload them with information. Teach them the basics, and then they can learn specifics by themselves.
Typing code isn’t hard. (Speaking relatively)
Programming is not simply typing code. Programming is finding a problem, designing a solution, and then comes the typing of code. A good programmer can do steps 2&3 at the same time.
The key part is finding (and implementing) a solution using logic.
Too many people that watch me code say “How can you read/understand that?”
What I think is: “You have no idea. This is just the tip of the iceberg”
What I say is “How do people understand foreign languages?”
A good point to teach would be that programming is more about the thought than the code.
This is a good point. However, I still struggle sometimes with actually translating my thoughts into code. I think that teaching the correct way to code, and teaching the functions is just as important in the beginning as teaching coding practices. I’ve picked up my coding practices along the way, but I still don’t really know how to make a real game, even after two years of coding. I can make simple ones, but no one has ever really shown me how to make a real game, so I struggle through it and piece it together and maybe someday I’ll get there. I guess my point is, is that we still need to teach people the actual language first. Coding practices and logic are nothing if you can’t even print something to a console.
Wow, that was the worst little rant ever
I beleive Java2D is the best place to start but it is just a starting point, game development has become a fight for platform support. It has become ‘bad practice’ to write a game that works on one platform. libs like libGDX are fantastic for providing that multi-platform support but they can feel like jumping into the deep end of programming.
I personally feel giving the guests a teardown of Catacomb Snatch, explaining how came together on a basic level would be good. As little ‘here is what you type’ as possible, the guests can take it from there if they want to continue down the development path.
Java2D is a good place to start, but open them up to the other possibilities. Don’t forget to push upon them that there are plenty of other libraries. I don’t think coding a game for only one platform is bad though… Sure, you won’t have as wide of a user base, but its your choice as the dev.
I feel like explaining very lightly how the core game mechanics come together would be good. Use a flow chart and show them how this class interacts with this other one, and then go into the code and actually show them. Show them a simple game though, you want to hook them into programming, not push them away because it looks too hard.
Man, I really want to go now
Our lecturer is giving some expressions of C on the chalkboard and we have to evaluate them on a paper without a computer nor a calculator. Weird way of explaining logics.
Yes, motivation is the key. Motivate them! ^^
I think it’s ok to use Java2D in the beginning as long as you know there are other APIs for graphics. I, too, started with Java2D and flying rectangles.
Show them a moving rectangle and then replace it with an image. This will demostrate how abstraction works.
This just relates to the whole presentation thing and not the relation to JGO, but I wanted to share my opinions on the presentation.
It’s very hard for one to realize that they cannot go straight into making games once they pick up a language. These people who are looking at Minecraft will probably think of Java to program with if they realize it is programmed in that language. I started off with Java, partially because I thought Minecraft was awesome and partially because I wanted to fix the bugs you had mentioned in a blog post that Catacomb Snatch needed fixing (this is back in 2011 or something). So I set it up and immediately I was very confused. I started a game way too early, and the result was Hunger Games Board Game, which does not really use object-orientation at all. So a very good point will definitely be to advise people not to jump into games too quickly. Baby steps are critical.
You could mention that if they get discouraged with Java, that a more simple language may be better to start. Some people are likely not prepared for the syntax of Java when they have never dealt with anything prior, so maybe Python or Ruby may be better for a start at times. Even while only being a freshman in high school, I have helped somebody learn programming, and even though they were interested in it for the scientific simulation possibilities rather than the game creation possibilities, I started them with Python. I did this because I had a friend before who would give up as soon as they reached any bug. It is way easier to create a bug in programming than in scripting (though all of that is debatable). I think that people who want to jump right into games will likely get discouraged squashing bugs. Maybe hinting at the possibility of simpler languages for the start would be good. Then, you can get into game development quicker than with a more-programming language like Java.
It’s also nice to think of a color spectrum with programming vs. scripting. You give one end to programming and one end to scripting. Assembly/machine code goes to the programming end, and something like Python or simpler would go on the scripting end. From there, many languages are between, and how much time you have and what you want to do determines where on the spectrum your language will be.
IMHO the syntax of Java is probably one of the most straightforward and easy to understand of all computer languages excepting BASIC. The reason for my opinion is the sheer consistency of the grammar and lack of kitchen-sinking, under-the-covers magic, and special cases. This really means a lot when you’re trying to understand a language. Unfortunately it’s all going to change with the addition of Lambdas (and generics didn’t help) but both features can largely be avoided.
I still think BASIC is the best language out there to learn programming though. I await a decent dialect and tooling to this day based on the JVM.
Cas
I don’t get the sentence about the tooling. Do you want a decent IDE for BASIC that runs on the JVM or do you want a BASIC interpreter that runs / compiles to .class ?
Please elaborate
Both.
An Eclipse plug in to handle the tooling side would be just fine.
Cas