Creating text-based adventure games using Drupal and Slack

franksj

In the 80s and early 90s, I played a lot of text-based games - single-player like Zork and Colossal Caves, and multi-player online games on BBSs like Kyandia and Infinity Complex. I created an engine for using Drupal to author and play these games, using Slack as the player interface.

 

Learning Objectives

Applying these behaviors in your own applications doesn't need to be for something quite so nerdy as re-living those days. You'll learn how to:

  • Create a custom plugin manager and support custom plugins and annotations
  • Dynamically load and execute plugins based on user input
  • Create and subscribe to custom events
  • Use migrate to import data into the site in multiple stages
  • Create a custom migrate source to handle loading data from ancient source files, such as Galaticomm MSG files and ZIL (Zork Implementation Language) files.
  • Create a Slack application and point it at your site
  • Respond to incoming Slack slash commands, incoming webhooks, and events
  • Send messages to channels or users in Slack

Target Audience

This talk is for people who are interested in Drupal module development and Slack integration, but don't know where to start, people who find it helpful to learn from functional projects, or people who have struggled with the intricacies of creating complex Drupal-based infrastructures with an eye towards re-use and extensability.

...Or, people who just want to play a mostly-functional multi-player Zork game (jade key not included).

Prerequisites

Attendees will be more or less familiar with Drupal 8 module construction and the general Drupal infrastructure, like controllers, plugins, and services.

Track

Development & Coding

Tags

apis
back-end development
migration
php

Experience Level

Intermediate

When & Where

Time: 
Thursday, 16 July, 2020 - 23:15 to Friday, 17 July, 2020 - 00:00
Room: 
Hopin Sessions

If no timezone is set on your profile, time is displayed in UTC.
Update your profile's timezone