okay, so, 3d is looking more and more tempting. it gives so much more flexibilty in some ways. but it also takes a lot more cpu power, and whta I've seen of directx is quite annoying. and tedious. however... actually rendering hte stuff is the client's job. I might be able to fob it off on someone else. otoh, it might make it hard or impossible to have text-only clients. let's think about the client/server aspect a bit more. I still say most of the world should be in the same process as the server. at worst, a fork. after all, there could be a lot of agents, you don't want the overhead getting out of hand, and lag is a real killer. anyways... say you have various agents and creatures in the world. if it's 2d and sprite-based, the server has to send a list of needed sprites at the beginning, and then the position and frame for each agent... the client handles drawing each one in the right place. I wonder if it could tell the client its velocity too, to make up for any lag? oh how I hate lag, and not knowing how much data can be sent how fast... anyways. assuming that we can send the data fast enough for smooth motion, what are the differences in a 3d world? well, you'd have textures instead of sprites, I suppose. and instead of x/y position you'd have some sort of mesh thing... I wonder how easy it'd be to end up drawing too many meshes... I wonder how much info would end up being in the meshes... I suppose even for 2d you'd have to send xy positions of different parts, and of creature limbs... the advantage of mmesh-like stuff is that it's flexible... the disadvantage is, to get something looking decent takes a lot of power, I bet. ...had to stop and get off the bus. tired now. still not sure if 3d actually could work at all... how could the shape be specified in a flexible way? how do you make objects look okay while keeping hte complexity down? and what about collisions? or objects moving through objects? seems like I'd have to have a big physics engine... uck... nasty. and it'd take so much processing power. and what about the whole client/server thing, what gets done on what end?