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

HeisenBugDev ACE Innovation 2014

Theron Boerner
April 26, 2014
47

HeisenBugDev ACE Innovation 2014

A system for easily distributing Minecraft mods.

Theron Boerner

April 26, 2014
Tweet

Transcript

  1. HI

  2. I’M THERON BOERNER I code Ruby, Java, HTML, CSS, HAML,

    Sass, JavaScript, CoffeeScript, Python, Less, Markdown, and more acronyms. I LOOK LIKE THIS: or or Oxford comma!
  3. THIS STORY HAS TWO SIDES THE PLAYERS THE DEVELOPERS •

    Low attention span • Get confused when there are a lot of words and
  4. THIS STORY HAS TWO SIDES THE PLAYERS THE DEVELOPERS •

    Low attention span • Get confused when there are a lot of words • There are a lot of them. and
  5. THIS STORY HAS TWO SIDES THE PLAYERS THE DEVELOPERS •

    Low attention span • Get confused when there are a lot of words • There are a lot of them. • Overcomplicate things. and
  6. THIS STORY HAS TWO SIDES THE PLAYERS THE DEVELOPERS •

    Low attention span • Get confused when there are a lot of words • There are a lot of them. • Overcomplicate things. • Generally thinks there needs to be a lot of words. and
  7. THIS STORY HAS TWO SIDES THE PLAYERS THE DEVELOPERS •

    Low attention span • Get confused when there are a lot of words • There are a lot of them. • Overcomplicate things. • Generally thinks there needs to be a lot of words. • Very few. and
  8. THE DEVELOPERS ARE KNOWN FOR THEIR ABILITY TO CREATE MODS.

    THEY DO THIS BY HARNESSING THE POWER OF JAVA AND LARGE DOSES OF CAFFEINE.
  9. THE PLAYERS YEARN FOR THOSE MODS— ! I CAN’T THINK

    OF 30 MINUTES OF DRAMATIC STORY, LET’S BEGIN!
  10. WHAT’S A MOD AND WHAT’S A MINECRAFT? Minecraft is a

    video game. Minecraft looks like this
  11. WHAT’S A MOD AND WHAT’S A MINECRAFT? Minecraft is a

    video game. People got bored with what Minecraft added so developers started reverse engineering the game and adding new mechanics by modifying the game (hence the name mod). Minecraft looks like this
  12. WHAT’S A MOD AND WHAT’S A MINECRAFT? Minecraft is a

    video game. People got bored with what Minecraft added so developers started reverse engineering the game and adding new mechanics by modifying the game (hence the name mod). Eventually a whole community formed with APIs and tools so that anyone who knows Java can make their own mod! Minecraft looks like this
  13. THE FIRST PROBLEM: GETTING THE MOD As of now, there

    is no way to simply say, “I want this mod” and it installs it.
  14. THE FIRST PROBLEM: GETTING THE MOD As of now, there

    is no way to simply say, “I want this mod” and it installs it. Luckily this is slowly changing to a more standardized way of doing things.
  15. SO HOW DO YOU GET IT? Since mods are just

    Java ARchive files, they can be distributed in almost any way imaginable. Here are the most common ways:
  16. SO HOW DO YOU GET IT? Since mods are just

    Java ARchive files, they can be distributed in almost any way imaginable. Here are the most common ways: • Dropbox (this will be our example) • A Jenkins server • Mediafire • etc.
  17. THE DEVELOPER’S PERSPECTIVE • The developer makes a mod. •

    The developer then runs a command that creates four files.
  18. THE DEVELOPER’S PERSPECTIVE • The developer makes a mod. •

    The developer then runs a command that creates four files. • He then uploads those files (or just the universal one if he’s lazy) to Dropbox (which will be disabled if you use too much bandwidth).
  19. THE DEVELOPER’S PERSPECTIVE • The developer makes a mod. •

    The developer then runs a command that creates four files. • He then uploads those files (or just the universal one if he’s lazy) to Dropbox (which will be disabled if you use too much bandwidth). • He grabs link(s) and puts them on a Minecraft Forum post.
  20. THE DEVELOPER’S PERSPECTIVE • The developer makes a mod. •

    The developer then runs a command that creates four files. • He then uploads those files (or just the universal one if he’s lazy) to Dropbox (which will be disabled if you use too much bandwidth). • He grabs link(s) and puts them on a Minecraft Forum post. • Rinse and repeat for every release.
  21. THE PLAYER’S PERSPECTIVE • Player wants a mod. • Player

    Googles for mods. • Player find a mod’s website.
  22. THE PLAYER’S PERSPECTIVE • Player wants a mod. • Player

    Googles for mods. • Player find a mod’s website. • Player is confused.
  23. THE PLAYER’S PERSPECTIVE • Player wants a mod. • Player

    Googles for mods. • Player find a mod’s website. • Player is confused. • Player leaves.
  24. CURSEFORGE Curse Forge is a member of the huge Curse

    family of game websites.
 Its goal it to create a platform mod developers (not just Minecraft ones) can upload their project to and manage stuff through there.

  25. CURSEFORGE Curse Forge is a member of the huge Curse

    family of game websites.
 Its goal it to create a platform mod developers (not just Minecraft ones) can upload their project to and manage stuff through there.
 What does it solve?
  26. NOTHING! It makes things worse by trying to create everything,

    including repo hosting and a messaging system.
  27. NOTHING! It makes things worse by trying to create everything,

    including repo hosting and a messaging system.
  28. NOTHING! It makes things worse by trying to create everything,

    including repo hosting and a messaging system. All of which are ugly, have a very bad user interface, and high response times above 1000ms!
  29. THE SECOND PROBLEM: WHAT DO I DO? This is very

    simple. • Developers are lazy and don’t want to write documentation. • Players need good documentation to know what to do.
  30. MEET HEISENBUGDEV! • A website that hosts Minecraft mods and

    their wikis for free. • Open Source and 100% community driven. • Follows modern web development practices.
  31. WHY IS THIS BETTER? ALIASED IMAGES vs NOTE: IT’S PIXEL

    ART. You are supposed to see the individual pixels.
  32. The way Minecraft renders images The way computers normally render

    images ALIASED WHY IS THIS BETTER? ANTIALIASED
  33. WHY IS THIS BETTER? AJAX Let’s say we want to

    add a developer to a project.
  34. WHY IS THIS BETTER? AJAX Let’s say we want to

    add a developer to a project. The easy way to do this is by adding the user and refreshing the page.
  35. WHY IS THIS BETTER? AJAX Let’s say we want to

    add a developer to a project. The easy way to do this is by adding the user and refreshing the page. That total operation will take about a second, including sending the data, getting new data back, rendering the page, and initializing the javascript.
  36. WHY IS THIS BETTER? AJAX However, if we use Ajax

    to update only the changes, it will be almost instant.
  37. WHY IS THIS BETTER? AJAX However, if we use Ajax

    to update only the changes, it will be almost instant.
  38. WHY IS THIS BETTER? AJAX However, if we use Ajax

    to update only the changes, it will be almost instant. ADD
  39. WHY IS THIS BETTER? AJAX However, if we use Ajax

    to update only the changes, it will be almost instant. ADD REMOVE
  40. THE 4 M UNIVERSAL The only file players need. Used

    in an obfuscated Minecraft environment
  41. THE 4 MOD FILES UNIVERSAL he only file players need.

    Used in an obfuscated Minecraft environment
  42. THE 4 MOD FILES UNIVERSAL he only file players need.

    Used in an obfuscated Minecraft environment In software development, obfuscation is the deliberate act of creating obfuscated code, i.e. source or machine code that is difficult for humans to understand. Source: Wikipedia
  43. WHY IS THIS BETTER? VERSION BASED WIKI Say you are

    a user with v1 of QuantumCraft (v2 is latest). There has been a new feature added in a newer update but you are stuck on the old version. Most wikis don't easily say when feature x was added or give you a page for a specific version of the said mod. The wiki is able to provide you options to switch the version of the mod to the version you are running so you are not confused to why feature x is not working.
  44. WHY IS THIS BETTER? AUTOMATED BUILDS Builds are automatically made

    every time the mod’s code is updated on GitHub (a website that hosts code). The server then stores the files and tracks a number of details about it.
  45. HOW DOES IT WORK? Most of it is a Ruby

    on Rails app. A web-application framework that includes everything needed to create database-backed web applications according to the Model- View-Controller (MVC) pattern. Source: Wikipedia
  46. MODEL VIEW CONTROLLER? (MVC) “A software pattern for implementing user

    interfaces. It divides a given software application into three interconnected parts, so as to separate internal representations of information from the ways that information is presented to or accepted from the user.” ! Source: Wikipedia
  47. HOW DOES IT WORK? Most of it is a Ruby

    on Rails app. A web-application framework that includes everything needed to create database-backed web applications according to the Model- View-Controller (MVC) pattern. Source: Wikipedia
  48. HOW DOES IT WORK? MODELS Different components’ data storage and

    how the all link together. You’re not expected to know what any of this means, it just looks pretty.
  49. MODELS Different components’ data storage and how the all link

    together. You’re not expected to know what any of this means, it just looks pretty. HOW DOES IT WORK?
  50. THE FUTURE? The makers of the Backpacks Mod and the

    Secret Rooms Mod have agreed to use the site!
  51. WHO HELPED? "its alright man, don't worry about it" man

    Adrian Zankich or Javier Cervantes or The real programming taco Gize Bonilla or He say Godzilla N O TE: They chose the nam es
  52. WHO HELPED? They all work at The Hybrid Group which

    makes KidsRuby and runs KidsCodeCamp