LibGDX: Cross Platform Game Development

Preview:

Citation preview

cross-platform game development

● mature project, at 1.7.1 release● snapshots built on every commit● fork us, push to us!

Overview● game development framework● written in java, c/c++ and js● framework - !engine● fast development and prototyping● use any JVM language you want (with some caveats)● super fast● multi-layered API● target multiple platforms with a single codebase● extensive community of developers

Platforms

Languages● typically java● any JVM language with java interoperability ● clojure, kotlin, python, ruby, scala, groovy….● caveats including 'support' and loss of html

Development environment● setup tool generates gradle scripts● use any IDE you like

Intellij IDEA Eclipse Netbeans chuck norris

● do most developing testing and running with the desktop platform, abuse hotswapping● deploy to all platforms with one task

Gradle?● dependency management, build automation● open source● use it to build● use it in the background● dont use It at all● trivial to keep up to date with the latest release of LibGDX, or even the bleeding edge

● extend provided scripts to automate almost every boring task you have to do in production● deploy to multiple app stores using their api with a single task● keep descriptions/assets on multiple store pages up to date with a single task● push your project onto CI with no additional configuration, (build live html version also)

The backends and tech● Android, GLES 2.0● Lwjgl (2.x) (Win, Linux, MacOS), OpenGL 2.0, 3.0

– 3.x in development!

● RoboVM, iOS, GLES 2.0– bytecode → native ARM|x86 code– super fast– wizards

● GWT – HTML/js, WebGL– java source code → js– reflection magic

● Headless

API Levels

Low LevelMid LevelHigh Level

Features and API levels

● graphics (OpenGL ES 2.0/3.0 interfaces)● input, keyboard, mouse, touch, accelerometer● audio, read/write, Open AL, Android Pools ● networking, tcp http● file I/O● handling lifecycle● reflection wrapper

Low Level

Features and API levels

● Mesh, shaders, textures, sprites...● batching sprites/polygons● fonts, textureatlas● assetmanager● custom collections● json/xml serialization● util classes, math, shapes

Mid Level

Features and API levels

● extensions, box2d, bullet physics● 2D scene graph + UI toolkit. all the widgets● maps api● 3D API● I18NBundle

High Level

3D API

– environment, cubemaps, reflection, specular, normal mapping etc– directional lights, point , spot, shadow mapping– node tree, including animations– gpu skinning– decal batching– model batching with cache– particles – (probably) the most complete java bullet wrapper for 3D physics

Extensions● Box2D and Box2D lights● Bullet Physics● Ashley, Entity component system● Tools Collection● Controllers extension● GDX-AI

– pathfinding● A*● path Smoothing

– Decision making● state machines, behavior trees

– messaging– movement

● steering● formation motion

● GDX-Pay

Tools● texture packer● model converter (Fbx-Conv)● freetype convertor, ttf to bitmap font● 2D and 3D particle editors

Third Party

← Overlap2D

Open source game UI, level and content editor

VisUI ->

Open source UI toolkit extension, extra widgets and skin

Quick start

● check your dev environment is setup● download project generator● supply info, choose extensions● generate● import● Run

Documentation and Source

● Source– https://github.com/libgdx/libgdx

● Wiki ultimate guide for everything – https://github.com/libgdx/libgdx/wiki

● Starting point for docs– https://libgdx.badlogicgames.com/documentation.html

Licensing

● apache 2● completely free, no strings attached● we love to get credit in case you do release a game using

LibGDX, but its not mandatory

ExamplesAlchemist's Awakening, Osaris Games

ExamplesIngress, Niantic (internal startup at google)

ExamplesHalfway, Robotality

ExamplesSpine, Esoteric Software

ExamplesSpace Grunts, Orangepixel

ExamplesDelver, Priority Interrupt

LibGDX game jam

● 18th Dec - 18th Jan● Prizes!● Mac Mini, iPad, iTouch● halfway steam keys● shirts!● taking part (if you dont

win)

cross-platform game development

@libgdx@badlogicgames

https://libgdx.badlogicgames.com/

@asidikgames

#libgdx on irc.freenode.net