Newsfeeds

Stuffed Fables Now Available

Tabletop Gaming News - 2 February 2018 - 6:00am
Stuffed Fables is now available. That could just be the whole crux of the story, and that’d be fine. But Plaid Hat Games went one further. They’ve also posted up a video on their site about the psychology of playing board games, and they got a real professor of psychology to talk about it with. […]
Categories: Game Theory & Design

Rest Normalizer

New Drupal Modules - 2 February 2018 - 5:49am

Nowaday's you often heard of a phrase "Headless Drupal or Decoupled Architecture" It is rising in popularity in the development world. This model allows breakthrough user experiences, gives developers great flexibility to innovate, and helps site owners future-proof their builds by allowing them to refresh the design without re-implementing the whole CMS.

Categories: Drupal

Ubercart PayPal Plus

New Drupal Modules - 2 February 2018 - 3:20am

This is an Ubercart payment gateway module for PayPal Plus.

For further instructions, see the README.txt included with the module. You must install Ubercart for this module to work.

Categories: Drupal

drunken monkey: Some more (updated) tips for PhpStorm live templates

Planet Drupal - 2 February 2018 - 3:19am

A few years ago I started using the PhpStorm IDE for PHP development, was immediately smitten and, after a bit of use, wrote a blog post with some tips I found for makig better use of the tools PhpStorm gives you.

In the four years since then there have been some new developments. Firstly, of course, Drupal 8 was finally released – and, consequently, the one complaint I had back in 2013 about the $MODULE$ variable only working in the module file itself became more of a problem. (Also, I added one more live template that's very useful for Drupal 8.)
But secondly, a few weeks ago PhpStorm finally added scripting support for live templates, so it's now possible to write more powerful templates that way – and fix the $MODULE$ variable.

The new di live template

In general, when writing OOP code for Drupal 8 (that is, for almost all Drupal 8 code) you should use dependency injection as much as possible. There's several different styles for doing that, I'm using one which uses setter methods and calls them in create() (instead of adding all injected objects to the constructor). This makes inheritance easier and keeps the constructor “cleaner” – and becomes much easier with a good live template:

  /**
   * The $NAME$.
   *
   * @var $INTERFACE$|null
   */
  protected $$$PROP_NAME$;

  /**
   * Retrieves the $NAME$.
   *
   * @return $INTERFACE$
   *   The $NAME$.
   */
  public function get$UC_PROP_NAME$() {
    $plugin->set$UC_PROP_NAME$($container->get('$SERVICE$'));

    return $this->$PROP_NAME$ ?: \Drupal::service('$SERVICE$');
  }

  /**
   * Sets the $NAME$.
   *
   * @param $INTERFACE$ $$$VAR_NAME$
   *   The new $NAME$.
   *
   * @return $this
   */
  public function set$UC_PROP_NAME$($INTERFACE$ $$$VAR_NAME$) {
    $this->$PROP_NAME$ = $$$VAR_NAME$;
    return $this;
  }

Variable definitions:

Name Expression Skip if defined VAR_NAME N SERVICE N INTERFACE clipboard() Y NAME underscoresToSpaces(VAR_NAME) Y UC_NAME underscoresToCamelCase(VAR_NAME) Y UC_PROP_NAME capitalize(PROP_NAME) Y

Usage:

  1. Copy the service interface's FQN to your clipboard.
  2. Put the service ID either into a secondary clipboard (e.g., middle mouse button on Linux) or remember it.
  3. Execute live template (at the position where you want the getter and setter).
  4. Input variable name (in snake_case), then input service name.
  5. Move the property definition and the create() line (temporarily stored as the first line of the getter in the template) to their appropriate places.
  6. In the code, alway use the getter method for accessing the service.
Fixing the $MODULE$ variable

Since the code for this is quite complex, we better just put it into a separate file. So, first download the script file and save it to some known location, then simply use the (absolute) path to the script file as the argument for groovyScript(), like this:

This can be used for all the live templates that contain a $MODULE$ variable (though it will, of course, be less useful for the procedural ones, than for the simple m template).

Categories: Drupal

Simple Zoom

New Drupal Modules - 2 February 2018 - 3:02am

The "Simple Zoom" module allows you to open the image in a popup. The module creates a image formatter and a CKEditor plugin for opening the image fields and inline images in popup using simple jquery zoom plugin.

Categories: Drupal

OneLogin Integration

New Drupal Modules - 2 February 2018 - 1:38am

With this module, you can log in with OneLogin through SAML in Drupal 8. This module is a rebuild of this module, which is only available in Drupal 7. Because of this, I rebuilt it for Drupal 8.

More information will come at a later stage.

Categories: Drupal

A jumpstart into environment art: Gathering fundamental techniques and transforming those fundamentals into a basic, easy to follow guide, designed for beginning environment artists and students. - by Danny Flu

Gamasutra.com Blogs - 2 February 2018 - 12:49am
This blog shows my past in environment art and why I find it important to educate starting environment artists and students from the start on. This to make them excited about new software and programs, but also to bridge the gap of the unknown.
Categories: Game Theory & Design

To boldly go - by Yarr Rash

Gamasutra.com Blogs - 2 February 2018 - 12:48am
Building a software development team in Wargaming, a multi-cultural international company - approaches, actions, lessons learned.
Categories: Game Theory & Design

Unity3d Asset Bundle Series - by Dennis Piatkowski

Gamasutra.com Blogs - 2 February 2018 - 12:47am
Improve your mobile games and support dynamic content without app store approvals. This series will give you a head start on making and using bundles in ways you probably didn't consider.
Categories: Game Theory & Design

DXT Texture Compression in 2018 - by Robert Basler

Gamasutra.com Blogs - 2 February 2018 - 12:45am
Two weeks ago I knew exactly zero about DXT. I was surprised to find a lack of recent resources on the topic and spent two days researching just to get started.
Categories: Game Theory & Design

CKEditor Google Search

New Drupal Modules - 2 February 2018 - 12:00am

Integrates CKEditor's Google Search plugin to Drupal. This enables Drupal's default WYSIWYG text editor capable of google searching the selected words.

This module uses the settings and features of native CKEditor Google Plugin plugin for the searching.

Categories: Drupal

Disable Browser Back Button

New Drupal Modules - 1 February 2018 - 10:57pm

Disable browser back button module is designed to allow an administrator to disable browser back button on specific pages. The pages can be configured in Module Admin Settings.

Features:
--------------------------
1)This module will disable browser back button on specific pages.

