Tips on porting your indie game (and how we can help!)

Social/Online Games - Gamasutra - 6 March 2019 - 1:07pm

Indies can handle porting by themselves, but there's significant investment required - likely several months per platform. DO games' tech leads offer tips on porting, and explore whether a dev partner is right for your game. ...

Categories: Game Theory & Design

Lullabot: Lullabot Education Becomes Osio Labs

Planet Drupal - 6 March 2019 - 12:54pm

What do you do when you accomplish your dream? If you’re like Addison Berry, you make another dream.

Categories: Drupal

RESTful Web Services Field Collection

New Drupal Modules - 6 March 2019 - 12:31pm

This module makes it possible to process Field Collections in the same
requests as their host entity, using the RESTful Web Services module.

Categories: Drupal

Valve bans sexual violence game from Steam, but stops short of condemning it

Social/Online Games - Gamasutra - 6 March 2019 - 12:22pm

Valve has ruled that an adult game about committing sexual assault against women will not launch on Steam due to the fact that it †œposes unknown costs and risks†. ...

Categories: Game Theory & Design

Bootstrap datepicker

New Drupal Modules - 6 March 2019 - 10:55am
Categories: Drupal

Block Config Override

New Drupal Modules - 6 March 2019 - 10:48am

Allows for Block configuration to be overridden on a site and saved to key-value store instead of saving to configuration. This would allow a block to be placed into a region and have default configuration set, but in another environment override certain fields that don't then get overridden on configuration import.

Categories: Drupal

GDC 2019 debuts free to all GDC @ The Gardens space

Social/Online Games - Gamasutra - 6 March 2019 - 9:02am

This year GDC will be complemented by a new initiative aimed at giving everyone a place to relax and unwind while listening to live performances from some of the industry's leading musicians! ...

Categories: Game Theory & Design Even more batteries included: configuration libraries

Planet Drupal - 6 March 2019 - 8:23am
Even more batteries included: configuration libraries Crell Wed, 03/06/2019 - 16:23 Blog, like any good PaaS, exposes a lot of useful information to applications via environment variables. The obvious parts, of course, are database credentials, but there's far more that we make available to allow an application to introspect its environment.

Sometimes those environment variables aren't as obvious to use as we'd like. Environment variables have their limits, such as only being able to store strings. For that reason, many of the most important environment variables are offered as JSON values, which are then base64-encoded so they fit nicely into environment variables. Those are not always the easiest to read.

That's why we're happy to announce all new, completely revamped client libraries for PHP, Python, and Node.js to make inspecting the environment as dead-simple as possible.


All of the libraries are available through their respective language package managers:


composer install platformsh/config-reader


pip install platformshconfig


npm install platformsh-config --save

That's it, you're done.


All three libraries work the same way, but are flavored for their own language. All of them start by instantiating a "config" object. That object then offers methods to introspect the environment in intelligent ways.

For instance, it's easy to tell if a project is running on, in the build hook or not, or if it's in a Enterprise environment. In PHP:

$config = new \Platformsh\ConfigReader\Config(); $config->inValidPlatform(); // True if env vars are available at all. $config->inBuild(); $config->inRuntime(); $config->onEnterprise(); $config->onProduction(); // Individual environment variables are available as their own properties, too. $config->applicationName; $config->port; $config->project; // ...

The onProduction() method already takes care of the differences between Professional and Enterprise and will return true in either case.

What about the common case of accessing relationships to get credentials for connecting to a database? Currently, that requires deserializing and introspecting the environment blob yourself. But with the new libraries, it's reduced to a single method call. In Python:

config = platformshconfig.Config() creds = config.credentials('database')

This will return the access credentials to connect to the database relationship. Any relationship listed in is valid there.

What if you need the credentials formatted a particular way for a third-party library? Fortunately, the new clients are extensible. They support "credential formatters", which are simply functions (or callables, or lambdas, or whatever the language of your choice calls them) that take a relationship definition and format it for a particular service library.

For example, one of the most popular Node.js libraries for connecting to Apache Solr, solr-node wants the name of a collection as its own string. The relationship provides a path, since there are other libraries that use a path to connect. Rather than reformat that string inline, the Node.js library includes a formatter specifically for solr-node:

