AGS 3.4.1 - Patch 1

Started by Crimson Wizard, Sun 28/01/2018 18:49:16

Previous topic - Next topic

Crimson Wizard

AGS 3.4.1 - Patch 1 released
Current release number: 3.4.1.12





Released: 28th January 2018

Previous stable version: AGS 3.4.0 forum thread


This release is brought to you by:

- Alan v. Drake
- ChamberOfFear
- Crimson Wizard
- Gurok
- monkey0506
- Ryan O'Connor (one bug fix contribution)
- Scorpiorus (improvements to plugin drawing system)



Changes in the Patch 1:

Engine:
- Removed game error reported when GUI coordinates were off the room limits.
- Fixed crash in Direct3D renderer when alt+tabbing out of fullscreen mode.
- Fixed OpenGL fullscreen mode was not minimized when you alt+tab from it.
- Fixed Direct3D and OpenGL renderers unnecessarily applied anti-aliasing on utility sprites (used for transition effects) when "smooth scaled sprites" option was enabled.



What is new in 3.4.1

Common features:
- Upgraded Windows version of AGS with Allegro v4.4 library (previously v4.2).
- Implemented "RenderAtScreenResolution" game setting. When enabled, characters and objects are scaled in screen pixels rather than game pixels. (NOTE: it was always enabled for Direct3D in the past, but now you can set it to your liking)
- Implemented VerticalOffset and LineSpacing properties for fonts.
- Removed limit on Dialog Topics (was 500 topics per game).
- Removed length limit on the names of Inventory, GUI and GUI Controls.
- Removed length limit on the names of Hotspots and Objects.
- Removed length limit on event handler names.

Editor:
- Removed legacy game compiler.
- Raw compiled game data is now saved in "Compiled\Data" folder, as opposed to just "Compiled".
- The speech.vox file is now not recompiled if game is quick-run (using F5). Engine is supposed to find newer files in the Speech folder.
- Editor can now import games older than 2.72, and newer too (3.*) if you have extracted data files from compiled executable.
- ScriptAPIVersion and ScriptCompatibilityLevel settings now have "Highest" option, which is meant for automatically enabling newest script API when upgrading old project in a newer editor.
- Added new "Default Setup" pane, which works similarily to "General Settings" and lets you configure default values for game setup.
- Added "Font Height (pixels)" readonly property to the Font's pane, which works for both WFN and TTF fonts and may be used as a reference.
- Made Editor correctly detect modern versions of MS Windows for display on About dialog and when sending anonymous statistics.
- New application icon to comply with 3.4.0 splash screen.
- Fixed crash when importing old games which have extended editor version string saved in the project files.
- Fixed unhandled exception occuring when user types "#undef", "#ifdef" or "#ifndef" on the last line of the script.
- Fixed #ifver and #ifnver not working properly if version number had only one component (major version).
- Few improvements to the game compilation made in hope to reduce occasional data corruption.

Script:
- Fixed local variables not working in the switch's case expressions.
- Fixed Strings in switch, making them compare by value again.
- Fixed compiler mistakes caused by the use of objects of empty type (that is - struct without any variables in it).
- Fixed few cases of possible compiler crashing when there is an unfinished statement in the end of the script.

