Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tales of Game Development with LibGDX - A Postm...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

Tales of Game Development with LibGDX - A Postmortem

Slides from SelfConf 2015!

Avatar for Jason Petterson

Jason Petterson

May 30, 2015

Other Decks in Programming

Transcript

  1. LibGDX - The Good • Open source (https://github. com/libgdx/libgdx) •

    Gradle (works with Eclipse and Android Studio) • Actively maintained & well documented • Version control friendly project structure • Able to easily add in native Android code
  2. LibGDX - The Good • InputListener - great at handling

    input from multiple sources (controller, keyboard, touch) • Asset Manager ◦ Loaders for everything (and ability to make and set custom asset loaders) ◦ Easily able to measure progress
  3. LibGDX - The Good • Scene2D ◦ Stage, Groups, Actors,

    Actions ◦ Viewports ◦ Able to set Actor specific controls ◦ UI and skins
  4. LibGDX - The Bad • Setup utility issues ◦ No

    update for existing projects ◦ No update for utility itself • Coordinate space confusion ◦ Stage, Camera, Screen, World, Viewport • Doesn’t generate native executable for Desktop platforms (Windows/Mac/Linux) & requires Java to be installed.
  5. LibGDX - The Ugly • Doesn't have a rich toolset

    suite like Unity, Game Maker Studio, or Unreal Engine 4 • Existing tools (TexturePacker, Hiero, 2D Particle Editor) are disjointed and pretty janky (with exception of Spine, which is great)
  6. Throw The Moon • Originally “Streets of Dev Rage” •

    Changed to “Throw the Moon” for Ludum Dare 32: An Unconventional Weapon • Demo!
  7. Lessons Learned: Design • Pen and paper out ideas •

    Be careful pitching idea to friends ◦ Better to make something than to make nothing • Deconstruct “fun” elements from your favorite games ◦ What is fun? ◦ Why is it fun?
  8. (after intervening and having to explain the chain pull mechanic)

    ooooo, gotcha,that’s kind of annoying dude
  9. Lessons Learned: Design • Accept feedback and use it to

    improve the experience. • Iterate and keep trying til it works! (Still trying…)
  10. Lessons Learned: Assets • You don’t need assets to program

    gameplay • Don’t spend a whole day making SFX in BXFR for like 3 things
  11. Lessons Learned: Controls • Mouse controls =/= Touch controls •

    Test on device always/often • Literally test out pen & paper design with finger to see if an idea works
  12. Lessons Learned: Debugging • Don’t trust your eyes ◦ Log

    the important stuff ◦ Visual debug ▪ On screen debug log ▪ Bounding box ◦ Debug mode up til last possible moments before making release build ▪ Which sometimes causes release specific bugs...
  13. Lessons Learned: Time Management • Prioritize minimum viable product features

    ◦ Set milestones, know when you have spent too much time on something, and move on ◦ Premature optimization = poison • Timebox the entire project to about a month, don’t spend multiple years on your first game (because it will suck)