Here is the project space:
If you want tester/reporter status for more permissions/editing possibilities, send me a PM here.
Would anyone recommend this?:
Codecademy is the easiest way to learn how to code. It's interactive, fun, and you can do it with your friends.
Who is going to be our Mr-Murray for Arma3?
The language itself is not hard to learn. Really, it's a very basic set of tools. What is important is to understand and use all the tools how they should (and not necessarily can) be used.
The next step is good practice and then sometime you will find yourself using the last little intricacy of the language. The art there is to keep it simple and not make your life harder by doing so.
Problem is, you can't just learn coding like you learn history. For me coding is a lot about creativity mixed with self discipline and most important: experience.
But you're right, we need to make it easy for starters to get into java. I could imagine working out a little training. I've been coding java since almost 4 years now but gained the most experience in web frameworks. I'm far away from being an expert, but I'd volunteer to teach java as good as I can. Just let me dig up my old exercises from the university
Just a couple of general API design comments I wanted to make. It is probably too late to do anything about these comments now, but I consider them serious design flaws so I wanted to say something just in case.
1. Generics. The API uses raw Collection objects without specifying what they are collections of. This means the compiler can't do any type checking for us to make sure we are passing the values the API expects. Passing the wrong type results in a CTD.
2. Stop the List madness! Please (please please) do not use Java Lists as a replacement for SQF lists. If you must, use arrays of primitive types, or better yet "unroll" the list contents into separate function parameters.
Consider a typical SQF function:
In Java this becomes RVEngine.setLightColor(GameObject, List)Code:light setLightColor [0.3, 0.0, 0.0];
Ok, we would actually write something like:Code:List red = new ArrayList(); red.add(new Float(0.3)); red.add(new Float(0.0)); red.add(new Float(0.0)); RVEngine.setLightColor(light, red);
But the JVM still has to execute the same sequence of instructions. First it has to create a new list object, then it needs to add three floats to the list, but Java collections can't store primitive types like float, so the JVM has to create a java.lang.Float object for each of the numbers.Code:RVEngine.setLightColor(light, Arrays.asList(0.3f, 0.0f, 0.0f));
That is alot of work for what should be:
With the above we don't have to create a bunch of unnecessary objects simply to pass three values to the game engine, the compiler is able to do type checking for us again, and the compiler is able to coerce values when needed (i.e. int to float).Code:RVEngine.setLightColor(light, 0.3, 0, 0);
Having said all that, I get the sense that the user facing part of the Java API is machine generated, so I am hoping these are things that might be fixed "relatively" easily. Adding Generics is something that has to be done ASAP as adding it later will break all existing code. Getting rid of Lists can be done over time by overriding methods with their listless counterparts, but it's still code bloat that should go ASAP.
Last edited by Slapstick; Mar 4 2012 at 02:29. Reason: Fix
I'll distill all my observations into a one-liner:
It's basically at the stage of proof-of-concept-that-you-can-load-java-code-and-have-things-happen.
So yeah, that one was definitely machine generated. See also my list of things at page 16 - some of which are absolutely critical.
If you are looking for an online video tutorials you can refer to this link(http://thenewboston.org/tutorials.php) where you can learn more than just Java, and they are all free.
Anyways, if you navigate to the tutorials section and search for the java beginner and start your way from there. You will start learning from the very basic, including how to install the JDK, and eclipse. And as you get comfortable, you move to higher level tutorials. Another very important link you should always refer to is : http://docs.oracle.com/javase/7/docs/api/ .
Good luck, if you have any questions you can send me a PM.
Guys you definitely deserve my money more than any other game developers in world.
But please, heavily improve the animations in Arma3, cause in Arma2 it was not good at all and it is very much needed.