start up blues

Describe your experience with the latest version of FreeOrion to help us improve it.

Moderator: Oberlus

Forum rules
Always mention the exact version of FreeOrion you are testing.

When reporting an issue regarding the AI, if possible provide the relevant AI log file and a save game file that demonstrates the issue.
Message
Author
defaultuser
Juggernaut
Posts: 854
Joined: Wed Aug 26, 2015 6:15 pm

Re: start up blues

#16 Post by defaultuser »

EricF wrote:No excuse. I play a dozen multi player multi AI games and none of them require this model.
This is a bad habit that MUST be discouraged.
Your game is only secure because it is so rarely used.
If this model becomes commen then script kiddies will take notice.
What model can you use for a distributed player system? Understand that they aren't talking about "hot seat" one at a time player using the same computer, but multiple computers on the internet.

User avatar
MatGB
Creative Contributor
Posts: 3310
Joined: Fri Jun 28, 2013 11:45 pm

Re: start up blues

#17 Post by MatGB »

Yeah, I would love to see what multiplayer games supposedly don't use a client/server model, I'd be fascinated to learn how they do it.
Mat Bowles

Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: start up blues

#18 Post by Vezzra »

godel wrote:I might not have been asking the correct question.
The program can connect via the button that has the address of this forum to the computer.
That button is available before starting the game.
Oh, I assume you're talking about the "Open freoorion.org" button on the main menu, correct?
It can not start up.
Ok, still a bit confused. What cannot start up? Taking into account what you said in your previous post, connecting to the forum works, but playing a game does not work. So what you want to know is, why can you connect to the forum using the button on the main menu, but can't play a game because something on your system blocks FO from connecting - is that right?

Assuming I guessed right: The reason is that these are two completely different things. The "Open freeorion.org" button on the main menu doesn't actually try to connect to anything, instead it tries to launch your systems default web browser and tells it to open the FO forum. So the program doing the actual connecting to the internet to access the forum web page is the web browser application, not FO. This apparently works. However, when you're launching a new game, FO launches a server process and subsequently tries to connect to it, so it is the FO application itself that does the connecting here, which apparently fails.

There are two possible reasons for this different behaviour: First, whatever blocks FO on your system knows your web browser as a program that is allowed to establish network connections, while FO is not. Or this program that blocks FO allows connections via the ports used for accessing the web (80&443), but blocks the one FO uses. In both cases accessing the forum works, but starting the game does not.

Figuring out what exactly it is on your system that does the blocking is essential here. However, we can offer only very limited help with that without having access to your system, unfortunately.

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: start up blues

#19 Post by Vezzra »

godel wrote:I just reset my router, power cycled then poked that button.
Your router shouldn't have anything to do with you not being able to start a game on your computer (unless you try to connect to a multiplayer game via internet).
Just reset windows firewall. I got a message, different message, but tried to allow permission for everything.

Still no go.
What happens if you deactivate Windows firewall completely?

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: start up blues

#20 Post by Vezzra »

EricF wrote:No excuse. I play a dozen multi player multi AI games and none of them require this model.
Ok, now I'm confused. What kind of "multiplayer" exactly are you talking about? Hotseat (meaning all human players taking turns one after another on the same machine), like defaultuser mentioned? That's the only kind of multiplayer setup that possibly can work without some kind of client/server model.

Otherwise, if you're talking what nowadays is considered standard multiplayer (which is each human player connects to the game on their own computer, taking turns simultaneously), I'm really curious now: What games are you talking about and what model do they use (opposed to our client/server one)? Because all multiplayer games I know use a client/server model...
Your game is only secure because it is so rarely used.
If this model becomes commen then script kiddies will take notice.
Script kiddies can only attack servers that are more or less constantly online. The FO server component is not intended to be such kind of server. It only listens to connections when you start (or resume) a game, so it's should only be vulnerable during a short time window (AFAIK, someone correct me please if I'm wrong).

Now, trying to play FO with some friends sitting together in a cafe using the local public WLAN might be a bit risky, and if you're concerned about security you probably should not do that.

Otherwise I don't know what exactly about FO's client/server model you're so concerned about regarding security.

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: start up blues

#21 Post by Vezzra »

godel wrote:Could you put in an option to change the ports?
Not sure if that can already be configured somewhere/somehow. But to be sure, please open a github issue. That's definitely something that's needs to be configurable.
Or change whatever identifier the util is looking for?
I'm afraid there is nothing we can do about what I think you want to say here. I don't think whatever blocks FO on your system is looking for a particular "identifier"...

godel
Space Dragon
Posts: 267
Joined: Tue Mar 24, 2015 12:58 am

Re: start up blues

#22 Post by godel »

Thanks for the kind and expert words.
I do not know how to open a github issue.

defaultuser
Juggernaut
Posts: 854
Joined: Wed Aug 26, 2015 6:15 pm