Script API:
- A new parameter StopMovementStyle is added to following functions: LockView, LockViewAligned, LockViewFrame, LockViewOffset, UnlockView. This parameter can be eStopMoving (default) or eKeepMoving.
- DynamicSprite.CreateFromFile and SaveToFile now support path tokens and comply to the new file path rules (no writing files to the game's installation directory).
- Added missing readonly properties to get Lighting/Tinting parameters for Character and Object: HasExplicitLight, HasExplicitTint, LightLevel, TintBlue, TintGreen, TintRed, TintSaturation, TintLuminance.
- Added Mouse.SelectPreviousMode() and Mouse.IsModeEnabled(CursorMode) functions.
- Added readonly properties to get Button's animation state: Button.Animating, Button.Frame, Button.Loop, Button.View.
- Added GetFontHeight(FontType) and GetFontLineSpacing(FontType) functions.
- Added setter for System.Windowed property, letting to change it at runtime, switching between windowed and fullscreen modes.
- Added System.RenderAtScreenResolution property to change sprite rendering mode at runtime.

Engine:
- Added OpenGL renderer to Windows version.
- Added support for switching between fullscreen and windowed modes at runtime using Alt+Enter key combination.
- All supported hardware-accelerated graphic drivers (Direct3D and OpenGL) now run every game in 32-bit display mode by default, and convert game's graphics on load if that is required. This fixes loss of green hue precision in 16-bit games and allows to run 8-bit games, although latter is only partially supported: there are color mismatches and dynamic palette cycling is not working.
- Partial support for plugins drawing on screen for hardware-accelerated renderers (Direct3D, OpenGL).
- Added support for global configuration file, which works as configuration for all games and overrides default game's config file. Individual game user's config overrides global one in its turn. Global config's location is platform-dependent (this feature is currently disabled on Windows).
- Implemented separate config option for game's shared data path, to keep it distinct from user-defined saves path.
- Engine saves last Windowed and RenderAtScreenResolution mode states to the user config file.
- Engine no longer writes and reads gamma level in saves, meaning that gamma keeps its current value when restoring a saved game.
- Removed arbitrary limit on number of sprites rendered at the same time for hardware-accelerated renderers (Direct3D and OpenGL) (was 75), and another limit imposed on drawing entries for all drivers (was 200).
- Engine now tries to get voice files from the Speech folder first, if one exists, and speech.vox later when quick-run from the Editor.
- Fixed speech portrait was displayed below GUI, contrary to speech text.
- Fixed ShakeScreen command was causing graphic artifacts when game is run with software renderer.
- Fixed calling Character.ChangeView during idle animation results in new view being animated.
- Fixed Speech.SkipStyle getter return value for eSkipTime case.
- Fixed Speech.VoiceMode not returning correct values when speech.vox is not enabled/present.
- Fixed AdjustVolumeWithScaling character's property not working with the new audio system.
- Fixed volume drop was not applied to audio clips which begin playing during speech voice-over.
- Fixed Game.SetAudioTypeSpeechVolumeDrop did not affect currently playing clips until next voice-over begins.
- Fixed Game.TranslationFilename returning "default" instead of empty string if no translation is set.
- Fixed engine was trying to locate "My Documents" folder on Windows Vista and higher even though it did not need it, and reporting internal error if such folder was not found, even though "Saved Games" folder is used instead.
- Properly toggle console upon play.debug_mode variable change in script.
- Added missing stubs for agsjoy plugin.

WinSetup:
- Fixed display mode selection was missing certain items.




KNOWN ISSUES (to be updated)

- Need to make mobile ports (Android, iOS) work with this version.
- When using Direct3D, game misses 1 bottom row and 1 rightmost column of pixels of game image when "Render sprites at screen resolution" is OFF. This also might cause slight image distortion.
NOTE: there's a suspicion that that is a bug in Microsoft's Direct3D driver since Windows 7.
- When running game in OpenGL fullscreen system cursor may be visible when over black borders.

Joseph DiPerla

Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

Chicky

Great work all, now just eagerly awaiting the update for mobile ports 8-)

m0rph84


I was waiting for the Alt-tabbing fix!
Thanks! ;-D

Monsieur OUXX

I see lots of wonderful things in that list. Thanks people!!!
 

slatkabundeva

Does anyone know the likelihood of being able to export to an android playable file in the near future? I decided to try another game engine for my next game because of this but I like AGS so much better.

Crimson Wizard

Quote from: slatkabundeva on Tue 06/02/2018 00:49:47
Does anyone know the likelihood of being able to export to an android playable file in the near future? I decided to try another game engine for my next game because of this but I like AGS so much better.

