This is something I've been helping build for quite some time now, and it is almost done.
It is an educational MMOG. It is powered by Python out the back, and Unity3D at the front. The Python server(s) are running Python 2.7, with Greenlets :-) and ZeroMQ for IPC. We had to design our own ORM, because SQLAlchemy (our first choice) didn't play well with the asynchronous Psycopg2 extension. The backend is loosely based on an Entity Component architecture, which is quite elegant and a joy to work with. It has been so easy to modify and extend, that I think I'll be using this architecture for most of my new projects.
Soon, the whole system will be battle tested by hordes of screaming children. I am confident it will weather the storm, and more. :-)
Subscribe to:
Post Comments (Atom)
Popular Posts
-
These are the robots I've been working on for the last 12 months. They each weigh about 11 tonnes and have a 17 meter reach. The control...
-
This hard-to-see screenshot is a Generic Node Graph Editing framework I'm building. I'm hoping it can be used for any kind of node...
-
After my last post, I decided to benchmark the scaling properties of Stackless, Kamaelia, Fibra using the same hackysack algorithm. Left axi...
-
So, you've created a car prefab using WheelCollider components, and now you can apply a motorTorque to make the whole thing move along. ...
-
It is about 8 degrees C this morning. So cold, especially when last week we had high twenties. To help solve the problem, a friend suggeste...
-
At the last few GameJams, I've seen an increase in the use of RAD game tools, some of them even being developed by the participants them...
-
MiddleMan: A Pub/Sub and Request/Response server in Go. This is my first Go project. It is a rewrite of an existing Python server, based o...
-
I've just uploaded Fibra 2 to the cheeseshop. Fibra 2 includes the promised non-blocking plugin, which allows a generator based task to...
-
I've just read a newspaper article (courtesy of Kranzky ) from WA Business News documenting the malfeasance, gross negligence and misc...
-
#!/usr/bin/env python import io import asyncio import websockets import logging import collections logger = logging.getLogger('w...
6 comments:
Congrats! It's looking really good.
would love to know what changes/enhancements you think SQLAlchemy would need to support asynchronous usage. If concepts like unit of work and all that still apply, etc.
sorry for the comment spam, but I've just done some testing with greenlets/SQLAlchemy, if you just use the set_wait_callback hook (see https://bitbucket.org/dvarrazzo/psycogreen/src/77a9c05f5229/gevent/psyco_gevent.py), SQLAlchemy works just great with psycopg2 async + gevent. I just ran some stress tests, runs great (about 20% faster than a similar threaded example) What's the downside there ?
RE: SQLAlchemy, keep in mind this project started almost two years ago, so it's more than likely any problems we had have been fixed. I wish I could remember where the issue was, and I think I remember discussing it with you... Either way, it's great that it is working.
Hi, I would like to talk about this process (Python - Unity3D). I'm needing use something like this in my research here in Brazil. So, Simon if we can talk more.. Please, take my e-mail marceloxramos3d@gmail.com
Thanks
I would love to see a blog post with some sample code (both client and server) on how to hook up Unity to a python server. I have been googling and can't find anything other than connecting Unity to Unity.
I don't suppose your project is open source??
Your architecture is exactly what I am interested for some simple multiplayer gaming.
Thanks!
- Gardner
Post a Comment