Newsfeeds

Lullabot: Nightwatch in Drupal Core

Planet Drupal - 11 May 2018 - 4:38am

Drupal 8.6 sees the addition of Node.js based functional browser testing with Nightwatch.js. Nightwatch uses the W3C WebDriver API to perform commands and assertions on browser DOM elements in real-time.

Up until now, the core method for testing JavaScript and browser interactions in Drupal has been to use either Simpletest or PHPUnit. For tests that require a simulated browser, these have been running on PhantomJS, which is now minimally maintained and has been crashing frequently on Drupal CI (as of 8.5, Drupal can now use Chromedriver for these tests, however the majority of tests are still running on Phantom). This situation requires Drupal themers and front-end developers, working primarily with HTML / CSS / JavaScript, to learn the PHPUnit testing framework and specifics of its implementation within Drupal, instead of being able to write tests for page interactions and JavaScript in JavaScript itself.

undefined

Nightwatch is a very popular functional testing framework that has now been integrated into Drupal to allow you to test your JavaScript with JavaScript! Drupal's implementation uses Chromedriver out of the box, however it can also be used with many other browsers via Selenium. The choice to use Chromedriver was because it's available as a standalone package and so doesn't require you to install Java and Selenium, as well as running the tests slightly quicker.

module.exports = { before: function(browser) { browser .installDrupal(); }, after: function(browser) { browser .uninstallDrupal(); }, 'Visit a test page and create some test page': (browser) => { browser .relativeURL('/test-page') .waitForElementVisible('body', 1000) .assert.containsText('body', 'Test page text') .relativeUrl('/node/add/page') .setValue('input[name=title]', 'A new node') .setValue('input[name="body[0][value]"]', 'The main body') .click('#edit-submit') .end(); }, };

A very powerful feature of Nightwatch is that you can optionally watch the tests run in real-time in your browser, as well as use the .pause() command to suspend the test and debug directly in the browser.

Videos require iframe browser support.

Right now it comes with one example test, which will install Drupal and check for a specific string. The provided .installDrupal command will allow you to pass in different scripts to set Drupal up in various scenarios (e.g., different install profiles). Another available command will record the browser's console log if requested so that you can catch any fun JavaScript errors. The next steps in development for core are to write and provide more helpful commands, such as logging a user in, as well as porting over the 8.x manual testing plan to Nightwatch.

undefined

You can try Nightwatch out now by grabbing a pre-release copy of Drupal 8.6.x and following the install instructions, which will show you how to test core functionality, as well as how to use it to test your existing sites, modules, and themes by providing your own custom commands, assertions, and tests. For further information on available features, see the Nightwatch API documentation and guide to creating custom commands and assertions. For core developers and module authors, your Nightwatch tests will now be run by Drupal CI and can be viewed in the test log. For your own projects, you can easily run the tests in something such as CircleCI, which will give you access to artifacts such as screenshots and console logs.

undefinedundefined
Categories: Drupal

The Usual Suspects: NPCs and You

Gnome Stew - 11 May 2018 - 2:00am

Tell us which evil NPC did the bad thing.

I originally discussed this topic in an older article on Rogue Princess Squadron, but after a couple of recent games I thought it was worth discussing again.

One of the primary ways a GM can bring a game world to life is through the NPCs the players interact with. They can give information, point the characters in the direction of adventure, be adversarial challenges, or even provide emotional motivation for the characters to do what they do. Through them, the GM breathes life into a setting and turns it into more than just a green screen backdrop for hacking and slashing away at some monsters. But what happens when a GM’s NPCs all feel the same and the players start to get bored or annoyed?

Recently, tension in a semi-regular game came to a head when we players butted heads with one of the NPCs. The session opened with our boss confronting us about a botched mission we didn’t even know we botched. The problem was, the NPC was played as incredibly antagonistic and downright rude. Our reactions to this took the GM by surprise as the session suddenly went in a direction he didn’t expect. As I eventually pointed out, I wouldn’t take that behavior from a real-life boss, so there was no way my bad ass character would just sit there and take that kind of abuse. This wasn’t the first time the GM was taken off guard with how we responded to one of his NPCs, but it also wasn’t the first time one of his ‘friendly’ NPCs pissed us off, pushing us to respond in ways he didn’t expect. In fact, most of his NPCs came off very similarly antagonistic.

