Picraft

What, Why, and How?!

Vital Statistics

Name
Dave Jones
Twitter
@waveform80
GitHub
github.com/waveform80

What is Picraft?

A Python library for querying and manipulating the Minecraft world

But ...

... don't we already have one of those?

(www.stuffaboutcode.com/p/minecraft-api-reference.html)

Contentious Statement #1

Application devs have it easy

  1. Your users are not developers
  2. Developers are bastards

Live Critique Bit

Are you as anal as Dave?

Let's see how you did...

  • No docs
  • No tests
  • No packaging/repo
  • Oh ... the code is the docs ... sort of
  • Old style classes
  • camelCaseEveryWhere
  • Scary arg hacks with no purpose
  • Static methods ... why?
  • n-depth flatten ... you never need n-depth flatten
  • n-depth flatten breaks hilariously with unicode
  • Vec3 is mutable
  • Vec3: wot, no len? div? getitem?
  • Vec3: clone ... but not __copy__
  • Vec3: Floor isn't int
  • Block is mutable
  • Block: has a hash?!
  • Event type is mutable
  • ... and has unhelpful face
  • Socket isn't configured like the java API
  • Network protocol is scary
  • Protocol implementation on the server is scarier

How is picraft any better?

... and did you really have to make it incompatible?!

Contentious Statement #2

Application devs have it really easy

  1. Your users are not developers
  2. Developers are crazy

You make one little camera library...

  • Taking pictures
  • Recording video
  • Recording the past
  • Live streaming
  • Offloaded processing
  • Colour detection
  • Historic film restoration
  • Foliage detection
  • Quad-copter navigation
  • Performance art with paintball-guns
  • Measuring light on the ISS

You make one little Minecraft library...

Live Demo Bit

Vital Statistics

Name
Dave Jones
Occupation
Professional Bastard
Twitter
@waveform80
GitHub
github.com/waveform80

Available Now!

from your nearest web-server

picraft.readthedocs.org

Thank You

Questions?