How to use:
-------------------
1) Install this module.
2) Go to 'Configuration >> System >> Disable Back configuration' and enter list of comma seprated url's where you want to disable browser back button .

Categories: Drupal

Palantir: Drupal ++

Planet Drupal - 1 February 2018 - 5:24pm
Drupal ++ brandt Thu, 02/01/2018 - 19:24 Ken Rickard Feb 2, 2018

Director of Professional Services Ken Rickard’s introduction to Drupal and how ++ flows through the community.

Stay connected with the latest news on web strategy, design, and development.

Sign up for our newsletter.

2018 marks my 10th year at Palantir and the inaugural ++ Day gives me a great chance to reflect. For those of you who haven’t read George’s post yet:

++ has its origins in the C programming language, where it’s used as an operator to add one to the value of a particular variable. Over time, it’s become known as an informal shorthand for building and improving on past success.

I started working at Palantir after contributing to the Drupal project and launching some of the first newspaper industry websites on Drupal. And it’s in my experiences with Drupal – as a software project and a community – where the ++ ethos has had lasting influence.

My first contribution to the Drupal project was back at DrupalCon Vancouver in 2006. (So long ago, that it was actually called the Open Source CMS and Blogging Tools Summit, retroactively named as a DrupalCON later.) I was in a small group that was looking at the usability of the administrative interface in Drupal 4.7, which was in beta. At the time, all administrative actions were in one long list; a list that was getting ever-longer and harder to use.

That group includes Dries Buytaert, the Drupal project founder, Earl Miles, who authored VIews and (later) Panels, and Nedjo Rogers, an early and prolific contributor. Earl and I were new to the project, and I chose to be part of that group because we weren’t doing any programming: we were doing a card sort:

Card sorting is a method used to help design or evaluate the information architecture of a site. In a card sorting session, participants organize topics into categories that make sense to them and they may also help you label these groups. -- from Usability.gov

Now, at the time, I had been working with Drupal for almost two years but writing very little code. When I first started to evaluate CMS products, I couldn’t even write a PHP function (though I could write a stand-alone PHP script). So I joined the working group that seemed appropriate to my background, only to learn that the rest of the team were much more advanced programmers.