The situation reminded me of years ago when a friend was trying his hand at GMing with a D&D game. We were both relatively new to GMing, so often offered each other feedback and suggestions to help us both improve. After one game night in that campaign, I struggled to come up with a diplomatic way to express my concerns. Finally, in my nuanced and oh-so-tactful way, I blurted out, “All of your NPCs are dicks.”

Luckily, he’s used to my style of tact and we were able to have a conversation about his use of NPCs. I pointed out that every NPC we had met, from the peasants in the village to the nobility running the region, was rude, condescending, demanding, shady, or just downright unfriendly. Ultimately, my character had no reason to put her life on the line to help these people, regardless of whatever monetary reward they were offering for us to fix the problem. My friend had fallen into a trap where he was defaulting to the same style of NPC for every character we came in contact with, and the game was starting to suffer because of it.

Some may be blessed with a natural acting ability that lets them bring the residents of a game world to life with minimal fuss, but the rest of us need to work at it. 

A lack of variation in the tone and behavior of the NPCs a GM presents is an easy trap to fall into. When running a game, there’s so much to keep track of and creating and running NPCs isn’t a skill that comes naturally to everyone. Some may be blessed with a natural acting ability that lets them bring the residents of a game world to life with minimal fuss, but the rest of us need to work at it. This is also a thing that can happen to new and old GMs. I’ve seen it happen to newbies getting their feet under them and old pros that don’t realize they’re stuck in a repetitive rut.

I have always believed that NPCs are a hugely important aspect of GMing. Without them, the game world is just a stage with set dressing on it and unless I develop a strong attachment to the other PCs, I stop caring about the world and just focus on the combat and the puzzles, which isn’t what I game for. As a GM, I work to breathe life into a wide array of NPCs and I know I struggle with the more subtle, Machiavellian types. I can do scene chewing bad guys and big bad monsters, but the slimy, shady NPC you need to work with though you know he’s going to stab you in the back is one I have to work at.

Here are some thoughts that will hopefully help with creating and running NPCs:

The subtler aspects of NPCs are going to be lost on the players, so paint them with broad strokes. At some point, ask your players what they remember about certain NPCs you’ve introduced in previous sessions. More than likely, they’re going to remember the larger details of personality and deeds. “Oh, he was the smarmy and growly guy that ran the fight ring.” “She’s the airhead socialite that dated the monkey!” Unless the NPC is one that’s in play every session (almost a GM-PC, which can be a minefield of its own), NPCs with subtly nuanced personalities are going to get overlooked and forgotten in the face of bolder and easier to ‘get’ characters.

Plot hooks land better when they’re presented by NPCs that catch the players’ interest. Sure, you can use the generic bartender to give your players a plot hook, but they’re only going along with it because it’s what’s expected of them or there’s nothing better to do. Breathe a personality into your NPCs and the players are going to be far more interested in what they have to say. They’ll remember that mission they went on to help the wizened and grandmotherly goblin-witch (that looked like Yoda’s mother) far more than they’ll remember the job they got from generic ‘insert here’ bartender. Don’t hesitate to fade away NPCs the players don’t have any interest in and refocus on the ones that catch their attention.

Vary your NPCs up a bit and it’ll make things more interesting for you too.

Keep track of your NPCs! Having to play the rest of the world is a big job, but it is an important one. As an extension of that, it is also vitally important to keep track of the characters you’ve introduced to your players. It’s not as much of a problem with NPCs you’ve put together through careful prep work before the game and intend to use long term, but there are often NPCs made up on the fly as the players bring up ideas you hadn’t thought of beforehand. If there’s a chance at all they’ll interact with that character again, make sure you note who they are and what their involvement was. The ‘airhead socialite that dated the monkey’ mentioned earlier was a throwaway NPC made up on the spot when they decided to call some of the numbers in the monkey’s little black book (it’s a long story). They got such a kick out of talking to her that they called on her several times during the rest of the campaign.

