Newsfeeds

Mid Night Run game - by Seong Jae Jang

Gamasutra.com Blogs - 22 February 2017 - 5:13am
Mid Night Run This game is an infinite run game. Player can jump using touching on the screen. Goal of this game is getting the higher score. For getting the higher socre, player've to collect star in the game.
Categories: Game Theory & Design

The disruption in mobile gaming that few are talking about - by mark bivens

Gamasutra.com Blogs - 22 February 2017 - 5:13am
A VC's perspective on the secret weapon in Japan's gaming business models.
Categories: Game Theory & Design

Identity Crisis - Playing a mixed heritage character in a modern day video game - by Vivek Bhurtun

Gamasutra.com Blogs - 22 February 2017 - 5:13am
Having been born in the UK but raised in an Indian family, I'd never really considered myself anything other than British. It was not until recently when I acted as the protagonist in a video game, that I started to ask myself what this actually meant
Categories: Game Theory & Design

Open World on Mobile with Unity - by Christoph Ender

Gamasutra.com Blogs - 22 February 2017 - 5:13am
TruckSimulation 16 is a truck simulation for mobile devices in which players can roam around in a massive open game world. Christoph Ender explains how his team met this technical challenge with Unity and which problems they had to solve along the way.
Categories: Game Theory & Design

How the Chinese Games Industry is Evolving - by Bradford Hinkle

Gamasutra.com Blogs - 22 February 2017 - 5:06am
Consolidations, closings, and lack of investment are driving most mid to small-size developers in China out of business. Surviving in 2017 will be tough, but there is a way so long as former F2P mobile developers are willing to adapt.
Categories: Game Theory & Design

Ambiguity in Game Design: What developers can learn from Dear Esther - by Jens Bahr

Gamasutra.com Blogs - 22 February 2017 - 5:06am
Dear Esther is revolutionary in many ways, most notably for getting rid of video game conventions and exploring what lies at the core of interactive experiences. What do we really need to present to the player to create a 'meaningful' experience?
Categories: Game Theory & Design

Player Intent

Gnome Stew - 22 February 2017 - 1:00am

A famous quote from German military strategist Helmuth von Moltke is, “No battle plan survives contact with the enemy.” The way of saying almost the same thing in role playing games is, “No game master plan survives contact with the players’ actions.”

This means the players will be throwing curve balls to the GM with a fairly high level of consistency. They’ll go left when the GM planned a right-hand turn. They’ll head off to the orc mountains when the GM expected a trek to the goblin hills. At a smaller level, a player may pull a trick of out her bag during combat that will surprise the GM and put him on his heels.

These unexpected activities can’t be planned for, but they need to be understood by the GM in order to make maximum effect of them on the game. This can be an alteration to the story, or just a change in strategy for the NPCs and monsters. It’s relatively easy to know what the players are doing. Understanding why they are doing leads to a greater depth of knowledge about what the players are expecting as an outcome of their actions.

Macro Decisions

In my current Pathfinder campaign, I placed a set of goals across the nation of Brevoy. The PCs were to gather friendly forces from across the nation to assist them in reclaiming the capital city from an undead scourge. I mostly expected them to either gather the largest force first even though it was a great distance away. Instead, they shot for the nearest band of rangers and druids in hopes of gathering them to the army they had to build. This really surprised me.

 Once my understanding was more clear, I was able to better tailor the upcoming encounters… After the decision was made, I had to break the fourth wall and ask, “Why are you headed to one of the weakest forces? What do you hope to gain? Help me better understand why you’re doing what you’re doing.” I didn’t challenge their decision or attempt to change their minds. When the response came back that they were the closest force available, and the group hoped to recruit assistance in spreading the word about the undead horde in the capital city, I got it.

Once my understanding was more clear, I was able to better tailor the upcoming encounters, NPCs, and activities at hand. Rather than going into the situation blindly, I was able to better allow them to reach their stated goals after some appropriate challenges were overcome. Because I knew their motivations, the story we told together was stronger and more engaging than had I just stayed silent and guessed at what they were trying to do.

Micro Decisions

These types of decisions usually come up in combat, but can also apply when a player wants some oddball piece of equipment for her character. This can also occur when dungeon delving and a choice about which direction to explore has to be made.

