Page 1 of 1

Make tutorial more elegant

Posted: Sun Oct 22, 2017 2:07 pm
by Lachu
In my opinion, freeciv-client and freeciv-server should:
1. Support transfer url to svg or png image from client to server
2. Client should display image with given url, when server sends it
3. There should exists lua functions to sends images from ruleset
4. Client and server should support per-client scenarios, like: tutorial-for-gtk3-client, tutorial-for-sdl2-client (client should only display scenarios assigned to one's version)

Why? In my opinion, tutorials, should take care about driven user by hand.

Re: Make tutorial more elegant

Posted: Sun Oct 22, 2017 2:13 pm
by Lachu
Alternative solution could be add package with graphics support. Server could order client to load arbitrary number of graphical package. After client loads for example scenario, server could order client to show image with name "aaaa.png" from one of graphical package.

Re: Make tutorial more elegant

Posted: Mon Oct 23, 2017 11:53 pm
by dunnoob
Lachu wrote:1. Support transfer url to svg or png image from client to server
Tilesets, sounds and music are the business of the client. It has to work offline. It also has to work for thousands of online players without running freeciv.org or other servers over their bandwidth capacities, or getting freeciv.org kicked from the warzone 2100 server.
4. Client and server should support per-client scenarios, like: tutorial-for-gtk3-client, tutorial-for-sdl2-client (client should only display scenarios assigned to one's version)
Ditto per ruleset, classic.tutorial, civ2civ3.tutorial, variant2.tutorial, ... For the radius ruleset I have a rather limited (7 popups per player) built-in tutorial, designed for E.BEGINNER_HELP in 3.0 (or whatever comes after 2.6).

Re: Make tutorial more elegant

Posted: Tue Oct 24, 2017 7:31 am
by VladimirSlavik
I think Lachu means the freeciv server which you need for any game, even local? The word URL is somewhat unfortunate, as it makes one think about web servers instead.

Re: Make tutorial more elegant

Posted: Tue Oct 24, 2017 12:29 pm
by Lachu
Sorry for my language mistakes.

The idea is about: allowing from server (not client) to send url to client (not server), that points to resource (in most cases image) stored on web server started by freeciv-server.

When freeciv-server starts, it could start small web server. Many languages have support for tiny web server, for example: python, php, java script (by node.js). This server could be started on port 1025 or similar and this port should be given in url.

Instead hide tutorials on some clients, you may to take look at some client string passed due to connection (like freeciv-client: gtk3 version) and handles difference in lua script.

Why to make this?
1. Tutorial (for image displaying)
2, Displaying image on important events, like city conquering (for example enemy capital city), player achieve new stage (for example modern ages), player win, player loose
3. Displaying help as html
4. Even serve full client as web page (client could be only a modified web browser, which listen on some port for javascript server commands; css could take care about look)
5. Many, many others

Re: Make tutorial more elegant

Posted: Mon Oct 30, 2017 8:48 am
by dunnoob
Lachu wrote:When freeciv-server starts, it could start small web server.
Sure, it could, but if clients then get individual pictures or help messages by URL from this server, and if we are not talking about file:-URLs for a local server, then you have up to 500 players getting their stuff over https (some security + privacy fans would scream when you dare say http) from a remote server.

One month later the server admin get an invoice for over 500 GB traffic used, and closes down. What is the point of this? If I'd want images and other stuff over http(s) with modem speed, I can have it at play.freeciv.org. But I know that it won't work for me, I ended up here, because illyriad over slow connections was a pain (and illyriad over fast connections ate my 5 GB per month almost as fast as YouTube consumes bandwidth. Okay, slightly exaggerated, but the 5 GB were definitely gone after about two weeks. :shock: )

Re: Make tutorial more elegant

Posted: Sun Nov 05, 2017 12:58 pm
by Lachu
So maybe another solution? If tips would be client-dependent, so maybe add support for loading client script from main menu? User will click on mods button, select button, like tutorial and client will load script, which start tutorial scenario and show hints. Ruleset are accessible by client and information like unit type, etc. are also accessible to client.

Of course, this kind of mod could been delivered with images/animations/etc.