If you’re not good with coming up with NPCs on the fly, make a cheat sheet. A long time ago, in a galaxy not so far away, I played in an awful game where all the NPCs were named Joe, Bob, or Joe-Bob. This included the NPCs the GM had prepped beforehand. This GM was a problem on many levels, but it was also clear he didn’t think he needed to improve at anything. Needless to say, I didn’t stay in that game for very long. Even GMs that are good at coming up with NPCs on the spot may need a little help now and again. I find a cheat sheet of names relevant to the setting and types of characters the PCs could interact with is handy. Naming your shady Russian fixer ‘Bill’ is likely to push the players out of immersion. You can also come up with a cheat sheet of personality and physical traits to pull from if that’s something you struggle with as well.

Be Mindful of Stereotypes. If every bartender in your game is middle-aged man with a beer gut, you might want to take a moment and reconsider. It’s easy, in that modern game, to say the beat cop is an Irish guy named O’Malley, but it’s also been done to death. What if you made that beat cop a no-nonsense Latina named Rodriguez? Does that change the purpose the NPC serves? Probably not. While sometimes stereotypes can be a quick shorthand, it’s good to be mindful of them and subvert them on occasion. If you automatically think of a particular type of person for an NPC you need to put in play, maybe take a step back and consider some other options.

Occasionally take stock of the NPCs you’re using most often While relevant to our topic of NPCs, this is crucial for any element a GM uses, from settings to plot hooks and more. We all have tools we’re comfortable using, but falling back on those too often without changing things up will get repetitive for your players. Review the NPCs you’ve used most often and determine if you need to bring in someone with a different flavor to spice things up. Try and think about it from the player’s perspective as well; you may know the background differences between some NPCs, but they may all look the same to the players.

Not every NPC needs to be distinct and interesting. Sometimes a bartender really is just a bartender. The ones that do matter, though, should be as varied and interesting as the rest of the world your PCs inhabit. It’s a skill that can take time to develop, but with a little practice you’ll see the difference in how your players interact with the world. The first time they get emotional about an NPC, whether they’re protective of them or intending to murder them, you’ll know you’ve gotten it right.

Have you found yourself in a rut with your NPCs? I’m curious how other people have fixed the problem of NPCs not helping bring the game world to life quite right.

 

Categories: Game Theory & Design

Amazee Labs: DrupalCamp Transylvania 2018

Planet Drupal - 11 May 2018 - 1:46am
DrupalCamp Transylvania 2018

If you were in the city of Cluj-Napoca between 4 and 6 May 2018 and walked around The Office, you probably saw over a 100 people from all over the world, wearing the same t-shirts, talking about Drupal. That's because DrupalCamp Transylvania was in town.

Vasi Chindris Fri, 05/11/2018 - 10:46

If you know a bit of Romanian history and have heard about Transylvania, you probably know about Vlad the Impaler. If not, then you've probably heard about Dracula. Either way, they're the same person. You may be asking yourself, "What has Dracula got to do with Drupal?". Well, the answer is in the picture below:

We all want Drupal to be immortal. Because we love developing awesome websites with it.  That said, we must remember one thing, it's not all about work and making money, it's also about having fun using Drupal. That was one of the key points of Robert Douglass' keynote - "My Drupal Mid-Life Crisis".

One of the most interesting sessions was Larry Garfield's - "The container is a lie!". On reading the title, you'll probably want to check that out, since you most probably use containers (not necessarily Docker containers, although Docker is probably the most used these days) in your everyday work. He spoke of how software runs on modern Linux systems, that we should not think of boats, whales or shipping or even Docker when we hear the word container, and why it is actually useful that modern software is built (runs) on these "lies". These "lies" form part of our everyday work, and more importantly, the deployment to different environments makes it so much easier.

