X Million Monkeys is a massively multiplayer online creative writing game, created in less than 48 hours during the HTML5 Game Jam back in july 2014 by @AlexisMoroz (game design) and @ClementBourgoin (code). The game jam theme was "Once Upon A Time".
Demo: https://xmm.clemlatz.dev/
Attach MySQL database with --env DB=mysql://user:pass@host/base
or with a .env
file.
docker run -d -p 3300:8080 \
--env-file=.env \
--restart=unless-stopped \
--name xmm \
iwazaru/x-million-monkeys
- Install node & yarn
- Install npm & bower dependencies:
yarn
- Start app:
PORT=3000 DB=mysql://user:pass@host/base yarn start
docker build -t iwazaru/x-million-monkeys:latest .
- Updated sequelize dependency to fix security vulnerabilty
- Updated socket.io dependency to fix security vulnerability
- Updated sequelize dependency to fix security issue
- Fix installing bower dependencies in docker image
- Updated sequelize dependency to fix security flaw
- Allowed to run in a Docker container
- Allowed to use any MySQL database
- Fixed non-capitalized table name in SQL query
- Fixed getting ordered pages (Sequelize v5 breaking change)
- Removed unused dependencies
- Upgraded outdated dependencies
- Fixed navigating pages
- Upgraded dependencies to fix multiple security flaws
- Added link to GitHub repository
- added ClearDB MySQL support
- route to oldest page by default
- various bug fixes and memory optimizations
- new router rule: create a new page if all are crowded (>= 4 monkeys)
- disabled touch navigation on non-touch devices
- fixed share on twitter box
- revamped database transaction
- revamped config management
- added postgresql support
- added bower support
- fixed monkey count in log
- comma bug fixed
- node.js revamp
- negative word count bug fixed
- removed ponctuation characters from random theme
- 5-letters or more words for random theme
- plurals
- character to stick input to the previous one
- random page theme generator
- admin commands (reload, theme, broadcast)
- server-crashing bug fix
- various bug fixes
- real time input preview
- added ‘.fr’, ‘.com’ & ‘.net’ to forbiddent input list
- page -1 bug fixed
- monkey is not destroyed on client disconnection if there is still monkeys for this client
- scroll to input when changing page
- added swipe threshold
- key stroke sound now only plays for current page update
- getting « too slow » for other pages update fixed
- home button fix
- better alerts
- smartphone width fixed
- iOS sound fixed
- touch devices : swipe to change page
- « Page 7 » server bug workaround for the client
- « Everyone keeps writing on my page » bug fix
- websocket (real-time updates)
- new invite/tutorial
- input history fix (again)
- input history fix
- input history
- b&w Twitter & Facebook logo
- Twitter logo links to #xmm tweets
- new tweet model
- iphone bottom margin fixed
- gzip compression
- Facebook button fix
- Facebook button fix
- Facebook button
- Twitter icon
- highlight system
- share on Twitter
- browser wide-highlight bug fixed
- new forbidden character : ^
- new router rules
- new duplicate protection
- text selection bug
- do not add space before characters . , and -
- do not add space and character before character _
- forbidden characters : /|@#[]{} http www
- new server
- navigation quickfix
- navigation shortcut : Ctrl+H (home page)
- page change bug fixed
- shorts tooltip
- in-page logo with link to homepage
- 30 characters limit and spaces allowed
- total player count in title and footer
- navigation shortcut : Ctrl+J (previous page) / Ctrl+K (next page)
- ajax navigation
- new router rules
- page stats fade in when filled
- server stats
- page navigation
- open graph elements
- pages system and router
- dynamic favicon
- cosmetic adjustments
- scroll to page bottom on load
- pull interval maximum to 5 second
- correct font for input field
- fade to black top and bottom
- not updated text (span) bug fix
- update mechanism
- 34 character limit
- break-word
- accents fixed
- apostrophe fixed
- various bug fixes
- change word / letter mode
- word mode
- touch here to write
- messages d’erreurs intégré
- géré la perte de connexion
- autocapitalisation off (iOS)
- curseur clignotant rouge
- viré le « are » et remplacer par text, centré
- sons intégrés