( just to have a picture in the showcase : )
Hello,
Today I’d like to present a project I develop from time to time since several years now : JavaGL (yes, again another one !) . It’s a little library of graphical functions between the render API and the 3D engine.
Actually, firsly the application possesses a 3D software render system based on the OpenGL model and providing its main functionalities : render parameters (perspective, clipping planes, cullfacing), spatial transformations (rotation, translation, scale, pushMatrix/popMatrix), basical materials (diffuse color, shininess, wire-frame/solid faces), dynamic light, primitives display (triangles, lines, bitmap sprites), etc…
Secondly, above this are built some higher level functionalities touching numerous domains : skeletal animation, collisions/physics, file loading (OBJ and Milkshape3D ASCII), scene management, real-time game management (maps, sceneries, entities, events, pathfinding), etc…
I have to specify that the goal isn’t to compete with 3DZZD or jPCT which are fantastic engines based on an emulation of graphic chipsets. The purpose is instead to come back to an old-school 3D, like on Atari ST for example, when material acceleration or display buffers didn’t exist. So there’s a lot of lacks, like the lack of textures, but also a few advantages like allowing large screens without (too many) loss of performances.
And so I announce proudly the release of JavaGL V0.8 !
This version isn’t a revolution compared to the last one but corrects its main defaults and provides new functionalities that I learnt to implement since 1 year of Flesh Snatcher .
The improvements :
- Timer in nanoseconds (-> JavaGL is now compatible Java 1.5 and + )
- Correction of a bug on gravity
- Correction of a bug on multiple collisions management
- Correction of a bug on bounce management
- Correction of a bug on Milkshape3D animations loading
- Detection and correction of possible collision errors
- Total prevention of file loading crashes
- Duplication functions of all the data structures (from the vector to the full game map)
- Control of “cleanness” of the BSP trees
- Lines display optimization
The new features :
- OBJ format support
- Shapes intersections detection system
- Cleaning of the invisible faces of a set of meshes
- Procedural primitives (cube, sphere, geosphere, cylinder, cone, height-map)
- Terrains management system (generation, display, collisions)
- Bitmap sprites integration
- Events management system (all events possible ingame)
- Pathfinding in a 3D graph (Dantzig algorithm)
- Game maps management (sceneries modifiable in real-time + entities)
- Implementation of a simple game loop
That’s all folks ! The goal of this version is to gather the max possible functions to make a game like Tesseract in a minimum of code. As the lib manipulation can be different of “regular” engines, The accessibility is also a priority with simple functions (I hope so), and a set of demos/tutoriels integrated to explain the most disconcerting features. Finally, pedagogy is also an important aspect of the project (for me in first !), so the code is provided under GPL to allow to developers to criticize the “weirdnesses” I commit, and allow to everyone to comprehend more classical algorithms.
Thanks for your attention, and here are the traditional links :
Download :
Web site :
http://javagl.sourceforge.net/
Direct accesses to demos :
JavaGL logo
Procedural shapes
Collisions
Skeletal animation
Billboard 3D sprites
Terrain generator
As usual, don’t hesitate to post your comments .