Newsfeeds

Podcast Roundup

Tabletop Gaming News - 31 January 2017 - 11:00am
It’s shaping up to be another really busy week here on this side of the screen. That’s not too bad, as it generally means the week goes by rather quickly. Just gotta keep chugging along working on (redacted) and (redacted) with some side-bits of (redacted) as well. In the meantime, I’ll be listening to some […]
Categories: Game Theory & Design

Here's a preview of GDC 2017 -- direct from the speakers themselves!

Social/Online Games - Gamasutra - 31 January 2017 - 10:42am

As you're planning out your GDC 2017 schedule, organizers want to make sure you have an opportunity to learn more about some of the event's great talks -- straight from the speakers themselves! ...

Categories: Game Theory & Design

Synthicide RPG Now Available In PDF

Tabletop Gaming News - 31 January 2017 - 10:00am
I recently bought some RPG books in pdf format. I’ve got many game rulebooks in pdf format. They’re actually rather handy to have around. And while I still think I prefer to actually have a book in my hands, I’m not the “non-electronics” snob that I was maybe a couple years ago. And so, if […]
Categories: Game Theory & Design

myDropWizard.com: My security resolutions for 2017! #SecurityResolutions

Planet Drupal - 31 January 2017 - 9:58am

I'm a member of the Drupal Security Team, and many of the services offered by myDropWizard involve assisting our customers to improve the security of their Drupal sites -- so, I know quite a lot about security and try to be mindful about my own computer use.

However, computer security is an on-going process: it can always be improved and so you're never truly done.

In this article, I'm going to share my personal list of security resolutions for 2017!

Maybe you'll find something you'd like to implement as well?

Or perhaps you'd like to share your own security resolutions for this year?

Please share your thoughts in the comments (or on Twitter)!

Categories: Drupal

Come to GDC 2017 and learn to design great reward systems for games

Social/Online Games - Gamasutra - 31 January 2017 - 9:35am

Forget everything you've heard about "dopamine" -- Epic Games' Ben-Lewis Evans is giving a great, well-informed talk at GDC 2017 that will empower you to build better game reward systems. ...

Categories: Game Theory & Design

Fantasy Flight Games Announces New Runewars Expansions

Tabletop Gaming News - 31 January 2017 - 9:00am
I know. I know. I know. The game’s not even out there yet. But Fantasy Flight Games isn’t going to just have the starter box and nothing else out there to entice you to play Runewars. They’ve announced four expansion boxes that you’ll be able to pick up. From the announcement: Waiqar’s dark forces have […]
Categories: Game Theory & Design

Fantasy Warr Quickstart Rules and Starter Sets Available From Gary Hunt Miniatures and Zombiesmith

Tabletop Gaming News - 31 January 2017 - 8:00am
You know me. I’m very much a “try before you buy” sort of gamer. So when I hear about a set of rules being put up online for free from a company, I highly respect that move. It lets me, a consumer, check out and see what I’m getting into before I take any sort […]
Categories: Game Theory & Design

Yonder: The Cloud Catcher Chronicles An Episodic Audio Journal Episode One: Risky Beginnings - by Stephan Schutze

Gamasutra.com Blogs - 31 January 2017 - 7:05am
A multi part development journal that will discuss the dynamic music and SFX for the open world of Yonder: The Cloud Catcher Chronicles and examine the risks and challenges encountered.
Categories: Game Theory & Design

Getting motivated and becoming part of the VR community - by Christopher Guzman

Gamasutra.com Blogs - 31 January 2017 - 7:05am
Some knowledge I gained from reading Virtual Reality Insider by Sky Nite and Entering the Metaverse: A Guide to Joining the Virtual Reality Industry by Liv Erickson
Categories: Game Theory & Design

Pricing a Roguelike - by Josh Ge

Gamasutra.com Blogs - 31 January 2017 - 7:04am
Explaining how Cogmind's price points were determined, the effects of tiered pricing and price changes, and what funding can do for roguelikes.
Categories: Game Theory & Design

Azkend 2 and Match-3 Games on Consoles - by Stanislav Costiuc

Gamasutra.com Blogs - 31 January 2017 - 7:04am
I examine why Match-3 games feel good to play on tablets and PC and why this is a challenge for consoles.
Categories: Game Theory & Design