But a great thing happened. It didn’t matter. We were there to try to define a solution, not to code one. It was my first in-person open source event, and it changed the direction of my career.

I recall advocating for a User group of tasks to cover all the items related to user accounts: User management, registration settings, roles and permissions. (In Drupal 7 and 8, these items are under the People section of the interface.) The group liked the idea and it was implemented with the next beta release. And that was when I realized that I could contribute to making the software better, even though I wasn’t confident as a “developer.”

That confidence would come later, as working at Palantir allowed me the time and projects to focus and improve, iterating over code and concepts from Drupal 5 onward. (As I write this, I am working on the Drupal 8 version of a module I originally wrote in Drupal 5.)

More importantly, I learned a few other valuable lessons from that original working group in Vancouver, all of which reinforce the theme of ++ Day:

  • Make your work inviting to new people by giving them clear ways to contribute.
  • Engage in thoughtful, collaborative problem solving.
  • Recognize the value of what has come before while seeking to improve.
  • Change can come from unexpected places; be open to those opportunities.

I’m fortunate that I get to do what I like to do and make a career of it. I’m even more fortunate that I work on a team that reflects these values on a daily basis.

Happy ++ Day everyone!

We want to make your project a success.

Let's Chat.
Categories: Drupal

Catch cutting-edge sponsored sessions from Improbable, Apple and more at GDC 2018

Social/Online Games - Gamasutra - 1 February 2018 - 11:12am

Don't miss the great sponsored sessions at GDC 2018 -- companies like Apple and Improbable are sponsoring intriguing talks on everything from augmented reality to the future of massive online games! ...

Categories: Game Theory & Design

Elevated Third: Submitted Sessions for DrupalCon Nashville

Planet Drupal - 1 February 2018 - 10:36am
Submitted Sessions for DrupalCon Nashville Submitted Sessions for DrupalCon Nashville Tony Dryer Thu, 02/01/2018 - 11:36

At Elevated Third, everything is Drupal. We standardized a decade ago and have since attended DrupalCon yearly.

This year in Nashville we’re looking forward to sharing what we’ve learned in Drupal 8, Drupal biz, project management, and more. Check out the sessions we've submitted. 

 

Leveraging Maps for Scalable and Maintainable SASS

Tanner Langley

SASS is a relatively new language in the grand scheme of things. As many of us have transitioned from writing plain CSS to SASS, we still generally write our code the same way. Websites are becoming more complicated, and as such, we need more robust ways to write our CSS so that it is scalable and maintainable, even when the project grows.

In this session, I’ll discuss the idea of creating a framework in SASS to decouple the most complicated pieces of your code from the actual implementation. With this approach, you’ll still be able to use any CSS system, such as utility classes, BEM syntax or even just plain Drupal selectors. 

You may be interested in this session if:

  • You are new to SASS and would like to learn about what it’s capable of
  • You are experienced in SASS but feel like you still haven’t nailed down a system
  • You are a developer and are constantly frustrated that none of your programming skills carry over to SASS

 

The Circle of Trust: The Power of Agency Partnership

Zach Ettelman and Ayla Peacock

My best friend in high school was really good at math and horrible at writing. I was really good at English and terrible at math. To make a long story short, we were really good at cheating on tests. The dream team: what I lacked, she made up for and vice versa. We don’t cheat at Elevated Third, but we partner up. Last year we sent 4,000 emails to agencies who do what we don’t. The goal: to develop a trusted partner network to whom we can pass non-Drupal business; and when XYZ agency hears “Drupal website” from one of their clients, they think of us.

A partnership campaign like this one goes beyond email blasts. There are SEO link building opportunities, event sponsorship opportunities, and prospecting opportunities. In particular, Acquia has been one of our greatest allies in this metaphorical high school test-taking scenario.

In this session, we will cover the symbiotic sales and marketing relationships we’ve developed with Acquia and our other Agency partners. You’ll learn:

  • How agency partnerships contribute to new business goals
  • When the time is right to bring partners into the sales process
  • How to leverage SEO when developing co-marketing content
  • How to host co-branded events that lead to closed business
  • Strategies to kick-start your partnership campaign  

 

