1) did you use udp or tcp?
So far UDP only. My server code, so far, is pretty flexible though so I may look at adding TCP for certain messages (file transfers, etc.).
2) do you do any spoof protection?
I use IP/port to identify connections initially. I also check this against the clients unique ID. At some point I'll probably add a key of some sort to prevent simple spoofing.
3) do you use SSL for the login/password traffic?
No, I'll most likely use the MD5 method that RH is using. Currently it's just plain text over TCP.
4) Do you plan to store credit card numbers, and if so, how would you securely store it in your mysql database?
I'm planning on making my project free. If it ever goes commercial, I'll store CC# in a database (probably a different one from the primary database). On some of my web projects, I have encrypted them using simple encryption. This is worthless if your web server gets compromised, but if that happens, you're in trouble anyway.
5) how do all the various servers know which server is at what address? Is there a database for this or is it handled in startup scripts, or what?
Currently just one server. I'm not planning for a "massive" MORPG yet. I may once I get further along.
6) what platform are your servers running on? Linux/X86?
I'm using SDL_Net on Linux for the servers. The clients are DirectX 8 and also use SDLNet. The server code is all abstracted so if I want to use something other than NetSDL, I can easily replace it.
7) are you leveraging beyond2, nebula, nevrax nel, or twisted?
No. I've read a little about beyond2 in Massively Multiplayer Game Development, but it sounded complex and if anyone's going to complicate my code, it's going to be me!
![](wink.gif)
8) what languages are you leveraging for development? All c++ or mixing in python, etc?
C++ exclusively. I may look at embedding python for some basic scripting. That sounds interesting.
9) what algorithm are you using for collision detection?
My collision is all very basic AABB collision at this point. Honestly, this may be sufficient for what I want to do. I'm going to focus on gameplay vs. realistic graphics/physics.
10) is your client directx or opengl or what?
DirectX 8. I'll most likely use 9 when I finish the prototype.
11) (Related to collision detection) How are you determining viewability for a client? As in, how do you decide what things the client can see from the server perspective?
Currently I'm not. My "map" is 2048 by 2048 so I'm just broadcasting everything to everything. This is obviously not going to hold up well under load, but it will be easy to add some simple range-based occlusion.
12) Are you using the observer/observable model for figuring out client updates?
Sort of. I think the pattern I am actually using is called "Multicast". Each message registers itself with a handler that extends an abstract IHandler. As the messages enter the queue, they are then passed off to the appropriate derived handler.
13) does the client send update positions once every 500 ms too? If so, how does this figure into determining if someone is hacking the client to walk through walls?
I'm working on this now so I can't really say. I'm hoping I won't have to send updates that frequently, but we'll see.
14) Is your client engine BSP based or outdoor roamish/portals based?
Strictly outdoor at this point. I'll most likely use portals when I start adding indoor environments.
My journal is back online if anyone is curious. It's goes back to the very beginning with screenshots all along the way.
http://www.bpopp.net/articles/view.php?id=403
[edited by - bpopp on November 16, 2003 3:57:54 PM]