Free the Frog Post Mortem - by Levi Smith

Gamasutra.com Blogs - 31 January 2017 - 7:04am
Free the Frog is the game that I developed for the Ludum Dare game development competition in December 2016. In this article, I explain the process I used for developing the game.
Categories: Game Theory & Design

Bushido Wave 33 Available To Pre-order

Tabletop Gaming News - 31 January 2017 - 7:00am
I know how gamers are. They want the latest and the greatest and they want it now, now, now! If they can’t be the first to get the new batch of toy soldiers, they can get rather agitated. Well, some of them, anyway. Well, whether you absolutely must have the greatest right away or not, […]
Categories: Game Theory & Design

lakshminp.com: DIY Drupal hosting: Aegir

Planet Drupal - 31 January 2017 - 6:23am

I had started this series with a post about what features will be evaluated when selecting DIY Drupal hosting solutions. We shall start with the most simplest and earliest solution of them all, Aegir. First, the nomenclature. Aegir is the God of seas and oceans in Norse folklore, much like Varuna in the Hindu pantheon.

Categories: Drupal

WizKids Previews Mini Shredder For HeroClix

Tabletop Gaming News - 31 January 2017 - 6:00am
Comics are weird. I mean, Teenage Mutant Ninja Turtles is already pretty weird, just starting out. It’s sort of right there in the name. Well, the comics got weirder from there, including all manner of odd characters. In this case, we’re talking about Mini Shredder. Yeah, Austin Powers certainly wasn’t the first place to have […]
Categories: Game Theory & Design

CiviCRM Message Templates, Features Export

New Drupal Modules - 31 January 2017 - 5:05am

Integrates CiviCRM's Message Templates with the Features module. After this module is enabled, you will see a new "CiviCRM Message Templates" section in the Features UI that lists the available templates.

Categories: Drupal

TimOnWeb.com: Default Search API Sorts Per View in Drupal 7

Planet Drupal - 31 January 2017 - 2:24am

It's been a while since I've written a post here (especially, Drupal-related). But today I have something interesting to share.

There's a module called Search API sorts (https://drupal.org/project/search_api_sorts) that provides custom sorts and a global sort block for Search API. The module itself is ok, but ...

Read now

Categories: Drupal

5e NPCs: Bullies and Brutes

New RPG Product Reviews - 31 January 2017 - 1:38am
Publisher: Dire Rugrat Publishing
Rating: 5
An Endzeitgeist.com review

This collection of NPCs clocks in at 44 pages, 1 page front cover, 1 page editorial, 1 page ToC (including challenge ratings), 1 page SRD, 1 page advertisement, 1 page back cover, leaving us with 38 pages of content, so let's take a look!


This review was moved up in my review-queue as a prioritized review at the behest of my patreons.


The pdf covers a total of 18 characters, ready to be inserted into your game, which range from CR 1/2 to CR 18. Fans of the Tangible Taverns/Tavern Tales product-lines will notice some overlap regarding the NPCs, as for example Pie-Eating Pete or Tuffy Brokehaft make a reappearance herein - which can be considered to be a slight detriment for some - personally, I would have preferred an all-new cast, but considering that the vast majority of NPCs is new, I can live with that.


Speaking of which - in case you are not familiar with Dire Rugrat's 5e-character design philosophy: Instead of making just numbers and replicating pre-existing abilities, one of the charming peculiarities in their books would be that characters do actually receive special, unique abilities. Beyond these, the characters each come not only with a statblock, but also with their own artwork - these either are hand-drawn or stock. Most, but not all characters herein also feature a word of advice in a small box on how to best use them.


Now, what type of characters can we find herein? Well, for one, e.g. Pie-eating Pete or Jaiblik Nibork would represent two characters best describes as, bingo, bullies - Pete's signature ability, for example, lets him consume insane amounts of food, while Mr. Nibork is known for his incessant cursing and rambling, which can be pretty distracting for assailants.