How to write an RFP for a Drupal website project

Zach Ettelman and Nelson Harris

Writing an RFP can be a daunting task, especially for services as complex and difficult to wrap your head around as a full website redesign in Drupal. With our years of experience reviewing RFPs and writing proposal responses, we have developed a set of conventions that you can use to make sure you’re putting out the best RFP possible in order to attract the right type of agency respondents. 

Every attendee will even get a free RFP template to use!

 

You wouldn’t choose the cheapest brain surgeon: A case for de-commoditizing Drupal

Nelson Harris and Joe Flores

Dries said it himself: the future of Drupal is ambitious digital experiences. The power of building ambitious digital experiences comes with great responsibility. We owe it to ourselves, our users, our clients, and the community, to decommoditize Drupal development services.

Regardless of your tenure in the Drupal community, you’ve undoubtedly heard people talk about how “hard” Drupal is, and the steep learning curve it carries. 


The truth is, Drupal development can be complex and “difficult”. We argue that’s a good thing, and that Drupal development is not a commodity, but rather a highly critical procedure to be performed by the skilled expert, with an emphasis on not cutting corners. Drupal has evolved beyond its place among the Wordpresses and Squarespaces of the world. It’s too complicated for building basic marketing sites, and the effort to reward ratio for a site like that just isn’t worth it. That’s because Drupal’s effort to reward ratio sweet spot is with more complex sites. It’s meant for ambitious digital experiences. 


So why, then, do so many people try to cut corners and haggle on price when developing a Drupal website? These negotiation tactics are a practice that is reserved for commodities. You wouldn’t shop around for the best price on brain surgery. On the contrary - if someone offered you the “lowest price”, this would be cause for alarm and concern. This procedure is a massive investment and failure has massive repercussions. In this session, we argue that Drupal development is the same. 

 

Once Upon A Timeline: Effective Storytelling with Clients & Teams

Lily Berman

At one point or another, we’ve all struggled with effective communication, whether it’s gaining trust from your internal teams or being able to bond quickly with clients. This interactive workshop will share some tips, tricks and activities to leverage the power of storytelling, helping you navigate those conversations. You will leave not only with strategies, but also specific action items to apply to your real world projects, clients, and teams.

Please bring an example of how you generally introduce yourself, a project (past or current) that could benefit from a clear purpose, and a conflict (past or current) you would like to see in a new way. Attendees with learn the theory behind three storytelling strategies, then will be given the opportunity to apply them to real-world situations at their seat. Examples volunteered from the audience will be used to deepen understanding of the theory, so it becomes more actionable for everyone. All disciplines are welcome.

 

Mic Check! How Life as an Activist Prepared Me for a Drupal Agency

Lily Berman

The skills of an activist and the skills of a Drupal PM are less disparate than they may seem. Activists motivate and coordinate large groups of people, often with differing ideas, without the resources agencies possess. Before becoming a Drupal project manager, Lily Berman (among other similar endeavors) led a political canvass office and a traveling nonprofit organization. She has slept on the sidewalk with Occupy Denver, given a speech with a crowd-powered “mic check” microphone in front of the UN, and has been a spokesperson for her nonprofit on Nevada Public Radio and NBC Nightly News.

This presentation will share stories and insights from the road, along with revealing tools and concepts that will benefit anyone working in a team. Attend this session to:

  • Learn how to effectively navigate differing opinions while ensuring your perspective is communicated persuasively, via lessons from a canvasser (learned while knocking doors in politically-divided Cincinnati)
  • Facilitate large meetings with ease, via tools and roles activists use to efficiently reach consensus with every voice heard (learned while living consensus-based decision making)
  • Build stronger, motivating relationships and inspire action with your clients and internal teams, via strategies activists use to amplify community around their cause (learned while acting a spokesperson for a grassroots nonprofit organization)

 

How the NFPA Is Bringing Paper Processes Online With Drupal 8

Nick Switzer and Aron Anderson

Topics we’ll cover include:

  • Why Drupal 8 is the right platform for building complex web apps that need to scale.
  • Leveraging an agile philosophy to respond quickly to change, collaborate across disciplines and stakeholder groups and get to a working product in as little amount of time as possible.
  • Balancing effective deliverables with shared understanding to produce working software that meets the organization’s needs.
  • Organizational hurdles to overcome when adding structure and bringing an established paper application process online.

