Newsfeeds

Under the Big Top Expansion For Carcassonne Now Available

Tabletop Gaming News - 10 July 2017 - 8:00am
I remember going to the circus once when I was a little kid. I’m pretty sure it was at the Rosemont Horizon back in Chicago. But I was pretty young. All I really remember about it is that it was loud. Well, you can bring the noise and excitement of the circus to your games […]
Categories: Game Theory & Design

Steam Greenlight vs. Steam Direct: What indies need to know - by Sheena Perez

Gamasutra.com Blogs - 10 July 2017 - 7:26am
Are you familiar with Steam Greenlight? Heard the news?! There's a new system in town called Steam Direct and here's some things you should know.
Categories: Game Theory & Design

The Illusion of an Analog World - by Thomas Grip

Gamasutra.com Blogs - 10 July 2017 - 7:13am
There is something about unclear options which make choices a lot more interesting. This post goes into the reasons behind this, and various ways of achieving it in games.
Categories: Game Theory & Design

A Look at Ludomechanical Dissonance - by Josh Bycer

Gamasutra.com Blogs - 10 July 2017 - 7:13am
Ludonarrative Dissonance has become a popular discussion point for when story and game design conflict. For today, I want to try and come up with a term for when mechanics conflict with each other.
Categories: Game Theory & Design

Troubleshooting Unity build for Android platform - by Shobhit Samaria

Gamasutra.com Blogs - 10 July 2017 - 7:08am
Listing out the common problems faced when building for Android from Unity with the solutions that worked for me. This should be a handy troubleshooting guide when doing the build.
Categories: Game Theory & Design

How Photopia Engenders Powerlessness - by Nikhil Murthy

Gamasutra.com Blogs - 10 July 2017 - 7:06am
Breaking down how the 1998 IF Photopia built a feeling of powerlessness.
Categories: Game Theory & Design

Bitmask Multi State Machine - by Karol Stola

Gamasutra.com Blogs - 10 July 2017 - 7:05am
A convenient and lightweight state machine implementation, that allows for multiple states active at the same time and makes complex transitioning easy to define and maintain.
Categories: Game Theory & Design

Fantasy Flight Games Announces Cyphers and Masks Sourcebook for Star Wars RPG

Tabletop Gaming News - 10 July 2017 - 7:00am
In any fantasy RPG, someone’s almost always going to pick the rogue to play. You know, they want to be sneaky, staying in the shadows, picking locks, stealing pants off of unwitting bar patrons, backstabbing with a ballista… That kind of thing. Players that like that kind of character can sometimes feel that a sci-fi […]
Categories: Game Theory & Design

How I scare people (Personal tips for creating horror games) - by Ahmet Kamil Keles

Gamasutra.com Blogs - 10 July 2017 - 6:57am
As a horror game developer (mostly known with Clown House, Self, Interactive Horror Stories), I have got some theories about how to create a game that scares people. They worked for my games, I'll share them! Examples from my games are given.
Categories: Game Theory & Design

Roman Agabekov: Setting up server for Drupal with Nginx and Php-fpm under Debian

Planet Drupal - 10 July 2017 - 6:24am
Setting up server for Drupal with Nginx and Php-fpm under Debian Submitted by admin on Mon, 07/10/2017 - 13:24

In the previous article Setting up Nginx on a Debian server as front-end for Apache of the series of articles for Drupal sysadmins we explained Nginx configs that allow it working through static queries while Apache serves dynamic content. This article offers a look at an alternative setup, where Php-fpm takes the place of Apache. The operating principle for our web server will be as follows:

Tags
Categories: Drupal

New Primaris Marines and Nurgle Figures Available From Games Workshop

Tabletop Gaming News - 10 July 2017 - 6:00am
The new edition of 40k‘s starter set has the Space Marines facing off against the foul chaos figures dedicated to the god Nurgle. If you’re looking to expand out from there, Games Workshop has several new kits you can order from them. There’s some new Primaris figures, as well as Death Guard and Pox Walkers. […]
Categories: Game Theory & Design

