Skip to content

eskalon/pancake

Repository files navigation

Pancake

Release Build

Pancake is the basis for all libGDX games developed by eskalon.

Technical

Pancake uses the following libraries and frameworks :

Content

A selection of what Pancake offers:

core

  • AbstractEskalonApplication: the core application; has to be created via EskalonApplicationStarter to take advantage of its features. Dependency injection is used to provide various useful objects, for instance a sprite batch, an asset manager, a sound manager, an event bus, a post processing pipeline etc.
  • AnnotationAssetManager
    • @Asset("cool_texture.jpg"), @Asset(value = "ui/skin/skin.json", params = "ui/skin/skin.atlas")
    • #loadAnnotatedAssets(Class<T> clazz)
    • #injectAssets(Class<T> clazz, @Nullable T instance); superseded by IInjector#injectMembers(Object)
    • #registerAssetLoaderParametersFactory(Class<T> clazz, AssetLoaderParametersFactory<T> factory)
  • DefaultSoundManager & Playlist
    • #playSoundEffect(String name)
    • #playMusic(String playlistName)
    • Playlist files (loaded via PlaylistDefinitionLoader):
{
   name: "best_playlist_ever",
   shuffle: true,
   repeat: true,
   music: [
        [
           "My favourite song",
           "my_favourite_song.mp3"
        ],
     ]
 }
  • EskalonInjector: a simple dependency injection system; the most common classes are registered by EskalonApplicationStarter and AbstractEskalonApplication
  • EventBus: a simple event bus system
  • PostProcessingPipeline: A simple post processing pipeline based on gdx-vfx
  • DefaultInputHandler; provides mappable key bindings which can be handled via IInputListener
  • Lang, ILocalizable & ILocalized
    • Lang#get(String key, Object... args)
  • DebugInfoRenderer: renders some debug information, including a neat FPS graph
  • AbstractAssetLoadingScreen: a screen loading all assets annotated with @Asset in a specified package
  • AbstractEskalonUIScreen: a screen rendering a background image & a stage
  • AbstractImageScreen: a simple screen rendering one image
  • EskalonSplashScreen: a splash screen showing the eskalon logo as well as loading some internal assets
  • EskalonSettings: handles settings via simple property objects
  • RandomUtils: contains various methods dealing with random values
  • GL32CMacIssueHandler: provides updated versions of the default shaders that are compatible with OpenGL 3.2

lwjgl3

  • Audio implementations that support spatial audio
  • A field annotation scanner utilising reflections

g3d

  • A deferred renderer [WIP]

Collaboration

A list of all of our current contributors and the used external assets can be found in CONTRIBUTORS.md.