Sign in to follow this  

[java] 3D api - High level vs. Low level

This topic is 3288 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Konbanwa! Ever since i started game developement i was constantly googling up random articles and forums supporting multiple alternitive API's for developing 3D applications in java. From the start i chose the low level alternitive (LWJGL and JOGL and later just LWJGL) because im obviously some kind of machosistic control freak that wants complete control over everything. I've come pretty far "reinventing the wheel" and i now have a nicely working 3D engine on which I'm currently developing the game i've always dreamed of making. Now the alternitive approach for me would have been to have grabbed a shiny and cool looking high level api/engine wich i could have used to imediatly start the developement of my game instead of first spending 17 months to build my own engine. But, would that realy have been a good thing? Everywhere i go on the internet I see people singing praises to things like Jmonkey engine or Java3D but if its that great and easy to use as the claims go why am i not seeing the amazing games created with it? (wel i might just be missing it. In which case dont hesitate to flame me until i realize how wrong i am). When it comes to a big project i believe (until proven wrong) that knowing and having the ability to change the lower level code as the project progresses is crucial for your project to reach your origanel vission of it. for example: when i finished my engine it was complete and had everything it needed to make a game on, but as i developed my game many special needs arose in which case i have to go back to my engine and add/change functionality to accomedate it. This would have been a big problem for me if i chose to use a higher level alternitive and even if that alternitive was open source i stil wouldnt be able to change anything in it since (1) i wouldnt have any of the knowledge or experience of the lower level of 3D and (2) the fact that its not my code makes it twice as hard to comprehend. Also i find that a lot of 3D developers use more than just a high level 3D api. They use a higher level external library for everything possible whether it be I/O, networking, Texture loading, sound, Math, etc. I get the feeling that in the end they spend more time googling libraires, learning libraires, replacing obsolute libraries, getting better more functional libraires, learning libraries all over again, and then trying to stitch everything together that they might as well read up on the theory behind the concepts and then write their own damm librarys which they can understand and update as needed. Ok, please dont misunderstand this post. My goal is not to attack anyone. I merely wanted to state my own feeling on this subject and hopefully other people will replay with how they feel about it. Since i've never developed with a high level api my idea of how it works might be horribly wrong.

Share this post


Link to post
Share on other sites
If you could have found a Java version of something like Ogre, you could have jumped straight in... Ogre is used in many projects on other languages. I don't know what decent engines exist on Java though, probably a much smaller selection than C++, but a good one would certainly save you time IF you understood enough about programming to use it well.

Using existing engines is definitely better if you want to focus on the game and you don't want the learning experience of writing a 3D engine, which many hobby programmers do.

On a stable, well-featured engine like Ogre (or many others) you should be able to do a lot of things without modifying the engine.

Share this post


Link to post
Share on other sites
Sign in to follow this