GithubHelp home page GithubHelp logo

gameontext / gameon Goto Github PK

View Code? Open in Web Editor NEW
58.0 7.0 37.0 747 KB

The root repository provides mechanics to set up a local environment for building and testing rooms.

Home Page: http://gameontext.org

License: Apache License 2.0

Shell 95.02% Dockerfile 2.78% Mustache 2.19%
docker-compose kubernetes microservices adventure gameontext hacktoberfest

gameon's People

Contributors

anthonyamanse avatar bardweller avatar benjsmi avatar billyd73 avatar ebullient avatar github-actions[bot] avatar iainduncani avatar katheris avatar marknsweep avatar osowski avatar samze avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

gameon's Issues

Error running go-platform-services.sh start

When I run go-platform-services.sh start from Linux I get this:

iain@iain-UbuntuVirtualBox:~/git/gameon_new$ ./go-platform-services.sh start
+++ dirname ./go-platform-services.sh
++ cd .
++ pwd
+ SCRIPTDIR=/home/iain/git/gameon_new
+ '[' start == start ']'
+ echo 'starting platform services (kafka, ELK stack, couchdb, a8 controller,registry,gateway)'
starting platform services (kafka, ELK stack, couchdb, a8 controller,registry,gateway)
+ docker-compose -f /home/iain/git/gameon_new/platformservices.yml up -d
Starting registry
Starting couchdb
Starting elasticsearch
Starting kibana
Creating kafka
Starting logstash

ERROR: for kafka  Conflict. The name "/kafka" is already in use by container 35ed77cc8fc3d87a0cfadfa68d46542cf30588f32bd34212520a6a7574ed9a62. You have to remove (or rename) that container to be able to reuse that name.
+ echo 'waiting for the platform to initialize..'
waiting for the platform to initialize..
+ sleep 60
+ NAME=empty
+ IP=127.0.0.1
+ '[' empty = empty ']'
+ echo 'DOCKER_MACHINE_NAME is not set. If you don'\''t use docker-machine, you can ignore this, or export DOCKER_MACHINE_NAME='\'''\'''
DOCKER_MACHINE_NAME is not set. If you don't use docker-machine, you can ignore this, or export DOCKER_MACHINE_NAME=''
++ docker inspect -f '{{.NetworkSettings.IPAddress}}' registry
+ AR=172.17.0.3:8080
+ AC=127.0.0.1:31200
++ docker inspect -f '{{.NetworkSettings.IPAddress}}' kafka
+ KA=:9092
+ echo 'Setting up a new tenant named '\''local'\'''
Setting up a new tenant named 'local'
+ read -d '' tenant
+ curl -H 'Content-Type: application/json' -H 'Authorization: local' -d @- http://127.0.0.1:31200/v1/tenants
+ echo '{' '"credentials":' '{' '"kafka":' '{' '"brokers":' '[":9092"],' '"sasl":' false '},' '"registry":' '{' '"url":' '"http://172.17.0.3:8080",' '"token":' '"local"' '}' '}' '}'
curl: (7) Failed to connect to 127.0.0.1 port 31200: Connection refused

It looks like there is already an existing container that is named Kafka. However, it is not clear from the output what to do about this, I think it would be good to:

  1. Stop the script when the Kafka conflict is detected as currently it looks like a connection refused error even though it is probably caused by the Kafka container error
  2. Give advice on how to rename this container. Is it a docker container that it is talking about? Doing docker ps -a lists a bunch of containers that use a different format for their IDs

Facebook auth fails

Was expecting a query string of the form 'access_token=XXX' or 'access_token=XXX&expires=YYY'

It looks like the query string is actually in the form:

'access_token:XXX&token_type:XXX&expires_in:XXX'

Ungitbookify gitbook

Gitbook build is acting unreliably on gitbook.com.
Create a pipeline & hosting solution to build & host it ourselves within an ICS routed group.

Kafka, Mediator, Player Latency?

We're not sure if our room transition issues are due to platform, or the way we do our kafka push..
It may have been fixed by an env var / setupsh / server xml change..
if not.. we may need to invert the way we do kafka updates

JavaOne session presentation

Just a marker for presentation for this session:

Game On! Exploring Microservices with a Text-Based Adventure Game [CON1559]
Erin Schnabel, Senior Software Engineer, IBM
Creating a single microservice is easy, as walkthroughs everywhere show. See? Add a few annotations, invoke this command to build it, and you have a running microservice! Ta-da! But what happens next? Game On! is an interactive text adventure written as a collection of microservices to help people answer that very question. This session covers how the speaker and her colleagues used service composition and discovery, API definition and versioning, security (authentication, authorization, and identity propagation), the 12 factors, and a combination of lightweight protocols to build the game. The presentation also discusses what they learned from building it and from others extending it.
Conference Session
Thursday, Sep 22, 2:30 p.m. - 3:30 p.m. | Parc 55 - Embarcadero

No parameters on command hints in "help"

When typing "/help" I can see a list of possible commands - some of these such as /look don't require additional parameters, but some do. It would be helpful if /help also listed optional/required parameters for each of the commands.

