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
-
I've just seen and used a brilliant ssh option. The command: sudo ssh -D localport user@externalhost will set up a local SOCKS proxy l...
-
Working with multiple threads is often a necessary evil. This is how I do it safely inside a Unity3D component. There are only certain time...
-
Update: This is another planet shader, with more physical fidelity. Shader "Planet" { Properties { _MainTex ("Di...
-
When you start working with threads in your Unity3D project, you will discover that many things need to be done in the main loop. For exampl...
-
Space is awesome. Especially when it is generated using Perlin noise, and some cool shaders. You can try it out over here.
-
Possibly slightly more correct lighting. The rim light is now only applied in the direction of the sun, rather than being purely based on v...
-
It is not an official port, but a very good replica. This is one of my favorite games, and I don't have many. It's deep, difficult, ...
-
So, you've created a car prefab using WheelCollider components, and now you can apply a motorTorque to make the whole thing move along. ...
-
Thank to Adrian Boeing I was inspired this morning to hack together a ripple shader for Unity3D. Thanks for the math Adrian. You can see t...
-
Summary: NodeJS wins. Test Program ab -n 10000 -c 5 http://localhost/ Gevent Code from gevent import wsgi class WebServer(object): ...
5 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
Post a Comment