[road map discustion] what want to see in v0.6.x

Talk among developers, and propose and discuss general development planning/tackling/etc... feature in this forum.
legine
Bounty Hunter
Bounty Hunter
Posts: 139
Joined: Mon Sep 27, 2004 8:40 am
Location: Germany
Contact:

Post by legine »

yes a realistic aim for 0.6
bgaskey
Elite Venturer
Elite Venturer
Posts: 718
Joined: Wed Mar 07, 2007 9:05 pm
Location: Rimward of Eden

Post by bgaskey »

if capships are made purchasable, they should also get stronger engines (especially orthogonal) to make it more fun to play them. now, it is too hard to fly in them.
I gave up after i sideslipped into serenity at full speed and wiped it out. oops.
www2
Venturer
Venturer
Posts: 537
Joined: Sat May 14, 2005 10:51 am
Location: milkyway->the sol system->earth->Europe->The Nederland->Soud Holland->Leiden
Contact:

Post by www2 »

@ace123

1. This is only for stable and bug fix release.

2. No problem

3. I mean a GUI in state command line.
And Bugzilla like support system like in the most mmo's

4. More a servers list like quake.

5. Some edit for this idea: we can use Google ads for the server maintenance cost.

6. More a instant server.
The config options are max players server name, server password and ships that the players can use.
This bypass the config's in the server config file's.
And only use for LAN.(Lots of fun at lan party's)

-------------------------------
Some new ideas that i heft.

7. Delicate server and admin documentation. (i work now on the server install documentation)

<dream_mode_on>
8. In game mail system.

9. In game chat room's that a player can create.
</dream_mode_on>

edit: typo fix cheat=chat
Last edited by www2 on Fri Feb 08, 2008 1:49 am, edited 2 times in total.
All Your Base Are Belong To Us
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Post by loki1950 »

9. In game cheat room's that a player can create.
is that cheat or chat www2

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
www2
Venturer
Venturer
Posts: 537
Joined: Sat May 14, 2005 10:51 am
Location: milkyway->the sol system->earth->Europe->The Nederland->Soud Holland->Leiden
Contact:

Post by www2 »

@loki1950
Oops
One of my stupid typos.
:oops: :oops: :oops:
All Your Base Are Belong To Us
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Post by loki1950 »

Thought so don't sweat it :wink: happens to all of us :lol:

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

Warning: This is a two part reply, the first part is in response to capships and the possibility of higher ranking players of a faction in piloting them. This was in regards to my first idea of a big change for 0.6
The second part of the reply is a second proposal for 0.6


Is there a reason why capships dont have textures?

Capships should not be without drawbacks. They should be extremely hard to fly around, not any pilot should be assumed to be skilled enough to use them. They should not be something you can buy in the game. It would be something you would be allowed to pilot for a given mission when your faction points are high enough to put you in high ranking within that faction. It would basically be an honor to fly the faction's capship, and deviating from the mission or failing the mission, depending on what you do, could cause you to be banished from the faction or lose serious faction points, or executed if possible while piloting the capship (if you went rogue). Capship masses should be so huge that there would be no chance of tight maneuvering, and utilizing the ship at all in any sort of lone-wolf way would be left to only the most skilled pilots. Make them extremely hard to use, because they're supposed to have contingents of fighters and backup ships with them to handle the little guys.

The "leader" type ships i was talking about being able to buy would be special ships (not yet created) that are basically status symbols among the factions. Think of them like the Ferrari's of space ships. Not your avg 20+ year old model, these would be top of the line new tech ships. Only available to the upper classes of each faction. You would only be able to buy them when you get in good enough favor with your faction that you're promoted to one of the higher ranks.

basically the layout of the game would be
faction -> campaign -> missions -> goals.
completing those goals and doing extra stuff beyond the mission would gain you points.
Points then convert into promotions inside the faction.
Not only would the faction dictate the campaign and missions, but the details of those missions would be dynamic, dependent on the state of the other factions and of your own ranking.
Missions would be unlocked when you reach certain ranks, ships will be unlocked as well.

That would be the gist of a nifty emersive single player mode.




idea #2 - multiplayer persistence

Right now multiplayer is deathmatch, mostly because any other mode requires a type of persistence that is hard to do without dedicated servers and even then it's hard to work out.

I've been thinking (not a lot) about how we might do a semi-persistant type of vegastrike game that extended beyond single deathmatch style games.

I would use sourceforge to host two scripts. One script takes an http post from the game, consisting of the ip and port (system name and player name) of a player wishing to join a network game, and the other script the game uses to retrieve a list of all other players who are online joined. The player then connects to one of these other players, and retrieves a list of players connected to him.

The game then queries up to 5 of the players to see if they have any open slots to make a permanent connection with. This would be a decentralized cooperative network, no "server" exists amongst the clients. All that accept, the game generates wormholes for around your system that connect to these other player's systems. The wormholes wouldn't be marked in game (only on hud) such that players from other systems jumping into yours, wouldn't be able to jump to the other players wormholes in your system, and vice versa. During a jump, economic, political, and news data is swapped related to the two systems. In this way, you could read the news on a person's system, and get news from other people's systems that have jumped in recently. docking at other people's bases is possible and trading goods between systems is possible. Some systems will be richer in areas than others based on how the trading is going on. Communication would be possible through the ships comm systems and via "wanted" ads posted to other system's computers. Cargo items will be limited, with the game only generating fixed numbers of certain items when you first create your system, and then those items can be traded to other systems for significant profit or kept or stolen. AI ships would exist in each user's system, but they wouldn't jump between systems. The controlling faction of a user's system is chosen when the user creates the system. The same rank and point system would be used.

The state of the game is persistent beyond single game sessions. to deal with disconnections from either single clients or all clients when in your own system would be to show the disconnected players to jump out...their wormhole would collapse and no longer be active. The game would try to connect to another player to fill the slot. if all disconnect and the game cant' find any players, the game saves it's state and returns to the main menu. The game state is saved whenever a player disconnects and every 5 minutes.
If you someone else disconnects accidentally when in their system, You would see a cutscene (1 of many) of your ship rushing to jump back to your own system. The state of your own ship and system would be valid up to the point of disconnection while in that disconnected system. If the player disconnects "accidentally" while you are killing him or for any reason, it lowers the chance of that player being connected to by "honest" players systems. (part of the handshaking during the "random" 5 player selection).
To properly disconnect, you would have to be at a base and choose quit in the computer. The game would then reverse handshake with any connected players and give them proper time to resolve any last frame actions.

If you are killed, you can choose to quit, or respawn back over again within the same faction back at the ground level. Stats of player kills in addition to AI ship kills are cataloged on the computers as players connect and jump to other systems. All of the contents of your system's computer including the economies and traded items are saved in the game state. There are a variety of ways we can ensure against cheating the game state files on people's local computers. One idea is to have a proper disconnection send an md5sum of the game state to sourceforge to store and then compare against when that player attemps to rejoin the network. When an accidental disconnect occurs, in which the disconnect is only with certain other players and not complete, the gamestate can still be valid, but the game makes note of the disconnection. If it's complete, then the next connection must assume the gamestate is invalid, bad marks against you are made and the last "acked" gamestate is used. (the game would ack an md5 of the gamestate periodically with sourceforge).
In this way, we punish cheaters, such that if you disconnect often enough, nobody else's game will choose to connect to you unless you were the only other person available.

It wont matter gameplay wise if you play all the time or play infrequently. The game connects to new players in random ways everytime you reconnect. You'll never be adjacent to the same systems. Powerful players will have powerful AI enemies in their system to try and kill them. in this way, unless you're really skilled, players can't camp online and get powerful and stay powerful and kill all neighboring systems whenever they connect. Conseqently, this wont mean that you'll be repeatedly killed and lose all your status just for being successful. you can be successful and buy better ships (some available only in certain faction's systems) without going up in faction rank... but by not going up in faction rank, you dont get access to some of the better ships and some of the higher rewarded missions.

All the single player in-system type missions should be doable in this setup. The main difference between this and the current deathmatch setup is in the decentralized makeup. Each client acts as a server for their own system. They can either render that system if they're in it, or render a different system if they're in someone else's. The cpu requirements could be mitigated down in that case by reducing the size of the systems.

Anyways, that's my little idea for a persistent decentralized vegastrike network.

Make your living trading/stealing with/from other systems (where such trade has lasting effects in those systems and yours), destroy enemy systems of your faction to gain rank, make peace with other factions by completing appropriate missions in other people's systems, or do whatever. Gain wealth, or gain power in your faction. Be known amongst a vast number of systems (higher ranking people make the news more ) or be one in the crowd. Be praised by many factions, or be the scourge that puts a high price on your head in everyone else's systems. It would be up to you and how you played.

And if you read all that, you probably realize that i'm trying to clear my mind of coding for a night :)
ace123
Lead Network Developer
Lead Network Developer
Posts: 2560
Joined: Sun Jan 12, 2003 9:13 am
Location: Palo Alto CA
Contact:

Post by ace123 »

safemode wrote:idea #2 - multiplayer persistence

Right now multiplayer is deathmatch, mostly because any other mode requires a type of persistence that is hard to do without dedicated servers and even then it's hard to work out.
What do you mean? It uses an account server. At the moment, it is the one at /cgi-bin/accountserver.py however if you want you can start your own account server in SVN vegastrike/cgi-accountserver

I think you are mixing up dedicated servers with a dedicated account server.
The way I have it set up, there is an account server, which can communicate with any number of vegastrike servers.
The game then queries up to 5 of the players to see if they have any open slots to make a permanent connection with. This would be a decentralized cooperative network, no "server" exists amongst the clients. All that accept, the game generates wormholes for around your system that connect to these other player's systems. The wormholes wouldn't be marked in game (only on hud) such that players from other systems jumping into yours, wouldn't be able to jump to the other players wormholes in your system, and vice versa.
In fact, it is possible to have individuals host each system.

And, if you specify a system that doesn't exist, you will *conveniently* get a randomly generated system with no jump points!, so you can have the jumps dynamically generated by Python scripts.

So this would be relatively easy to do.
During a jump, economic, political, and news data is swapped related to the two systems. In this way, you could read the news on a person's system, and get news from other people's systems that have jumped in recently. docking at other people's bases is possible and trading goods between systems is possible. Some systems will be richer in areas than others based on how the trading is going on. Communication would be possible through the ships comm systems and via "wanted" ads posted to other system's computers. Cargo items will be limited, with the game only generating fixed numbers of certain items when you first create your system, and then those items can be traded to other systems for significant profit or kept or stolen. AI ships would exist in each user's system, but they wouldn't jump between systems. The controlling faction of a user's system is chosen when the user creates the system. The same rank and point system would be used.
I have been thinking about ways to make server state persistent.

The problem is, if you have multiple servers, how do you synchronize dynamic universe and other data between them.

If I put a bounty on Bob in the Crucible server, and someone else also puts a bounty on Bob except on the Beckett system, and then both servers sync state, how is the accountserver supposed to know what to do?

You're suggesting that persistent data is transferred during a jump between servers, but that can also be painfully slow.
The state of the game is persistent beyond single game sessions. to deal with disconnections from either single clients or all clients when in your own system would be to show the disconnected players to jump out...their wormhole would collapse and no longer be active. The game would try to connect to another player to fill the slot. if all disconnect and the game cant' find any players, the game saves it's state and returns to the main menu. The game state is saved whenever a player disconnects and every 5 minutes.
What do you mean by connecting to a player?
Why do all of the slots have to be filled?
If you someone else disconnects accidentally when in their system, You would see a cutscene (1 of many) of your ship rushing to jump back to your own system. The state of your own ship and system would be valid up to the point of disconnection while in that disconnected system. If the player disconnects "accidentally" while you are killing him or for any reason, it lowers the chance of that player being connected to by "honest" players systems. (part of the handshaking during the "random" 5 player selection).
To properly disconnect, you would have to be at a base and choose quit in the computer. The game would then reverse handshake with any connected players and give them proper time to resolve any last frame actions.
This is too complicated a system for what we have right now.
I'm just making the server authoritative for now.
If you are killed, you can choose to quit, or respawn back over again within the same faction back at the ground level. Stats of player kills in addition to AI ship kills are cataloged on the computers as players connect and jump to other systems. All of the contents of your system's computer including the economies and traded items are saved in the game state.
At the moment, players can save and then when they die they restore back to the same point at which they saved.
This can cause concurrency problems if users are allowed to interact in a non-deadly way. Of course, if I add in the ability to save from Python, then upon completing a transaction both sides will be forced to immediately save, so this works.
There are a variety of ways we can ensure against cheating the game state files on people's local computers. ...
Security is the last of my concerns :-p I can only hope for multiplay have enough users that this is a concern.

Really, I think we are going to have to use a trust-based system. I can imagine so many ways a server could cheat, and with a simulated game like this, I don't think it's possible or at least easy to do verification on the clients.
It wont matter gameplay wise if you play all the time or play infrequently. The game connects to new players in random ways everytime you reconnect. You'll never be adjacent to the same systems. Powerful players will have powerful AI enemies in their system to try and kill them. in this way, unless you're really skilled, players can't camp online and get powerful and stay powerful and kill all neighboring systems whenever they connect. Conseqently, this wont mean that you'll be repeatedly killed and lose all your status just for being successful. you can be successful and buy better ships (some available only in certain faction's systems) without going up in faction rank... but by not going up in faction rank, you dont get access to some of the better ships and some of the higher rewarded missions.
This would be cool... I'm not sure how the whole connected systems thing will work. Will it be like a bunch of individual games, combined with other players around?
All the single player in-system type missions should be doable in this setup. The main difference between this and the current deathmatch setup is in the decentralized makeup. Each client acts as a server for their own system. They can either render that system if they're in it, or render a different system if they're in someone else's. The cpu requirements could be mitigated down in that case by reducing the size of the systems.
I think these already work. And anything stored in the players' saved games will not have the synchronization problem I described earlier. It's only the universe-wide data since there are multiple instances (servers) modifying it at the same time, while there is only one logged in player at a time (though I have disabled checking for this since crashes became too painful).
Make your living trading/stealing with/from other systems (where such trade has lasting effects in those systems and yours), destroy enemy systems of your faction to gain rank, make peace with other factions by completing appropriate missions in other people's systems, or do whatever. Gain wealth, or gain power in your faction. Be known amongst a vast number of systems (higher ranking people make the news more ) or be one in the crowd. Be praised by many factions, or be the scourge that puts a high price on your head in everyone else's systems. It would be up to you and how you played.

And if you read all that, you probably realize that i'm trying to clear my mind of coding for a night :)
This would be cool to do.
There is very rudimentary support for this, expressed in conversations with AI players and faction relationships, but something more advanced would be nice.


And the sourceforge hosted forums are slowing to their nightly crawl... maybe I should turn off that PHP/CGI hack. Sorry if I double post this.
ace123
Lead Network Developer
Lead Network Developer
Posts: 2560
Joined: Sun Jan 12, 2003 9:13 am
Location: Palo Alto CA
Contact:

Post by ace123 »

Response to an earlier post that I almost forgot about:
www2 wrote:3. I mean a GUI in state command line.
And Bugzilla like support system like in the most mmo's
That's what I was talking about.
In flight you can type commands in the chat box with "]", or if you are docked to a base, there can be a Python interface to let you administer the server.
For bugzilla, we have the forums and Bug Tracker :-p
4. More a servers list like quake.
I agree... I'll think about how to do this. Probably not for this next release.
5. Some edit for this idea: we can use Google ads for the server maintenance cost.
6. More a instant server.
The config options are max players server name, server password and ships that the players can use.
This bypass the config's in the server config file's.
And only use for LAN.(Lots of fun at lan party's)
I can't think of an easier way to set it up than it is now. You just have to double click the EXE and read the IP address it prints out on the screen.

If we add a button in the game, it will be confusing because they still are two separate processes, and that is not going to change.

The Ships list includes everything in units.csv... not ideal but I don't know how to simplify that list. Which things should we include or not include?
There is no max players, but you can set a server password in vegastrike.config (that's the only thing that isn't easy).
7. Delicate server and admin documentation. (i work now on the server install documentation)
Yes, this is nice to have.
There is a README.txt in the "vegastrike/cgi-accountserver" folder for how to create your own account server.
8. In game mail system.
They will be stored as server-side savegame variables when we add this.

The only problem is that there is a synchronization problem like I described in safemode's post. If two people on separate servers send mails to me, how does it merge them?

Still thinking about the right way to save this data.
9. In game chat room's that a player can create.
The only problem is chatting in a chat room while in flight. Right now you just talk to everyone else in flight.

But in the base interface this could be possible to do.

Oh also, I'm not sure where to put an options menu. When you are docked to a base there should be a place you can click on to bring up a menu of things, like chat or trade or so on.

Right now I put this in the upper left corner of the bars.
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

ace123 wrote:
safemode wrote:idea #2 - multiplayer persistence

Right now multiplayer is deathmatch, mostly because any other mode requires a type of persistence that is hard to do without dedicated servers and even then it's hard to work out.
What do you mean? It uses an account server. At the moment, it is the one at /cgi-bin/accountserver.py however if you want you can start your own account server in SVN vegastrike/cgi-accountserver

I think you are mixing up dedicated servers with a dedicated account server.
The way I have it set up, there is an account server, which can communicate with any number of vegastrike servers.
The persistence i'm talking about is not depending on a single person's server to synchronise players. It's enforcing player states such that across reconnections that player's system carries over the effects of the previous game played.
The game then queries up to 5 of the players to see if they have any open slots to make a permanent connection with. This would be a decentralized cooperative network, no "server" exists amongst the clients. All that accept, the game generates wormholes for around your system that connect to these other player's systems. The wormholes wouldn't be marked in game (only on hud) such that players from other systems jumping into yours, wouldn't be able to jump to the other players wormholes in your system, and vice versa.
In fact, it is possible to have individuals host each system.

And, if you specify a system that doesn't exist, you will *conveniently* get a randomly generated system with no jump points!, so you can have the jumps dynamically generated by Python scripts.

So this would be relatively easy to do.
I'm saying that each player gets his own system controlled by thier own faction with ai in it consisting of other factions. Players can then jump into your system in which case you are the "account server" for those players, but you could be in one of their systems at the same time, in which case they would be your account server. All happening at the same time. I dont know if this is how it works now, but that was how my idea worked.
During a jump, economic, political, and news data is swapped related to the two systems. In this way, you could read the news on a person's system, and get news from other people's systems that have jumped in recently. docking at other people's bases is possible and trading goods between systems is possible. Some systems will be richer in areas than others based on how the trading is going on. Communication would be possible through the ships comm systems and via "wanted" ads posted to other system's computers. Cargo items will be limited, with the game only generating fixed numbers of certain items when you first create your system, and then those items can be traded to other systems for significant profit or kept or stolen. AI ships would exist in each user's system, but they wouldn't jump between systems. The controlling faction of a user's system is chosen when the user creates the system. The same rank and point system would be used.
I have been thinking about ways to make server state persistent.

The problem is, if you have multiple servers, how do you synchronize dynamic universe and other data between them.

If I put a bounty on Bob in the Crucible server, and someone else also puts a bounty on Bob except on the Beckett system, and then both servers sync state, how is the accountserver supposed to know what to do?

You're suggesting that persistent data is transferred during a jump between servers, but that can also be painfully slow.
You wouldn't need to synch the dynamic universe. Each player only gets one system with no jump points, This is a special system designed for this gameplay (it's hand made and the ai ships and aspects are tightly controlled). each system is totally independent except for certain economic values and faction values and in other news data. The only thing that passes between systems is the players, cargo (trade) info, each system's faction info, player info, and economic info (items in surpluss and items in deficit). That's not a lot of info. Bountys are handled easily. You put a bounty in the "news" section of the computer on a base (a feature not present yet) and this gets passed during a jump. The value put on the bounty is made based on the rank of the player you have a bounty on, and it's up to your own system's faction to "pay" you if you kill the player. Other player's systems only get the info about the bounty and react to it if the news from your system has traveled to thier system. Meaning, they would have had to connect to your system at some time. Info only travels by connection.

The bounty may still exist even though the other player has been killed, that's normal. If you nobody comes to you with the info that the mission is completed, how are you going to know it was completed? it's more true to life to behave that way. After a certain time period it would disappear.
The state of the game is persistent beyond single game sessions. to deal with disconnections from either single clients or all clients when in your own system would be to show the disconnected players to jump out...their wormhole would collapse and no longer be active. The game would try to connect to another player to fill the slot. if all disconnect and the game cant' find any players, the game saves it's state and returns to the main menu. The game state is saved whenever a player disconnects and every 5 minutes.
What do you mean by connecting to a player?
Why do all of the slots have to be filled?
[/quote]
It doesn't have to, but it wants to connect to the 5 other players to keep a good amount of options and choice available. the entire online network depends on keeping this network tree alive. That's how data is transfered between "worlds or systems" and that's how players interract. No one person is the server everyone connects to. If someone jumps into another player's system, they are the server for that player and any other's jumped into their system. They can be jumped into someone else's and that would make that person the server for such a player. In this way everyone is both the server and the client. A max of 5 players can be in the same system at the same time, and a single player will only have to deal with the bandwidth of hosting 5 players at any given time. Plus their own player if they are on another system.
If you someone else disconnects accidentally when in their system, You would see a cutscene (1 of many) of your ship rushing to jump back to your own system. The state of your own ship and system would be valid up to the point of disconnection while in that disconnected system. If the player disconnects "accidentally" while you are killing him or for any reason, it lowers the chance of that player being connected to by "honest" players systems. (part of the handshaking during the "random" 5 player selection).
To properly disconnect, you would have to be at a base and choose quit in the computer. The game would then reverse handshake with any connected players and give them proper time to resolve any last frame actions.
This is too complicated a system for what we have right now.
I'm just making the server authoritative for now.
in my idea, everyone is a server, and thus everyone would be authoritive, but to what? Only thier own system. They wouldn't need to be authoritive to other systems. To Keep players from cheating i was thinking of a separate server that is always up (almost) to hold md5sums generated by the game at quits and disconnects (there is no saving the game and quitting or immediately disconnecting and restarting at the save game).
If you are killed, you can choose to quit, or respawn back over again within the same faction back at the ground level. Stats of player kills in addition to AI ship kills are cataloged on the computers as players connect and jump to other systems. All of the contents of your system's computer including the economies and traded items are saved in the game state.
At the moment, players can save and then when they die they restore back to the same point at which they saved.
This can cause concurrency problems if users are allowed to interact in a non-deadly way. Of course, if I add in the ability to save from Python, then upon completing a transaction both sides will be forced to immediately save, so this works.
saving doesn't make sense in this setup. You wouldn't be able to in my idea. If you die you start back over but you system state does not. You game state is saved when you disconnect, you can "save" to goto the bathroom or whatever by just staying at a base. People who disconnect just to avoid dying or to redo something will get negative points attached to their game state, that will get communicated to other servers during the next connnection. Other games will choose other players to connect to if their points are higher. So cheaters will be automatically weeded out by the games themselves, since only other cheaters will be connecting to them, and honest players will play with other honest players. all automatically.
There are a variety of ways we can ensure against cheating the game state files on people's local computers. ...
Security is the last of my concerns :-p I can only hope for multiplay have enough users that this is a concern.

Really, I think we are going to have to use a trust-based system. I can imagine so many ways a server could cheat, and with a simulated game like this, I don't think it's possible or at least easy to do verification on the clients.
see above, it's a handshaking based on points saved in the game file relating to how you disconnect from other players. This point system is verified by md5sum lookup on an independent server (web server or such). If your game crashes and thus you dont send one to the server, the other players that register your disconnect tell the web server "player XYZ illegal disconnect" or such and the points will be registered when you try connecting to the network again. something like that.
It wont matter gameplay wise if you play all the time or play infrequently. The game connects to new players in random ways everytime you reconnect. You'll never be adjacent to the same systems. Powerful players will have powerful AI enemies in their system to try and kill them. in this way, unless you're really skilled, players can't camp online and get powerful and stay powerful and kill all neighboring systems whenever they connect. Conseqently, this wont mean that you'll be repeatedly killed and lose all your status just for being successful. you can be successful and buy better ships (some available only in certain faction's systems) without going up in faction rank... but by not going up in faction rank, you dont get access to some of the better ships and some of the higher rewarded missions.
This would be cool... I'm not sure how the whole connected systems thing will work. Will it be like a bunch of individual games, combined with other players around?
independent systems (each player gets his own). Each player (of your group of 5) can jump into eachother's system but each player has a different set of 5 players.

i connect to 5 players, they are connected to at least 4 other people. Those people may be connected to up to 4 other people or maybe they share some connections. Either way, i can only interact with my 5 people, and they can only interact with thier 5 people. By interact i mean jump into a system. You can be in someones system and interact with players that are only connected to him and not a an adjacent system to you, that's fine (no state data is shared). If you kill them it gets registered as such just fine because the system you're all currently in synchronises that info between all players in the system. You can't trade data with them however, You can talk and tell them things, but not access their computers or anything like that. If you steal cargo, it gets registered as trading with the currently occupied system, not directly with that other player.
All the single player in-system type missions should be doable in this setup. The main difference between this and the current deathmatch setup is in the decentralized makeup. Each client acts as a server for their own system. They can either render that system if they're in it, or render a different system if they're in someone else's. The cpu requirements could be mitigated down in that case by reducing the size of the systems.
I think these already work. And anything stored in the players' saved games will not have the synchronization problem I described earlier. It's only the universe-wide data since there are multiple instances (servers) modifying it at the same time, while there is only one logged in player at a time (though I have disabled checking for this since crashes became too painful).
synchronizing is different in my idea than you are thinking of. I only sychronise some very basic information, and let each person's game handle it. The systems would not be dynamically generated and thus we can ensure accurately similar results on peoples systems as they react to certain values of this exchanged data.

A universe in this sense is just a system and anything coming from other people is the info i said that is transferred during jump. The only other thing you have to synch is player position, firing and such. Trading from your bases to their ships. stuff that shouldn't be overwriting universe level data .
Make your living trading/stealing with/from other systems (where such trade has lasting effects in those systems and yours), destroy enemy systems of your faction to gain rank, make peace with other factions by completing appropriate missions in other people's systems, or do whatever. Gain wealth, or gain power in your faction. Be known amongst a vast number of systems (higher ranking people make the news more ) or be one in the crowd. Be praised by many factions, or be the scourge that puts a high price on your head in everyone else's systems. It would be up to you and how you played.

And if you read all that, you probably realize that i'm trying to clear my mind of coding for a night :)
This would be cool to do.
There is very rudimentary support for this, expressed in conversations with AI players and faction relationships, but something more advanced would be nice.


And the sourceforge hosted forums are slowing to their nightly crawl... maybe I should turn off that PHP/CGI hack. Sorry if I double post this.
well, the sourceforge thing was just an example any always on trusted web server would do.
legine
Bounty Hunter
Bounty Hunter
Posts: 139
Joined: Mon Sep 27, 2004 8:40 am
Location: Germany
Contact:

Post by legine »

I dont see any problems if syncing from one system to another one would be slow. It is like real world. To a space no one goes, no post arrives. I think thats not too bad Idea.

Nice Ideas there. :)
Post Reply