ID:181589
 
I've been knowing the basics of Java programming for some time now, but only the RAW basics. I've yet to learn how to draw basic images onto the screen or create a Java interface. I admit, I do "cheat" my way in Java by using JCreator to directly modify .java files instead of converting it to .txt then .java to edit and view properly. And I use its built-in console for debugging and running basic applications.


I'd just like to know if it's worth learning Java in-depth to make, preferably, simple or complex online games versus using DM. I am aware of the possibilities with Java, but I'm just finding it difficult to part with BYOND's friendliness. Plus, it'd take a week or two learning how to properly do things with Java and possibly months of tinkering around to actually fully get a grasp of the REAL Java. I've wet my feet with DM and some basic Java knowledge, so that eases the load of learning things.


I ask you guys; is it worth it?

(tl;dr : I know Java. A little. Ditch BYOND to make network/multiplayer and singleplayer games for Java?)
Runescape is made with Java so you can see what is possible to make. However it needs quite a lot resources to be ran, meaning it lags on low-end system.
I suspect it uses software rendering, not hardware, that's why performance is low, but I'm not sure. Java should be more than enough to make 2D games or mix of 2D and 3D, but if you want to make full 3D, consider learning C++
In response to Ripiz
Thirty seconds on Google reveals that no, Runescape uses OpenGL or DirectX, though apparently only on the HD version and I have no idea what that is and have no particular desire to find out.
In response to Ripiz
You can get Java to use an OpenGL pipeline to render any Graphics2D operations with a VM argument. How much it will render will depend on the kind of paint()s you're constructing.

Personally Java wouldn't be my first choice for for the kind of applications you describe, although the language and VM itself is just fine for it. The main issue is what I'd see as a lack of decent library support for that kind of development on Java. If you're just learning as a means to that end, perhaps you may find more happiness in another language, as nice as Java is.

If you are learning for broader career reasons, Java is a must to have experience in, even if you don't go into a job using it directly.
Java wouldn't be my first choice for this, if you're new to programming. I'd look into C# / C#.NET instead, perhaps Xna as well unless you're going for something cross-platform (Xna and Mono don't mix, IIRC).

Something to note is that your time horizon of 'a few weeks' to get a grasp of things and 'a few months' to tinker around is way, way off when you have no real background in programming.
In response to Alathon
I don't think you know what "ground zero" means.
In response to Garthor
Garthor wrote:
I don't think you know what "ground zero" means.

Whups. That will teach me not to write posts after working for almost 48 hours straight.

[Edit: That got me thinking about what my brain was trying to grasp for when writing ground-zero; and it turns out there is a similar Danish expression which means what I intended for it to mean (Someone with no knowledge of something, or someone who is at / is starting at the bottom of a hierachy). Gah, I need to move back to an English-speaking country soon]
In response to Garthor
Maybe it does use it, don't know, but it all ends up on CPU power.
In response to Ripiz
Ripiz wrote:
Maybe it does use it, don't know, but it all ends up on CPU power.

Please google and read about GPU's
In response to Garthor
The HD version isn't really HD so much as it is a graphical quality equal to that of a Nintendo Gamecube game (maybe a little worse).
While Java probably isn't the most ideal platform to make more complex games on it's perfectly fine to do more simple games like 2D and basic 3D. It also has the benefit of allowing browser applets that work in the majority of browsers and the majority of operating systems. On that note, Java is very cross-platform and it makes developing for multiple operating systems very painless.

In my own experience Java is worthwhile to know, but don't stop there learn C++ too, knowing both well will get you far. I'd personally use C++ for any game stuff but Java works really well for general applications and browser applets.
In response to Alathon
Well, you could say I'm not a complete guru at programming but I don't believe you could say I'm really NEW at the trade. As for my little estimation, of course it takes longer to really learn a language. The only reason the horizon is "way off" is because I assume with the already basic Java knowledge I'd catch on quicker than most other beginners.


Of course, compared to the more experienced and knowledgeable BYONDers I'm just a newb.
In response to Nadrew
Honestly, I think I wouldn't ever find myself using any C programming languages. Ever. I'm a hobbyist coder/programmer myself, with limited time to sit down and learn a new language. The reason I wouldn't ever look for a career in computing, networking, game design, or anything programming-related is because I think I don't want to mold my young brain into anything it isn't. If that makes any sense at all.

Of course, being but a hobbyist computer tinkerer I'd probably wouldn't resist the urge of poking around C++ for a while. Probably won't like it, but I can tell you I'd love to have raw C++ knowledge mostly for my own accomplishment. I won't get too into it, and I won't have enough COJONES to do crap with it.
In response to Duelmaster409
Coupled with some good libraries, there are quite a few C related languages that are pretty simple. Armed with Google and Cocos2d for iPhone, for example, anyone with programming experience can make a simple iPhone game.
In response to Alathon
Why would I? Playing Runescape uses CPU to 50% (no multithreading =[) Means it's using CPU power, and none or almost none GPU, while on Bioshock 2, Crysis and other games I get way less than 100% (I'm sure they have multithreading)
In response to Ripiz
Do you imply that Crysis and Bioshock 2 run on Java?
In response to EGUY
I was trying to say, that Runescape has higher CPU usage with way less features, while Crysis, Bioshock 2 and other games have lower CPU usage than Runescape, and actually doing way much more calculation, meaning Runescape (as well as whole Java) hardly uses any GPU power, but only CPU.
In response to Ripiz
No, that is Runescape. We wouldn't be able to meet 3 ms response times on 5000x5000 BARCO displays if Java didn't do direct rendering.
You know, I have talked crap about Java in the past, but I have found that it is very worthwhile to learn. Starting with DM, Java was very easy to pick up and makes learning new applications programming languages very easy. I like the BlueJ IDE, by the way. It's WONDERFUL! Especially if you're just learning Java. I wouldn't suggest programming a 3D first person shooter in it, though.

It definitely eases the way into other programming languages, and while it does suffer performance flaws in that it is not as fast as other languages that are very similar to it, it makes up for that with being completely cross-platform and easy to learn. It is lovely.

I also suggest looking into Processing. It is very fun to play with, I think, which is actually the reason I decided to pick up Java (and DM before then!)--it is very fun to play with.
In response to Duelmaster409
C and C++ aren't too tricky to write things in, once you know what you're doing. The pitfall is that they're close enough to the metal that you actually have to understand what the computer is doing in order to write good C/C++. That is, it's not a matter of understanding the language, which has reasonably understandable semantics (Assuming you stick to the straight and narrow path and don't start fiddling around with all of the more... interesting... features of the language), it's a matter of understanding the computer it's running on.

For what it's worth, I'd much rather program in C/C++ than any nearly any other language (Depending on what I'm doing, of course, and DM is pretty close to the top as well), and I think it's one of the languages that's really helped me improve my programming (The others being DM and Scheme)