MMO Life

This is a follow-up post to Gamification showing how I use it and what purpose does it serve me.

In summary, I’m a kind of control freak who likes all sorts of stats (such as my systems stats or a projects repo stats) displayed neatly all over the place, and it was only a matter of time before I started monitoring myself, and so I wrote a tiny tool, Gamify, that integrates with Emacs’ Org-Mode and tracks my skills, their dependencies and their development.

http://idorobots.files.wordpress.com/2013/02/wpid-programming.png?w=549

Endless adventure

Gamify collects experience points associated with Org-Mode tasks whenever I complete them. Each task can be tagged with any number of skills (Org’s tag inheritance is very handy here) and assigned some XP, preferably using gamify-assign-some-exp:

* TODO Write a follow-up post about Gamify.                 :Blogging:
SCHEDULED: <2013-02-02 sat>
:PROPERTIES:
:gamify_exp: 20
:END:

When I complete this task by changing its state to *DONE*
Gamify will take care of updating my /Blogging/ skill.

As every Gamify-enabled task is assigned an arbitrary XP some calibration of skill-levels was needed. I’ve settled for a slightly modified version of DF level names (because I’m nerdy like that) and an exponential effort growth:

http://idorobots.files.wordpress.com/2013/02/wpid-plot1.png?w=549

It takes roughly 4 years of daily skill training (6 tasks 12 XP each on average) to get a hold at a skill and become Professional, 20 years to become a Legendary hacker and 63 years to become Tesla.

Naturally, to be any useful Gamify has to provide lot’s of feedback which it does either in textual form using gamify-get-pretty-stats:

Your Gamify stats:
Competent at Blogging: 3836/8500 (2%)
Competent at C++: 8144/8500 (92%)
Proficient at CodeDev: 23805/28900 (58%)
Competent at Concurrency: 4129/8500 (8%)
Competent at D: 5522/8500 (37%)
Competent at Editing: 5283/8500 (32%)
Competent at Emacs: 4994/8500 (26%)
Skilled at Functional Programming: 8829/16600 (4%)
Competent at GameDev: 6104/8500 (50%)
Skilled at Imperative Programming: 16092/16600 (93%)
Competent at Lisp: 5523/8500 (37%)
Skilled at OOP: 9323/16600 (10%)
Competent at Project Management: 3963/8500 (5%)
Proficient at Programming: 19490/28900 (23%)
Competent at Robotics: 6884/8500 (66%)
Competent at Software Engineering: 3700/8500 (0%)

…or using Graphviz for graph visualization.

Some more examples

In a nutshell, this is me:

Well, to be honest most of the skills I’m novice or dabbling at don’t belong in my defining skill-set, so more like this is me:

…and this is what I’m good at:

Additionally, Gamify monitors my interests…

…and how they interact with each other:

But most importantly, it helps me estimate whether I’m qualified for a particular task or not.
Say, you want me to build an Operating System in D. All I need to do is filter my skill-set by D and OSDev, yielding a bunch of relevant info:

I mean I did write a toy kernel in D that does absolutely nothing, so… Yeah…

Anyway, say, you want me to help develop an OS… In Lisp… For your robots:

I may not be particularly well-suited for this job right away, but I immediately see lot’s of room for self-improvement. I could, for example, take an ML course or two and start a toy robotics project for fun and profit, and who knows, maybe in five years I’ll fit just right.

About these ads

2 Responses to MMO Life

  1. Hi! This is so awesome. I tried it, it seems to work, stats get saved but for some reason ‘gamify-stats’ throws “gamify-stats: Not enough arguments for format string”… Oh, and my modeline shows “invalid” :( any idea what might be wrong?

    • Hi! Could you provide some more info on this, maby try causing it to fail with `M-x toggle-debug-on-error` and paste the log in here or as a GitHub issue at https://github.com/Idorobots/gamify-el?
      Btw, what’s your Emacs version? I haven’t bothered to upgrade to 24.*, so it might be that `format` got slightly changed or something.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s