Netflix for indie games: How Jump aims to help devs beat discoverability issues

Social/Online Games - Gamasutra - 10 July 2017 - 5:55am

Game industry vets Anthony Palma and Cade Peterson chat with Gamasutra about Jump, their new indie game subscription service that aims to give passed-over games their time in the sun. ...

Categories: Game Theory & Design

Dropbox upload

New Drupal Modules - 10 July 2017 - 3:55am

Dropbox upload allows you to add a new field type called dropbox_upload. Files added with this field are directly uploaded to an attached Dropbox account and stay there. The folder structure can be defined per field and can be token based.

When visiting content with dropbox files then the files are showed correctly.

Categories: Drupal

Drupal Content Migration

New Drupal Modules - 10 July 2017 - 2:01am

Content migration is one of the most important factors that any experienced Drupal developers must take into account.

When working on a production state of your projects, upon finishing certain functions, you will need to move the progress to the production site by using the feature and coding export functions.

However, it is not easy as it seems.
If the number of nodes is small, developers can do it manually. But when it amounts to hundreds, thousands, or millions, that is quite risky.

Categories: Drupal

Xeno Media: Entity Reference Roundup

Planet Drupal - 10 July 2017 - 2:00am

Drupal's Entity reference fields are the magic sauce that allows site builders and developers to relate different types of content. Because the fields allows builders and administrators to reference different types of content (entities), it facilitates the building of complex data models and site architectures.

Like anything in Drupal, the community takes the core tools and builds additional functionality on top. Here is a slew of modules that extend or complement the Drupal 8 core reference field so you can do even more!

Entity Reference Revisions

This module is from the team that brought you the Paragraphs module. Adds an Entity Reference field type that has revision support. It's based on the core Entity Reference module but allows you to reference a specific revision of an entity.

Use case:

An entity is actually part of a parent entity (with an embedded entity form). When the parent entity is updated, the referenced entity is also updated, thus the previous revision of the parent entity should still be pointing to the previous version of the entity in order to fully support revision diff and rollback.

Entity Reference Override

An entity reference field paired with a text field. You can use this module to

  • Override the title if you are linking to the referenced entity.
  • Add an extra CSS class to the referenced entity.
  • Override the default display mode for the field on an entity-by-entity basis.

Use case:

Aggregate lists of referenced entities like related articles, but you want to override the name or appearance of individual items.

Entity references with text

Allows you to provide custom text along with one or more entity references.

Use case:

  • Add a referenced author, the word "and ”, and then another referenced author.
  • On another node, Add a referenced author, the words "with support from ”, and then another referenced author.
  • On another node, Add a referenced author, a comma ", ”, another referenced author, the word "and ”, and then another referenced author.
Entity Reference Display

This module adds a field type that allows you to select the display mode for entity reference fields. This allows an editor to select from different display modes such as Teaser, Full, or any you add.

It also includes a Selected display mode field formatter which renders the referenced entities with the selected display mode.

Use case:

Allowing the administrator to change the display of related articles from a grid display mode to a list display mode.

Entity Reference Views Select

This module allows you to change your Entity reference fields to be displayed as a select list, or checkboxes/radio buttons in administrative forms. It does this by allowing you to use Views as the reference method, where you can format the results giving the administrator a much better experience.

Use case:

Showing an icon or thumbnail in a selectable list when referencing a list, or a referenced image.

Entity Reference Tab / Accordion Formatter

This cool little module works on both Entity Reference and Entity Reference Revisions fields and provides a field formatter for displaying the referenced entity in jQuery Tabs or jQuery Accordion.

Use case:

Returning multivalue Paragraphs items in tabs or accordion format.

Views Entity Reference Filter

Provides a new admin friendly Views filter for configuring entity reference fields. It allows users to select the labels of the entities they want to filter on rather than manually entering the IDs.

Use case:

Providing a better admin experience.

Better Entity Reference Formatter

This module extends Drupal's default field formatter for entity reference fields in order to make it more flexible by introducing a new field formatter plugin. Along side the view mode option, you can also define the number of entities to return, or a specific entity, like the first, last, or offset them.

