New Ninja Sets Available For Test of Honour

Tabletop Gaming News - 8 December 2017 - 2:00pm
Even though ninjas never really wrapped themselves in black like we see in pop culture (that was a kabuki theater thing. Ninjas dressed like everyone else so they didn’t stand out), it’s still fun to have ninja figures running around on our battlefields in their iconic look. Well, if you’re a Test of Honour player, […]
Categories: Game Theory & Design

Wim Leers: API-First Drupal — really!

Planet Drupal - 8 December 2017 - 1:54pm

This blog has been quiet for the last year and a half, because I don’t like to announce things until I feel comfortable recommending them. Until today!

Since July 2016, API-First Drupal became my primary focus, because Dries felt this was one of the most important areas for Drupal’s future. Together with the community, I triaged the issue queue, and helped determine the most important bugs to fix and improvements to add. That’s how we ended up with REST: top priorities for Drupal … plan issues for each Drupal 8 minor:

If you want to see what’s going on, start following that last issue. Whenever there’s news, I post a new comment there.

But enough background. This blog post is not an update on the entire API-First Initiative, it’s about a particular milestone.

100% integration test coverage!

The biggest problem we encountered while working on rest.module, serialization.module and hal.module was unknown BC breaks 1. Because in case of a REST API, the HTTP response is the API. What is a bug fix for person X is a BC break for person Y. The existing test coverage was rather thin, and was often only testing “the happy path”: the simplest possible case. That’s why we would often accidentally introduce BC breaks.

Hence the clear need for really thorough functional (integration) test coverage2, which was completed almost exactly a year ago. We added EntityResourceTestBase, which tests dozens of scenarios3 in a generic way4, and used that to test the 9 entity types, that already had some REST test coverage, more thoroughly than before.

But we had to bring this to all entity types in Drupal core … and covering all 41 entity types in Drupal core was completed exactly a week ago!

The test coverage revealed bugs for almost every entity type. (Most of them are fixed by now.)

Tip: Subclass that base test class for your custom entity types, and easily get full REST test coverage — 41 examples available!

Guaranteed to remain at 100%

We added EntityResourceRestTestCoverageTest, which verifies that we have test coverage for all permutations of:

  • entity type
  • format: json + xml + hal_json
  • authentication: cookie + basic_auth + anon

It is now impossible to add new entity types without also adding solid REST test coverage!

If you forget that test coverage, you’ll find an ASCII-art llama talking to you:

Good people of #Drupal, I present unto you the greatest method of all time.

— webcsillag (@webchick) December 8, 2017

That is why we can finally say that Drupal is really API-First!

This of course doesn’t help only core’s REST module, it also helps the contributed JSON API and GraphQL modules: they’ll encounter far fewer bugs!


So many people have helped! In random order: rogierbom, alexpott, harings_rob, himanshu-dixit, webflo, tedbow, xjm, yoroy, timmillwood, gaurav.kapoor, Gábor Hojtsy, brentschuddinck, Sam152, seanB, Berdir, larowlan, Yogesh Pawar, jibran, catch, sumanthkumarc, amateescu, andypost, dawehner, naveenvalecha, tstoeckler — thank you all!5

Special thanks to three people I omitted above, because they’re not well known in the Drupal community, and totally deserve the spotlight here, for their impressive contribution to making this happen:

That’s thirty contributors without whom this would not have happened!

And of course thanks to my employer, Acquia, for allowing me to work on this full-time!


What is going to be the next big milestone we hit? That’s impossible to say, because it depends on the chains of blocking issues that we encounter. It could be support for modifying and creating config entities, it could be support for translations, it could be that all major serialization gaps are fixed, it could be file uploads, or it could be ensuring all normalizers work in both rest.module & jsonapi.module

The future will tell, follow along!

  1. Backwards Compatibility. ↩︎

  2. Nowhere near 100% test coverage, definitely not every possible edge case is tested, and that is fine↩︎

  3. Including helpful error responses when unauthenticated, unauthorized or just a bad request. This vastly improves DX: no need to be a Drupal expert to talk to a REST API powered by Drupal! ↩︎

  4. It is designed to be subclassed for an entity type, and then there are subclasses of that for every format + authentication combination. ↩︎

  5. And this is just from all the per-entity type test issues, I didn’t look at the blockers and blockers of blockers. ↩︎

  • Acquia
  • Drupal
Categories: Drupal

Revised Edition of Kingsburg Now Available

