IS LWJGL appropriate for my project? Utility library suggestion?

Started by Aicanario, December 16, 2015, 02:38:39

Previous topic - Next topic

Aicanario

Hiya everyone! This is my first post to these awesome forums and hopefully not my last.

I am trying to gauge whether using LWJGL is appropriate for my project. Hopefully I can glean some insight from your suggestions.

Main Points

  • Degrees in Mathematics and Computer Science (I know how to code  ;))
  • Experience with GLFW (light weight utility library for openGL in C)
  • JAVA game development experience (Active Window Toolkit *eww*)
  • Lack of comprehensive utility library for openGL in LWJGL 3.0

Secondary Points

  • Lack of time to devote to utility development

Its this lack of time that has me thinking about Unity or Game Maker but I'd rather not spend the money for the product. Thanks in advance everyone!

bobjob

Whats the basic concept of the project you want to create?
Like is it 2D, 3D, a game or simulator?

Aicanario

The project is a two-dimensional top-down shooter similar to the game ORBIT http://store.steampowered.com/app/348280/. Minimalist design incorporating two-dimensional vector projectiles, particle engine, gamepad connectivity, and easily executable on different machines (hence the use of JAVA).

I'll be using the project as a teaching tool for Software Engineering and Computer Graphics practices so I'm not looking for anything I can bundle together and market; however, if graduate school doesn't pan out for some reason, I wouldn't want to prematurely close any doors  ;)

Thanks!

bobjob

Im not aware of any good 2d utility libraries for lwjgl 3. That said, slick2d does exist for lwjgl 2. You could always port the required packages your self (or just use lwjgl 2). 2d math is relatively easy, especially if you have a background in computer science mathematics.

Kai

QuoteLack of comprehensive utility library for openGL in LWJGL 3.0
If you are looking for math utility (you know, matrices, vectors, quaternions) then JOML is an option.
It also features a "2d" branch, where only classes and methods useful for 2D games/applications are included.
If you feel that something is missing there, please do not hesitate to post an issue on GitHub. :)

kappa

There are util libraries for and with LWJGL3, these include:

- for math you have JOML (as mentioned above already)
- for loading images LWJGL3 has the STBImage bindings which can load JPEG, PNG, TGA, BMP, PSD, GIF, HDR, PIC & PNM formats.
- for loading sounds LWJGL3 has the STBVorbis bindings which can load Ogg files
- for loading and displaying fonts LWJGL3 has the STBEasyFont and STBTruetype bindings which support the ttf font format
- for loading various 3d models you can use jassimp.
- for 2d vector graphics LWJGL3 now also comes with bindings for NanoVG.
- for 2d physics you can use Jbox2d.

That should have you mostly covered or did you have some other utilities in mind?

Cornix

If you already know decently much about OpenGL and java you should have absolutely no problem using LWJGL.
But if you would have to learn about OpenGL first (or if you dont have advanced knowledge about java) you should save your time and go with a higher level library like LibGDX. LibGDX is built on top of LWJGL and does most of the OpenGL stuff for you. It makes it simpler to load images / audio and show them on screen without you having to know how exactly that works. It also comes with a bunch of utility libraries and tools.

LWJGL really is as lightweight as its name suggests. If you use it you have to start completely from scratch and program things like resource management, shaders model loaders, etc all by hand.