Use case:

Showing the first related product referenced from another product.

Entity Reference Validators

The plural in its name suggests more is coming, but currently this module adds a single validator for Entity Reference fields, the Circular reference validator. This prevents you from using the entity reference field to reference itself.

Use case:

Preventing an entity reference field on node 1 from linking to node 1.

Entity Reference Integrity

This interesting sounding module lists other entities that reference your entity.

It also includes a sub-module Entity Reference Integrity Enforce which will attempt to protect entities that are referenced by other entities, and not allowing its deletion.

Use case:

Protect the integrity of the site by protecting referenced content.

Entity Reference Quantity

This module extends the default entity reference field that includes a "Quantity" value in the field definition so you don't have to build a separate entity just to store two distinct fields.

It also includes autocomplete and dropdown field widgets that allow you to select which entity and add the quantity value.

Use case:

I'll use the example from this great blog on the module: A real world example might be a deck builder for a trading card game like Magic: The Gathering or the DragonBall Z TCG. We want to reference a card from a deck entity and put in the quantity at the same time.

Entity Reference Formatter

This module creates a generic field formatter for referenced entities which allows you to select the formatter based on the referenced entity in the display settings form.

Use case:

When referencing custom entities that don't have view-modes of their own, you would not need to write your own custom formatters

Permissions by field

This module extends the Entity Reference field that adds permissions along with the referenced entity. By adding this field, you can manage access to the entities referenced by this field and select permission level (none, view, update, delete).

Use case:

A lighter version of Organic Groups, or the Group modules.

Views Reference Field

In Drupal 8, Views are now entities! Drupal core's Entity Reference field is able to reference Views, however you can't actually reference the Views displays. This module extends core's entity reference module to add the display ID so that a View can be rendered in a field formatter.

Use case:

Adding a Views reference field to a Paragraphs bundle so you can have a view in and around other paragraph bundles. We implemented this technique in the Bootstrap Paragraphs module.

Dynamic Entity Reference

So cool! This awesome module adds the functionality to let you reference more than one entity type. It create a single field in which you can reference Users, Blocks, Nodes, Contact Forms, Taxonomy Terms, etc!

Use case:

Creating a "related” field, and allowing your administrators to select anything they want.

Entity Reference Drag & Drop

This module creates a Drag & Drop widget for the standard Entity reference fields. It provides you with a list of available entities on the left, and you can select them by dragging and dropping them to the list on the right.

Use case:

Providing a better admin experience.

Phew! Thanks for making it to the end! Do you have a favorite Entity Reference module that we missed? Let us know on Twitter at @xenophiles and @thejimbirch

Happy Drupaling!

Acknowledgements

Thanks to Mike Acklin for his help with this article, and to all the awesome module maintainers and contributors!

Photo by Bethany Legg on Unsplash

Categories: Drupal

Fuzzy Thinking: 1d4 Damage

RPGNet - 10 July 2017 - 12:00am
Fuzzy crits.
Categories: Game Theory & Design

Video Game Deep Cuts: A Failure To NBA Jam

Social/Online Games - Gamasutra - 9 July 2017 - 8:11pm

This week's longform game article/video highlights include GDC's Indie Summit Failure Workshop, an oral history of NBA Jam, and lots more. ...

Categories: Game Theory & Design

Wim Leers: On simplicity & maintainability: CDN module for Drupal 8

Planet Drupal - 9 July 2017 - 11:02am

The first release of the CDN module for Drupal was 9.5 years ago yesterday: cdn 5.x-1.0-beta1 was released on January 8, 2008!

Excitement

On January 27, 2008, the first RC followed, with boatloads of new features. Over the years, it was ported to Drupal 61, 7 and 8 and gained more features (I effectively added every single feature that was requested — I loved empowering the site builder). I did the same with my Hierarchical Select module.

I was a Computer Science student for the first half of those 9.5 years, and it was super exciting to see people actually use my code on hundreds, thousands and even tens of thousands of sites! In stark contrast with the assignments at university, where the results were graded, then discarded.