Tabletop Gaming News - 8 December 2017 - 1:00pm
Games can occasionally need a bit of an update. Mechanics can be smoothed out. Art assets can be redone. Components can get a change in material or quality. In the end, you’ve got an old game that has a new feel to it. For those that are fans of Kingsburg, you’ll be happy to see […]
Categories: Game Theory & Design

New Saxons Available For Hail Caesar

Tabletop Gaming News - 8 December 2017 - 12:00pm
There’s quite a lot of you out there with Saxon blood in your veins. Now, there can be quite a lot of you with Saxon minis out on your gaming tabletop (and, depending on how careful with your craft knife while cleaning and assembling the figures, you might have your Saxon blood out there as […]
Categories: Game Theory & Design

Friday Snippets

Tabletop Gaming News - 8 December 2017 - 11:00am
Apocalypse! Armageddon! The End of Times! Yes, it’s lightly snowing here in Atlanta. … Ok, so it’s kinda hard to see in that photo, but it’s actually picked up a bit more here. So, while we prepare our milk sandwiches with bleach, we can also nibble on some bite-sized gaming stories. Today on the platter […]
Categories: Game Theory & Design

Wyrd Previews Barbed Crawlers For The Other Side

Tabletop Gaming News - 8 December 2017 - 10:24am
Fridays are a magical time. They’re the gateway to the weekend, giving us a bit of freedom at the end of the work day. Fridays are also magical because Wyrd likes to give us regular previews. In this case, it’s a bit of a spiny preview for The Other Side. Have yourself a look at […]
Categories: Game Theory & Design

Majesty: For the Realm Now Available From Z-Man Games

Tabletop Gaming News - 8 December 2017 - 10:00am
The throne is empty. A new monarch must be set upon it. But whom should lead? Obviously, it should be the ruler of one of the realms that has shown that they are the most-prosperous and best leader. No bloodline nonsense. This is a merit-based system. Prove you’re the best ruler and you’ll be put […]
Categories: Game Theory & Design


New Drupal Modules - 8 December 2017 - 9:56am
Categories: Drupal


New Drupal Modules - 8 December 2017 - 9:10am

Provides a Drupal Console command which can generate a composer.json from your installed Drupal code base, which can be used to regenerate that code base by running composer install. Embrace the future!

To use, install Drupal Console. Then install this module, and run this command from inside your Drupal root:

$ drupal make:composer

This will output the contents of the generated composer.json. To save it to a file, pipe it:

Categories: Drupal

Paragraphs View Modes

New Drupal Modules - 8 December 2017 - 9:05am

This module contains a behavior plugin for the Paragraphs module. This plugin allows you to select a different view mode for the paragraph in the content add/edit form.

Categories: Drupal

Team Yankee: Stripes Releasing Now

Tabletop Gaming News - 8 December 2017 - 9:00am
Team Yankee looks at what WWIII might look like as the forces of NATO go against the Soviets on the fields of Europe. This week, the Stripes book came out, adding to the American forces. This new book can be picked up now. Next week, we’ll be seeing new versions of several American units, including […]
Categories: Game Theory & Design

Aegir Dispatch: Re-positioning Ægir

Planet Drupal - 8 December 2017 - 8:39am
Last week, Colan and I attended SaasNorth, a conference for Software-as-a-Service founders and investors, with a strong focus on marketing, finance and growth. To be honest, we were a little skeptical at the near total absence of technical content. However, we were pleasantly surprised by some of the truly excellent speakers we heard. The one that had the most impact on us was April Dunford’s OBVIOUSLY AWESOME – Using context to move your customers from “What?
Categories: Drupal

LakeDrops Drupal Consulting, Development and Hosting: 3 minutes: Starting Drupal 8 project with a composer template

Planet Drupal - 8 December 2017 - 8:11am
3 minutes: Starting Drupal 8 project with a composer template Jürgen Haas Fri, 12/08/2017 - 17:11

Starting a new Drupal 8 project with the LakeDrops composer template only takes less than 3 minutes. And in that short period of time you're note only getting the code base but also a number of extra benefits:

Categories: Drupal

New Beyond the Gates of Antares Release and Free Rules Download From Warlord Games

Tabletop Gaming News - 8 December 2017 - 8:00am
It’s a two-fer of Beyond the Gates of Antares news bits today. The first is that there’s a new Boromite Hauler available over in the Warlord Games Webshop. The other is that they’ve posted up a free download of the rules. This primer, called Antares Base One, will give you the rules overview, as well […]
Categories: Game Theory & Design

Do PCs Dream of Dire Sheep?

Gnome Stew - 8 December 2017 - 7:28am

Today’s guest article is by Chris Baker, who talks about the role of dreams in gaming. – Never quite awake John

Most of us experience dreams as we sleep, but do your player characters have dreams? A dream can be a pleasant reminder of times past, a previously unexpressed desire or, possibly, an omen or a deeper, more troubling experience. Dreams are an opportunity for a GM to further character development in a “low risk” environment. A dream can be used to give the flavour of an impending encounter – especially if that encounter is one where the party is unprepared or has underestimated the hazard of the situation. A dream can also help a character examine their past or relive an important experience.

They can also be used to foreshadow an impending plot development or, if beneficial, help the players circle back on an item or event that has gone overlooked. The dream does not need to fit the current plot or situation. It could inform that situation, of course, or prepare a player or party for a sense of deja vu. A dream could comfort the afflicted as much as it can afflict the comfortable. A dream can be an encounter or an event (or both).

What is a dream?

As dreamers know, there are few rules when it comes to dreams. They need not follow logic or the classical unities of time, space and character. In fact, most dreams have a tinge of the unreal while being very immediate and compelling.

Despite the unlimited possibilities, a GM should be mindful that dreams are often fast paced and brief, even if they contain many scenes. There is no need for a supporting logic – you can skip from the youthful sunny day in the backyard to confronting a nameless terror as an older version of the character.

Personally, I would avoid the “you die in your sleep, you die in real life” conundrum. Your players may have that belief, which may heighten the stakes for them, but I would not recommend that you actually follow that rule. Likewise, damage taken in a dream state should not be imposed on the character. There are exceptions, such as the dream being a malicious manifestation of an enemy, but dreams should likely be a safe space for everyone, including the GM.

The Dream Itself

As GM, you control all the variables within the dream. The character (or characters) can be fully-equipped, partially-equipped or not equipped at all. They can be dressed for a social situation or clinging to a blanket (or shrubbery) for modesty’s sake. Their favoured weapon may be stuck in a scabbard or completely discharged. They may even be attending their own funeral.

As a GM, you should consider the use of the dream as part of the individual or group story arc. This may help you to reinforce a plot point or foreshadow a new arrival. There is no reason why a party cannot share a dream – especially if that dream is a “sending” by another creature, a patron or other “interested observer.”

Dreams can also be interrupted. For example, Samuel Coleridge was dreaming his great poem Xanadu when he was interrupted by an unexpected visitor. Imagine a situation where a character (or characters) are about to learn a key piece of information when they are woken by the housekeeping staff bringing fresh towels.

 “We are the stuff that dreams are made of.”

Dreams can be a powerful tool for a GM. They can help course-correct a party in a more gentle fashion than the old railroad. They can offer insight into a character or situation. Dreams are also mysterious and can fit into almost any RPG scenario.

One final caution. The television series Dallas wrote off two seasons of their show as “a dream” by one of the principle characters. While this might be an inventive way to reboot a stale campaign – taking the characters back to an earlier “fork in the road” – it did not save the show.

Have you used dreams in your games? How did you handle dream logic vs game rules? What did doing dream sequences add to the game?

Categories: Game Theory & Design

Colan Schwartz: Ægir Turns 10!

Planet Drupal - 8 December 2017 - 7:09am
Topics:  This blog post has been re-published from Aegir's blog and edited with permission from its author, Christopher Gervais.

My tenure with the Ægir Project only dates back about 7 or 8 years. I can’t speak first-hand about its inception and those early days. So, I’ll leave that to some of the previous core team members, many of whom are publishing blog posts of their own.

New look for

As part of the run-up to Ægir’s 10-year anniversary, we built a new site for the project, which we released today. It will hopefully do more justice to Ægir’s capabilities. In addition to the re-vamped design, we added a blog section, to make it easier for the core team to communicate with the community. So keep an eye on this space for more news in the coming weeks.

Ægir has come a long way in 10 years

When I first tried to use Ægir (way back at version 0.3), I couldn’t even get all the way through the installation. Luckily, I happened to live in Montréal, not too far from Koumbit, which, at the time, was a hub of Ægir development. I dropped in and introduced myself to Antoine Beaupré; then one of Ægir’s lead developers.

One of his first questions was how far into the installation process I’d reached. As it turns out, he frequently asked this question when approached about Ægir. It helped him gauge how serious poeple were about running it. Back then, you pretty much needed to be a sysadmin to effectively operate it.

A few months, Antoine had wrapped the installation scripts in Debian packaging, making installation a breeze. By that point I was hooked.

Free Software is a core value

Fast forward a couple years to DrupalCon Chicago. This was a time of upheaval in the Drupal community, as Drupal 7.0 was on the cusp of release, and Development Seed had announced their intention to leave the Drupal community altogether. This had far-reaching consequences for Ægir, since Development Seed had been the primary company sponsoring development, and employing project founder and lead developer Adrian Rossouw.

While in Chicago I met with Eric Gundersen, CEO of DevSeed, to talk about the future of Ægir. Whereas DevSeed had sold their flagship Drupal product, OpenAtrium, to another company, Eric was very clear that they wanted to pass on stewardship of Ægir to Koumbit, due in large part to our dedication to Free Software, and deep systems-level knowledge.

Community contributions are key

Since then Ægir has grown a lot. Here is one of the more interesting insights from OpenHub’s Ægir page:

Very large, active development team Over the past twelve months, 35 developers contributed new code to Aegir Hosting System. This is one of the largest open-source teams in the world, and is in the top 2% of all project teams on Open Hub.

To help visualize all these contributions, we produced a video using Gource. It represents the efforts of no less than 136 developers over the past 10 years. It spans the various components of Aegir Core, along with “Golden” contrib and other major sub-systems.

Of course, many other community members have contributed in other ways over the year. These include (but aren’t limited to) filing bug reports and testing patches, improving our documentation, answering other users’ questions on IRC, and giving presentations at local meetups.

The Future

The core team has been discussing options for re-architecting Ægir to modernize the codebase and address some structural issues. In the past few months, this activity has heated up. In order to simultaneously ensure ongoing maintenance of our stable product, and to simplify innovation of future ones, the core team decided to divide responsibilities across 3 branch maintainers.

Herman van Rink (helmo) has taken up maintenance of our stable 3.x branch. He’s handled the majority of release engineering for the project for the past couple years, so we can be very confident in the ongoing stability and quality of Ægir 3.

Jon Pugh, on the other hand, has adopted the 4.x branch, with the primary goal of de-coupling Ægir from Drush. This is driven largely by upstream decisions (in both Drupal and Drush) that would make continuing with our current approach increasingly difficult. He has made significant progress on porting Provision (Ægir’s back-end) to Symfony. Keep an eye out for further news on that front.

For my part, I’m pursuing a more radical departure from our current architecture, re-writing Ægir from scratch atop Drupal 8 and Ansible with a full-featured (Celery/RabbitMQ) task queue in between. This promises to make Ægir significantly more flexible, which is being borne out in recent progress on the new system. While Ægir 5 will be a completely new code-base, the most of the workflows, security model and default interface will be familiar. Once it has proven itself, we can start pursuing other exciting options, like Kubernetes and OpenStack support.

So, with 10 years behind us, the future certainly looks Bryght*.

* Bryght was the company where Adrian Rossouw began work on “hostmaster” that would eventually become the Ægir Hosting System.

Categories: Drupal

Make games inspired by the public domain - by Yannick Elahee Blogs - 8 December 2017 - 7:08am
Public domain works-based games isn't something you should fear or hate. In fact, I believe we could make much more games based on public domain. This is a completely different exercize than making a game out of nothing.
Categories: Game Theory & Design

How we taught Dimension Drive’s unique mechanic through its trailers - by M. Joshua Cauller Blogs - 8 December 2017 - 7:07am
Dimension Drive is out today, delivering a unique twin-screen take on the SHMUP genre. We needed to make a trailer that presented this new mechanic in a way that transmitted this new novel mechanic. This is how we did it.
Categories: Game Theory & Design

Designing player death: Using intention and meaning to add depth - by Jay Johns Blogs - 8 December 2017 - 7:07am
A series of questions and examples I use to inspire creativity while designing fail states. I hope this can be useful for anyone that wants to be more innovative while dealing with player death within their games.
Categories: Game Theory & Design

The emotional rollercoaster of making a video game - by Florent Maurin Blogs - 8 December 2017 - 7:07am
For the last year and a half, the team behind Bury me, my Love have been working on this reality-inspired game about a Syrian migrant's journey to Europe. Florent Maurin, the project's creative director, tells all the steps to a very intense 18 months.
Categories: Game Theory & Design


Subscribe to As If Productions aggregator