const solr = require('solr-node'); const config = require("platformsh-config").config(); let client = new solr(config.formattedCredentials('solr-relationship-name', 'solr-node'));

Et voila. client is now a solr-node client and is ready to be used. It's entirely possible to register your own formatters, too, and third-party libraries can include them as well:

config.registerFormatter('my-client-library', (creds) => { // Do something here to return a string, struct, dictionary, array, or whatever. });

We've included a few common formatters in each library to cover some common libraries. We'll be adding more as time goes by, and, of course, PRs are always extremely welcome to add more!

But what about my language?

We wanted to get these three client libraries out the door and into your hands as soon as possible. But don't worry; Go and Ruby versions are already in the works and will be released soon.

We'll continue to evolve these new libraries, keeping the API roughly in sync between all languages, but allowing each to feel as natural as possible for each language.

Larry Garfield 7 Mar, 2019
Categories: Drupal

Is there a way to research the 'happiness' factor in Game Development? - by Zuby Ahmed Blogs - 6 March 2019 - 7:56am
The blog post explores how through a combination of research conducted on academic theory and recent industry case-studies, a refined framework has now emerged to facilitate further research into the ‘happiness’ factor in Game Development.
Categories: Game Theory & Design

Localising Kenshi: A Post Mortem - by Natalie Mikkelson Blogs - 6 March 2019 - 7:54am
Did Kenshi's localisation pay for itself? Was the investment worth it? In this blog post I explore how Kenshi's regional sales were affected (or not affected!) after translating the game into various languages.
Categories: Game Theory & Design

Of Players & Characters - by Alois Bourguenolle Blogs - 6 March 2019 - 7:53am
Game theory covers a wide range of knowledge, but when it comes to the player-character relationship, tabletop roleplaying and LARP have a headstart video games can exploit to move further.
Categories: Game Theory & Design

Spinnortality: crunching the numbers - by James Patton Blogs - 6 March 2019 - 7:53am
Is it still possible to break into the games industry as an unknown indie in 2019? James Patton shares the sales numbers for his indie success "Spinnortality", a cyberpunk management sim that launched a month ago.
Categories: Game Theory & Design

The Philosophies of Gameplay - by Josh Bycer Blogs - 6 March 2019 - 7:16am
Gameplay may come in all forms and genres, but today, we're going to talk about how we can break it down into two philosophies that govern the player's experience.
Categories: Game Theory & Design

Aten Design Group: Drupal 8 Paragraphs + Layout Discovery

Planet Drupal - 6 March 2019 - 5:45am

I recently wrote an article about Flexible Authoring with Structured Content. In this follow-up post, I'm going to dig into more detail on one specific approach we've been working on: Entity Reference with Layout.

If you use the Paragraphs module and wish there was a way to more easily control the layout of referenced paragraphs on a particular node, check out Entity Reference with Layout, a new module for Drupal 8. Entity Reference with Layout combines structured content (a la Paragraphs) with expressive layout control (a la Layout Discovery in core). Now you can quickly add new sections without leaving the content edit screen, choose from available layouts, add text or media to specific regions, drag them around, edit them, delete them, add more, and so on. The experience is easy-to-use, fast, and expressive.

Background Structured Content FTW.

We’ve been working with Drupal for a very long time: since version 4.7, way back in 2006. We love the way Drupal handles structured content – something that has only improved over the years with support for important concepts like “fieldable entities” and “entity references.” Integration with flexible rendering systems like Views, and in more recent years the ability to quickly expose content to services for headless, decoupled applications, relies largely on structured content. With structured content, editors can “Create Once, Publish Everywhere (COPE),” a widely-recognized need for modern web authoring. Drupal’s support for structured content is an important advantage.

Drupal, We Have a Problem.

But Drupal’s interface for creating structured content– the part that editors use daily, often many times per day – is lagging. In the era of SquareSpace, WIX, and Gutenberg, Drupal’s clunky authoring interface leaves much to be desired and is quickly becoming a disadvantage.

Paragraphs to the Rescue. Sort Of.

There have been a number of really interesting steps forward for Drupal’s authoring interface as of late. Layout Builder is powerful and flexible and soon to be a full-fledged part of Drupal core. Gutenberg, an expressive authoring experience first developed for Wordpress, now offers a Drupal version. The Paragraphs module solves similar problems, providing a way for authors to create structured content that is incredibly flexible.

We started using Paragraphs years ago, soon after it was first introduced in Drupal 7. We liked the way it combined structure (Paragraphs are fieldable entities) with flexibility (Paragraphs can be dragged up and down and reordered). We used nested Paragraphs to give authors more control over layout. The approach was promising; it seemed flexible, powerful, and easy-to-use.

For more complex applications, though, nested Paragraphs proved anything but easy-to-use. They could be profoundly complicated. Managing intricate layouts with nested Paragraphs was downright difficult.

If only there was a way to have it both ways: Drupal Paragraphs plus easy layout control. Well of course, now there is.

Introducing Entity Reference with Layout

We created Entity Reference with Layout to give authors an expressive environment for writing structured content. As the name suggests, Entity Reference with Layout is an entity reference field type that adds an important element to the equation: layout. It leverages the layout discovery system in Drupal Core, allowing editors to quickly add new paragraphs into specific regions. The authoring experience is expressive and easy, with drag-and-drop layout controls.

Give Entity Reference with Layout a Whirl

Entity Reference with Layout is available on Installation is quick and easy (we recommend composer, but you can also just download the files). The module is experimental and still under active development; check it out and let us know what you think. We’d love to hear feedback, bug reports, or feature requests in the issue queue. And if you think your organization’s web editors might benefit from this approach and want to learn more, drop us a line and we’ll follow up!

Categories: Drupal

InternetDevels: New Quicklink module in Drupal 8 for performance improvement

Planet Drupal - 6 March 2019 - 5:23am

Drupal 8 has dozens of useful performance optimization modules. We once reviewed the core BigPipe module and the contributed Subrequests module. Today, we are pleased to notice a new tool to speed up Drupal sites — the Quicklink module in Drupal 8.

Read more
Categories: Drupal

PC Backgrounds, Part 2

Gnome Stew - 6 March 2019 - 5:00am

What’s a PC background? What is its purpose? How long should it be? For answers to these great questions, head on over to part 1 of this series.

As I hinted at in part 1, there are different approaches at generating backgrounds. I’m going to delve into those approaches in part 2 (this one) and part 3 (the next one).


 I highly dislike random backgrounds. Share1Tweet1+11Reddit1Email

I’m going to get this out of the way now. I highly dislike random backgrounds. They are rarely coherent, usually lead to craziness that’s hard to wrap into a single character, and may lead the player down a road that arrives at a character they really don’t like.

Having said that, if a player is at a dead stop for a concept or idea about part of their backstory, generating a random NPC, event, or key point might be fodder for the imagination. I like it when randomness is applied, when necessary, in small bite-sized pieces. Even if the player discards the random idea in favor of something else they really like that’s related, that’s fine. Go for it! Whatever sparks that creative compass to guide the way.

Short, Very Short

 think of it as a Twitter bio. Share1Tweet1+11Reddit1Email

In my fiction writing life, I teach a class on log lines. This is, essentially, a one-sentence summary of an entire story. Yeah. You read that right. Take that 100,000 word fantasy novel and compress it down into a single sentence. It’s not as hard as it sounds, but I’m not here to talk about novel log lines. I’m here to guide you into creating a single sentence that informs the rest of the backstory.

This single sentence (think of it as a Twitter bio), states where the character is at when the campaign starts. The backstory needs to be “aimed” at that point to get the character from a stumbling toddler to a fully-functional character. Of course, no story is complete without conflict, so that needs to be included in your sentence. Give this formula a try:


In this case, I like to express CHARACTER and ENEMY in an adjective+noun combination. This creates a more compelling and descriptive sentence. Here’s one that’ll work for an RPG backstory target that’s also from the novel I’m currently writing:

An apprentice blacksmith must prove her innocence in her master’s murder in order to avoid execution at the hands of the emperor, but the only female captain of the Gray Watch must frame the apprentice because the captain committed the murder out of greed.

In this one sentence, I’ve established my character, my enemy, goals, conflict, and motivations. Once this sentence is ready to go, I need to “fill in the gaps” between the formative toddler years (or maybe start early adolescence) and the character’s current age. This is where introducing friendly NPCs, the other PCs, and world/campaign hooks come in.

Quirks, Likes, and Dislikes

 While you’re crafting up the backstory, throw in a few quirks. Share1Tweet1+11Reddit1Email

While you’re crafting up the backstory, throw in a few quirks. Weird habits that occupy the character during downtime are a good idea to flesh out the character. I also like to throw in a few likes and dislikes. Even if these never come up in actual play, they’re cool to have in your back pocket for if they come up.

As an example: I had a wizard who loved the look of red gemstones. Anytime a ruby or red garnet or something similar popped up in treasure, he’d sacrifice more than his fair share of the treasure to get his hands on them. He never sold them or traded them away because he loved them so much. At one point, the GM “arranged” to have my bag of red gemstones thieved from me. That sparked a whole side arc adventure to get them back. When we eventually found the thief, it turned out to be another person who equally loved (and hoarded) red gemstones. The loot from the Big Bad Boss was a room full of the red gemstones. The party had pity on me and let me keep all of the gemstones.


Your character absolutely must have goals. It’s best to have three of them.

 Your character absolutely must have goals. Share1Tweet1+11Reddit1Email

The first should be an immediate, fairly minor, goal that the GM can use to set up an introductory adventure. If you can coordinate your minor goal with another PC or two in the party, that’ll make the adventure that much more robust!

The second goal should be a major goal and something long-term. This one will take some effort to accomplish, and will provide the GM for longer story arcs. A good major goal would be the founding of a temple, library, martial school, or some other regional establishment.

The third goal should be the world-changing or “campaign” goal. This can be something along the lines of “overthrow the lich emperor and restore the republic.”


 The most powerful motivations are the personal ones. Share1Tweet1+11Reddit1Email

With each goal, the player should document why the character wants to do the thing. It’s nice to have the goals, but if the player doesn’t know why the character wants (or must) accomplish the goal, then any decent obstacle preventing the finishing of the goal will dissuade the player (and therefore the character) from pressing forward.

The most powerful motivations are the personal ones. Ones that come from past experiences, major events, or tragedies that happened in the character’s life.

Up Next…

In the third and final part, I’ll talk about the bad things that can happen to a character in the backstory and collaboration with the party and GM on the creation of the backstory.

Categories: Game Theory & Design

Promet Source: Google + API Shutdown on 3/7/2019. Update Your Hybridauth Library

Planet Drupal - 6 March 2019 - 4:58am
You may have heard: Google+ is game over. Officially, this is directly related to a leak of data that potentially impacted 500,000 Google+ accounts.
Categories: Drupal

Drudesk: Nightwatch.js in Drupal 8: automated JavaScript testing

Planet Drupal - 6 March 2019 - 4:57am

There is never too much discussing Drupal and JavaScript frameworks. We have taken a glimpse at Drupal 8 and Vue.js combination and know that Vue.js is a candidate for Drupal core. Today is the time to review Nightwatch.js — an automated testing framework that is already part of Drupal 8. We will see how Nightwatch.js in Drupal 8 provides for automated JavaScript testing.

Categories: Drupal


New Drupal Modules - 6 March 2019 - 4:42am

This module was created to hide information that can expose security vulnerabilities:

  • Drupal version removed from HTML and HTTP response headers
  • Assets version removed from HTML
  • Disable the TRACE and TRACK methods in Apache
  • More to come...
Categories: Drupal

Sooper Drupal Themes: Inbound Marketing and Drupal Businesses

Planet Drupal - 6 March 2019 - 4:33am
What is inbound marketing?

So what is inbound marketing exactly? Well, some professionals are calling it “new marketing”. This type of marketing is focusing on delivering value upfront to your potential customers. This way, your potential customers will have already benefited from your marketing efforts before having to contribute with something of value to them. Inbound marketing is focused on delivering value, creating trust and developing a loyal and supportive customer base for your awesome brand.

What are the main pillars of inbound marketing?

So, what is the framework on which inbound marketing is operating? Well, inbound marketing has at its core three main concepts: 

  • Attract: The first pillar is the attraction, which inbound marketing aims to generate. Inbound marketing is not only focusing on attracting leads, but it focuses on attracting the right type of leads, the ones which are more likely to convert and buy or use your services and products and ultimately become your happy customers. Instead of preying on the attention of the potential customer, it instead lets the customer come to your business on his own accord and on his own terms. In order to create this attraction, you have to use the content marketing strategy. What this means is that you have to create relevant content for your ideal customer. The content can come in various forms such as blog posts, informational videos, articles, books, e-books etc.

  • Engage: Now that you have attracted the right kind of leads, you cannot sit back and relax with a piña colada in your hand. The next step is to further engage with your leads. To do this, you can engage in conversations with your leads through different mediums, such as Facebook, Instagram, Twitter, E-mail, bots, live chat, etc. This is an important step because it facilitates the opportunity to foster important relationships with your audience. Next, you have to capture the information of your prospects by using conversion tools such as CTA, forms and lead flows. This will help you in creating a personalized experience for your prospects on your website. When people feel that their experience was optimized for them, it creates trust and brand loyalty.

  • Delight: The final pillar of the inbound marketing is delight. How do you delight your prospects you might wonder. It’s easy, now that you have collected relevant information about your leads, you can further engage with your audience by using marketing automation and conversations. This will ensure that your Emails are targeting the right people with the right information every time. On top of that, create content that your leads will be happy to share with their family, friends, pets etc. Bonus points, if you deliver this content in your audience's favorite content format, like video for example.

Inbound marketing vs. outbound marketing

Now that you have a clearer understanding of what inbound marketing means, let’s take a look at what outbound marketing is and how the two of them compare.

Outbound marketing refers to any kind of marketing where a company is sending out a message to the audience. In outbound marketing, companies are competing for the attention of the customers. How do they do that? Well, in order to grab their attention, companies who use outbound marketing are usually interrupting their audience right in a moment when they are focused on something else with an ad that is totally irrelevant for them. Outbound marketing uses a “spray and pray” strategy in the hopes of collecting leads. What this means, is that they try to show their message to as many people as possible and hope to get noticed. However, because of this approach, people are increasingly getting more desensitized to the outbound marketing, meaning that people have learned to ignore the traditional types of marketing. On top of that, the advent of ad blockers has made it increasingly more difficult for marketers to get their message to reach their audience. The consequences of this being that outbound marketing becomes increasingly expensive, while generating low yields.

But how does inbound and outbound marketing compare in terms of statistics? Well, according to the statistics, inbound leads cost 61% less than outbound. On top of that, businesses that rely on inbound marketing are saving more than 14$ dollars per new acquired customer. 79% percent of business that have a blog report positive ROI for inbound marketing. Around 80% of business decision makers prefer to get their information out of a series of articles rather than advertisements. Properly implemented inbound marketing strategy is 10 times more effective for lead conversion than outbound marketing. The average cost per lead is dropping by 80% after 5 months of consistent inbound marketing. Inbound marketing is 62% cheaper than outbound marketing and it triples the leads.

Now, taking into account these statistics, it’s clear that inbound marketing is more efficient than traditional marketing.

How can inbound marketing influence your Drupal Business?

But how is this relevant to my Drupal business you might ask? Well, first of all, by creating awesome content for your business you will be able to attract the right type of leads, the ones that are already interested in your business or in the field that your business operates in. These leads are more likely to convert to happy customers. On top of that, you will significantly reduce your costs for marketing, all while generating more quality leads and creating awesome value and content for your prospects.

Another cool aspect of inbound marketing for your Drupal business is that it generates leads long after the content was posted, as long as it is updated from time to time. Think of inbound marketing as a long term investment in your business. You make the investment now and you reap the benefits over a longer period of time, than for example with outbound marketing. On top of that, and inbound marketing strategy won't stop working in case you run out of budget. Blogs, articles and videos posted on your website will still continue to generate traffic long after you have run out of budget, which is another great perk of doing inbound marketing.

Another great aspect of adopting an inbound marketing strategy for your Drupal business, is that it provides a clear overview over the Return on Investment. Traditional outbound marketing is really ineffective when it comes to measuring how many people see your advert. Inbound marketing on the other hand provides a transparent examination over the results that it generates and the impact that those leads have on you business's ROI.


Marketing is an ever evolving profession and people have to be constantly keeping up with the latest trends and emerging technologies in order to stay ahead of the game. The same goes for inbound marketing, it is a new way of doing marketing, which is essentially the opposite of the “old school marketing”. Now, companies and people have to adapt to a new “cool kid on the block”, but for the best results, like all things in life, a balance has to be achieved between outbound and inbound marketing.

Categories: Drupal


Subscribe to As If Productions aggregator