Another very important topic, not only in the Drupal community but in technology in general, is GDPR (General Data Protection Regulation). Balu Ertl had a great session entitles, Overview of GDPR modules for Drupal, in which he provided an overview of all the modules in Drupal that can help your Drupal site achieve GDPR compliance.

The conclusion was that we have quite a few modules (9) in this category, some of them available on both Drupal 7 and 8. Some of them implement a small part of the regulations (like the consent for using personal data, the possibility to delete or download all the personal data of a user, the possibility to anonymize user information when dumping a production database, etc.) and many of them implement overlapping features.

But there seems to be one module, General Data Protection Regulation, which tries to bring all these modules together under one umbrella so that we can have a unified and clear solution for making a site GDPR compliant.

Another thing that came up during the discussions about this subject, was that this is a really complicated subject for both technical and legal minds, and as such, you'll most probably not be fined immediatly if you're not 100% GDPR compliant on the 26th of May 2018. The most likely scenario is that the authorities will be there to help at first, and only fine you as a last resort. That said, this cannot be confirmed and everything should still be done to be GDPR compliant by the deadline.

Wait, there's more! While attending Lenard Palko's presentation, we saw this:

No, we did not watch an episode from Doc McStuffins. This was about Auditing PHP Applications, a session in which Lenard Palko showed us how his team is dealing with auditing PHP applications and what things should we look for when having to do such an audit. He also shared some helpful tools that you should use and how should you structure the report.

As you can see it was a great DrupalCamp. Nice location, great presenters, lots of people and a dedicated sprint room. So, did we have any time for doing other stuff than coding and talking about Drupal? Yes, we did! We had some great parties each evening and a brave few of us even went for a morning run on Saturday.

I'm already looking forward to the next DrupalCamp Transylvania in 2019. See you there!

Categories: Drupal

Household

New Drupal Modules - 11 May 2018 - 1:12am
Overview

Household helps site builders manage households members, logins and relations

Features Requirements Known problems Tutorials Pledges Credits Recommended modules Similar projects
Categories: Drupal

App Banners

New Drupal Modules - 11 May 2018 - 12:56am

This module provides the relevant metadata to display native application install banners for iOS and Android.

The app allows site managers to configure details of the apps and the pages where the banners should appear.

Categories: Drupal

Agiledrop.com Blog: AGILEDROP: Drupal SEO Tips

Planet Drupal - 10 May 2018 - 5:40pm
Drupal is a CMS that’s well-known for its security and flexibility. But do you know of another aspect that Drupal excels at? It’s Drupal’s excellent built-in SEO functionality. While Drupal itself plays pretty well with search engines, there are a host of measures you can take to ensure you stay on top of the SEO game even more. After all, the internet is a competitive market, making a site’s SEO all the more competitive. In this post, I’ll explore some of the most common SEO measures you can take to bolster your Drupal site’s SEO efforts.   The Basics All the basic SEO measures that are… READ MORE
Categories: Drupal

Valve debuts public bug bounty board in an effort to improve security

Social/Online Games - Gamasutra - 10 May 2018 - 4:52pm

Valve is joining Nintendo, Oculus, and a litany of other tech companies in establishing a public bug bounty program to encourage folks to report security vulnerabilities in its services. ...

Categories: Game Theory & Design

WebAuthn

New Drupal Modules - 10 May 2018 - 3:07pm

This module aims to support the upcoming "Web Authentication" protocol, that leverages Public Key Credentials to provide password-less login along with stronger security.

Categories: Drupal

Creatures of Vathis Monster Book Up On Kickstarter

Tabletop Gaming News - 10 May 2018 - 2:00pm
As you know I’ve said before, there’s no such thing as “too many options” when it comes to resources for a GM when they need to make their game. In this case, Creatures of Vathis: Volume One looks to bring a whole host of monsters and other creatures to games of 5th edition. The book […]
Categories: Game Theory & Design

Records