These guys and a particularly cantankerous lady would be more on the semi-social side of things, but they are not the only characters herein - if you're looking for an instant-villain, you'll find the like herein. Take Lockjaw, the half-orc cannibal who can initiate grapples with his bite and who receives temporary hit points for biting foes. More ambiguous in use would be Butcher Bill, the dwarven headhunter, whose prickly spiked armor and expertise at shoving foes deserves mention.


Need a slaver? Hesssk Ta'Vaoren and his two worgs deliver just that -and there is more to the trio than meets the eye, for Hesssk not only is a master of the whip, he maintains also quasi-telepathic contact with them, making surprising them pretty hard. There would be a half-orc, wondering of what may have been and his fellow she-devil with a sword. There also is an enchantress-information broker with a mega-powerful way of maintaining control over dominated foes. There is also a corrupt guard captain (ironically named "shill") and a half-elven, humans hating eco-terrorist ready to shed blood.


There would be a halfling enforcer with a fear-inducing reaction stare, who may not only break legs - her cold fury is something to witness. That being said, the ability diverges a bit from how 5e usually handles the like, providing a 3/day hard cap, instead of tying it to long rests, analogue to the barbarian's rage feature. The powerful drow evoker Vreix Azztelle may pinpoint AoE spells to instead affect single targets and is pretty cool - however, if you're very picky about this kind of thing, the character is missing the drow magic feature the race usually has. Aforementioned half-orc cad also does not have the usual relentless endurance feature. Now, it is pretty evident that such features were exchanged for others that fit the characters better, but depending on your stance on NPCs and racial features, it still is worth mentioning. In dubio pro reo - I will not hold that against the pdf.


However, where things become ever so slightly annoying from a reviewer's perspective would be with the per se pretty cool Kel, the Blessed - a tiefling underboss with several nice, luck-themed abilities, whose hellish rebuke is noted as innate spellcasting, which does not include the note at what spell-level the spell is cast - a mostly cosmetic hiccup, but a blemish in one of the coolest characters herein. Seriously a nice character, though -and yes, I am nitpicking hard here.


Speaking of cool characters: Urden Shalespear, the dwarven herald of entropy, pretty much looks like the NPC-version of a class/archetype I have recently written and gets some cool tricks: Beyond an aura that brings desiccation and destruction, he is reborn in a bleak phoenix-like burst when slain---but pays a hafty price for this power. Oh, and he can tear open a devastating gate into nothingness, duplicating a new 9th-level spell featured herein. Slight complaint: The spell does not note for which classes it is appropriate. A suggestion would have been nice to see.


The final character herein, Lady Davia Belcouer, would be a powerful champion of the hells: With a sword of wounding, a powerful magical armor and the ability to behead foes with discernible heads, she also has no less than 3 legendary actions to negate crits or use Charisma-saves instead of others, making her a viable campaign-endgame adversary.


Conclusion:

Editing and formatting are very good - I noticed no significant hiccups in the rules-language and the pdf is similarly well put together in the formal department. Layout adheres to a pretty printer-friendly two-column b/w-standard and the pdf sports a solid piece of full-color artwork for each NPC - some are stock, but most are actual pieces drawn by the authors. The older pieces here do show that they have refined their crafted compared to the newer ones. Still, nice to see. The pdf comes fully bookmarked for your convenience.


Kelly and Ken Pawlik's collection of 5e adversaries is a pdf worth getting, let's get that right out of the way. The price-point is pretty fair and the characters feel like actual characters. The lengths to which I needed to go to nitpick some aspects here should tell you something about this pdf, namely that it is a neat, well-made collection. The only truly relevant gripe I can field against this economically-priced, inexpensive collection would be the inclusion of previously-featured characters. Even if you take these away, the bang to buck ratio is still pretty neat, though - which is why my final verdict will clock in at 5 stars.

Endzeitgeist out.
Categories: Game Theory & Design

Deep dive in the data of Games on Kickstarter in 2016 - by Thomas Bidaux

Gamasutra.com Blogs - 31 January 2017 - 12:11am
Detailed analysis on Games last year on Kickstarter
Categories: Game Theory & Design

Web Omelette: Advanced techniques for route access control in Drupal 8

Planet Drupal - 31 January 2017 - 12:00am

