Skip to Content


Inspiration over Manipulation; Why Loyalty Matters - by Kee-Won Hong Blogs - 19 August 2014 - 3:53am
A response to Puppy Games Blog Post 'Because You're Worthless: The Dark Side of Indie PR'. The reasons why in a crowded and competitive indie market that building loyal fans is more important than ever.
Categories: Game Theory & Design

Joachim's blog: Getting Module Builder ready for Drupal 8

Planet Drupal - 19 August 2014 - 1:12am

I've just made a commit to Module Builder that adds unit tests. This is a big deal, because having these frees me up to start making the big changes that are needed for supporting Drupal 8's new structures: routes, plugins, forms, and so on.

The biggest challenge is going to be the interface. Currently, you give Module Builder just a module name and a list of hook names, and it does the necessary. On the command line it's nice and simple:

drush mb mymodule install schema node_insert form_alter views_data_alter

The first parameter is the module name, and everything that follows is a hook name. Now we add to the mix requests such as a form called MyModuleCakeToppingForm, or an entity type plugin, or a route bake_my_cake and its page controller. How to elegantly specify all that over the command line, without making it horribly unwieldy and impossible to remember how to use?

It's also going to be an interesting exercise in reading my own documentation and seeing how much sense it makes after something like 7 months away from the code.

From what I recall, Module Builder uses a hierarchy of component generators to build your module. Taking our example above, the first thing that happens is that the Module generator class kicks in. 'So, you want a module, do you?' it asks, 'You'll need some of these.' And it begins to assemble a list of further generators, for the components it needs: an info file, and the hooks generator. The hooks generator does the actual job of examining your list of requested hooks, and decides based on that that you need three code files: a .module, a .install, and a So by now we have a tree of generators like this:

- Module -- Info file -- Hooks --- Code file: .module --- Code file: .install --- Code file:

This is not a class hierarchy; this is a tree of objects where each generator has a list of the generators beneath it, and is responsible for collecting data from them. Once we have the tree, we iteratively have each generator assemble the data it wants to contribute, starting with the Module generator at the top.

The original plan when I wrote this system was to make the smallest granularity be a file. The leaves of the generator tree would assemble the text for their file's contents, and the Module generator would collect the files up and return them to the caller for output (either in the UI, or to write them directly).

However, while the original intention of this system was that it could be generalised to base components other than modules (so profiles and themes, which are both supported to some extend but lack the UI, see above!), it's also proven to be extendable downwards to smaller components, and to be worthwhile to do so.

Enter the Form generator. Once we have a generic Function generator (and its child class the HookImplementation), we can create a Form generator. Given a form machine name, 'foo_form', it simply knows to add three copies of the Function generator: 'foo_form', 'foo_form_validate', 'foo_form_submit', along with the correct parameters and some boiler plate code.

And we can specialize this further: the AdminSettingsForm simply extends the Form generator, and adds a menu item component, which itself ensures hook_menu() is requested.

At this point it starts to get a bit complicated, as we have components that request other components that are in totally different parts of the component tree. That's the point at which I think I was when I realized I needed tests so that I can refactor and clean up the messy bits of this, and enhance and extend it, without breaking what's already there.

So that's the current state of Module Builder: not yet ready for Drupal 8, but has lots of potential. At this point, I'd really welcome input on the Drush interface, as that's the big quandary. And any input on new Drupal 8 component generators would be great too; there are a few open issues in the queue. And finally, Module Builder is a complex beast; should anyone looking at the code find it baffling and impenetrable, do please file a documentation issue to highlight the problem and request clarification.

Categories: Drupal

Duets: Duets vs. Groups

RPGNet - 19 August 2014 - 12:00am
The differences between duet and group play.
Categories: Game Theory & Design

Game Design is the Meta-Medium - by Kevin Maxon Blogs - 18 August 2014 - 11:48pm
What does philosophy say about art? What does it say about games? How do games fit into the world of art? I want to ask and answer these questions for their own sake. I think that the truth is broader and more profound than most people assume.
Categories: Game Theory & Design

Ubercart Stock Changelog

New Drupal Modules - 18 August 2014 - 6:21pm
What is Ubercart Stock Changelog?

This module allows site administrators to better manage their product stock by having the site record all changes in product stock, both decrements (usually from user orders) and increments (usually from restocks).

A stock change log is provided under the Administration > Store > Reports section to view the changes in product stock over time on a global or per-product basis.

  • Records all changes to product stock and its configuration: stock active status, stock level and stock threshold
  • History of product stock changes can be viewed globally or on a per-product basis
  • Views integration - default stock change log is customizable to better meet the site's needs
Categories: Drupal

Ubercart Abandoned Cart and Order Reminders

New Drupal Modules - 18 August 2014 - 5:39pm
What is Ubercart Abandoned Cart and Order Reminders?

