Hi, What is the java knowledge required to learn java game development using a game api like libgdx or slick2d along with box2d physics. I would like to start 2D, I already have some java knowledge and was going to get this book:http://www.amazon.co.uk/Learning-Libgdx-Development-Andreas-Oehlke/dp/1782166041

I don't have a lot experience using libraries. But learning object oriented programming is a good start. Knowing how to make and use your objects makes game programming so much simpler, learning how to use libraries after that makes it more powerfull (I guess powerfull is the right term here? )

There are two kinds of people in this world: Those who can extrapolate from incomplete data,

I know how to create objects and use them and even constructor methods and methods but I cant get what is happening in inheritance, is it all jsut for you can use variables and methods from the clss your implementing, ex public class game extends player implements car . What does it mean?

It sounds like you need to learn java. Don't get too excited and jump into making games or else you will just give up. There are many tutorials and I think that we have a thread on this site for java tutorials (just use the search bar). You can go check out thenewboston on YouTube for java tutorials also.

If you want some good books on OO programming, check out Object Oriented Programming books from O'reilly. Also check out their book about Design Patterns. It may be quite some effort you need to put into learning OO programming, but it makes programming much easier and understandable.

If you want to be a good programmer, make sure you know how to use Object Oriented programming and how to apply Design Patterns.

There are two kinds of people in this world: Those who can extrapolate from incomplete data,

Dont get me wrong I know switch statements,loops,constructor,variables,conditionals,arrays,parameters,arguments,Object oriented, methods, constructor and today I learned inheritance. What is something that is crucial like a topic or function so i can learn it, i had a school project for java which I had been learning for a year. I got 14/15.

Grades mean nothing. I could fail a math test and still know what I'm doing, I just may not have decided to try on the test or misunderstood instructions, wasn't prepared etc...

Like other people have said, you need to know Java first and the basic concepts of OO. Its not very good that you just learned inheritance, that tells me you really haven't ventured far into the language yet.

There's also no set amount of knowledge you need to know to make games. Just know Java, that's it. After that point its up to you to utilize what you have learned. You don't need to know everything, but knowing the basics is really recommended. Just study more Java first and then come back to game dev.

As much as I'm happy for the excitement you have trying to "jump" into something like Slick2D and LibGDX, these people are correct. If you do not "feel" the language (being able to write code with your eyes closed), you are going to have a rough time understanding how to work these engines. The reasoning is that with school, you are only scratching the surface. They teach you the variables, functions, and syntax. However, learning when and how to use this syntax is a whole different beast. There are a lot of different design patterns once you've breached the surface of learning the basics.

How do I get past this defense...

Tutorials. Literally it is the difference between trying to jump across an open chasm or taking a convenient bridge. If you look for the tutorials or grab books on the subject you are trying to learn, you have a much better chance of not "falling to your death" trying to understand concepts. You'll probably learn a lot more as well, since, game development takes a lot more than simple programming knowledge.

Game development is only difficult for those who didn't take time to fortify. Everyone always thinks that coming in with a shaky sand castle will guarantee you'll survive the waves. However, those who read the tutorials already had the knowledge to build up a wall. Always brace yourself for impact by learning the tutorials, so when the "big wave" of problems come... you'll be ready.

People often say learn the language before you start making games, this is good advice for any real game, but there's a lot to be learned from making mini games.

step 1: draw a square or an image on the screen and get it to move with the arrow keys.step 2: add some things that the square has to run over to collect points.step 3: add some things which move around semi-randomly and kill the player if they touch them.

You can do all this without knowing much about programming, but you will learn things about both programming in general and making games, by making little game-like programs. Each time you complete something simple you will come up with new ideas to try out based on the experience you are building up.

You should learn about gameloops since they are the backbone to every game

Agreed, there is a good introduction in the Articles and Tutorials board, but one should also recognize that his app does have a game loop, albeit a non-continuous one, which is actually just fine for the purpose of the app.

First to understand what the point of all this "inheritance" or "polymorphism" is, you must understand that the programmer (you) must try to never write the same code over and over again.

Quick example. We have 3 classes called "Apple", "Orange", and "Banana". These three classes will have some similar properties, for instance, they share these methods : "public void eat()" and "public void throw()".

I know we are a Java based community but are we a Java based community that is focused on Game Development or teaching Java itself?

It seems like a lot of the things being explained here can be learned by reading one of the many books and thousands of stack overflow questions. Inheritance and Polymorphism is a huge concept in its own right and something you can simply not learn by reading a few posts on a thread. Sure you will get an idea but it will just leave open a ton of questions, eventually throwing the thread into the chitchat monster as it has no real value.

I suggest the OP takes a step back and figures out what he/she needs to know.

I will suggest some Java skills that are mandatory (imo) for game development:

Have a grasp of basic Java syntax, such as how to instantiate objects, declare fields, assign/compare values, methods, return methods etc

A firm understanding of arrays/collections, without knowing how to use basic arrays you will find it almost impossible to create anything

Understand the basic principle of OOP, you don't have to be good at it but you better damn understand how it works, if not you will spend 80% of your time replicating already written code

Less Java related but understanding of algebra and basic arithmetic, then worry about Trig and such

There is probably a lot more but looking at my code, those are pretty much the most common things I see.

"This code works flawlessly first time and exactly how I wanted it"Said no programmer ever

Objects and inheritance have almost nothing in common, other than they are both grouped under Object Oriented Programming (OOP). I don't have a straight up definition for what an object is, but I do like to use this example:

Think about a box. A box can hold "stuff". Boxes can come in many shapes or sizes and can be used for many different tasks. The same applies to objects in programming. An object can hold "stuff" (variables), and they can be used for many many different tasks. You could also go as far as to say boxes can inherit other box's characteristics (size, color, shape etc...), which is how inheritance works in programming.

With inheritance you can create a hierarchy of classes. One being the "super class", and the other classes being the "child class or sub classes etc...". These child classes will take on the characteristics of it's super class, but can also have its own characteristics.

Inheritance is almost like having a child. The child will retain some of it's parents genes, but will also have it's own modifications (mutations actually). Child classes can have their own methods and variables independent of their super class, but will still "act and look" like their super class.

Why not? You can just skip past it if you really want to, and there still might be something that you could learn.

That being said, this google search is a good place to start with finding books. Modify the query as you see fit.I saw Java, A Beginner's Guide, and I know Herbert Schildt is good, and you can preview the book free online to see if you like the style.I've heard Head First Java is good.

Really what it sounds like you want is just an OOP book, not a Java book, but most Java books will cover the OOP basics, and do so in a context you already know about (Java), so there is a benefit.

I have Code Complete, 2nd Edition, and it is quite good, it's all about software 'construction' and design. Definitely consider.

will the beginners book cover inheritance? because here in my country, inheritance is learnt at university level. I dont know whats considered beginner, I have some java oop basics I would like to learn about key listeners mouse listeners and inehritance etc

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org