Alright, I do not know what this question implies, whether the actual ability to run AGS game on Android, or automated friendly way to create a distributive for Android, so I will divide the answer in several parts.

1) First of all, Android version of the engine exists, and can run AGS game data, if you install engine APK (non-signed) on device and upload game data files to specific folder, where it can find it. Naturally, that's not a "pro" way to distribute your game, and it was used mainly as a way to just run any random AGS game on Android for yourself.

For example, there is a download link for engine APK in this thread for previous version of AGS (3.4.0): http://www.adventuregamestudio.co.uk/forums/index.php?topic=54631.0

Here's a caveat though: such APK is not prepared for 3.4.1 yet, because of the issues with building one (hopefully temporary).


2) There is also a devised way to create an actual APK which includes both engine and game data, so that it could be installed like a "normal" game on Android.
Unfortunately this requires certain manual work, including installed Android studio, and compiling stuff. Also, I am not completely certain it works on Windows, so far everyone seem to be saying they did this on Linux.
Here's a recent thread that explains it: http://www.adventuregamestudio.co.uk/forums/index.php?topic=55681.0

Again, for now that works only for games made with AGS 3.4.0 (same reason as noted in p1).


3) Finally, a person named monkey0506 was working on the Editor plugin that is meant for automatic creation of APK. This is still work in progress, last update was made in August 2017.
I have to admit, that I do not know much about how it works and what is the current progress on it, you would have to ask its author.
But here is the forum thread that discusses it: http://www.adventuregamestudio.co.uk/forums/index.php?topic=53910.0

Again, for now that works only for games made with AGS 3.4.0 (same reason as noted in p1).

Chicky

Quote from: Crimson Wizard on Tue 06/02/2018 01:24:35
Here's a caveat though: such APK is not prepared for 3.4.1 yet, because of the issues with building one (hopefully temporary).

CW, is there a thread in which we can read about this, or can you elaborate a little? Building to android is definitely something I want to do in the future and it would be pretty tragic if upgrading the 3.4.1 has prevented that.

Crimson Wizard

#8
Quote from: Chicky on Tue 06/02/2018 10:44:03
Quote from: Crimson Wizard on Tue 06/02/2018 01:24:35
Here's a caveat though: such APK is not prepared for 3.4.1 yet, because of the issues with building one (hopefully temporary).

CW, is there a thread in which we can read about this, or can you elaborate a little? Building to android is definitely something I want to do in the future and it would be pretty tragic if upgrading the 3.4.1 has prevented that.

The technical problem is described here: https://github.com/adventuregamestudio/ags/issues/420
This is something that is supposedly very easy to fix, probably just a matter of substituting function names, but I cannot do that on my own until I manage to compile Android port. In theory I could try "blind fix", that is, change the code just the way I think it will work, but that would make sense only if someone else were able to build Android engine and test it. So far the only people who did that (from the recently active forum members) were monkey0506 and sonneveld. I am trying to contact them now to see if they may give any hint. But both of them were not online for weeks or months now.
My own attempt to compile Android port so far had failed; I mentioned it here: http://www.adventuregamestudio.co.uk/forums/index.php?topic=44768.msg636579203#msg636579203
The biggest problem is that I never did that before, and have no knowledge of how to work with Android's development kits, and there seem to be no one around knowledgeful enough to help.

Dave Gilbert

Hah! A just created a new build of Unavowed and a bunch of testers were complaining about the alt-tab issue. Was trying to sort out how to fix it and now I don't have to! THANKS!

Crimson Wizard

Quote from: Dave Gilbert on Tue 06/02/2018 20:41:12
Hah! A just created a new build of Unavowed and a bunch of testers were complaining about the alt-tab issue. Was trying to sort out how to fix it and now I don't have to! THANKS!

You mean the crash? Someone reported it months ago, but depiction was vague, so I thought "it's one of those random Direct3D crashes on Windows 10" and decided to look later... then it turned out to be an actual bug in AGS.

