Skip to content
This repository has been archived by the owner on Mar 18, 2024. It is now read-only.
/ tundra Public archive

Slightly more advanced 3D game framework based on LWJGL

License

Notifications You must be signed in to change notification settings

doctorn/tundra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tundra

tundra is a 3D game framework/engine built on top of LWJGL. Our motivation was to take what we built last year as grassland and advance it to make use of OpenGL's programmable pipeline. It didn't make sense to continue working on grassland as the use of fixed pipeline was pervasive in the code base.

Engine

Both grassland and tundra were built for use in game jams and therefore aspire to provide a small set of powerful abstractions to make game development as fast as possible. tundra has pushed this a long way with the introduction of callbacks into the engine making scripting timed behaviours trivial.

For example,

after(1000, () -> {
  // Execute this after 1000 milliseconds
});

every(1000, () -> {
  // Execute this every 1000 milliseconds
});

Furthermore, a simple to use LERP utility is also provided,

lerp(1000, f -> {
  // `f` will take all values between `start` and `end` over 1000 milliseconds
}, start, end);

Physics

tundra also includes a small set of bindings into the JBullet physics engine. JBullet is performant and well put together; however, difficult to work with. Further work on tundra would definitely involve expanding these bindings to provide a complete interface.

Graphics

tundra is yet to support animation; however, it moves far passed grassland in terms of graphics capability. tundra supports the loading and rendering of .obj files along with .mtl files.

Here is an example of a mesh rendered in tundra with several materials and lights (including a shadow mapped global light source),

Rendering example

The model used in this scene is available here, all credit goes to the original creators.

We don't yet support PBR, although it may take another rewrite before this is possible. We do however support normal, specular, diffuse, ambient and highlight mapping (all of which are used in the above).

Feedback

Issue reports and feedback are welcome. Documentation should appear at some point in the future. Thanks for reading ^-^

About

Slightly more advanced 3D game framework based on LWJGL

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •