neotenic / protobowl Goto Github PK
View Code? Open in Web Editor NEWreal time multiplayer quizbowl
Home Page: http://protobowl.com/hsquizbowl
License: Other
real time multiplayer quizbowl
Home Page: http://protobowl.com/hsquizbowl
License: Other
Probably with JQuery mobile and phonegap for the iphone/android app
.answer {
visibility: visible !important;
}
This has some problems in that it could lead to cheating and such so we would have to implement measure to prevent that from occurring.
I just realized that it's pretty useless to have the less in static because it's pretty much useless there. We could then omit the client folder from server deploys, which would reduce the actual code size about 50% by saving about half a megabyte.
The two options then are to have a top-level css folder or a subfolder of client. Since Ben's fork uses views as a sub-folder for html-style content, it might be a good idea to put less under client (or even possibly server) for that metaphorical symmetry server-html (content), client-css (display). But you could also say server-(html-css) because they do kind of go hand in hand, and then you can have shared and client both entirely code.
One cool thing about the design is that every client is fully capable of behaving as a fully functional server. We're using this for offline, but it could be much more than that and do offline multiplayer.
In the near future we'll have WebRTC and serverless peer to peer connectivity, for low-latency Protobowl lan-parties. We can have a twenty-line p2p simulator running on any platform, Google App Engine, Azure, AWS, JVM, etc and use those as seamless fallbacks whenever the server does go down.
This doesn't actually have much in terms of practical application, but it's certainly technically interesting, and might help with our technical-audience pitch.
The main problem is with no trust mediator. If each client is by definition the same, which one will run the server code and which ones will self-subordinate to their natural state (cf. " Is not this simpler? Is this not your natural state? It's the unspoken truth of humanity, that you crave subjugation.").
So serverless multiplayer implies one of two approaches (there may be more, but I haven't thought of them yet)
The first is to retain the client-server architecture, but to have one client elevated to godhood, and all the other clients defer to his almighty reign. The problem is of course in picking which player to give such a status, and in handling an untimely death (however, this may be a non-issue since serverless multiplayer is designed itself as a fallback system, and should automatically be able to transition in advent of a coup d'etat).
The second option is to have each server activated, acting essentially in a synchronized offline mode. The problem here that arises is what exactly the synchronization/communication does, what do you broadcast, how do you verify it, and fix conflicts when they occur.
The simplest implementation of the second option is for every action to be sent two places, to the local server, and externally broadcast to all other clients. Servers receive external events and apply it to the local state.
The problem is of course loss of synchronization. Race conditions will not get resolved in the same way for everyone, and players would end up on different questions.
One way to resolve this is to check for consensus first, before applying anything to the server's internal state. That is, you contact all peers with your current (normalized) timestamp, and once everyone's acknowledged that you have the right to speak, you send along your actual message.
Then there's the problem of computing a "normalized" timestamp. Well, if you're just dealing with the fallback case, fine, you can retain whatever sync_offset the central authority had decided on when you were connected, but how do you create a normalized timestamp in an entirely decentralized environment?
so like if you click on the grayed out icon
i want it to come with some kind of vote-to-make-this-person-an-admin-for-sixty-seconds
then i can change the default to be 100% locked
or i can change the default to be whatever the majority was at time of logging in
and locked if public
Turn off-able tips that say stuff every couple mins and a tutorial room with lots of tips / possible arrows and a walk through that is constantly cycling. Also we could have some kind of video or something of this nature as well, i don't know.
The only problem with this is that if we match speaking speed to read speed it becomes almost completely impossible to understand using Speak.js. I don't know if there is a better alternative that is free but it doesn't seem that there is.
Not sure about the feasability of this from a storage standpoint.
Basically being able to chat with someone from in the profile area / send a message that they will get next time they are on protobowl. Also any private chats inside rooms are stored here for later so that you can continue a conversation with someone / find them.
Under /jeopardy/:blah, not sure how well these will work though since they're so short and such
Yeah
Specifically the ability to redirect all new traffic to another location and being able to move people to different rooms. Probably some other general crisis management tools would be cool too.
Also, serverless multiplayer over minimal chat layer
Persistent like github organizations
Fallback error message for the root directory and for user stats pages
Mr. Sherlock Jitsu, who usually has very high latency in the afternoons, save upon those not infrequent occasions when he was restarted earlier, was running with a median latency of 625.7ms.
"Well, Watson, what do you make of it?"
Jitsu was running with his root shell hidden from view, and I had no means of discerning the precise etiology of its performance strains.
"How am I supposed to know what causes your present lag issues? I believe you do have a gaping memory leak on the back of your head."
"I have, at least, a well-polished mechanism for evading your diagnostic skill, my dear Watson. For I am a true master of disguises, you see."
"I think," said I, following as far as I could the methods of my PaaS companion, "that Dr. Socket.IO is a successful, stable library, well-esteemed since those who know him give him this mark of their appreciation."
"Good!" said Jitsu."Excellent! There is almost certainly no way it is a fault of his, that our situation is afflicted by such a terrific malady."
Self-explanatory, analogous to /ignore on IRC
so like if you click on the grayed out icon
i want it to come with some kind of vote-to-make-this-person-an-admin-for-sixty-seconds
then i can change the default to be 100% locked
or i can change the default to be whatever the majority was at time of logging in
and locked if public
As in, if someone gets banned from any and all rooms, maybe they should be sent to /b because it might make a degenerate but still active group of like minded trolls, and that looking glass will a) teach them to reform their ways or b) distract them enough that they don't focus efforts on evading our schemes
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.