Attendees will leave this session with an understanding of why Drupal 8 is a good fit for a complex web app, examples of processes used to execute a Drupal 8 project on time and on budget and some real-life lessons learned through launching and continually updating a project with thousands of active users.

 

Configuration Management - The Right Way

Nick Switzer

Drupal 8 has drastically changed the way developers think and work in Drupal. The Configuration Management Initiative (CMI) is one of the most impactful additions to the Drupal developer’s workflow toolbox, and is often either taken for granted by experienced developers or skipped over by those who are unfamiliar. Despite being extremely powerful and relatively easy to use, successfully integrating CMI into a stable development workflow can be an intimidating task. In this session, we’ll cover everything from the basics of what CMI is and how it works to a step-by-step example of how to implement CMI in a stable, scalable workflow.

 

The Power of Honest and Empathetic Communication

Kathy Weisbrodt and Kylie Forcinito

As a small agency, we are always striving to be more efficient, and maximize our communication both internally and externally. How can we work smarter not harder, and spend more time focused on understanding our client’s business problem? We chose to be empathetic and listen to what’s not necessarily said out loud from both the relationship and business perspective.  We use honesty in our communication backed by facts and expertise.

Join Kylie Forcinito, an accomplished senior account manager and veteran of the agency world, and Kathy Weisbrodt, Account Director with over 10 years of agency experience, to learn how they came together to ensure communications to their clients and their internal agency teams are honest and empathetic, while also driving projects forward to meet timelines, budgets and business goals, in a positive and supportive team environment - all disciplines are welcome!

 

Lessons Learned: Component-Based Design with Paragraphs

Anthony Simone

The ideas of Atomic Design and component based design allow one to create an established structure within which a large scale front end project can be built. The CMS space hasn’t always been the most friendly toward implementing these types of patterns. Whether it’s difficulty in creating a content architecture that models your front end design system within Drupal or the feeling of lack of control over generated markup, sometimes it can feel like an uphill battle.

The Paragraphs module gives us the tools to create much more well defined and structured component based architectures upon which modular front end systems can be built. The Paragraphs module, however, comes with no rules. As a site architect and front end developer, you must decide how to implement Paragraphs. There is definitely a lot of room for flexibility in implementation, but there are many best practices that can be followed to allow for a very clean, scalable, and extendable front end design system to be built within Drupal 8.

 

Listening to Your Users: How to Ditch Assumptions in Favor of Real Data

Jill Farley and Lauren Motl

Too often we fall back on our gut instincts or client insights when it comes to understanding end users. But there is a tangible cost to making assumptions. Which is why initial research before launch and ongoing testing post launch is critical to optimizing the usability of a site. In this session, Elevated Third will show you how we leverage analytics, user interviews and testing on real projects. Our case studies reveal how making data-informed UX decisions will improve site performance.

In this session you’ll learn:

  • Where to begin with tracking analytics
  • When and how to set up different types of user tests, polls and surveys 
  • When and how you can run successful User Interviews
  • How to scale your user research strategy using combinations of these methods so that they work for different types of projects
  • Tips on working alone or with a team to synthesize data and uncover patterns
  • How to use those patterns to make data-informed UX decisions

 

Designers and Developers: The Power of Shared Skills and a Common Language

Lauren Motl

There’s a reason the term “unicorn” was coined for the person who is both a talented designer and coder—it takes a special person to be equally skilled at both. But that shouldn’t stop the rest of us from skill sharing and finding a common language. 

Digital Designers who strive to understand the technical constraints of the medium they design for, and Developers who seek to understand not only what they’re trying to build but why, will ultimately find better solutions and bigger wins.

In this session, you’ll learn:

  • Why approaching design and development as convergent disciplines fosters powerful collaboration within project teams.
  • How backing your design decisions with technical knowledge can help you create stronger UX solutions and open up design possibilities.
  • How empathy for the end user can help Developers implement better products and websites
  • Tips on taking a more convergent approach to design and development

 

Pimp my CKEditor: How to add and create custom CKEditor plugins for D8 sites

Aubrie Hill

Component design has been a huge leap forward for content editors, giving great flexility to what an editor can create with minimal knowledge of HTML. As site builders, we can combine components with WYSIWYG editors and expand on these tools to make specifically the WYSIWYG editor work harder for a content editor’s precise needs while providing specific markup to match designs. 