Frustration

Unfortunately this approach resulted in feature-rich modules, with complex UIs to configure them, and many, many bug reports and support requests, because they were so brittle and confusing. Rather than making the 80% case simple, I supported 99% of needed features, and made things confusing and complex for 100% of the users.


Main CDN module configuration UI in Drupal 7.


Learning

In my job in Acquia’s Office of the CTO, my job is effectively “make Drupal better & faster”.

In 2012–2013, it was improving the authoring experience by adding in-place editing and tightly integrating CKEditor. Then it shifted in 2014 and 2015 to “make Drupal 8 shippable”, first by working on the cache system, then on the render pipeline and finally on the intersection of both: Dynamic Page Cache and BigPipe. After Drupal 8 shipped at the end of 2015, the next thing became “improve Drupal 8’s REST APIs”, which grew into the API-First Initiative.

All this time (5 years already!), I’ve been helping to build Drupal itself (the system, the APIs, the infrastructure, the overarching architecture), and have seen the long-term consequences from both up close and afar: the concepts required to understand how it all works, the APIs to extend, override and plug in to. In that half decade, I’ve often cursed past commits, including my own!

That’s what led to:

  • my insistence that the dynamic_page_cache and big_pipe modules in Drupal 8 core do not have a UI, nor any configuration, and rely entirely on existing APIs and metadata to do their thing (with only a handful of bug reports in >18 months!)
  • my “Backwards Compatibility: Burden & Benefit” talk a few months ago
  • and of course this rewrite of the CDN module
CDN module in Drupal 8: radically simpler

I started porting the CDN module to Drupal 8 in March 2016 — a few months after the release of Drupal 8. It is much simpler to use (just look at the UI). It has less overhead (the UI is in a separate module, the altering of file URLs has far simpler logic). It has lower technical complexity (File Conveyor support was dropped, it no longer needs to detect HTTP vs HTTPS: it always uses protocol-relative URLs, less unnecessary configurability, the farfuture functionality no longer tries to generate file and no longer has extremely detailed configurability).

In other words: the CDN module in Drupal 8 is much simpler. And has much better test coverage too. (You can see this in the tarball size too: it’s about half of the Drupal 7 version of the module, despite significantly more test coverage!)


CDN UI module in Drupal 8.


all the fundamentals
  • the ability to use simple CDN mappings, including conditional ones depending on file extensions, auto-balancing, and complex combinations of all of the above
  • preconnecting (and DNS prefetching for older browsers)
  • a simple UI to set it up — in fact, much simpler than before!
changed/improved
  1. the CDN module now always uses protocol-relative URLs, which means there’s no more need to distinguish between HTTP and HTTPS, which simplifies a lot
  2. the UI is now a separate module
  3. the UI is optional: for power users there is a sensible configuration structure with strict config schema validation
  4. complete unit test coverage of the heart of the CDN module, thanks to D8’s improved architecture
  5. preconnecting (and DNS prefetching) using headers rather than tags in , which allows a much simpler/cleaner Symfony response subscriber
  6. tours instead of advanced help, which very often was ignored
  7. there is nothing to configure for the SEO (duplicate content prevention) feature anymore
  8. nor is there anything to configure for the Forever cacheable files feature anymore (named Far Future expiration in Drupal 7), and it’s a lot more robust
removed
  1. File Conveyor support
  2. separate HTTPS mapping (also mentioned above)
  3. all the exceptions (blacklist, whitelist, based on Drupal path, file path…) — all of them are a maintenance/debugging/cacheability nightmare
  4. configurability of SEO feature
  5. configurability of unique file identifiers for the Forever cacheable files feature
  6. testing mode

For very complex mappings, you must manipulate cdn.settings.yml — there’s inline documentation with examples there. Those who need the complex setups don’t mind reading three commented examples in a YAML file. This used to be configurable through the UI, but it also was possible to configure it “incorrectly”, resulting in broken sites — that’s no longer possible.

There’s comprehensive test coverage for everything in the critical path, and basic integration test coverage. Together, they ensure peace of mind, and uncover bugs in the next minor Drupal 8 release: BC breaks are detected early and automatically.