In combat, know why a PC wants to take an “off the books” action, but they don’t explain what they want the outcome to be, it’s time to stop and ask. Many moons ago, I had a group fighting a demon, and the rogue pulled out a flask of oil and threw it in the demon’s face. I assumed the next thing to follow would be a lit torch. Nope. He pulled a small bag of flour from his pack and threw it at the oil. I had no clue what the rogue hoped to have happen, so I didn’t know what ruling to apply to the situation. When the player explained that he was trying to make a thick paste to blind the demon, I then understood what his intent was. That allowed me to then give the demon a saving throw roll against the paste blinding him. As it turns out, the demon failed the roll and the group managed to escape.

For the weird bits of equipment or magic items, know what the player intends her character to use the item for. This Q&A conversation can lead to a fun bit of brainstorming to make the item come out exactly as the player had envisioned it. This prevents the bad kind of conflict later in the campaign when the player pulls out the gizmo and uses it, only to find out the GM had a different intent for the use of the item.

Conclusion

While I’ve advised GMs to ask questions to gather more information, this is actually the exception, not the rule. A vast majority of the time, the players’ actions are crystal clear on what they want the outcome to be. Experienced players know when they’re doing something strange and will offer up a quick bit of reasoning behind the actions. Don’t interrogate the players on each of their decisions. This will lead to doubt, mistrust, and analysis paralysis among the group. If you find yourself mentally asking, “Why are they doing that?” then it’s probably time to ask a few questions of the player. I’ve found that after doing this a few times, the players tend to learn to explain when they’re doing something not quite covered in the rules of the book.

What are some of the things your players have done to throw you for a loop? How did you handle it?

Categories: Game Theory & Design

The RPGnet Newsletter: RPGnet Newsletter #88

RPGNet - 22 February 2017 - 12:00am
RIP, Loren Wiseman.
Categories: Game Theory & Design

Third & Grove: Seniorlink Drupal Case Study

Planet Drupal - 22 February 2017 - 12:00am
Seniorlink Drupal Case Study antonella Wed, 02/22/2017 - 03:00
Categories: Drupal

Digital trading card game Hex: Shards of Fate loses its publisher

Social/Online Games - Gamasutra - 21 February 2017 - 4:02pm

Almost 4 years after signing on to help publish Cryptozoic and Hex Entertainment's F2P online TCG, Gameforge Entertainment is stepping away from the game and leaving it in the hands of its creators. ...

Categories: Game Theory & Design

Modiphius Releases Symbaroum: Thistle Hold – Wrath of the Warden, GM Screen

Tabletop Gaming News - 21 February 2017 - 3:00pm
Modiphius is expanding their Symbaroum releases with the first part of a new adventure series as well as a new GM screen. Thistle Hold – Wrath of the Warden starts you off down the Chronicle of the Throne of Thorns adventure. Meanwhile, the GM screen keeps your notes a secret, as well as has a […]
Categories: Game Theory & Design

Flocon de toile | Freelance Drupal: Introduction to Protected file module on Drupal 8

Planet Drupal - 21 February 2017 - 2:30pm

Drupal 8 has several solutions and methods to manage access rights on each elements included in a content, and this in a very granular way. Enabling view or edit access on some field included in a content type can be achieved very simply, with a few lines of code, or with the Field Permissions module. We can use this module to allow certain roles to view or update a particular field.

Categories: Drupal

Somme: Life in the Saps Card Game Up On Indiegogo

Tabletop Gaming News - 21 February 2017 - 2:00pm
Back when I was working on my History Master’s degree (I’ll go back and finish it at some point… … …), I had a lot of interest in WWI. It really was, in my view, the first “modern war” and certainly what set the foundation for the rest of the 20th century. So when I […]
Categories: Game Theory & Design

OhTheHugeManatee: What Crell Doesn't Want You to Know: How to Automate Letsencrypt on platform.sh

Planet Drupal - 21 February 2017 - 1:33pm

If you believe the docs and the twitters, there is no way to automate letsencrypt certificates updates on platform.sh. You have to create the certificates manually, upload them manually, and maintain them manually.

But as readers of this blog know, the docs are only the start of the story. I’ve really enjoyed working with platform.sh with one of my private clients, and I couldn’t believe that with all the flexibility – all the POWER – letsencrypt was really out of reach. I found a few attempts to script it, and one really great snippet on gitlab. But no one had ever really synthesized this stuff into an easy howto. So here we go.

1) Add some writeable directories where platform.sh CLI and letsencrypt need them.