Drupal 8 has adopted a custom version of CKEditor to be its core WYSIWYG editor and this move requires that CKEditor plugins be integrated into a site using a module. Site builders can then use any of the extensive plugins that the CKEditor community has developed or roll their own custom plugin to fit their particular needs. By creating a module, we can also leverage other parts of the site to be dynamically included in the plugin providing a content editor with a superior editing experience. 

Leave this session understanding how to:

  • Build a module that integrates a basic CKEditor plugin
  • Define plugin’s CKEDITOR.config options
  • Create a custom CKEditor plugin that incorporates a taxonomy

 

Cryptic Command: How to ask for and provide clear estimates

Nelson Harris and Nick Switzer

Estimating a Drupal project can often feel like a combination of black magic and mind-reading, but, with the right team and approach it can be a great way to start a collaborative and open relationship with a product owner or stakeholder team. There is no single way to guarantee an accurate estimate, but a combination of collaboration, brainstorming and clearly stating assumptions has helped us build an estimating process that is efficient, open and reliable.

 

A Beautiful Composition: Managing Drupal 8 with Composer

Eric Schmidt 

Composer is a dependency manager for PHP that assists with downloading, validating, and loading a project’s dependent packages. With the release of Drupal 8, Composer is now fully supported in Core, making your workflow, and your life, much easier. This talk will focus on the fundamentals of Composer and how they relate to a Drupal project workflow, including: installation, command line use, & versioning. Additionally, I will demonstrate how Elevated Third sets up Composer in new Drupal 8 installs, and how it effortlessly manages core/module installation, updates, & patching.

 

Making Data Accessible: The Power of Clean, Insightful, Actionable Analytics.

Nate Gengler

Data and Analytics are powerful tools to help us understand the complex interactions between our web apps and our users. If used correctly they can help us strategize content, improve user experience, and drive conversions.

The difficulty lies in bridging the gap between merely having analytics and actively using analytics to draw actionable insights. For many admins, marketers, copywriters, and even strategists, making sense of this web of datapoints and relationships is intimidating. My talk will outline a few ways to break down these barriers to entry and make data more accessible.

Attendees should walk away from this session with a better understanding of:

  • Some common tools for measurement, reporting, and analysis (Google Analytics, Google Data Studio, Hotjar)
  • Why Drupal makes the perfect partner for these analytics tools
  • How to use dashboards to hone in on whats important, and prioritize a few specific site metrics
  • Common applications for data analysis
  • The importance of pairing/validating data with qualitative research

Interested in Drupal 8?

Download our whitepaper
Categories: Drupal

At GDC 2018, get a postmortem look at the Rocket League language ban

Social/Online Games - Gamasutra - 1 February 2018 - 9:10am

Come to GDC 2018 and hear, direct from Psyonix, how the language ban in its popular cross-platform car soccer game was designed, how it works, and what impact it had on the Rocket League community. ...

Categories: Game Theory & Design

Acro Media: Drupal Commerce 2: Set up a Product Variation Type with Custom Fields

Planet Drupal - 1 February 2018 - 8:22am

In part one and two of this Acro Media Tech Talk video series, we covered how you set up a new product attribute and used rendered fields, in Drupal Commerce 2. A product attribute is used to define options that customers would select when buying a product, such as colour. Rendered fields let the customer see the actual colour instead of just seeing the colour name.

The overall product in Drupal Commerce 2 consists of a product type, a product variation type, and product attributes. The product type defines the type of product that you're creating (i.e. hat). The product variation type is contained within the product type and defines the individual variations of the product, based on attributes (i.e. large blue hat).  In part three of this series, we'll move away from attributes and show you how you can configure your product variations type. A product variation type will always have a title, sku and price, but we'll take it a step further and add in some custom fields.

This entire video series, when complete, will show you how to set up a new product in Drupal Commerce 2, from start to finish. The video is captured using our Urban Hipster Commerce 2 demo site.

Next week we'll post part 4: Set up a Product Type with Custom Fields

Its important to note that this video was recorded before the official 2.0 release of Drupal Commerce and so you may see a few small differences between this video and the official release now available.

Urban Hipster Commerce 2 Demo site

