New Flare to an Old Tradition

Well, I am a Senior in High School and have often dreamed of programming since I was a child. Now here I am, just passed AP Comp Sci last year and got a 5 on the AP Exam (Not trying to brag… it was in Java =). I’m very good with Java and have mild knowledge of C++, but no compiler for C++.

In any case, I’ve been programming games for awhile. We started a club up at school and such just for games where we stay after and make battleship, pacman, ect. It’s been fun. However, it always feels so fake compared to what I go home and play. Jedi Knight II, Final Fantasy XI, Ragnarok Online… all light years ahead of me. Yet what else do we have to learn? Only so much can be done in a 2D environment. So, now that I’m taking Independant Studies Comp Sci I’m looking into 3D stuff… and I’ve always heard the term ‘OpenGL’ associated with 3D.

Basically, I’m pretty much a noob and have been looking around on the site. It’s been helpful, and I’ve been reading segments of code and such… but I have no idea how to impliment it with Java. Are there any special tools I need to integrate it with Java? Or should I take up C++? To my understanding C++ isn’t it’s own language… it’s to be used within another language. I very well could be mistaken. In any case, any help would be appriciated. =) Thanks in advanced.

C++ is a fully fledged language.

Originally it was implemented as a compiler/preprocessor to C code (adding classes, overloading and other OO features as a wrapper) but that was in the very early experimental days. Today modern C++ is a first class ANSI standard language with very good compilers and tools, almost certainly some of the best tools & compilers in fact.

It’s not binary portable like Java but binary portability is fundamentally flawed, if not in concept then in implementation, and the performance implications are horrendous even with JIT.

With C++ you have source portability if you write your code correctly (e.g. use portable libraries like OpenGL), and you’ll be able to use the latest OpenGL extensions and features sooner in a standard way with C++ I’d expect.

If you want to stick with JAVA then you’ll need wrappers like;

http://gl4java.sourceforge.net/
https://jogl.dev.java.net/

On mobile devices things are a bit more formalized and you have JSR-184 to give you your 3D API entry points or some other wrapper but again for your binary to be truly portable with any of these solutions the library has to exist and be functional on all your target java platforms.

Good luck with your choices, you can easily get Open Source C++ compilers and even a full C++ IDE for Windows (cross platform actually) for free so don’t let that hold you back;

http://www.bloodshed.net/devcpp.html

basic Dev-C++ IDE setup with simple OpenGL tutorials is readily available;

http://www.codeproject.com/opengl/openglstruct.asp

Whatever your choices the forums will be here to help you with your adventure.