Drupal 8 is very flexible when it comes to controlling access to your routes. It inherits quite a bit from the Symfony routing system, but adds its own flavour on top of that. In this article we are going to look at an example of a complex access requirement. In doing so, we won't cover the simpler use cases which are already described in the Drupal.org docs, but we will sure make use of some of them.

The requirement

So let's imagine this scenario: we have two types of users (employees and managers) whose persona is not determined by a user role. Let's say their "role" is determined on the fly as a result of an API call or some dynamic thing.

Now, let's say we have 3 routes: Route A (accessible for employees only), Route B (accessible for managers only) and Route C (accessible for both).

Finally, imagine we have a service called UserType which we can ask what type of person the current user is.

Implementation

One of the cool things about the Route access control in Drupal 8 is the ability, as the docs show, to delegate the access checking to a service. So a basic implementation for Route A and Route C can be something like this.

my_module.route_a: path: 'route-a' defaults: _controller: '\Drupal\my_module\Controller\DefaultController::buildRouteA' _title: 'Route A' requirements: _company_access_check_employee: 'true'

This is the route definition. As you can see, as per the docs, we have a requirement for the company_access_check access service to return the access result. So let's quickly see that service:

my_module.company_access_check: class: Drupal\my_module\Access\CompanyAccessCheck arguments: ['@user_type'] tags: - { name: access_check, applies_to: _company_access_check_employee }

A simple tagged service definition with a dependency to our fictitious UserType service that tells us the type of person the current user is. Additionally, we specify that this access checking service should be applied to all routes with the requirement _company_access_check_employee.

I am not going to show you this class because an example is already covered in the docs. However, it has one method called access() which by default gets passed the AccountInterface of the current user. So with the help of our UserType service we can determine whether the current user is an employee. Then we can return either AccessResult::forbidden() or AccessResult::allowed().

For managers, we do the same: create a new service and apply it to Route C.

So where does the complication come? Well, you guessed it: Route B which requires both. If we add two requirements to the route, let's say something like this:

my_module.route_b: path: 'route-b' defaults: _controller: '\Drupal\my_module\Controller\DefaultController::buildRouteB' _title: 'Route B' requirements: _company_access_check_employee: 'true' _company_access_check_manager: 'true'

It will check for both but grant access only if both return positive. So in our case this won't be very helpful since we need to check if the user is either. For the purposes of this article, please forgive the implication that managers are not also employees.

The solution

What we can do is create another access service called something like company_access_check_both which is responsible for determining if the current user is of one of the user roles. This is fine if our requirements are as simple as we described them. But what happens when we have multiple user types and a bunch of different routes where we have to mix and match the user types which have access to them? Creating a service for all these different types of combinations is not very efficient.

So instead, let's create a generic service called company_access_check_multiple AND specify in the route the type of user that has access to it in the form of a custom option. For example, the route definition can be something like this:

my_module.route_b: path: 'route-b' defaults: _controller: '\Drupal\my_module\Controller\DefaultController::buildRouteB' _title: 'Route B' requirements: _company_access_check_multiple: 'true' options: _company_access_users: - Employee - Manager

In this route we created a custom option called _company_access_users in which we list the types of users that should have access to it.

But how can we make use of this inside our service? Well, the Route object can be inspected and the list of allowed user types can be retrieved:

$types = $route->getOption('_company_access_users');

So if the route has that option, $types will tell us what type the current user needs to be in order to have access.

However, where do we get the Route object? As we know, the access() method of the service only receives the user account as a parameter. We might be tempted to inject the current route match service into our own. This does the trick, but only when the route in question is being checked upon a user actually going to it. It will miserably fail when a given route is being checked for access from another one (for example when building menu links).

If we dig deep and look closely, before our access() method is called, an arguments resolver is employed via the AccessArgumentsResolverFactory. This allows for the current user account to be passed to the access() method. But what not many people know is that if we type hint our access() method with either Route, RouteMatchInterface or Request, we will be getting those parameters as well. And in this case, the Route object is that of the route being checked for access rather than the current route.

So something like this:

public function access(AccountInterface $account, Route $route) { $types = $route->getOption('_company_access_users'); // etc }

So there you have it. A neat little trick that opens the door to some complex access restriction rules on your routes.

Categories: Drupal

Pages

Subscribe to As If Productions aggregator