This video was created using the Urban Hipster Commerce 2 demo site. We've built this site to show the adaptability of the Drupal 8, Commerce 2 platform. Most of what you see is out-of-the-box functionality combined with expert configuration and theming.

More from Acro Media Drupal modules used in this video

Categories: Drupal

Flocon de toile | Freelance Drupal: Prevent access to untranslated pages with Drupal 8

Planet Drupal - 1 February 2018 - 6:00am

It is not uncommon when a multilingual Drupal 8 project is implemented, that the pages translations are not ready at the time of production. If making a Drupal 8 multilingual site has become really easy to implement, there is now a fundamental difference with Drupal 7: it is impossible to disable a language. Either install a language, or delete it. This change is assumed, and voluntary, so as to not generate unnecessary complexity for questionable gain.

Categories: Drupal

An object at rest

Adventures in Interactive FIction - 17 May 2008 - 2:03pm

So obviously, the pendulum of progress stopped swinging on my game.  As much as I tried to prevent it, pressing obligations just wouldn’t take a back seat (nor would the burglars who, a few weeks ago, stole 90% of my wardrobe and who last week stole my monitor).  So after a string of hectic weekends and even crazier weeks, this weekend has been pretty wide open for doing whatever I want to do.  And not a moment too soon!

So after doing all the other things I try to do with my weekends, I finally loaded up the ol’ Inform 7 IDE and started working on my game.  To get me back in the swing of things, so to speak, I started reading through what I’d already written.  It was an interesting experience.

Strangely, what impressed me most was stuff I had done that I have since forgotten I learned how to do.  Silly little things, like actions I defined that actually worked, that had I tried to write them today, probably would have had me stumped for a while.  Go me!  Except, erm, I seem to have forgotten more than I’ve retained.

I also realized the importance of commenting my own code.  For instance, there’s this snippet:

A thing can be attached or unattached. A thing is usually unattached. A thing that is a part of something is attached.

The problem is, I have no idea why I put it in there – it doesn’t seem relevant to anything already in the game, so I can only imagine that I had some stroke of genius that told me I was going to need it “shortly” (I probably figured I’d be writing the code the next night).  So now, there’s that lonely little line, just waiting for its purpose.  I’m sure I’ll come across it some day; for now, I’ve stuck in a comment to remind myself to stick in a comment when I do remember.

It reminds me of all the writing I did when I was younger.  I was just bursting with creativity when I was a kid, constantly writing the first few pages of what I was sure was going to be a killer story.  And then I’d misplace the notebook or get sidetracked by something else, or do any of the million other things that my easily distracted self tends to do.  Some time later, I’d come across the notebook, read the stuff I’d written and think, “Wow, this is great stuff!  Now… where was I going with it?”  And I’d never remember, or I’d remember and re-forget.  Either way, in my mother’s attic there are piles and piles of notebooks with half-formed thoughts that teem with potential never to be fulfilled.

This situation – that of wanting to resume progress but fumbling to pick up the threads of where I left off –  has me scouring my memory for a term I read in Jack London’s Call of the Wild.  There was a part in the book where Buck’s owner (it’s late, his name has escaped me) has been challenged to some sort of competition to see if Buck can get the sled moving from a dead stop.  I seem to remember that the runners were frozen to the ground.  I thought the term was “fast break” or “break fast” or something to that effect, but diligent (does 45 seconds count as diligent?) searching has not confirmed this or provided me with the right term.  Anyway, that’s how it feels tonight – I feel as if I’m trying to heave a frozen sled free from its moorings.

The upside is, I am still pleased with what I have so far.  That’s good because it means I’m very likely to continue, rather than scrap it altogether and pretend that I’ll come up with a new idea tomorrow.  In the meantime, I’ll be looking for some SnoMelt and a trusty St. Bernard to get things moving again.

Categories:

Time enough (to write) at last…

Adventures in Interactive FIction - 14 April 2008 - 3:24pm

So I didn’t get as much coding done over the weekend as I had hoped, mainly because the telephone company *finally* installed my DSL line, which meant I was up til 5:30 Saturday am catching up on the new episodes of Lost.  That, in turn, meant that most of the weekend was spent wishing I hadn’t stayed up until such an ungodly hour, and concentration just wasn’t in the cards.