This module allows you to send reminder e-mail notifications to customers who have abandoned a cart or order on your site. The notification template can be customized to your needs, and you may choose to enable notifications for abandoned carts and abandoned order independently.

  • Sends notifications for abandoned cards (for logged in users only) and for abandoned orders (logged in users or those who have entered and email address)
  • Configurable delay for when a cart is considered abandoned
  • Can be linked to a Boolean user profile field to allow users to opt-out of future notifications; see the README.txt file for details
  • User activity (updating cart, checking out a new order or order submission) automatically suppresses notifications on older abandoned carts and orders, preventing duplicate or needless notifications
  • Uses a Rules-based action set for better user control over how notifications get sent
Categories: Drupal

This Week in Video Game Criticism: From Critical Let's Plays to a History of Mobile Games

Social/Online Games - Gamasutra - 18 August 2014 - 3:09pm

This week, our partnership with game criticism site Critical Distance brings us picks from Zolani Stewart on topics ranging from the rising tide of Youtube games criticism to a history of mobile games. ...

Categories: Game Theory & Design

Daniel Pocock: Is WebRTC private?

Planet Drupal - 18 August 2014 - 12:55pm

With the exciting developments at, many people are starting to look more closely at browser-based real-time communications.

Some have dared to ask: does it solve the privacy problems of existing solutions?

Privacy is a relative term

Perfect privacy and its technical manifestations are hard to define. I had a go at it in a blog on the Gold Standard for free communications technology on 5 June 2013. By pure co-incidence, a few hours later, the first Snowden leaks appeared and this particular human right was suddenly thrust into the spotlight.

WebRTC and ICE privacy risk

WebRTC does not give you perfect privacy.

At least one astute observer at my session at Paris mini-DebConf 2014 questioned the privacy of Interactive Connectivity Establishment (ICE, RFC 5245).

In its most basic form, ICE scans all the local IP addresses on your machine and NAT gateway and sends them to the person calling you so that their phone can find the optimal path to contact you. This clearly has privacy implications as a caller can work out which ISP you are connected to and some rough details of your network topology at any given moment in time.

What WebRTC does bring to the table

Some of this can be mitigated though: an ICE implementation can be tuned so that it only advertises the IP address of a dedicated relay host. If you can afford a little latency, your privacy is safe again. This privacy protecting initiative could be made by a browser vendor such as Mozilla or it can be done in JavaScript by a softphone such as JSCommunicator.

Many individuals are now using a proprietary softphone to talk to family and friends around the world. The softphone in question has properties like a virus, siphoning away your private information. This proprietary softphone is also an insidious threat to open source and free operating systems on the desktop. WebRTC is a positive step back from the brink. It gives people a choice.

WebRTC is a particularly relevant choice for business. Can you imagine going to a business and asking them to make all their email communication through hotmail? When a business starts using a particular proprietary softphone, how is it any different? WebRTC offers a solution that is actually easier for the user and can be secured back to the business network using TLS.

WebRTC is based on open standards, particularly HTML5. Leading implementations, such as the SIP over WebSocket support in reSIProcate, JSCommunicator and the DruCall module for Drupal are fully open source. Not only is it great to be free, it is possible to extend and customize any of these components.

What is missing

There are some things that are not quite there yet and require a serious effort from the browser vendors. At the top of the list for privacy:

  • ZRTP support - browsers currently support DTLS-SRTP, which is based on X.509. ZRTP is more like PGP, a democratic and distributed peer-to-peer privacy solution without needing to trust some central certificate authority.
  • TLS with PGP - the TLS protocol used to secure the WebSocket signalling channel is also based on X.509 with the risk of a central certificate authority. There is increasing chatter about the need for TLS to use PGP instead of X.509 and WebRTC would be a big winner if this were to eventuate and be combined with ZRTP.

You may think "I'll believe it when I see it". Each of these features, including WebRTC itself, is a piece of the puzzle and even solving one piece at a time brings people further out of danger from the proprietary mess the world lives with today.

Categories: Drupal

Get a job: Wargaming America is hiring a Community Manager

Social/Online Games - Gamasutra - 18 August 2014 - 12:52pm

World of Tanks' North American publisher Wargaming America seeks an experienced community manager to work as a community liaison alongside the team in its Emeryville office. ...

Categories: Game Theory & Design Featured Case Studies: Viraland

Planet Drupal - 18 August 2014 - 11:27am
Completed Drupal site or project URL:

Viraland is a Greek online community where you can find the latest viral messages from around the world. Users participate in the community by posting new content and sharing it through social channels. Strange, meaningful and popular messages that go viral are posted daily in Viraland, reflecting the interests of its users.

Key modules/theme/distribution used: ViewsPanelsZenMediaJanrain Social LoginRulesInternationalizationField PermissionsTeam members: highvrahos
Categories: Drupal

Blizzard's Chinese partner NetEase sees revenue, profits rise in Q2

Social/Online Games - Gamasutra - 18 August 2014 - 10:29am

The company that operates World of Warcraft and Hearthstone in China continues to see rises in both quarterly revenue and profits year-over-year for its online game services business. ...

Categories: Game Theory & Design


New Drupal Modules - 18 August 2014 - 9:31am

CasperJS is a navigation scripting & testing utility for PhantomJS and SlimerJS written in JavaScript.

