android programming vs game programming using java
Hi all..I am new to java and have got stuck in a big problem.
Actually, i have got an offer to teach students in a school either android programming or game programming using java.
first of all, I just know c/c++. I dont know java at all. So, i need advice from all of u.The internship period is very near. So, i need to rush through everything.
1. which of these can be learnt quickly and easliy - android programming(a level more than basic app making) OR game programming using java(a level more than basic games making)?
2.what do i have to learn to achieve both of them(tell me step by step process of learning)?
3.how much time will both of them take to be fairly efficient in them( P.S.- i m ready to work desperately for them and put sleepless nights..)?
4.what all should i download to learn them??
thak u so much..plz reply as soon as possilble :)
Re: android programming vs game programming using java
Most android development uses Java so you'd need to learn at least the basics of the Java language regardless (luckily some of the syntax is similar to C/C++).
For android development you'll need mainly just the Android Development Kit (ADK). Most people also use Eclipse, a comprehensive open source IDE, though I believe notepad and command-line is a possible solution. You'll also need Java (JDK and JRE). I'm not too familiar with Android development beyond the basics so I'm not sure what else you'd need. There's also an Android Device simulator, however it's quite slow especially for graphics-intensive programs (actually, it's just slow in general). Having a physical Android device would be nice for testing. Make sure that if you do get one that it allows you to run ADB (Android Debug Bridge) or have some way to debug your code between your PC and the device.
For Java PC development you'll need Java (JDK and JRE). There are two popular open source IDE's, Eclipse and Netbeans, along with a variety of others which range from open source to paid products. There's also the option of doing the old notepad and command-line option which some people like. Depending on the type of games you want to write there are a variety of software packages available:
1. Light-weight Java Gaming Library (LWJGL). This is mainly an OpenGL graphics wrapper designed for Java game development, but it also includes an OpenAL sound wrapper as well as a few utility functions. Despite it's name as "light-weight" it can be used to create very complex programs (if memory serves me right, Minecraft uses LWJGL).
2. JOGL. Another OpenGL graphics wrapper. The primary differences from what I can tell between JOGL and LWJGL are that JOGL is more "true" to the native OpenGL initialization and setup, and JOGL is purely an OpenGL wrapper (no sound or other utilities).
3. JOAL. Similar to JOGL except this is a wrapper for OpenAL (made by the same group which made JOGL). I've never personally used this before.
4. JBullet. A Java port of of the open source physics library, Bullet Physics.
5. Slick2D. This is a wrapper over LWJGL designed to provide easier 2D game development. I've never used it, but it's suppose to be pretty good.
6. JMonkey. A full-on 3D Java Game Engine. It uses LWJGL for the graphics and I think sound, and uses JBullet for physics.
To be honest I'm not sure which would be easier. I haven't dedicated much time towards either of these so I wouldn't know how long it takes learn enough to be an effective teacher, though I would suspect it's not something you're going to master in a few weeks or less, especially given the fact you have no experience with Java to begin with.
There are a variety of Java tutorials provided by Oracle which are helpful for learning through the basics of Java as well as learning about some of the more advanced features: The Java Tutorials link
Google has a website dedicated to Android development so that would be a good place to begin looking for Android development: link
Most of the libraries I mentioned for Java game development have wiki's/links to tutorials for learning how to use them. There are also a variety of books available which talk about the different topics, though I can't personally recommend any.
Re: android programming vs game programming using java
thank u so much!!.. i think whatever u have written is gonna help me a lot.. i m going to teach 9th grade game programming..so i'll just teach them make basic games otherwise it'll be too tough for them to learn it..but at personal level..i want to master both of these..and i think teaching is a good opportunity coz in this way..i'll be able to learn faster and dedicatedly...what do u think??
Re: android programming vs game programming using java
teaching is definitely one of the best ways to determine if you know a topic, but I'm not sure it's a good way to learn. Personally I've found it quite frustrating to have a teacher who was learning parts of the material along with the students, though I have noticed some teachers doing fairly well by keeping a few weeks ahead of the students.
Re: android programming vs game programming using java
I would suggest you aim for the java first, and I will explain why. First consider java:
Java is a good place to begin learning object oriented programming.
Java has been used in the past in many schools as an introductory language and has proven its ability for the novice programmer.
Java can be more involved as you go building on previous experience with the language.
Many open source third-party packages designed as teaching-tools are available through your favorite search engine.
Consider Android:
Android is heavily based on java, but it is much more than that.
Android allows the use of xml to reduce the amount of java code necessary to achieve the same thing. This is a step beyond java.
Android takes java and compiles it to java bytecode as well as dalvik. This is another step beyond just java.
Many of the basics (and advanced for that matter) of android programming are the same as java programming.
So at the end of the day, the more familiar you are with java, the easier it is to learn android. It is not just about learning android either, it is also about knowing what advantages android provides over plain java programming. If you don't know how java does the job, how are you to determine the best way to go in android when it comes to xml or java code? I would consider java a prerequisite to android for these reasons. Not necessarily advanced java, but at least the basics of java.