(Sorry for the two parts, it just wouldn't accept the whole post for some reason ...)
Quote
3. When a player jumps to another system, the server can easily (well maybe it's not so easy) transfer the connection over to the another system and the player starts recieving information about that system.
Refer above -- transferring the data in a timely way will be very difficult.
Quote
**Things to figure out (ideas and comments welcome):
1. The planets. Systems with planets must have a separate implementation for that planet and it must enable the player to do a variety of possible things (please add ideas to my list):
- Basics - shipyard, outfitting, and refueling
- shop/trade on a public market
- chat with other players in the bar
- hire other players / or sell yourself (rather difficult to implement)
- gamble or enjoy other emenities that the planet has to offer
I also like the idea of being able to develop your own factions and colonize unihabited planets yourself. And then have a more compledx way to take over planets, maybe not every battle has to take place in space. A lot would go into this but it'd be worth it.**
Given that you solve all the data transmission problems, a shipyard shouldn't be hard, as that's only one more variable to keep track of. Ditto for outfitting and refueling. The graphics, like you said, are client-side, so this shouldn't put too much extra strain on the server. A public market might be more difficult; will you do this auction style? Otherwise, the person with the faster connection will get everything he or she wants, hardly fair. Chat implementation is something I know zilch about, so I leave that to you. Hiring other players as escorts will be very difficult. Cargo deliveries or some such should be much easier. Anyway, who'd want to be someone's slave? Gambling is fairly simple, and can be implemented almost entirely on the client's end. Taking over uninhabited planets would probably not be a good idea; it simply wouldn't be EV, and I think you're aiming for a EV-like experience. Ditto for non-space battles. Anyway, they'd add server load ... Killing the "sell yourself" feature would perhaps be advisable.
Quote
2. Speed issues:
Each sprite in the system must be passed to the player every frame or so. A sprite is made up of three numbers (each 2 bytes): a x-axis location, a y-axis location, and an image_number. The image number might actually have to be 4bytes because there are a lot of graphics in EV. So each sprite would be about 7 bytes. So if you want to find out how many bytes per second you'd need to download do 7 * number of sprites in the system * framerate. A framerate of 20 I found is very playable, butI think it's 30 in the original EV. This wouldn't be that bad for simple trading and small space battles, but large wars and campaigns might be tough. Adding more information but sending it at smaller intervals might help, but by how much information do I add, and what type of information?
Like I said above, processor load and network speed will definitely become a major issue. With only two people (and eight NPCs) in a system, that's (by your calculations) 1400 bytes of data to transfer to two different people every second in only one system , and that's not even considering processing time. Java is notoriously slow, and you're considering running multiple threads. Say you have 30 systems, each with 10 sprites (with only two human occupants each), and then you have 60 packets to transfer, with 1400 bytes to each person in each packet, each second -- a total of 42 KB/s, sustained to each user until he or she quits. And this doesn't even count processing time, which will be considerable.
My point is that it's a workable idea, and you seem like a relatively practical person (compared to the other EVMP projects we've seen), but the processor time and bandwidth requirements will be enormous, and the last quote above is all I've seen of your thoughts on this issue. It needs more work than this, unfortunately ... :frown:
Quote
**3. Does anyone know how to use DrawSprockets properly? Sometimes when I switch screen resolutions manually, after using a DrawSprocket program my screen screws up and I have to restart. (I want full-screen to be a special feature on Macs)
4. Parallell processing:
Thus far this server model works on one server with one internet connection. I need to be able to run the server across multiple connections on multiple servers. Anyone out there know a little about networks or a least know a good web site on networked games (I'm tired of looking at beginner books on how to create a Socket in Java).
**
Sorry, can't help on either of those. :frown:
I might seem a little sour and pessimistic from what I've said above, but I do support your effort and wish you all good luck. I'm just trying to point out potential problems before you discover them at runtime. A (somewhat drastic) suggestion you might want to implement is to have several people with dedicated connections host systems and their clients instead of one massive server doing this. Transferring between systems shouldn't be too hard, just a matter of sending a packet with client information on one person over a (probably) broadband connection, which can be completed while the client's hyperspace image appears. Systems going down might be a problem, though ... Perhaps there could be something so that a larger server could take the load for a little while, until the system comes back into existence on the smaller server. This will be harder to implement, but the performance gain will probably be worth it. It's late now, and I have to go to bed ... If I have any more suggestions I'll post here again. Enjoy chewing on these for the time being.
------------------
Visit my EVO web site at (url="http://"http://www.evoverride.com")http://www.evoverride.com(/url)!
"What is written without effort is in general read without pleasure." -- Samuel Johnson