Skip to Content


Gábor Hojtsy: Moving Drupal forward at Europe's biggest warm water lake

Planet Drupal - 18 August 2014 - 7:08am

Drupalaton 2014 was amazing. I got involved pretty late in the organization when we added sprinting capacity on all four days, but I must say doing that was well worth it. While the pre-planned schedule of the event focused on longer full day and half day workshops on business English, automation, rules, commerce, multilingual, etc. the sprint was thriving with backend developer luminaries such as Wim Leers, dawehner, fago, swentel, pfrennsen, dasjo as well as sizable frontend crew such as mortendk, lewisnyman, rteijeiro, emmamaria, etc. This setup allowed us to work on a very wide range of issues.

The list of 70+ issues we worked on shows our work on the infrastructure, numerous frontend issues to clean up Drupal's markup, important performance problems, several release critical issues and significant work on all three non-postponed beta blockers at the time.

Drupalers "shipped" from port to port; Photo by TCPhoto

Our coordinated timing with the TCDrupal sprints really helped in working on some of the same issues together. We successfully closed one of the beta blockers shortly after the sprint thanks to coordinated efforts between the two events.

Our list of issues also shows the success of the Rules training on the first day in bringing new people in to porting Rules components, as well as work on other important contributed modules: fixing issues with the Git deploy module's Drupal 8 port and work on the Drupal 8 version of CAPTCHA.

Thanks to the organizers, the sponsors of the event including the Drupal Association Community Cultivation Grants program for enabling us to have some of the most important Drupal developers work together on pressing issues, eat healthy and have fun on the way.

Ps. There is never a lack of opportunity to work with these amazing people. Several days of sprints are coming up around DrupalCon Amsterdam in a little over a month! The weekend sprint locations before/after the DrupalCon days are also really cool! See you there!

Categories: Drupal

Acquia: Drupal Stories Kick Off: My Own Drupal Story

Planet Drupal - 18 August 2014 - 6:55am

It’s no secret that Drupalists are in high demand. I’ve blogged about the need for training more Drupalers and getting to them earlier in their careers previously, but that’s just one aspect of the greater topic which merits a closer inspection as a cohesive whole.

Categories: Drupal

Shadowgate Blog #2 - Bringing back Shadowgate - by Karl Roelofs Blogs - 18 August 2014 - 6:55am
This blog details the steps that led toward resurrecting the graphic point-and-click adventure Shadowgate. It further narrates the design decisions that led to the User Interface and game controls developed for the title.
Categories: Game Theory & Design

The Nokia 3210 - by Zoya Street Blogs - 18 August 2014 - 6:50am
Understanding the mobile phone user as a snake in a box
Categories: Game Theory & Design

Finances of a Bare Bones Developer - by Kevin Maxon Blogs - 18 August 2014 - 6:24am
How we funded and shipped a game with limited commercial reach and almost no budget, to understandably few sales, and how the company will be able to continue regardless.
Categories: Game Theory & Design Use Behat to track down PHP notices before they take over your Drupal site forever

Planet Drupal - 18 August 2014 - 6:15am
Mon August 18, 2014 Use Behat to track down PHP notices before they take over your Drupal site forever

Behat is one of the more popular testing frameworks in the Drupal community at the moment, for various reasons. One of these reasons is the useful Behat Drupal Extension that provides a DrupalContext class that can be extended to get a lot of Drupal specific functionality in your FeatureContext right off the bat.

In this post, I'm going to show you how to make Behat aware of any PHP errors that are logged to the watchdog table during each scenario that it runs. In Behat's default setup, a notice or warning level PHP error will not usually break site functionality and so won't fail any tests. Generally though, we want to squash every bug we know about during our QA phase so it would be great to fail any tests that incidentally throw errors along the way.

The main benefits of this technique are:

  • No need to write extra step definitions or modify existing steps, but you'll get some small degree of coverage for all functionality that just happens to be on the same page as whatever you are writing tests for
  • Very simple to implement once you have a working Behat setup with the DrupalContext class and Drupal API driver
  • PHP errors are usually very easy to cleanup if you notice them immediately after introducing them, but not necessarily 6 months later. This is probably the easiest way I've found to nip them in the bud, especially when upgrading contrib modules between minor versions (where it's quite common to find new PHP notices being introduced).
