Coder Social home page Coder Social logo

njmcode / ggj-2018 Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 0.0 2.18 MB

Source code for The Reuben Sandwich's GGJ2018 ('Transmission') entry, 'ISeekU'.

Home Page: https://njmcode.github.io/ggj-2018

JavaScript 71.23% CSS 11.28% HTML 9.68% Shell 7.80%

ggj-2018's Introduction

ggj-2018

ISeekU - Global Game Jam 2018 - 'Transmission'

https://globalgamejam.org/2018/games/i-seek-u

https://github.com/njmcode/ggj-2018

Quick start

  • Install Node and npm.
  • Clone the repo and run npm install.
  • Run npm start.
  • Visit localhost:8080 to play.

npm scripts

  • start - serves via webpack-dev-server on port 8080, watching for changes.
  • build - outputs a production build to /dist.
  • testserve - runs a build and starts a Node server on port 3000 - useful for ngrok etc.

Custom game data

It is possible to customize certain aspects of the game via a custom URL. If the game finds a URL hash beginning with #custom: when it first loads, it will attempt to parse everything after the : as a base64-encoded resource URL. It will then attempt to XHR fetch that URL and decode it as JSON - if successful, it will use the JSON data in place of the default iamges, payloads and passcodes.

It is also optionally possible to specify custom colors for the majority of the UI elements in the game.

The JSON file should be in the following format:

{
  "meta": {
    "title": "Custom game title",
    "author": "Your name"
  },
  "images": [
    {
      "idx": "0",
      "url": "https://some-url.com/1.jpg",  // absolute URL to a publicly-hosted image
      "payload": "Some payload data", // Can be anything
      "passcode": "45367669" // Any unique code number
    },
    ... // must define at least 5 images
  ],
  "skin": {
    // Key-value pairs for app colors that you wish to override.
    // Defaults will be used for any not specified here.
    // Full list is available in src/shared/skinvars.css
    // Use the variable names without the leading -- e.g.
    "app-title-bg": "red",
    "app-title-text": "yellow",
    "chat-msg-1": "purple",
    "chat-msg-2": "cyan",
    // ...etc.
  }
}

ggj-2018's People

Contributors

njmcode avatar reuben-bradley avatar

Watchers

James Cloos avatar  avatar  avatar

ggj-2018's Issues

Can out-run messages for first photo/packet send

Steps to replicate:

  • Start a new Story Mode game and proceed to the reveal of the Media tab.
  • Open the first image in the Media tab and enter its passcode.
  • Immediately hit Send on the packet screen.

What happens:

  • The 'Perfect Agent 045, now please send us the information packet to us...' message displays after a delay. The subsequent message acknowledging the packet send is not there.

What should happen:

  • The message acknowledging the packet send should appear once the player hits Send, even if they were quick enough to beat the initial 'passcode entered' message.

This doesn't appear to sequence-break anything (TBC), but is a bit disconcerting. Possible steps to mitigate:

  • Send the 'Perfect Agent 045 message' the instant the passcode is entered.
  • Add a delay (with theatrics) between entering the passcode and displaying the packet, during which time the first message can land.
  • Implement a 'critical message' mechanic that disables all user input in the app until the message in question is acknowledged.

Can put narrative out of sync once two chats are available

Steps to replicate:

  • Proceed through the narrative until you have ChatA and ChatB open.
  • Continue until you get the 'What was that?' question from ChatA.
  • Do not answer by picking the 'What do you mean?' option. Instead, proceed to unlock the next item in the Media tab.
  • Wait for the joint conversation to start in ChatB - the 'So, here you are' thread.
  • Do not pick an answer between 'You're damn right!' and 'I don't think so'.
  • Switch to ChatA.

What happens:

  • ChatA is still paused on the 'what was that?' question, waiting for the 'What do you mean?' response from the player.
  • If you pick 'What do you mean?', ChatA proceeds with the 'I picked up an odd signal' thread despite the joint conversation ongoing in ChatB.
  • In the subsequent choice in ChatA to either mention Agent Smith or keep it a secret, choosing either option will trigger further messages from ChatB regarding 'acting as normal' etc, despite the ongoing joint chat happening there.

What should happen:

  • Certain chat threads/chapters should be 'critical' i.e. should prevent any other game actions from being taken they are completed. This would prevent the player from unlocking more images without first completing the 'what was that?' thread in ChatA.
  • The same goes for the 'So, here you are' thread, and others later in the game that might diverge the narrative.

Suggestions to mitigate:

  • Allow game script messages to set flags for 'locking/unlocking' the game to a specific chat thread.
  • If the game is 'locked' to a chat, all other tabs will be disabled/greyed out, and the relevant chat tab will be notified/flashed.
  • At the end of the chat thread, the last message should 'unlock' the game so that other tabs can be used.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.