Re: start up blues

#23 Post by defaultuser »

Vezzra wrote:
EricF wrote:No excuse. I play a dozen multi player multi AI games and none of them require this model.
Ok, now I'm confused. What kind of "multiplayer" exactly are you talking about? Hotseat (meaning all human players taking turns one after another on the same machine), like defaultuser mentioned? That's the only kind of multiplayer setup that possibly can work without some kind of client/server model.
There could certainly be a different system for single-player mode, as all you need is an inter-process communication method. However, that would be in addition to, not in place of, the current port-based client/server. That adds complexity.

I'm not all that convinced that a system using localhost is somehow vulnerable from the outside. Naturally if someone puts out a hacked version of the game code, that could be problem. However, there's no end of exploits that could happen in that case.

I would never play multi-player with people I didn't know and trust.

dbenage-cx
Programmer
Posts: 389
Joined: Sun Feb 14, 2016 12:08 am

Re: start up blues

#24 Post by dbenage-cx »

godel, do the instructions here help at all?

User avatar
adrian_broher
Programmer
Posts: 1156
Joined: Fri Mar 01, 2013 9:52 am
Location: Germany

Re: start up blues

#25 Post by adrian_broher »

defaultuser wrote: There could certainly be a different system for single-player mode, as all you need is an inter-process communication method.
An IPC like the local network stack? This whole discussion is superfluous.
defaultuser wrote: However, that would be in addition to, not in place of, the current port-based client/server. That adds complexity.
That's right and therefor any parallel IPC implementation won't happen.
defaultuser wrote: I'm not all that convinced that a system using localhost is somehow vulnerable from the outside.
It isn't, as any localhost network traffic will be handled inside the OS and will never even hit the NIC.


However by default freeoriond seems to listen to INADDR_ANY, which is most probably the cause for triggering one of the firewall rules (and for displaying the 'do you want to connect' system popup).
Resident code gremlin
Attached patches are released under GPL 2.0 or later.
Git author: Marcel Metz

godel
Space Dragon
Posts: 267
Joined: Tue Mar 24, 2015 12:58 am

Re: start up blues

#26 Post by godel »

The nice people at the Gitwhatever helped me out with a link to my antivirus port control area.
I can play again!

User avatar
biza
Space Squid
Posts: 67
Joined: Wed May 29, 2013 6:48 pm

Re: start up blues

#27 Post by biza »

As i get it (very simple and probably wrong :)), when you hit start game FO do this:
- starts "new" program FO server in background. Server creates game, planets, have all game rules and everything. It is the game itself.
- starts client program who then connects to server and say "hi i am biza i want to play this game"
- starts client program for every AI player with same message
- for this message to go between 2 programs it needs open port on witch server listens for messages. If you play only single player then you do not need to open ports on router for incoming messages from internet, you must only allow messages within your windows system. (localhost)
- when server receives client message it answers "OK, play if you want. You have colony ship on planet xxx with population 12, your production is....". And client program then all that data present on screen for you.
- then after end turn is clicked client says to server "Im done, i want to send scout ship to explore, start producing new frigate, research...."
- then server calculates all received messages from all players by the rules. Human or AI to server is the same, he dont know the difference. And after all calculation is done he sends to all players messages about new situation. Process is repeating until end game.

With this system you can play single player, LAN or internet multiplayer and it works the same, no need for double code for single player or multiplayer games, it is all multiplayer to FO server :)

I hope my view on this is not too wrong :) and it can help you to better understand how modern multiplayer games works.

Cheers!

Edit: only difference between turn based and eg. FPS games is that turn based communicate to server only at end turn and FPS needs constant connection as client is non stop updating your position and moves to server and server is updating other players moves to your client. That is why your ping time to server is so important in FPS.

User avatar
adrian_broher
Programmer
Posts: 1156
Joined: Fri Mar 01, 2013 9:52 am
Location: Germany

Re: start up blues

#28 Post by adrian_broher »

biza wrote:I hope my view on this is not too wrong :) and it can help you to better understand how modern multiplayer games works.
The explanation is quite accurate actually. Well done.
biza wrote:Edit: only difference between turn based and eg. FPS games is that turn based communicate to server only at end turn and FPS needs constant connection as client is non stop updating your position and moves to server and server is updating other players moves to your client. That is why your ping time to server is so important in FPS.
'constant connection' is a relative term for this. The 'turns' for fps are still discrete, but very small. Source (HL2, CS:S, CS:GO, TF2, …) for example uses a default 'tick' rate of 15ms to simulate and send 'snapshots' of the world to each client. The client does the same for the user input. The continuous display and input interpretation is something done on client and server side by interpolating between those snapshots.
Resident code gremlin
Attached patches are released under GPL 2.0 or later.
Git author: Marcel Metz

Post Reply