It would also be additionally useful if I entered a command which requires an additional parameter that it would tell me that an extra parameter is required - if I type "/examine" I get the error "I'm sorry, but I'm not sure how I'm supposed to examine" - it would be great if the error said "I'm sorry I don't know how to examine nothing - try /examine to examine an object" or something like that - would make it easier to understand why a command didn't work.

Not clear when a room is down

After wondering why I had encountered 3 rooms all seeming to be themed around an unwell person it's now appearing that "the room is unwell" themed messages are indicating that a room is actually down? It's not clear if that's the case, as the first couple of rooms that gave those messages had me trying to interact with them and try to solve some sort of puzzle that wasn't there.

Update etcd image for ics

ICS is using a different etcd to SL, the etcd image info in the root repo is the SL information.

If we are migrating away from SL with the aim of shutting down SL, we need to update the etcd image info in the root repo to be based around the ICS etcd instructions (currently held privately in Box).

If we plan to keep SL as a secondary hosting env, then we should split the etcd stuff in root to make it clear which hosting env each etcd is destined for.

Clean up scripts to use CONTAINER_NAME

our startup/launch script contained some code to "move" the server's directory to one with a new name to assist with unique log records with the logCollector feature. That hasn't been needed for awhile now, but we never went back and removed the cruft.

Go forth. Remove the cruft.

Check etcdctl return codes

If the etcd container bounces during a container come up, we may have etcdctl commands fail. We should wrap these in a function in the scripts so that a failure to get the returned values results in the container not coming up, or at least notifying us of issues, rather than coming up with potentially corrupted config.

Reset to FirstRoom after deleted room doesn't persist

If I was in a room (persisted) that was subsequently deleted, we correctly detect that the room doesn't exist and send a rescue to first room.. but we don't then persist THAT change. Leaving the player in an endless limbo of nowhereness

News room

Representation of a news room for publishing/displaying game updates

A) News Items:
-- news blurb
-- twitter digest (140 characters less "#news " hashtag)
-- date
-- author / poster (or treat all as game news, and not a blog, also good)

B) REST API for adding/retrieving news items
-- POST news (see A), results in further NodeRED push of news digest to twitter
(link back to news item)

C) WebSocket endpoint (room impl) to display news within the game
-- commands to view newspaper, notice board, ... something

D) WebFrontEnd for news (creating and displaying)

Verify description handling

Room description can be entered via the web ui, via the reg util, and can be overridden / sent by the room as part of location response.. if the description is omitted from the location response, verify the mediator/web ui defaults back to using the one stored in map.

Error running go-platform-services.sh start from Windows

Using Docker Quickstart Terminal to run the build scripts I was able to run go-setup.sh to successfully but then running go-platform-services.sh start I get the following error:

$ ./go-platform-services.sh start
+++ dirname ./go-platform-services.sh
++ cd .
++ pwd
+ SCRIPTDIR=/c/Users/IBM_ADMIN/git/gameon_no_recurse
+ '[' start == start ']'
+ echo 'starting platform services (kafka, ELK stack, couchdb, a8 controller,reg
istry,gateway)'
starting platform services (kafka, ELK stack, couchdb, a8 controller,registry,ga
teway)
+ docker-compose -f /c/Users/IBM_ADMIN/git/gameon_no_recurse/platformservices.ym
l up -d
Creating couchdb
Creating elasticsearch
Creating registry
Creating kafka
Creating logstash
Creating kibana
Creating controller
Creating gateway

ERROR: for gateway  HTTPSConnectionPool(host='192.168.99.100', port=2376): Read
timed out. (read timeout=60)
←[31mERROR←[0m: An HTTP request took too long to complete. Retry with --verbose
to obtain debug information.
If you encounter this issue regularly because of slow network conditions, consid
er setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 60).
+ echo 'waiting for the platform to initialize..'
waiting for the platform to initialize..
+ sleep 60
+ NAME=default
+ IP=127.0.0.1
+ '[' default = empty ']'
+ '[' -n default ']'
++ docker-machine ip default
+ IP=192.168.99.100
+ rc=0
+ '[' 0 '!=' 0 ']'
+ '[' -z tcp://192.168.99.100:2376 ']'
++ docker inspect -f '{{.NetworkSettings.IPAddress}}' registry
++ MSYS_NO_PATHCONV=1
++ docker.exe inspect -f '{{.NetworkSettings.IPAddress}}' registry
+ AR=172.17.0.4:8080
+ AC=192.168.99.100:31200
++ docker inspect -f '{{.NetworkSettings.IPAddress}}' kafka
++ MSYS_NO_PATHCONV=1
++ docker.exe inspect -f '{{.NetworkSettings.IPAddress}}' kafka
+ KA=172.17.0.5:9092
+ echo 'Setting up a new tenant named '\''local'\'''
Setting up a new tenant named 'local'
+ read -d '' tenant
+ echo '{' '"credentials":' '{' '"kafka":' '{' '"brokers":' '["172.17.0.5:9092"]
,' '"sasl":' false '},' '"registry":' '{' '"url":' '"http://172.17.0.4:8080",' '
"token":' '"local"' '}' '}' '}'
+ curl -H 'Content-Type: application/json' -H 'Authorization: local' -d @- http:
//192.168.99.100:31200/v1/tenants
{"error":"unknown_availability_error","description":"unknown_availability_error"
}