The results after 8 months: contributed module maintainer bliss

The first stable release of the CDN module for Drupal 8 was published on December 2, 2016. Today, I released the first patch release: cdn 8.x-3.1. The change log is tiny: a PHP notice fixed, two minor automated testing infrastructure problems fixed, and two new minor features added.

We can now compare the Drupal 7 and 8 versions of the CDN module:

In other words: maintaining this contributed module now requires pretty much zero effort!

Conclusion

For your own Drupal 8 modules, no matter if they’re contributed or custom, I recommend a few key rules:

  • Selective feature set.
  • Comprehensive unit test coverage for critical code paths (UnitTestCase)2 + basic integration test coverage (BrowserTestBase) maximizes confidence while minimizing time spent.
  • Don’t provide/build APIs (that includes hooks) unless you see a strong use case for it. Prefer coarse over granular APIs unless you’re absolutely certain.
  • Avoid configurability if possible. Otherwise, use config schemas to your advantage, provide a simple UI for the 80% use case. Leave the rest to contrib/custom modules.

This is more empowering for the Drupal site builder persona, because they can’t shoot themselves in the foot anymore. It’s no longer necessary to learn the complex edge cases in each contributed module’s domain, because they’re no longer exposed in the UI. In other words: domain complexities no longer leak into the UI.

At the same time, it hugely decreases the risk of burnout in module maintainers!

And of course: use the CDN module, it’s rock solid! :)

Related reading

Finally, read Amitai Burstein’s “OG8 Development Mindset”! He makes very similar observations, albeit about a much bigger contributed module (Organic Groups). Some of my favorite quotes:

  1. About edge cases & complexity:
Edge cases are no longer my concern. I mean, I’m making sure that edge cases can be done and the API will cater to it, but I won’t go too far and implement them. […] we’ve somewhat reduced the flexibility in order to reduce the complexity; but while doing so, made sure edge cases can still hook into the process.


2. About tests:

I think there is another hidden merit in tests. By taking the time to carefully go over your own code - and using it - you give yourself some pause to think about the necessity of your recently added code. Do you really need it? If you are not afraid of writing code and then throwing it out the window, and you are true to yourself, you can create a better, less complex, and polished module.


3. About feature set & UI:

One of the mistakes that I feel made in OG7 was exposing a lot of the advanced functionality in the UI. […] But these are all advanced use cases. When thinking about how to port them to OG8, I think found the perfect solution: we did’t port it.


  1. I also did my bachelor thesis about Drupal + CDN integration, which led to the Drupal 6 version of the module. ↩︎

  2. Unit tests in Drupal 8 are wonderful, they’re nigh impossible in Drupal 7. They finish running in seconds. ↩︎

Categories: Drupal

TMGMT Translator Yandex API

New Drupal Modules - 9 July 2017 - 8:40am

TMGMT Translator Yandex

Yandex translator plugin for the Translation Management Tools (TMGMT) project. Allows to submit translation jobs for to Yandex Translator.

About Yandex translation API

The API provides access to the Yandex online machine translation service. It supports more than 70 languages and can translate separate words or complete texts. The API makes it possible to embed Yandex.Translate in a mobile app or web service for end users. Or translate large quantities of text, such as technical documentation.

Categories: Drupal

Nacho Digital: Drupal Picnic BsAs Argentina

Planet Drupal - 9 July 2017 - 8:12am
With Buenos Aires Argentina user group we are organizing a meeting on Sat 22nd and Mon 24th of July

It's been a long time since our last camp was done on BsAs (2009) and thanks to the inspiration of Drupal Camp Chile we've been planning doing another for a while.

We finally put a day thanks to a visit from Enzo. We are calling it a "PicNic" and not a camp due to the extend it'll have, it will be two days:

  • On Saturday 22nd we'll have an sprint with mentoring
  • On Monday 24th there will be technical conferences

You can find more details on our event page.

Categories: Drupal

Pages

Subscribe to As If Productions aggregator