EV Java Port + Online Play

What if a Java Port of Escape Velocity was made ( maybe with added online play to it). Would Ambrosia consider that?

First of all, it's not Windows. That's good, right? But then it is cross compatible, so Windows users could play too. Plus, Billy hates Java because of this, why do you think XP won't ship with it?

I've already started this project and need help perfecting the server code and building the universe. So if there are any Java programmers out there, please help. I program on a Mac with Java, so if you have any questions about that just email me or reply to this post.

------------------

Porting Escape Velocity to Java would be at the very least as much work as porting it to Windows, and it wouldn't give Ambrosia as large a user base - many computers can't run Java well, and most people I know consider it more trouble than it's worth.

------------------
David Arthur
(url="http://"http://members.aol.com/darthur1/talon-ev/")Talon Plugin for the original Escape Velocity(/url)

When I want multiplayer, I play something else. EV(O) isn't about multi-user gaming. It's probably one of a dying breed in that respect, but it isn't actually wrong.

Remember Angband (Moria, whatever)? It was converted to a multiplayer game, but it suffered in the process. It's too easy for somebody who's beaten the game to go around giving out huge amounts of cash and special pieces of equipment to the people who suck up to him. Equally, a bully can go around killing new players effortlessly. It may sound childish and pointless, but somebody's always ready to do it. Just because something supports multiplayer gaming doesn't mean it's necessarily fun.

------------------
(url="http://"http://www.geocities.com/evodude2001/home.html")Old & Unimproved: Cerberus Station!(/url)

There's nothing in multiplayer. Check my "Fighters/ Multiplayer" topic.

Simply, the bigger ships wins. The guy with the Dreadnought and Dreadnought escorts will win every fight.

------------------
That's all very nice, but where are the guns?
- SilverDragon

If you want to do it, get coding. You'd have to totally re-write it anyway.

------------------
Because it's there,
MotherF----r

Quote

Originally posted by VoinianAmbassador:
It's too easy for somebody who's beaten the game to go around giving out huge amounts of cash and special pieces of equipment to the people who suck up to him. Equally, a bully can go around killing new players effortlessly. It may sound childish and pointless, but somebody's always ready to do it.

If you want multiplayer EVO, wait for the Ares Project. I only know one person working on that, though, and Athena hasn't been around in ages...

------------------
That's all very nice, but where are the guns?
- SilverDragon

I've already got a basic server and client built, I'm just looking for help or response to see if I should continue or if I should work on another muliplayer game or project instead.

The game I built isn't too complex. There's just one system and no planet. And the only ship is a shuttle equipped with one laser. Yet it's a foundation. And once this foundation is built it's very easy to construct all the details like systems, planets, ships, etc. because it's in Java and it's object-oriented.

So if you really want to discourage go ahead.

So would anyone want to play a Java and online version of Escape Velocity?
(not through the web browser but in full-screen through a Java application)

------------------

My advice: Stop trying to make a "Java online version of escape velocity". Instead, make the best game you can, that you know how to, in and of itself. Don't tie it to a legacy project.

------------------
Because it's there,
MotherF----r

Quote

Originally posted by WickedDyno:
**My advice: Stop trying to make a "Java online version of escape velocity". Instead, make the best game you can, that you know how to, in and of itself. Don't tie it to a legacy project.
**

I'd agree with that. I don't think an EV-based arena would be of interest to most of the folks here, because EV:O is a campaign game requiring sustained effort over a number of missions, not a simple space combat game. (The first ever computer game, written for the PDP1 in the early sixties, featured a battle between two spacecraft, each controlled by a human player.) It's time for something new!

When I want to play a Java game that involves small sprites zooming around the screen and launching a variety of weapons against human or computer opponents, I go to eyeone and play 'Burning Metal' - or Castrol Racing, as it used to be called back when they had sponsorship. Does anybody else play that game?

------------------
(url="http://"http://www.geocities.com/evodude2001/home.html")Old & Unimproved: Cerberus Station!(/url)

Quote

**So would anyone want to play a Java and online version of Escape Velocity?
(not through the web browser but in full-screen through a Java application)
**

Hmm. Well, doubts & skepticism aside, I would at least try such a game. Whether I would come back to it and keep playing the way I do with EV or EVO depends on how good the game actually is.

I don't know if it can really be done or not. But if you build it, people will play. Probably.

------------------

Isn't there anybody out there who would like to play an EV Online gam? Assuming of course it were fast, well-designed, expansive, and legal, I'd love to play one. I just wanted a survey of who would too. To give me extra motivation.
Please note that the EV Online I'm designing is not neccessarily a multiplayer arena game like Quake, it's an open universe.

...

So here's what I've done so far for the online verision of EV (it's all written on Java using Codewarrior for Classic Mac (Java on OS X is awesome, the best yet, but too slow on my Blue and White G3) 😞

Please not that I'm currently separating the network parts out of my EV project so I can use them for any multiplayer game, once I've done that, I'll post the source.

1. The client sends his or her password to the server and via JDBC (not an acroymn for Java Database Connectivity but often referred to as that) the server sends pilot information back to the client for safe keeping as well as connect the client to the system that they were last on.

2. Each system acts as a separate thread that controls everything that goes on in the system and sends every client in the system graphical information on the game every frame. This inforamtion includes every sprite (ship or bullet) currently on the screen. The actuall game code is run entirely on the server. The client just implements graphics code.

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.

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.

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?

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).

------------------

I think the lack of positive vibe that you're sensing isn't because people wouldn't play such a game, but because they can't believe they will ever see such a thing become available. There have been quite a few promises of multiplayer EV:O over the last couple of years, usually from someone we've never heard of before, with no history of plug development (for example) and about twenty posts to their name.

Needless to say, the promised multiplayer EV:O has never materialised. Usually it's just a troll ("wind-up") I suppose. Somebody's idea of a joke.

So... yes, many of us would enjoy competing in a manner that would show who is the better pilot. But it wouldn't be EV:O, where some perfectly successful pilots can go twenty jumps without getting into a fight. In any case, you'll understand if we don't hold our breath while we wait for a multiplayer version. Good luck, Captain... 🙂

------------------
(url="http://"http://www.geocities.com/evodude2001/home.html")Old & Unimproved: Cerberus Station!(/url)

Kierke, I'll give you this. You definitely look like you know what you are doing, unlike most would-be EVMP folks from the past. Keep us updated on how your project goes.

Ok, some feedback.....re the 1st third of our post it sounds solid enough. The only concern is having a damn good server to run the thing on.

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
**

Worry about the basics, & maybe the shop/trade area. Implement the chat if its reasonably easy to do. I wouldn't at all bother with the hire/sell yourself feature or the gambling part. Those things are relatively minor points.

Quote

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.

Maybe, but I'd focus more on the space area of it, since the majority of EV takes place in outer space.

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? **

Errrr......sorry, but a bit of that went right over my head. I'm no programmer or developer. All I can offer is to recommend that you try to keep the game speed as close to EV as possible. You certainly want to make sure the game doesn't slow down to an intolerable level during combat.

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). **

I don't know. I would try asking the folks at the Developer's Corner.

Good luck with your project.

UEC

------------------

Well, I for one would certainly give it a go...

What are you going to do about the timing issue? I mean, (assuming you're using the same time system as EVO) if I jump out of and back into a system, while another person stays in that system, our clocks will be out of synch. Are you going to make it real-time? (IE, jumps take no time, but flying around in-system does) or something?

------------------
"Give a man a fire and you keep him warm for a night, but set him on fire and you keep him warm for the rest of his life" - Sergent Colon

<>

I know this isn't much, I dont know (enough) java, but I think everyone wants to play this game when it comes out, we just don't want to get our hopes up.

I, for one, would love a multi EV (or EVO)

Also, it might be easier to make the trading, hiring to be like Diablo's method..
you just eject what you want to give, and go over it to pick it up.. sure, it would depend on honesty, but I think it would be a lot easier than making it a part of the bar or computer.

------------------
All the problems we face in the United States today can be
traced to an unenlightened immigration policy on the part of
the American Indian.
--- Pat Paulsen

First of all, yes, I am a decent-to-good Java programmer, but I simply don't have the time to work on a project of this magnitude. Anyway, I know the core of Java, and I can design algorithms for the guts of the game (a fun pastime for me when I play any game), but I know nothing of graphics, Mac programming with Java, or networking. 🙂

Quote

Originally posted by kierke19:
**
1. The client sends his or her password to the server and via JDBC (not an acroymn for Java Database Connectivity but often referred to as that) the server sends pilot information back to the client for safe keeping as well as connect the client to the system that they were last on.**

Should work, pretty simple so far. 🙂

Quote

2. Each system acts as a separate thread that controls everything that goes on in the system and sends every client in the system graphical information on the game every frame. This inforamtion includes every sprite (ship or bullet) currently on the screen. The actuall game code is run entirely on the server. The client just implements graphics code.

This is pretty self-evident, as it pretty much can't work any other way. 🙂 Sending graphics over the network will be impossible, of course, but there has to be some way to make sure everyone sees the same thing. But the number of threads that can be opened simultaneously and can communicate with the clients as well is kind of limited, and will suck up huge amounts of bandwidth and processor time. And then, of course, there's the fact that keeping track of all these people and transferring data with them at the same time as they move will be difficult as well. You can't send packets to two places simultaneously, as well, so there will be noticeable lag with more than a few people on. Finally, there can't be nearly as many systems as there are in the actual EV:O game, unless you've got access to dedicated Quicksilver G4s on a T3 line or something. 🙂

------------------
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

(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

<deleted - had posting problems, apparently ;)>

(This message has been edited by shayborg (edited 09-24-2001).)

Why bother to make the game in Java? Java isn't machine native, the OS has to have a virtual machine to run the darn thing, so it wouldn't at all run fast. Maybe if you had a real high end processor it might run well, but Java would exclude a lot of people.

Just make write it in something like CodeWarrior and port it to Mac OS, OS X and Windows.

Personally, don't bother to try and start some mega-project. Try and make a simple program and build up from there. But hey, if people are wanting to do that, maybe I can get some people to make a Linux GUI and installer that's just as easy as OS X 🙂 and maybe those projects will get done around the time Hillary Clinton is President....

------------------
mikeeJ | Proud member of the vast right-wing conspiracy | 'Linux Geek'
"When government fears the people, there is liberty. When the people fear the government, there is tyranny"