The easiest way to get started doing something realtime IMO is node.js and
socket.io. Socket.io is an abstraction library that provides a
WebSocket-like api but that works on all browsers, not just those that
support WebSockets. Node.js is server-side javascript and its goal is to
"provide an easy way to build scalable network programs."

I've been using both of them pretty heavily for the past couple of months
and they are both very easy to get going with and are very very performant.
Even a simple light-weight server should be able to handle 10s of thousands
of connected players.

Throw in Coffeescript and Brunch <http://brunchwithcoffee.com/> for
client-side development and you have a very nice development stack!

--
Kyle Mathews

Blog: kyle.mathews2000.com/blog
Twitter: http://twitter.com/kylemathews



On Fri, Sep 30, 2011 at 8:44 AM, Matthew Gardner <[email protected]> wrote:

> So, I'm thinking of writing code to play a board game, including the game
> logic and the ability for people and computers to play the game.  I can
> imagine some pretty simple ways to do this with a typical app on a single
> machine, but I would really like to make the game work through a browser
> (probably locally hosted, but still a web app).  I was wondering if any of
> you had some advice as to how to go about doing this.
>
> Here's what I've come up with so far.  I'm pretty familiar with django, so
> I thought I would use that framework.  The game logic would reside in the
> django app, server side, using the database to store the game state.  Human
> players would interact with the game through the views of the django app.
>  Computer players would also be servers somewhere, not necessarily django
> servers, that would get the game state from the game server and respond in
> similar ways to the human, over a socket.  All the game server really cares
> about is that there are players playing the game, not that they are humans
> or computers, so I could plug in any AI against any other AI or human, and
> play the game (I'm really in to probabilistic reasoning and AI, so this is
> just a fun side project programming AIs for board games I like playing).
>
> So far so good; this isn't all that different from bzrflag in CS 470.
>  Except board games aren't real time, they are turn based, and you need to
> wait for each other player to go before you take your turn, and they could
> take an indeterminate amount of time.  How does the server notify players
> when it is their turn, with the updated state?  That seems simple enough for
> the computer players, as the view method that processes one player's turn
> can open a socket and communicate with the computer player.  But how do you
> do that with a human who's using a browser?  I seem to remember a 598
> project a year or two ago that showed a web framework that could receive
> push notifications like this is a browser, but I don't remember much about
> it.
>
> So, that's what I've been thinking for how to write this game.  Any advice?
>  The game I'm planning on starting with, by the way, is Dominion.  Then if
> that works, maybe I'll do Labyrinth, then some other games.  Then you can
> have fun AI competitions =).
>
> --------------------
> BYU Unix Users Group
> http://uug.byu.edu/
>
> The opinions expressed in this message are the responsibility of their
> author.  They are not endorsed by BYU, the BYU CS Department or BYU-UUG.
> ___________________________________________________________________
> List Info (unsubscribe here): http://uug.byu.edu/mailman/listinfo/uug-list
>
--------------------
BYU Unix Users Group 
http://uug.byu.edu/ 

The opinions expressed in this message are the responsibility of their
author.  They are not endorsed by BYU, the BYU CS Department or BYU-UUG. 
___________________________________________________________________
List Info (unsubscribe here): http://uug.byu.edu/mailman/listinfo/uug-list

Reply via email to