This module provides a Drush wrapper to run CasperJS tests against a Drupal site. It also provides a set of useful methods to perform actions such as:

Categories: Drupal

Pipeline Problems - by Benjamin Quintero Blogs - 18 August 2014 - 9:25am
Anyone else feeling the hurt of asset pipelines? =)
Categories: Game Theory & Design

Context Admin Exclude

New Drupal Modules - 18 August 2014 - 9:00am

Context Admin Exclude
Out of the box, contexts set to display Sitewide without specific URLs will get executed on every page, including admin pages. Sometimes the context doesn't really need to be executed on admin pages, such as node/add.
These contexts cause Drupal to bootstrap and do some work that is not really needed. If you want to change the list (/admin/structure/context/settings), you can implement the hook_context_admin_exclude_admin_paths_alter().

Install the module as usual

Categories: Drupal

SitePoint PHP Drupal: Fine Tuning Drupal Themes with Patterns, Arg and Types

Planet Drupal - 18 August 2014 - 9:00am

In this article, we’ll discuss how you can leverage various Drupal API functions to achieve more fine grained theming. We’ll cover template preprocessing and alter hooks using path patterns, types and args(). We’ll use the arg() function which returns parts of a current Drupal URL path and some pattern matching for instances when you want […]

Continue reading %Fine Tuning Drupal Themes with Patterns, Arg and Types%

Categories: Drupal

Virtual rape in Grand Theft Auto 5: learning the limits of the game - by Michael Kasumovic Blogs - 18 August 2014 - 8:26am
Mods can be a powerful tool to make a societal statement, yet often they are used to gain more control over a game. The new GTA5 rape mod sits somewhere in between. Is it a statement about the removal of power? Or to make female gamers uncomfortable.
Categories: Game Theory & Design

The Theta Files: Abe-X

New RPG Product Reviews - 18 August 2014 - 8:23am
Publisher: Rogue Genius Games
Rating: 5
This product presents an unusal, interesting and potentially tragic super-villain: a genetically-enhanced gorilla!

The backstory is presented sympathetically, telling how a young gorilla was captured in the wild and experimented on (in some shady facility, of course), but developed far faster than the scientists anticipated to eacape and live wild on the streets.

There's no indication of who captured and experimented on him or why (which could provide some interesting adventure material in its own right) nor precisely what he's up to now beyond living on the streets and stealing what he needs to live.

Presentation os good, with iIllustrations clear and good, and a full stat-block is provided, as well as the backstory (a line or two of which fall foul of the bottom edge of the page background, although you can just about make them out) so of himself, Abe-X is all ready to go - just what's needed for the discerning GM's stock of super-villains.

If you want more than a quick side-encounter, work out who was experimenting on him and why, or maybe who is influencing or manipulating him now he's on the loose.
Categories: Game Theory & Design

Zivtech: Creating Parallax Scrolling with CSS

Planet Drupal - 18 August 2014 - 7:58am

Here at Zivtech, we are obsessed with creating immersive experiences for mobile and the web using cutting-edge design and Open Source Software like Drupal and Angular.js. One of the web design techniques that we've had on our radar is Parallax Scrolling, which gives depth to a page by scrolling two dimensions of the site at different rates (for example, text in the front would scroll faster than the image behind it). Parallax Scrolling is most often associated with 2D video game development, but has been becoming more and more prevalent on the web (for some live examples see Creative Bloq's post "46 Great Examples of Parallax Scrolling"). 

While we find this technique engaging, we never adopted it for our designs due to the fact that it relied heavily on Javascript tools and techniques that we found caused performance issues, and especially due to problems with making it work within a responsive web design. However, that may be about to change. In a recent post on his blog, Keith Clark wrote about an exciting new way to create Parallax Scrolling through CSS rather than Javascript, making for more mobile-friendly and responsive Parallax Scrolling effects. Clark writes:

Deferring the parallax effect to CSS removes all these issues and allows the browser to leverage hardware acceleration resulting in almost all the heavy lifting being handled directly by the compositor.

This technique, which removes the bulk of the work off the browser, creates the illusion of 3D without bogging pages down. Now, with CSS, we can maintain the same effect without creating a disjointed experience across multiple platforms. Check out Keith's post on pure CSS parallax scrolling websites for code snippets and samples.

Terms: Drupal PlanetParallax ScrollingCSSJavaScriptDrupalAngular.jsDesignWeb Designresponsive web design
Categories: Drupal

Appnovation Technologies: Different Point of Views

Planet Drupal - 18 August 2014 - 7:25am

The Drupal Views module is an amazing tool. It certainly has contributed significantly to the widespread adoption of Drupal.

var switchTo5x = false;stLight.options({"publisher":"dr-75626d0b-d9b4-2fdb-6d29-1a20f61d683"});
Categories: Drupal

Indie Game Dev Advice and Inspiration - by Adam Thompson Blogs - 18 August 2014 - 7:23am
I recount my personal story going indie and collect pieces from the internet that serve as game dev advice and inspiration for others on the same path.
Categories: Game Theory & Design
Syndicate content

about seo