Registration: Associate created room with contest

/teleport JavaOne2016 (room id or name)
/listmyrooms (borrowed from FirstRoom, command more or less the same via room API)
/register RoomName (associate my room with the JavaOne2016 event)

Implementation should not be JavaOne specific (i.e. the name of the event should be an env var)

WebSocket / room interactions

REST API for listing registered rooms

Once logged in the aim of the game isn't stated anywhere

Once I've logged into game on it isn't entirely clear on what I as a user am meant to do. Having a message along the lines of "the aim of the game is to move between rooms and interact with them" would make it clearer exactly what the aim is. That could also introduce commands like /go .

What's the difference between "examine" and "look"?

Why is there the "look" command for looking at the contents of a room, and an "examine" command for looking at given objects? Surely "/examine room" should do the same as "/look" and "/look object" should do the same as "/examine object" - there doesn't seem to be much distinction on why one command only works for some objects and not others (looking at a room as an object).

Migrate system to k8s + istio

  • Move root repo updates into travis builds
  • Build linkage:
    • Automatic Docker build for base liberty image
    • Scripts for starting/stopping system for k8s + istio
    • Webhook to trigger Travis builds for dependent images

Progress but had to do "docker-compose pull" and had issue with Google authentication

Changes that were made to remove kafkaviewer allowed for further progress but then other things cropped up

  1. $ docker-compose build -- does not work... cmd finishes almost immediately with lots of "skipping" messages (e.g. player uses an image, skipping)
  2. I thought above issue related to docker-compose.yml file specifying image rather than build (e.g. image: gameontext/gameon-player
  3. so... I ran $ docker-compose pull
  4. result... many, many minutes of image downloads
  5. then ran $ docker-compose up and system appeared to be running
  6. since my docker machine URL = 192.168.99.100 I ran following in browser with success: 192.168.99.100/#/... hooray
  7. in this Gameon UI I clicked "Enter" and selected Google for authentication but that's when my luck ran out... result was the following browser error message:

Error 404: javax.servlet.UnavailableException: SRVE0319E: For the [net.wasdev.gameon.auth.google.GoogleAuth] servlet, net.wasdev.gameon.auth.google.GoogleAuth servlet class was found, but a resource injection failure has occurred. CWNEN0030E: The server was unable to obtain an object instance for the java:comp/env/net.wasdev.gameon.auth.google.GoogleAuth/key reference. The exception message was: CWNEN1003E: The server was unable to find the googleOAuthConsumerKey binding with the java.lang.String type for the java:comp/env/net.wasdev.gameon.auth.google.GoogleAuth/key reference.

Messages from rooms can break page width

Some rooms have sent messages that added a horizontal scroll bar for the room content iframe in my browser - this would be ok if it didn't mean I was going forward/back through page history in my browser when trying to scroll left/right to read the contents of the message. This is on a mac where the gesture for scroll left/right is the same as go forward/back a page.

Have added a screenshot of what it looks like, including some of the room info so you can see which room it was.
screen shot 2016-10-18 at 16 12 18

Player -- privacy statement

Player should be saving names and emails in the backing store so we can contact ppl if/when things go awry.

Privacy policy statement (link to Ts & Cs)

docker-compose.yml references kafkaviewer/kafkaviewer-wlpcfg which is missing

  • Following instructions in README.md.
  • Successfully ran ./build.sh
  • But problems with docker-compose build
  • Specific error message... ERROR: build path /Users/curtinmjc/Git/gameon/kafkaviewer/kafkaviewer-wlpcfg either does not exist, is not accessible, or is not a valid URL.
  • kafkaviewer is referenced in docker-compose.yml as result of recent commit but is missing from repo

Are commands case sensitive or not?

There's inconsistency on if commands are case sensitive or not - I can have whatever case of "/examine" and that part of a command will work fine. If I try and "/eXamInE jukebox" in a room with a "Jukebox" then the command will fail, because despite the lack of case sensitivity on the command there is case sensitivity on the objects. Surely sanitising input text to always be lower case would effectively enforce case insensitive interaction with rooms?

Otherwise somewhere needs to warn the user that although the commands are case insensitive the parameters for commands are case sensitive.

Increase ICS quota

We have run out of space for Game On! images in ICS and need to have the quota increased.

Failed GitHub login

hawkmoonv (@HawkmoonV) reported (and I confirmed):

Error when trying to log in via Github
As of today 02/23/18, I am receiving the following error when attempting to login via Github: Error 500: javax.net.ssl.SSLException: Reveived fatal alert: protocol_version

Logging in via google appears to still work correctly as well as via Facebook. I believe this would need to be resolved on your end, Gitbook...

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.