The setup

Once you've configured the Drupal extension for Behat, and set the api_driver to drupal in your behat.yml file, you can use Drupal API functions directly inside your FeatureContext.php file (inside your step definitions).

Conceptually, what we're trying to achieve is pretty straightforward. We want to flush the watchdog table before we run any tests and then fail any scenario that has resulted in one or more PHP messages logged by the end of it. It's also important that we give ourselves enough debugging information to track down errors that we detect. Luckily, watchdog already keeps serlialized PHP error debug information serialized by default, so we can unserlialize what we need and print it straight to the console as required.

You will need to write a custom FeatureContext class extending DrupalContext with hooks for @BeforeSuite and @AfterScenario.

Your @BeforeSuite should look something like this:

<?php /** * @BeforeSuite */ public static function prepare(SuiteEvent $event) { // Clear out anything that might be in the watchdog table from god knows // where. db_truncate('watchdog')->execute(); }

And your corresponding @AfterScenario would look like this:

<?php /** * Run after every scenario. */ public function afterScenario($event) { $log = db_select('watchdog', 'w') ->fields('w') ->condition('w.type', 'php', '=') ->execute() ->fetchAll(); if (!empty($log)) { foreach ($log as $error) { // Make the substitutions easier to read in the log. $error->variables = unserialize($error->variables); print_r($error); } throw new \Exception('PHP errors logged to watchdog in this scenario.'); } }

My apologies, I know this code is a little rough, I'm just using print_r() to spit out the data I'm interested in without even bothering to process the Drupal variable substitutions through format_string(), but hey, it's still legible enough for the average PHP developer and it totally works! Maybe someone else will see this, be inspired, and share a nicer version back here...

David MeisterDirector & lead developerDave is one of the two directors of Godel. He is also our best developer. Dave spends his time improving processes, researching new and shiny techniques and generally working on making Godel the best it can be. Want to work with us?

If you have a project that requires a creative but practical approach...

Get in touch Turn your emails in to actions with ActiveInbox Thu July 31, 2014 Harness email hell with ActiveInbox, which turns your Gmail in to actionable tasks and helps you remind yourself to do the things you said you would.
Categories: Drupal

Gossamer Worlds: Nexopolis (Diceless)

New RPG Product Reviews - 18 August 2014 - 4:57am
Publisher: Rite Publishing
Rating: 5
An review

This installment of the Gossamer Worlds-series depicting infinite worlds along teh Grand Stair clocks in at 51 pages, 1 page front cover, 1 page editorial, 1 page back cover, leaving us with 48 pages of content, so let's...

...wait. What? Yes, this is a break of form for the series: Where usually, Matt Banach provides, short, extremely affordable primers for worlds that can be essentially considered campaign seeds, this one is penned by Matt Forbeck and is more of a full-blown sourcebook.

Now the book kicks in with a 2-page full color map of the island and city of Nexopolis and while not bad, it is one weak spot of the pdf - compared to the awesome, original pieces of full color atwork, the map didn't wow me - it is functional, but nothing special. That being said, LoGaS stands and falls with its setting - and here, the foreword sets a theme - much in line with e.g. Catherynne M. Valente's "Palimpsest" and similar weird cities that act as a kind of nexus, Nexopolis has a welcoming committee - one exemplified by the character (and player!) potentially reading this as an introduction to the setting at hand.

The city of Nexopolis and its island is ultimately one island that is the last inhabitable place in a world ravaged by the war with the dwimmerlaik - here, survivors of once the more door-rich worlds on the Grand Stair still dwell and here, countless doors still exist. Though legendary Finnian has some control here, via specially created keys. So Finnian's the leader and lord? Well, yes and no. Finnian is the none-too-subtle power behind the leaders, the constant power behind the throne, so to speak - Finnian's not about politics, but rather governing: Managing and ensuring survival. And in a world ravaged by war, where poisonous storms may howl with the ghosts of the dwimmerlaik slain in the war, where people from countless worlds come for trade (or vacation - the weather's nice!) and where both magic and high technology reign supreme, that's something.

Indeed, Nexopolis can be considered the ultimate melting pot - in the tradition of planar metrolpolises like Sigil, next to everything you can imagine can be found here - hence, the local populace tends to exhibit a jaded, somewhat condescending stance toward less cosmopolitan dwellers of other Gossamer Worlds. Also in tradition of similar hub cities, law and its enforcement is less conventional; to prevent constant ideological issues and gripes, law is more about keeping the peace here and different zones (i.e. neighborhoods) with their own styles, rules and things to do are provided. And surprisingly, the respective neighborhoods actually transcend the standard depictions one would expect from e.g. the slum-like area.

Rather interesting would be, that often ignored issues like e.g. the transport of military and WMDs are covered as well, including the outside of the inhospitable world, ravaged by the wars long past. Glorious! The book also features quite an array of different NPCs - from the Lord Finnian to the in-character author of the pdf to Marhseeba, Finnian's scientist-come-trade-advisor to the leader of the Vigilance Council, the leader of the Official Business Development, the justicar, the mysterious potentially reverse aging Mother Girl sorceress -all these characters come with full-blown stats - and fluff-only write-ups of even more intriguing characters provide quite an array of hooks. Beyond that, even the stance of well-known Gossamer Lords and Ladies regarding Nexopolis and its special position is discussed, adding further potential for story-weaving.

Now beyond this vast panorama of narrative options, we also are introduced to an array of no less than 8 cantrips, 6 spells and 4 artifacts. Not enough? What about rats that use coconuts like hermit crabs use shells? The fabled white squid?

Now beyond these, this supplement opens a whole new dimension of LoGaS-gaming - the primer for creating nonpowered characters! While the primer is short, the total usefulness of the short section rocks.

Finally, the pdf closes with a smattering of adventure hooks, just in case you're not inspired enough yet - and if neither reading this book, nor the hooks helped, I really don't know what will.


Editing and formatting are top-notch, I didn't notice any significant glitches. Layout adheres to Rite Publishing's 2-column full-color standard and the pdf comes with a neat plethora of awesome, original full color artworks. The pdf comes with extensive, nested bookmarks.

Matt Forebeck delivers what could essentially be summed up as a inter-planetary/planar Nexus meets tropical, post-apocalyptic casablanca meets high-intrigue capitalism and CEO-business-level intrigue. This supplement actually managed to carve out its own niche within the plethora of planar nexus-style cities I've read for various supplements and systems and that's a feat in itself. The lively, cool characters add vast array of angles to pursue is staggering - even before adding other gossamer worlds. Add to that the more than required rules for non-powered characters and we have a supplement on our hands that should be considered a non-optional purchase for anyone invested in Lords of Gossamer and Shadows. My final verdict will clock in at 5 stars + seal of approval.

Endzeitgeist out.
Categories: Game Theory & Design

The &quot;Rules&quot; of Story (and When We Can Break Them) - by David Kuelz Blogs - 18 August 2014 - 4:15am
Writers talk incessantly about "the rules" when it comes to storytelling, and we talk equally incessantly about when it's okay to break those rules. Let's examine when it's okay for some of us to break the rules and when we should stick to tradition.
Categories: Game Theory & Design

Narrative and the MDA Framework - by E McNeill Blogs - 18 August 2014 - 2:50am
How narrative influenced the design of my game Darknet, viewed through the lens of the MDA framework.
Categories: Game Theory & Design

Do You Know Your Target Demos? - by Rich Melcombe Blogs - 18 August 2014 - 2:28am
Kim Kardashian does not have to worry about Target Demos.
Categories: Game Theory & Design

CKAN Packages

New Drupal Modules - 18 August 2014 - 1:02am

This is a module that allows users to configure ckan settings. the dafault values are site name for maintainer, site email for maintainer email and default license is Creative Commons Attribution Share-Alike (CC-BY-SA).

Categories: Drupal

Fuzzy Thinking: Swimming Dwarves

RPGNet - 18 August 2014 - 12:00am
Fuzzy skills.
Categories: Game Theory & Design

Deeson Online: Using Grunt, bootstrap, Compass and SASS in a Drupal sub theme

Planet Drupal - 17 August 2014 - 11:37pm

If you have a separate front end design team from your Drupal developers, you will know that after static pages are moved into a Drupal theme there can be a huge gap in structure between the original files and the final Drupal site.

We wanted to bridge the gap between our theme developers, UX designers, front end coders, and create an all encompassing boilerplate that could be used as a starting point for any project and then easily ported into Drupal.

After thinking about this task for a few weeks it was clear that the best way forward was to use Grunt to automate all of our tasks and create a scalable, well structured sub theme that all of our coders can use to start any project.

What is Grunt?

Grunt is a Javascript task runner that allows you to automate repetitive tasks such as file minifying files, javascript linting, CSS preprocessing, and even reloading your browser.

Just like bootstrap, there are many resources and a vast amount of plugins available for Grunt that can automate any task you could think of, plus it is very easy to write your own, so setting Grunt as a standard for our boilerplate was an easy decision.

The purpose of this post

We use bootstrap in most projects and recently switched to using SASS for CSS preprocessing bundled with Compass, so for the purpose of this tutorial we will create a simple bootstrap sub theme that utilises Grunt & Compass to compile SASS files and automatically reloads our browser every time a file is changed.

You can then take this approach and use the best Grunt plugins that suit your project.

Step 1. Prerequisites

To use Grunt you will need node.js and ruby installed on your system. Open up terminal, and type:

node -v ruby -v

If you don't see a version number, head to the links below to download and install them.

Don’t have node? Download it here

Don’t have ruby? Follow this great tutorial

Step 2. Installing Grunt

Open up terminal, and type:

sudo npm install -g grunt-cli

This will install the command line interface for Grunt. Be patient whilst it is downloading as sometimes it can take a minute or two.

Step 3. Installing Compass and Grunt plugins

Because we want to use the fantastic set of mixins and features bundled with Compass, lets install the Compass and SASS ruby gems.

Open up terminal, and type:

sudo gem install sass sudo gem install compass

For our boilerplate we only wanted to install plugins that we would need in every project, so we kept it simple and limited it to Watch, Compass and SASS to compile all of our files. Our team members can then add extra plugins later in the project as and when needed.

So lets get started and use the node package manager to install our Grunt plugins.

Switch back to Terminal and run the following commands:

sudo npm install grunt-contrib-watch —save-dev sudo npm install grunt-contrib-compass —save-dev sudo npm install grunt-contrib-sass —save-dev Step 4. Creating the boilerplate

Note: For the purposes of this tutorial we are going to use the bootstrap sub theme for our Grunt setup, but the same Grunt setup described below can be used with any Drupal sub theme.

  • Create a new Drupal site
  • Download the bootstrap theme into your sites/all/themes directory
    drush dl bootstrap
  • Copy the bootstrap starter kit (sites/all/themes/bootstrap/bootstrap_subtheme) into your theme directory
  • Rename to
  • Navigate to admin/appearance and click “Enable, and set default" for your sub-theme.

Your Drupal site should now be setup with Bootstrap and your folder structure should now look like this:

For more information on creating a bootstrap sub theme check out the community documentation.

Step 5. Switching from LESS to SASS

Our developers liked less, our designers likes SASS, but after a team tech talk explaining the benefits of using SASS with Compass (a collection of mixins with an updater with some cleaver sprite creation), everyone agreed that SASS was the way forward.

Officially Bootstrap is now packaged with SASS, so lets replace our .less files with .scss files in our bootstrap_subtheme so we can utilise all of the mixin goodness that comes with it SASS & Compass.

  • Head over to bootstrap and download the SASS version
  • Copy the stylesheets folder from boostrap-sass/assets/ and paste it into your bootstrap_subtheme
  • Rename the stylesheets folder to bootstrap-sass
  • Create a new folder called custom-sass in bootsrap_subtheme
  • Create a new file in the custom-sass called style.scss
  • Import bootstrap-sass/bootstrap.scss into style.scss

​You should now have the following setup in your sub theme:

We are all set!

Step 6. Setting up Grunt - The package.json & Gruntfile.js

Now lets configure Grunt to run our tasks. Grunt only needs two files to be setup, a package.json file that defines our dependencies and a Gruntfiles.js to configure our plugins.

Within bootstrap_subtheme, create a package.json and add the following code:

{ "name": "bootstrap_subtheme", "version": "1.0.0", "author": “Your Name", "homepage": "", "engines": { "node": ">= 0.8.0" }, "devDependencies": { "grunt-contrib-compass": "v0.9.0", "grunt-contrib-sass": "v0.7.3", "grunt-contrib-watch": "v0.6.1" } }

In this file you can add whichever plugins are best suited for your project, check out the full list of plugins at the official Grunt site.

Install Grunt dependencies

Next, open up terminal, cd into sites/all/themes/bootstrap_subtheme, and run the following task:

sudo npm install

This command looks through your package.json file and installs the plugins listed. You only have to run this command once when you set up a new Grunt project, or when you add a new plugin to package.json.

Once you run this you will notice a new folder in your bootstrap_subtheme called node_modules which stores all of your plugins. If you are using git or SVN in your project, make sure to ignore this folder.

Now lets configure Grunt to use our plugins and automate some tasks. Within bootstrap_subtheme, create a Gruntfile.js file and add the following code:

module.exports = function (grunt) { grunt.initConfig({ watch: { src: { files: [‘**/*.scss', '**/*.php'], tasks: ['compass:dev'] }, options: { livereload: true, }, }, compass: { dev: { options: { sassDir: 'custom-sass/scss', cssDir: 'css', imagesPath: 'assets/img', noLineComments: false, outputStyle: 'compressed' } } } }); grunt.loadNpmTasks('grunt-contrib-compass'); grunt.loadNpmTasks('grunt-contrib-sass'); grunt.loadNpmTasks('grunt-contrib-watch'); };

This file is pretty straight forward, we configure our watch tasks to look for certain files and reload our browser, and then we define our scss and css directories so that compass knows where to look.

I won’t go into full detail with the options available, but visit the links below to see the documentation:

Watch documentatation

SASS documentatation


Step 7. Enabling live reload

Download and enable the livereload module into your new Drupal site. By default, you will have to be logged in as admin for live reload to take effect, but you can change this under Drupal permissions.

Once you enable livereload, refresh your browser window to load the livereload.js library.

Step 8. Running Grunt

We are all set! Head back over to Terminal and check you are in the bootstrap_subtheme directory, then type:

grunt watch

Now every time you edit a scss file, Grunt will compile your SASS into a compressed style.css file and automatically reload your browser.

Give it a go by importing compass into the top of your style folder and changing the body background to be a compass mixin.

@import 'compass'; @import '../bootstrap-sass/bootstrap.scss'; /* * Custom overrides */ body { @include background(linear-gradient(#eee, #fff)); }

To stop Grunt from watching your files, press Ctrl and C simultaneously on your keyboard.

Step 9. Debugging

One common problem you may encounter when using Grunt alongside live reload is the following error message:

Fatal error: Port 35729 is already in use by another process.

This means that the port being used by live reload is currently in use by another process, either by a different grunt project, or an application such as Chrome.

If you experience this problem run the following command and find out which application is using the port.

lsof | grep 35729

Simply close the application and run “grunt watch” again. If the error still persists and all else fails, restart your machine and try to stop Grunt from watching files before moving on to another project.

Next steps…

This is just a starting point on what you can achieve using Grunt to automate your tasks and gives you a quick insight to how we go about starting a project.

Other things to consider:

  • Duplicating the _variables.scss bootstrap file to override the default settings.
  • Adding linted, minified javascript files using the uglify plugin
  • Configure Grunt to automatically validate your markup using the W3C Markup Validator
  • Write your own Grunt plugins to suite your own projects
Let me know your thoughts - you can share your ideas and views in the comments below.


Read moreUsing Grunt, bootstrap, Compass and SASS in a Drupal sub themeBy David Allard | 18th August 2014
Categories: Drupal

Comment Score

New Drupal Modules - 17 August 2014 - 8:27pm

Allows administrators to configure arbitrary rules in which to score the "badness" or "goodness" of comments on the site. The more positive the number, the more negativity points it has. It is typically easier to find negative modifiers than it is positive.

Categories: Drupal

Navbar region

New Drupal Modules - 17 August 2014 - 5:39pm

The Navbar region module adds a region to the Mobile Friendly Navigation Toolbar (navbar) module, allowing the placement of any blocks into the Navbar, much like the functionality of the Admin module.

Categories: Drupal

Book Menus

New Drupal Modules - 17 August 2014 - 8:02am

Book Menus allows you to set books as normal drupal menus. This means they will be listed in admin/structure/menu, and have all of the additional functionality that comes along with it.

This will allow you to use menu-manipulation modules. For example, the initial development was due to wanting a more flexible book menu structure with titles/sections that are not necessarily links. This can be done using book_menus along with special_menu_items.

Categories: Drupal

Victor Kane: Super simple example of local drush alias configuration

Planet Drupal - 17 August 2014 - 7:12am

So I have a folder for drush scripts _above_ several doc root folders on a dev user's server. And I want to run status or whatever and my own custom drush scripts on _different_ Drupal web app instances. Drush has alias capability for different site instances, so you can do:

$ drush @site1 status

So, how to set up an aliases file?

(I'm on Ubuntu with Drush 6.2.0 installed with PEAR as per this great d.o. doc page Installing Drush on Any Linux Server Out There (Kalamuna people, wouldn't you know it?)).

Careful reading of the excellent drush documentation points you to a Drush Shell Aliases doc page, and from there to the actual example aliases file that comes with every drush installation.

So to be able to run drush commands for a few of my local Drupal instances, I did this:

  • In my Linux user directory, I created the file ~/.drush/aliases.drushrc.php
  • Contents:
<?php $aliases['site1'] = array( 'root' => '/home/thevictor/site1/drupal-yii', 'uri' => '', ); $aliases['site2'] = array( 'root' => '/home/thevictor/site2', 'uri' => '', );

Then I can do, from anywhere as long as I am logged in as that user:

$ cd /tmp
$ drush @site1 status
$ drush @site2 status

and lots of other good stuff. Have a nice weekend.

read more

Categories: Drupal

Composition in Level Design - by Mateusz Piaskiewicz Blogs - 16 August 2014 - 11:21pm
When designing a level you're able to freely compose your virtual environment with any objects you want. A level designers' work can be compared to that of a painter. Now let's see the level as the art gallery and the level vistas as paintings.
Categories: Game Theory & Design

Amethyst: Destiny (Fate Edition)

New RPG Product Reviews - 16 August 2014 - 10:38am
Publisher: Dias Ex Machina Games
Rating: 5
A long piece of fiction preceeds the introduction of the core premise of this game: what if storybook concepts co-existed with the real world around us? Most of us, certainly in the community of role-players, have active fantasy imaginations, but what would it be like if those imaginings became real, not as a replacement for the real world outside the window but alongside it? In answering such questions, we have the game, the setting, that is Amethyst.

Amethyst is not new. It's been around for quite some time now, growing and being revised, being changed to fit different rulesets - D20, D and D 4e, Pathfinder and now Fate. For the first three, the ruleset itself provided the framework for the fantasy aspects, bringing their monsters and magics out into a 'real world' setting which is easy to provide: we live there.

The introduction continues with the background - in character - as to how the co-existence of fantasy and real worlds came about and the tensions, conflicts, that this causes. Magic is real, but quite rare. Monsters too are mercifully rare but devastating when they do show up. And deities? Nobody knows if they are real or not, but there are plenty that believe... just like in the real world.

Chapter 2: Fate of Amethyst touches on the setting's history before launching into an explanation of how it works with Fate and, for those new to it, how Fate Core itself works. For this is a stand-alone book, all the rules you need to play are here, although if you do have access to Fate Core it can be helpful. You will also need a Fate Deck or Fate Dice, and alternative methods of generating the required random results are discussed. The character sheet is explained, leading into an explanation of how to generate characters coupled with information on how to use the character mechanics within the game. There are some variations from standard Fate Core mechanics, mostly brought over or modified from previous incarnations of the game using various class/level mechanics: instead of Fate skills you have rather broader Vocations, for example.

The character creation process itself is detailed clearly and well, being described as 'part of the game' rather than a precursor to it. In devising a character, you'll need to understand his background, and so you are already beginning to tell his story. As such, it is best done as a group activity with the entire party and the GM working together. The next few chapters go into depth on the choices you have to make: species, vocations and so on. Delve deeply and pick wisely. Throughout, snippets of fiction - some from the original story, others singular bits relating to the topic at hand - serve to illustrate what is being covered. Illustrations too are rich and varied and give a feel for what is being discussed. Many fascinating snippets of information are buried here, it's worth reading throroughly. For every choice, however, there is also a summary box which tells you what a character making that choice will be capable of - if the summary appeals, consider that choice in detail.

That dealt with, what of the world in which your character will operate? This is covered in Chapter 5: The World. Although the concept is fantasy meets real world, the game is not actually set on 21st century Earth, but in an imaginary world with fantasy elements intertwined with technological development of what is a modern society. Remember that it did not develop that way, rather a significant event released the fantastical parts on a more normal society - many of whom resist the idea and reckon fantasy still belongs in a book! Player Characters, even the non-fantasic ones, generally are a bit more aware of what is going on from the outset. It is a rich and varied background, and again this chapter is worthy of serious study to get the feel of the world in which the game takes place. Depending on where a character comes from, he may have access to abilities and knowledge that others do not, so again choose carefully based on what kind of character you want to play. And if you don't care for any location in this rich backdrop, rules are provided for creating your own!

Chapter 6: Equipment looks at the kit and caboodle your character can accumulate. Most is abstracted, you are assumed to have all the ordinary things you need for day-to-day life, it's only the gear that will become important when adventuring that matters. You'll need to know the tech level of the things you want and how well it can resist magic. Different species (and vocations) have their own preferred weapons and equipment, although your character may choose to buck the trend a bit it will make things harder and the character stand out. Weapons vary from basic mediaeval ones to wildly-futuristic, and there's a similar range of armour too - right up to combat exoskeletons and power armour. Tools, drugs, vehicles and more are also covered.

Chapter 7: Magic delves into the underlying philosophy and mechanics of spell-casting as well as exploring the actual spells that can be cast and what they do. Although the rules are quite precise spells are not - it is more a case of dreaming up the effect that you want to have happen and then applying the rules appropriately. There are plenty of sample spells to get you going. Magic items and alchemy are also covered, and there are notes on converting spells from other game systems if there's one you particularly like.

Next, Chapter 8: Monsters details some of the quite outlandish - and dangerous - beasts with which the characters will have to contend. This also includes NPCs. There are sample monsters, notes on devising your own, hazardous environments and much, much more here.

Finally, Chapter 9: Campaign deals with what you'll actually be doing once the game begins. The contrast between the familiar and fantasy should be at the heart of everything that goes on, but just about any plotline can be followed or story told within that context: exploration, intrigue, conflict, investigation... whatever takes your fancy. Running the Fate system is also discussed here, as it has quite an influence on the way in which your stories will be told. This chapter is really for those who want to GM rather than only play, but makes interesting reading whichever role you are planning to fill. There's advice on constructing and locating adventures, and a short sample one to get you going.

Beautifully written, a rich backdrop cunningly crafted and visually spectacular as well (with one flaw, a very dark figure in the lower left of the standard background that often renders a few words of text illegible), if you are already a fan of the Amethyst concept you'll want to add it, if you want to see just what can be done with Fate Core given a strong idea this is of interest... and if you are in search of a unique and different game, you may well find it here.
Categories: Game Theory & Design

Hosting Webhooks

New Drupal Modules - 16 August 2014 - 8:37am

Provides simple webhook endpoints for Aegir.

This module will provide endpoints that allow third party services (like GitHub) to trigger task creation (like git pull) in your Aegir or DevShop server.

The vision of this module is to be as simple as possible with no dependencies, that is meant solely for triggering tasks.

For a more robust API, see

Categories: Drupal
Syndicate content

about seo