Normally when Platform deploys your application, it puts it all in a read-only filesystem. We’re going to mount some special directories read-write so all the letsencrypt/platform magic can work.

Edit your application’s .platform.app.yaml file, and find the mounts: section. At the bottom, add these three lines. Make sure to match the indents with everything else under the mounts: section!

1 2 3 "/web/.well-known": "shared:files/.well-known" "/keys": "shared:files/keys" "/.platformsh": "shared:files/.platformsh"

Let’s walk through each of these:

  • /web/.well-known: In order to confirm that you actually control example.com, letsencrypt drops a file somewhere on your website, and then tries to fetch it. This directory is where it’s going to do the drop and fetch. My webroot is web, you should change this to match your own environment. You might use public or www or something.
  • /keys: You have to store your keyfiles SOMEWHERE. This is that place.
  • /.platformsh: Your master environment needs a bit of configuration to be able to login to platform and update the certs on your account. This is where that will go.
2) Expose the .well-known directory to the Internet

I mentioned above that letsencrypt test your control over a domain by creating a file which it tries to fetch over the Internet. We already created the writeable directory where the scripts can drop the file, but platform.sh (wisely) defaults to hide your directories from the Internet. We’re going to add some configuration to the “web” app section to expose this .well-known directory. Find the web: section of your .platform.app.yaml file, and the locations: section under that. At the bottom of that section, add this:

1 2 3 4 5 6 7 8 '/.well-known': # Allow access to all files in the public files directory. allow: true expires: 5m passthru: false root: 'web/.well-known' # Do not execute PHP scripts. scripts: false

Make sure you match the indents of the other location entries! In my (default) .platform.app.yaml file, I have 8 spaces before that '/.well-known': line. Also note that the root: parameter there also uses my webroot directory, so adjust that to fit your environment.

3) Download the binaries you need during the application “build” phase

In order to do this, we’re going to need to have the platform.sh CLI tool, and a let’s encrypt CLI tool called lego. We’ll download them during the “build” phase of your application. Still in the platform.app.yaml file, find the hooks: section, and the build: section under that. Add these steps to the bottom of the build:

1 2 3 cd ~ curl -sL https://github.com/xenolf/lego/releases/download/v0.3.1/lego_linux_amd64.tar.xz | tar -C .global/bin -xJ --strip-components=1 lego/lego curl -sfSL -o .global/bin/platform.phar https://github.com/platformsh/platformsh-cli/releases/download/v3.12.1/platform.phar

We’re just downloading reasonably recent releases of our two tools. If anyone has a better way to get the latest release of either tool, please let me know. Otherwise we’re stuck keeping this up to date manually.

4) Configure the platform.sh CLI

In order to configure the platform.sh CLI on your server, we have to deploy the changes from steps 1-3. Go ahead and do that now. I’ll wait.

Now connect to your platform environment via SSH (platform ssh -e master for most of us). First we’ll add a config file for platform. Edit a file in .platformsh/config.yaml with the editor of choice. You don’t have to use vi, but it will win you some points with me. Here are the contents for that file:

1 2 3 4 updates: check: false api: token_file: token

Pretty straightforward: this tells platform not to bother updating the CLI tool automatically (it can’t – read-only filesystem, remember?). It then tells it to login using an API token, which it can find in the file .platformsh/token. Let’s create that file next.

Log into the platform.sh web UI (you can launch it with platform web if you’re feeling sassy), and navigate to your account settings > api tokens. That’s at https://accounts.platform.sh/user/12345/api-tokens (with your own user ID of course). Add an API token, and copy its value into .platformsh/token on the environment we’re working on. The token should be the only contents of that file.

Now let’s test it by running php /app/.global/bin/platform.phar auth:info. If you see your account information, congratulations! You have a working platform.sh CLI installed.

5) Request your first certificate by hand

Still SSH’ed into that environment, let’s see if everything works.

1 2 3 lego --email="support@example.com" --domains="www.example.com" --webroot=/app/public/ --path=/app/keys/ -a run csplit -f /app/keys/certificates/www.example.com.crt- /app/keys/certificates/www.example.com.crt '/-----BEGIN CERTIFICATE-----/' '{1}' -z -s php /app/.global/bin/platform.phar domain:update -p $PLATFORM_PROJECT --no-wait --yes --cert /app/keys/certificates/www.example.com.crt-00 --chain /app/keys/certificates/www.example.com.crt-01 --key /app/keys/certificates/www.example.com.key example.com

