Herding Code 151 – Rob Eisenberg on RPGWithMe, Durandal, and XAML vs. HTML5 development

The guys talk to Rob Eisenberg about RPGWithMe (his new web-based platform centered around tabletop RPGs), Durandal (the essence of Caliburn.Micro re-imagined for HTML and Javascript) and his thoughts on the current state of XAML development.

Download / Listen:

Herding Code 151 – Rob Eisenberg on RPGWithMe, Durandal, and XAML vs. HTML5 development [audio://herdingcode.com/wp-content/uploads/HerdingCode-0151-Rob-Eisenberg.mp3]

Show Notes:

  • RPGWithMe and Durandal
    • K Scott asks Rob to discribe RPGWithMe. RPGWithMe is a subscription based web product for playing tabletop RPGs.
    • K Scott asks how he found HTML5  compared to XAML development, and whether he used any frameworks to develop it. Rob explains how he built a new framework, Duandel, to bring Caliburn.Micro style development to HTML5 development.
    • Rob explains how Durandal uses  RequireJS to modularize things – viewmodels are mapped to modules, and modules are mapped to HTML files. Knockout is used to compose things at runtime, and RequireJS packages things up into a single file.
    • Jon asks it it’s possible to use this with WinRT. Rob says he hasn’t tried it, but thinks it should work since it’s just a JavaScript file.
    • K Scott asks if the same conventions in Caliburn.Micro apply. Rob says he’s just using Knockout at this point, but would eventually like to phase out Knockout for a custom databinding system. Knockout’s fine, but he doesn’t like the syntax for databinding and the intrusiveness into viewmodels.
    • K Scott, Rob and Kevin talk about the intrusiveness of Javascript frameworks which convert properties to functions to allow for observability, and how newer browsers can wrap getters and setters to imporove the code readability and debugging experience.
    • K Scott asks whats on the server side. Rob’s using ASP.NET MVC 3 running on AppHarbor with cloud hosted RavenDB with IronMQ and some Amazon services.
    • K Scott asks how all the realtime stuff is working in the browser. Rob’s using PubNub for communications and Canvas and CSS 3 for rendering. He explains that it’s really tricky to get high performance, high quality graphics rendering working on different devices with an interesting example form an issue he hit with larger images on iPads.
    • Jon asks if there’s work he’d do in the future to support Retina / high dpi displays. He says he’s moving away from images to CSS 3 where possible.
    • Jon asks about the creation / editing environment. Rob explains how the system is built around user generated content. Jon asks if there are ways
    • K Scott asks what games Rob’s played in the past. Rob says he’s played Dungeons and Dragons 4th Edition and Savage Worlds and explains some of the background of tabletop role playing games. He supports three gaming systems, but doesn’t enforce rules – this allows for a lot more flexibility and matches the way people play in the real world.
    • K Scott asks about how players would communicate while playing (e.g. to yell Leroy Jenkins!).
    • Jon asks more about rules and enforcement, and Rob lists a lot of reasons why he doesn’t think it’s a good idea to get into rule enforcement.
    • K Scott asks about how the metadata is handled. Rob describes how he’s got an abstract model that allows for supporting – and importing from – three gaming systems, and how he wants to make it more extensible in the future.
    • Kevin asks if there’s a mobile version. Rob talks about platform support – works on iPad, Windows 8, and Android although Android performance is the worst.
    • K Scott asks about the Durandal project out on GitHub.
  • Caliburn and Caliburn.Micro
    • K Scott asks Rob what’s going on with Caliburn and Caliburn.Micro. Caliburn.Micro is adding full support for WinRT and considering how to add support for additional WinRT features. He said he was worried about porting to WinRT but it wasn’t too bad – most of the work was around changes to the reflection API and lack of behaviors. He’s hopeful that this means it’ll port to Windows Phone 8.
  • XAML and HTML5 development
    • Kevin asks about Rob’s frustration on building tools for XAML development due to the differences between the platforms. Rob says he’s been moving to HTML5 more due to all the headaches.
    • Jon wonders if some of this may be transitional with things moving to WinRT as a standard XAML platform. Rob agrees, but he’s got from fatigue from all the times he’s had to port his code in the past.
    • Jon says that it’s nice that in the HTML5 world you can use tools like jQuery to abstract differences between browsers, whereas you can’t really do that when working about different XAML platforms. Rob talks about how people are trying to abstract things in the XAML world, but it’s not really possible to abstract platform differences.
    • Jon, Kevin and Rob discuss the differences between styling in XAML and HTML5 development.
    • Jon asks Rob about the developer decision between HTML5 and XAML for WinRT development. Rob’s happy with the choice, and thinks it’s funny that Microsoft did this rather than Google.
  • K Scott asks Rob if there’s any new big things going on he wants people to know about, and Rob mentions the Kickstarter effort to add interactive character sheets.

Show Links: