Author Topic: AGS Config - Yet Another Winsetup  (Read 440 times)

AGS Config - Yet Another Winsetup
« on: 20 Jan 2020, 03:59 »
Hey, I decided to give a shot at trying to build another Winsetup alternative.


Spoiler: ShowHide


The code is written in C++ and it's available on GitHub github.com/ericoporto/agsconfig.

Binaries are provided on the releases page here, under assets, for Windows, MacOS and Linux. I have successfully run the Linux binary, but I have not yet tested the other binaries provided by the Continuous Integration system but they may work.

Remember that you will need to set permissions for MacOS and Linux after download (chmod +x agsconfig).

Instructions

Place agsconfig executable at the same location of your game entry-point (mygame) or binary (mygame.exe). On MacOS, place it at the side of the AGS Engine binary.

Create on the same directory a text file named .config, and add the following content to it:

Code: INI
  1. [game]
  2. executable = mygame

On MacOS, set the value of the executable to the binary of the AGS Engine and certify the AGS Engine is finding your game on execution. If you are using on Windows your executable should be mygame.exe.

Better instructions will be written over time on the README in the GitHub page. Oh the above GUI should be compatible with any gamepad too.
« Last Edit: 10 Feb 2020, 00:38 by eri0o »

Re: AGS Config - Yet Another Winsetup
« Reply #1 on: 20 Jan 2020, 20:14 »
Nice! The Windows version works fine.
Spoiler: ShowHide

Re: AGS Config - Yet Another Winsetup
« Reply #2 on: 20 Jan 2020, 22:09 »
Hey Lorenzo, I want to add some more options that currently exists in Winsetup when I have time to. If you have anything that needs adding to it, just give a shout.

PS gamepads I think currently only works if it's loaded through Steam. It also have keyboard navigation.

Re: AGS Config - Yet Another Winsetup
« Reply #3 on: 21 Jan 2020, 15:16 »
If you have anything that needs adding to it, just give a shout.
Thank you! I'll let you know if I think of something.

PS gamepads I think currently only works if it's loaded through Steam. It also have keyboard navigation.
I tried with the keyboard and with a gamepad and they both work!

Re: AGS Config - Yet Another Winsetup
« Reply #4 on: 10 Feb 2020, 00:36 »
Basically no changes since last time, but I  updated the theme a bit, and added new photos. The fonts should look crispy now in all OSes (they were blurry last time). The window also has a code to try to get a good size.

On the code itself, I created an interface to separate the GUI from the logic, so if someone wants to plug this on a different GUI, it should be very easy now.
« Last Edit: 10 Feb 2020, 00:38 by eri0o »

Monsieur OUXX

  • Mittens Vassal
  • Cavefish
  • Mittens Half Initiate
    • I can help with proof reading
    • I can help with translating
    • I can help with voice acting
    • Monsieur OUXX worked on one or more games that won an AGS Award!
    •  
    • Monsieur OUXX worked on one or more games that was nominated for an AGS Award!
Re: AGS Config - Yet Another Winsetup
« Reply #5 on: 11 Feb 2020, 14:34 »
Perfect

Can you explain the difference with Winsetup? It looks stricly identical.

A big plus to the basic Winsetup would be this :
- A large, clear, minialistic UI (with icons and tabs or whatnot) in the style of modern websites.
- A preview of what the selected graphic options would look like.
- A short explanation text appearing each time you hover or click on an option.

EDIT: Is the novelty here that winsetup.exe was not available on Linux and Mac`?
« Last Edit: 11 Feb 2020, 14:37 by Monsieur OUXX »
 

Re: AGS Config - Yet Another Winsetup
« Reply #6 on: 11 Feb 2020, 15:55 »
Winsetup runs on AGS Engine directly, so it has information on what resolutions exactly are possible for your game and some more. The agsconfig implementation uses the new command line --tell feature from AGS 3.5.0, which gives you information on the configuration of ags for the game it's running.

The goal was to provide a tool with equal features of Winsetup but working on Linux and MacOS. Some features are still missing though: translation selection and resolutions.

A big plus to the basic Winsetup would be this :
- A large, clear, minialistic UI (with icons and tabs or whatnot) in the style of modern websites.
- A preview of what the selected graphic options would look like.
- A short explanation text appearing each time you hover or click on an option.

Can you elaborate on which options you think requires additional explanation through tooltips?

About the large and clear minimalistic ui, I lack the design capabilities to design it, but if someone can come up with such design, I can implement.

About the preview, I don't understand how it would work. You mean running the game in a small window? Or showing static images that represent the options applied in a fictional game? The first I don't know how to do and the second I lack drawing abilities.

I also found an old request in the forums to hide options from the ui, I imagine the goal is preventing a player to enable unsupported features or playing a game in a different way than intended by the game developer.

Monsieur OUXX

  • Mittens Vassal
  • Cavefish
  • Mittens Half Initiate
    • I can help with proof reading
    • I can help with translating
    • I can help with voice acting
    • Monsieur OUXX worked on one or more games that won an AGS Award!
    •  
    • Monsieur OUXX worked on one or more games that was nominated for an AGS Award!
Re: AGS Config - Yet Another Winsetup
« Reply #7 on: 11 Feb 2020, 16:22 »
Can you elaborate on which options you think requires additional explanation through tooltips?
Well stuff like the vertical sync or DirectX. Only a handful of people know what that's about. I can only imagine their anguish, trying to decide what to click.

About the large and clear minimalistic ui, I lack the design capabilities to design it, but if someone can come up with such design, I can implement.
For example imagine several tabs : One for graphics, one for sound...
About the preview, I don't understand how it would work.
Like you said, just a static image showing you how the game would stretch, or be surrounded by a black box, stuff like that.


I also found an old request in the forums to hide options from the ui
Yes, the most obscure options should be hidden.
 

arj0n

  • Mittens Vassal
  • art consists in drawing a line somewhere
    • arj0n worked on one or more games that won an AGS Award!
    •  
    • arj0n worked on one or more games that was nominated for an AGS Award!
Re: AGS Config - Yet Another Winsetup
« Reply #8 on: 11 Feb 2020, 19:56 »
Checked agsconfig 0.1.0. for Windows. Nice work.

One strange thing: Driver only shows Software as option... (I'm running Windows64 bit)

Also some small things I noticed:
  • All dropdown box values are some kind of short name instead of the same full naming used via Winsetup.
  • missing the Native game resolution label: "Native game resolution: 320 x 240 x 32" for example
  • Driver only shows Software as option.
    Winsetup shows these options for Driver: Direct3D 9; OpenGL; Software renderer
  • Fullscreen scale also contains the values 1; 2; 3.
    Winsetup shows these options for Fullscreen scale: Max round multiplier; Fill whole screen; Stretch, preserving aspect ratio
  • Windowed scale also has different number value options (1, 2, 3).
    Winsetup shows these options for Windowed scale: None (original game size); Max round multiplier; Fill whole screen; preserving aspect ratio; 2x; 3x; 4x; 5x (selectbox)
  • Assuming the option "Filter" is the same as "scaling method" in Winsetup, "Filter options are different or has simply different names:
    AGSConfig: Filter: none; stdscale
    Winsetup: Scaling method: Nearest-neighbour; Linear interpolation
  • Missing: The Game language part is missing.
  • Missing: "Use 85 Hz display (CRT Monitors only)" option.
    (belongs to the group tickboxes: vertical sync; Render sprites...;Match Device Ratio)
  • If no speech pack present, do disable the "Use speech pack" tickbox.
  • Missing tickbox "Auto lock to window" in Mouse section.
  • When starting up agsconfig, have all panes initially collapsed, or all but Graphics options expanded.
  • And as said already: please group the more obscure settings and hide them initially. (as done via Winsetup, see below:)
Spoiler: ShowHide



Re: AGS Config - Yet Another Winsetup
« Reply #9 on: 12 Feb 2020, 02:06 »
Checked agsconfig 0.1.0. for Windows. Nice work.

One strange thing: Driver only shows Software as option... (I'm running Windows64 bit)

This is weird... Did you follow the instructions above? The drivers list comes from querying AGS itself. I will summarize only for Windows.

Place agsconfig executable at the same location of your game binary (mygame.exe).
Create on the same directory a text file named .config, and add the following content to it:

Code: INI
  1. [game]
  2. executable = mygame.exe

---

  • All dropdown box values are some kind of short name instead of the same full naming used via Winsetup.

Yes, my guide when implementing was the acsetup.cfg file specs directly, so I didn't noticed until you mentioned now!

  • missing the Native game resolution label: "Native game resolution: 320 x 240 x 32" for example

I have this internally already, so it will be easy to implement. So I did! The CI should have built and pushed the releases by the time you are reading this.

  • Driver only shows Software as option.
    Winsetup shows these options for Driver: Direct3D 9; OpenGL; Software renderer
  • Fullscreen scale also contains the values 1; 2; 3.
    Winsetup shows these options for Fullscreen scale: Max round multiplier; Fill whole screen; Stretch, preserving aspect ratio
  • Windowed scale also has different number value options (1, 2, 3).
    Winsetup shows these options for Windowed scale: None (original game size); Max round multiplier; Fill whole screen; preserving aspect ratio; 2x; 3x; 4x; 5x (selectbox)

I need to figure a way to alias and map the values that are written in the INI and the ones to be presented. I will figure something. The ini possible values are like below (Parenthesis are the mentioned values):
  • any integer number - positive number means upscale multiplier, negative number means downscale divisor; (2x; 3x; 4x; 5x)
  • max_round - deduce maximal integer multiplier that fits in current desktop/device size; (Max round multiplier)
  • stretch - stretch to current desktop/device size; (Fill whole screen)
  • proportional - similar to stretch, but keep game's aspect ratio. (preserving aspect ratio)

  • Assuming the option "Filter" is the same as "scaling method" in Winsetup, "Filter options are different or has simply different names:
    AGSConfig: Filter: none; stdscale
    Winsetup: Scaling method: Nearest-neighbour; Linear interpolation
  • Missing: The Game language part is missing.
  • Missing: "Use 85 Hz display (CRT Monitors only)" option.
    (belongs to the group tickboxes: vertical sync; Render sprites...;Match Device Ratio)
  • If no speech pack present, do disable the "Use speech pack" tickbox.
  • Missing tickbox "Auto lock to window" in Mouse section.
  • When starting up agsconfig, have all panes initially collapsed, or all but Graphics options expanded.
  • And as said already: please group the more obscure settings and hide them initially. (as done via Winsetup, see below:)
Spoiler: ShowHide




These will take a bit to figure out! Need to sleep first.

Re: AGS Config - Yet Another Winsetup
« Reply #10 on: 12 Feb 2020, 09:27 »
Following winsetup UI 1:1 may not be the best idea, there were numerous critisism to its control layout in the past.

Re: AGS Config - Yet Another Winsetup
« Reply #11 on: 15 Feb 2020, 12:58 »
I think I found a thread that has some information regarding Winsetup changes:

https://www.adventuregamestudio.co.uk/forums/index.php?topic=53604.0

Some stuff here are sensible, like adding a graphic to identify the game it's attached too.

Other maybe relevant thread:

https://www.adventuregamestudio.co.uk/forums/index.php?topic=48097.9
« Last Edit: 15 Feb 2020, 16:32 by eri0o »