jannar85

#11
Chris, can't wait to see what's happening with AGS. And you were right. I'm back.

Hi Dave and Joseph :)

** edit **
ags-help.chm doesn't seem to work? Everything is blank...
Veteran, writer... with loads of unreleased games. Work in progress.

morganw

Quote from: jannar85 on Mon 12/02/2018 18:44:40
** edit **
ags-help.chm doesn't seem to work? Everything is blank...
If launching from the editor and the file is flagged as coming from the Internet, it should offer to remove that flag for you. It you are opening it directly you would have to clear it manually. I wrote some instructions here (ignore the page title, the content was originally incorrect). The short version: right-click the file, choose properties, then click unblock.

JanetC

Hi, I'm playing a beta version of Unavowed under this build. If I run it under OpenGL mode, tinting doesn't work. I'm running Windows 10 on a Macbook Pro via Parallels, but I'm not sure that the emulation is the problem - it never has been before.

eri0o

Hey JanetC. The tinting in AGS, under OpenGL in Windows requires OpenGL 3.0 compatibility. Can you check if the OpenGL drivers are available in your computer and versions?

Crimson Wizard

Quote from: eri0o on Wed 14/02/2018 22:52:14
Hey JanetC. The tinting in AGS, under OpenGL in Windows requires OpenGL 3.0 compatibility. Can you check if the OpenGL drivers are available in your computer and versions?
AGS prints OpenGL version in the log, as well as warnings about non-working shaders.

I was thinking about fallback to software tinting mode in case shaders are not supported, but that would require modifying program structure a bit.

Gurok

Quote from: Crimson Wizard on Thu 15/02/2018 00:03:57
I was thinking about fallback to software tinting mode in case shaders are not supported, but that would require modifying program structure a bit.

Also a question of how many people there are with drivers that don't support OpenGL 3.0. I mean, another option is to just have the engine refuse to start.

I'd say Parallels has something to do with it in this case. Last time I tried OpenGL in a VM (VirtualBox), it only supported OpenGL ~1.4, IIRC.
[img]http://7d4iqnx.gif;rWRLUuw.gi

proximity

Hi CW, I'm using this version (3.4.1) currently and I have few things to report - feedback :

* When you manually run Game Setup and change some settings, you cannot override them from "Default Setup" pane.
* Mouse movement seems better in OpenGL mode in full-screen game mode.
* The engine still doesn't compile more than 2 GB sprite file (previously known issue).
* Performance of the engine, scripting, compiling, view pane are visibly faster and more reliable than 3.4.0.
Proximity Entertainment

Crimson Wizard

#18
Quote from: proximity on Thu 08/03/2018 07:48:59
* When you manually run Game Setup and change some settings, you cannot override them from "Default Setup" pane.
When engine runs the game it first reads default config, then reads user config if its exists, and replaces any matching options with values found in user config.
You can "override" this by deleting a user config located in %USERPROFILE%/Saved Games/Name of your game/.

Maybe it may help if there were an option to delete user config for the game from the Editor?.. Idk if that's a good idea.

proximity

Quote from: Crimson Wizard on Thu 08/03/2018 14:45:47
Quote from: proximity on Thu 08/03/2018 07:48:59
* When you manually run Game Setup and change some settings, you cannot override them from "Default Setup" pane.
When engine runs the game it first reads default config, then reads user config if its exists, and replaces any matching options with values found in user config.
You can "override" this by deleting a user config located in %USERPROFILE%/Saved Games/Name of your game/.

Maybe it may help if there were an option to delete user config for the game from the Editor?.. Idk if that's a good idea.


Actually it's not a problem for users who are familiar with AGS but beginners may be confused. It may be resolved by removing "Run game setup" from build menu ? :confused: So users understand that the only way to reach settings is "Default Setup" pane. Just an idea.
Proximity Entertainment

SMF spam blocked by CleanTalk