Code Monkey home page Code Monkey logo

nddb's Introduction

nodeGame

Fast, scalable JavaScript for large-scale, online, multiplayer, real-time games and experiments.


The Good parts

  • Open source and open standard (HTML5)
  • Modular framework (server / client / window / widgets / games)
  • Low / medium level of programming required
  • Powerful API
  • Integrated NDDB Javascript database
  • Server can run multiple games at the same time
  • Powerful and customizible waiting rooms
  • Monitor interface
  • Works on mobile devices and tablets
  • Bots (for playing) and Phantoms (for testing)
  • Installation is required only for the server, clients just need their browser windows
  • Integrates smoothly with other libraries (e.g. jQuery, D3.js, etc.) and web services, such as Amazon Mechanical Turk

Quick Start

nodeGame comes with a default game taken from the academic literature of game theory. It is called the Ultimatum game. To play it follows the steps:

  1. Download the latest version of node.js for your platform
  2. Download the latest version of git for your platform
  3. Download installer, and install nodegame: node nodegame-installer
  4. Enter installation directory.
  5. Start the server with the command: node launcher.js
  6. Open one tab pointing to localhost:8080
  7. Select Ultimatum game
  8. Open more tabs, or start a bot through the waiting room interface
  9. Check the monitor interface at localhost:8080/ultimatum/monitor

Documentation

Complete documentation is available in the nodeGame wiki.

License

MIT

nddb's People

Contributors

jdoerrie avatar mortonfox avatar philippkueng avatar polylabs avatar shakty avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

nddb's Issues

Retrieve the JSON data

@shakty Is there a way to retrieve the JSON data from the NDDB.db() object? This is not a deal breaker but I'm assuming this data is stored in memory when the NDDB object is created and I'd prefer to access it from memory versus reading the source json file. Again this is not a deal breaker but a nice to have for efficiency in my case. Please let me know if that is possible.

Thanks for your help so far!! Really appreciate it!

Security warnings

@shakty I'm seeing the following and I was wondering if this is normal. Concerned about security here if there are perhaps alternate libraries that can be used to avoid vulernabilities. Seems like it's a NDDB dependency to use uglify?

uglify-js <=2.5.0
Severity: critical
Incorrect Handling of Non-Boolean Comparisons During Minification in uglify-js - GHSA-34r7-q49f-h37c
Regular Expression Denial of Service in uglify-js - GHSA-c9f4-xj24-8jqx
fix available via npm audit fix --force
Will install [email protected], which is a breaking change
node_modules/uglify-js
smoosh >=0.4.0
Depends on vulnerable versions of uglify-js
node_modules/smoosh
JSUS >=0.6.3
Depends on vulnerable versions of smoosh
node_modules/JSUS
NDDB >=0.4.3
Depends on vulnerable versions of JSUS
Depends on vulnerable versions of smoosh
node_modules/NDDB
shelf.js >=0.3.7
Depends on vulnerable versions of smoosh
node_modules/shelf.js

5 critical severity vulnerabilities

Null not correctly reprsented in JSON output

If, in nodeGame, I do

node.game.memory.add({player: node.player.id, stage: node.player.stage, data: { "foo": null }});
node.game.memory.save("data.json");

I get

​{
"player": "681934395222262",
"stage": {
"stage": 2,
"step": 1,
"round": 1
},
"data": {
"foo": "!?_null"
},
"timestamp": 1516569132070
}​

where instead I would have expected something like

​{
"player": "681934395222262",
"stage": {
"stage": 2,
"step": 1,
"round": 1
},
"data": {
"foo": null
},
"timestamp": 1516569132070
}​

How to update a value?

Hi, I need some help since the documentation doesn't seem to mention this. How does one edit/update a value with the database?
Super confused and currently super critical for me to continue working with this library, please let me know, thanks!

I've tried intelisense but there's no suggestion in VSCODE, tried to look at the source code as well but couldn't search to find an update function.

Filter on every dimensions

An option to make something like NDDB.selectAll('test', '==') that would go through all the dimensions of the db, and check if it matches with the value in agreement with the operator.

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.