This is three commands: register the cert with letsencrypt, then split the resulting file into it’s components, then register those components with platform.sh. If you didn’t get any errors, go ahead and test your site – it’s got a certificate! (yay)

6) Set up automatic renewals on cron

Back to .platform.app.yaml, look for the crons: section. If you’re running drupal, you probably have a drupal cronjob in there already. Add this one at the bottom, matching indents as always.

1 2 3 letsencrypt: spec: '0 0 1 * *' cmd: '/bin/sh /app/scripts/letsencrypt.sh'

Now let’s create the script. Add the file scripts/letsencrypt.sh to your repo, with this content:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #!/usr/bin/env bash # Checks and updates the letsencrypt HTTPS cert. set -e if [ "$PLATFORM_ENVIRONMENT" = "master-7rqtwti" ] then # Renew the certificate lego --email="example@example.org" --domains="example.org" --webroot=/app/web/ --path=/app/keys/ -a renew # Split the certificate from any intermediate chain csplit -f /app/keys/certificates/example.org.crt- /app/keys/certificates/example.org.crt '/-----BEGIN CERTIFICATE-----/' '{1}' -z -s # Update the certificates on the domain php /app/.global/bin/platform.phar domain:update -p $PLATFORM_PROJECT --no-wait --yes --cert /app/keys/certificates/example.org.crt-00 --chain /app/keys/certificates/example.org.crt-01 --key /app/keys/certificates/example.org.key example.org fi

Obviously you should replace all those example.orgs and email addresses with your own domain. Make the file executable with chmod u+x scripts/letsencrypt.sh, commit it, and push it up to your platform.sh environment.

7) Send a bragging email to Crell

Technically this isn’t supposed to be possible, but YOU DID IT! Make sure to rub it in.

Good luck!

PS – I’m just gonna link one more time to the guy whose snippet made this all possible: Ariel Barreiro did the hardest part of this. I’m grateful that he made his notes public!

Categories: Drupal

RedHen Asset

New Drupal Modules - 21 February 2017 - 1:07pm

RedHen Asset creates an Entity which allows RedHen CRM users to create bundles for different types of Assets which can be tracked using Connections.

This is a drupal 8 module. There is no planned drupal 7 release scheduled.

We are looking for maintainers, please contact @arosboro to assist in maintaining this project.

Categories: Drupal

Dwarves of Iron Peak Board Game Up On Kickstarter

Tabletop Gaming News - 21 February 2017 - 1:00pm
It just seems as though Dwarves and Trolls are never gonna get along. Trolls keep stealing things for Dwarves and the Dwarves have to go and get it back. That’s just what’s going on in Dwarves of Iron Peak, a new board game up on Kickstarter. A band of intrepid Dwarf adventurers are looking to […]
Categories: Game Theory & Design

Fantasy Flight Games Announces The Wars To Come Expansion For The Iron Throne

Tabletop Gaming News - 21 February 2017 - 12:00pm
Seems nobody can resist the call to plant themselves onto the throne made out of swords. Meanwhile, I’m happy with my comfy couch at home. But that’s me. Well, for those looking to become king or queen in Fantasy Flight Game’s The Iron Throne, you’re going to have more options, as well as obstacles, in […]
Categories: Game Theory & Design

Podcast Roundup

Tabletop Gaming News - 21 February 2017 - 11:00am
Tuesday already? I guess that’s what happens when you have Monday off. It was an odd day, being a mix of a regular workday (doing TGN stuff much of the morning), going grocery shopping midday (something I usually do on Saturday), and then doing some laundry and cleaning in the evening (which I usually do […]
Categories: Game Theory & Design

flatpickr datetimepicker

New Drupal Modules - 21 February 2017 - 10:21am
Synopsis

The flatpickr module implements the flatpickr JavScript Library.

“A lightweight & powerful datetimepicker.”

Provides a date / time picker that integrates with the Date module.

@todo update description.

Categories: Drupal

Mauser Earth: War for Paris Up On Kickstarter

Tabletop Gaming News - 21 February 2017 - 10:00am
There’s a couple games out there that give us alternate versions of WWII where the war continues on much longer than it did here in the real world. Well, Mauser Earth does much the same, but with WWI. There’s a new expansion for the game up on Kickstarter called War for Paris. It focuses on […]
Categories: Game Theory & Design

Pages

Subscribe to As If Productions aggregator