However, I did get some stuff done, which is good.  Even the tiniest bit of progress counts as momentum, which is crucial for me.  If the pendulum stops swinging, it will be very hard for me to get it moving again.

So the other day, as I was going over the blog (which really is as much a tool for me as it is a way for me to share my thoughts with others), I realized I had overlooked a very basic thing when coding the whole “automatically return the frog to the fuschia” bit…

As the code stood, if the player managed to carry the frog to another room before searching it, the frog would get magically returned to the fuschia.  This was fairly simple to resolve, in the end – I just coded it so that the game moves (and reports) the frog back to fuschia before leaving the room.  I also decided to add in a different way of getting the key out of the frog – in essence, rewarding different approaches to the same problem with success.

Which brings me to the main thrust of today’s post.  I have such exacting standards for the games I play.  I love thorough implementation.  My favorite games are those that build me a cool gameworld and let me tinker and explore, poking at the shadows and pulling on the edges to see how well it holds up.  A sign of a good game is one that I will reopen not to actually play through again, but to just wander around the world, taking in my surroundings.  I’ve long lamented the fact that relatively few games make this a rewarding experience – even in the best games, even slight digging tends to turn up empty, unimplemented spots.

What I am coming to appreciate is just how much work is involved in the kind of implementation I look for.  Every time I pass through a room’s description, or add in scenery objects, I realize just how easy it is to find things to drill down into.  Where there’s a hanging plant, there’s a pot, dirt, leaves, stems, wires to hang from, hooks to hang on, etc.  Obviously, unless I had all the time in the world, I couldn’t implement each of these separately, so I take what I believe to be the accepted approach and have all of the refer to the same thing.  Which, in my opinion, is fine.  I don’t mind if a game has the same responses for the stems as it does for the plant as a whole, as long as it has some sort of relevant response.  Even so, this takes a lot of work.  It might be the obsessive part of me, but I can’t help but think “What else would a person think of when looking at a hanging plant?”

Or, as I’ve come to think of it:  WWBTD?

What Would Beta Testers Do?

I’ve taken to looking at a “fully” implemented room and wondering what a player might reasonably (and in some cases unreasonably) be expected to do.  This is a bit of a challenging process for me – I already know how my mind works, so trying to step outside of my viewpoint and see it from a blind eye is hard.   I should stop for a second to note that I fully intend to have my game beta tested once it reaches that point, but the fewer obvious things there are for testers to trip over, the more time and energy they’ll have for really digging in and trying to expose the weaknesses I can’t think of.

I’ve found one resource that is both entertaining and highly informative to me:  ClubFloyd transcripts.  ClubFloyd, for the uninitiated (a group among which I count myself, of course) is a sort of cooperative gaming experience — if anyone who knows better reads this and cares to correct what may well be a horrible description, by all means!– where people get together on the IFMud and play through an IF title.  The transcripts are both amusing and revealing.  I recently read the Lost Pig transcript and it was quite interesting.  The things people will attempt to do are both astonishing and eye-opening.  In the case of Lost Pig (which, fortunately, I had already played before reading the transcript), what was even more amazing was the depth of the game itself.  I mean, people were doing some crazy ass stuff – eating the pole, lighting pants on fire, and so on.  And it *worked*.  Not only did it work, it was reversible.  You obviously need the pole, so there’s a way to get it back if, in a fit of orc-like passion, you decide to shove it in down Grunk’s throat.

Anyway, my point is, the transcripts gave me a unique perspective on the things people will try, whether in an effort to actually play the game, to amuse themselves, or to amuse others.  Definitely good stuff to keep in mind when trying to decide, say, the different ways people will try to interact with my little porcelain frog.

Other Stuff I Accomplished

So I coded in an alternate way to deal with the frog that didn’t conflict with the “standard” approach.  I also implemented a few more scenery objects.  Over the course of the next few days, I’m going to try to at least finish the descriptions of the remaining rooms so that I can wander around a bit and start really getting to the meat of it all.  I also want to work on revising the intro text a bit.  In an effort to avoid the infodumps that I so passionately hate, I think I went a little too far and came away with something a bit too terse and uninformative.  But that’s the really fun part of all of this – writing and re-writing, polishing the prose and making it all come together.

Whattaya know.  Midnight again.  I think I’m picking up on a trend here.

Categories:

Pages

Subscribe to As If Productions aggregator