New Drupal Modules - 10 May 2018 - 1:30pm
Categories: Drupal

Steamforged Previews Devana For Guild Ball

Tabletop Gaming News - 10 May 2018 - 1:00pm
Every team needs a captain. Someone needs to be in charge to lead the other players to victory. In the case of the Falconer’s Guild, that falls to Devana. In this preview, we get a look at her rules and model, and see just how she interacts with the rest of her team. Arguably, the […]
Categories: Game Theory & Design

Trading fashion for function

Dries Buytaert - 10 May 2018 - 12:39pm

I've been using my new Apple Watch 3 for several months, and recently I've been in the market for a new band. Previously, I was using a standard synthetic rubber band. I'd come home from work, and the first thing I wanted to do was take my Apple Watch off. I didn't like the clammy feel of the band, and the fit was either too loose or too tight. This week, I decided to try the new Sport Loop.

I'm currently in Chicago visiting our Acquia office, and it's pretty warm out. The Sport Loop has proven to been a great alternative. It is made out of woven nylon, it's breathable and it has a little bit of stretch. It's not going to win fashion awards, but it is comfortable enough to wear all day and I no longer feel the urge to take off my watch in the evening.

Categories: Drupal

Healthcheck

New Drupal Modules - 10 May 2018 - 12:37pm

Coming soon...

Categories: Drupal

Little Orbit acquires GamersFirst online game portal and APB Reloaded

Social/Online Games - Gamasutra - 10 May 2018 - 12:27pm

The acquisition also grabs the publisher GamersFirst-owned online games like APB Reloaded and Fallen Earth. ...

Categories: Game Theory & Design

Get to Know Me Card Game Up On Kickstarter

Tabletop Gaming News - 10 May 2018 - 12:00pm
Getting to know you. Getting to know all about you… is tough! Sometimes, you just don’t know what to ask to get to know someone. Or maybe you know, but you’re just too shy. Well, Get to Know Me is a new card game up on Kickstarter that’ll help out. It’s a set of question […]
Categories: Game Theory & Design

Thursday Terrain Corner

Tabletop Gaming News - 10 May 2018 - 11:00am
The week rolls on. We’ve gotten all the way to Thursday. And as you read this, I’m busy helping set up for CMON Expo. Yeah, they did a lot of set-up yesterday, but there’s always more to do. If you’re in Atlanta this weekend, stop on by. I’ll be down by the Media Room, hobnobbing […]
Categories: Game Theory & Design

Game Nite Issue 24 is Now Available

Tabletop Gaming News - 10 May 2018 - 10:00am
Filling your day with gaming is as easy as grabbing a gaming magazine. In this case, you can get the latest issue of Game Nite. As always, it’s filled with all sorts of great info on various games, in this case, including Epic and Zertz. Plus, they sit down and have a chat with game […]
Categories: Game Theory & Design

Assault Publishing Going Out of Business

Tabletop Gaming News - 10 May 2018 - 9:00am
The world of business is a rough one. Companies come and sometimes, sadly, they go. In this case, it’s one of those sad occasions where one’s going. Assault Publishing will be closing its doors at the end of the month. They’re not 100% gone, and their announcement leaves possibilities for a return later, but for […]
Categories: Game Theory & Design

Would video games be better if you could play as yourself? Well, not exactly

Virtual Reality - Science Daily - 10 May 2018 - 8:50am
A new study shows no gender difference or negative effect on a video game player's performance or subjective involvement based on whether a photorealistic avatar looked like them or like their friend.
Categories: Virtual Reality

Mantic Announces Hellboy In Mexico Expansion

Tabletop Gaming News - 10 May 2018 - 8:00am
Hellboy has gone on all sorts of adventures, hunting down strange creatures, spirits, and deities all over the world. In particular, he’s had some adventures South of the border, down Mexico way. As part of the Hellboy board game Kickstarter, Mantic has decided to toss a new expansion into the ring. If you ever wanted […]
Categories: Game Theory & Design

Pages

Subscribe to As If Productions aggregator