AGS 3.4.1 - Patch 4

Started by Crimson Wizard, Mon 10/09/2018 22:15:56

Previous topic - Next topic

Crimson Wizard

AGS 3.4.1 - Patch 4 released
Current release number: 3.4.1.15



For Android
Spoiler

For developers
Spoiler


Released: 10th September 2018

Previous stable version: AGS 3.4.0 forum thread


PLEASE TAKE A NOTE: In this version "Default" template is now named "Sierra-style".
(Need to make this warning, because several people have asked where did "Default" template go.)


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)

And artists of the new Sierra-style template:
- CaesarCub
- Hobo
- Jim Reed
- ProgZmax
- Selmiak


Changes in the Patch 4:

Engine:
- Fixed dynamic array of Dynamic Sprites or Overlays could loose some of its elements after restoring a savedgame.
- Fixed Debug(2) and Debug(5) commands (regression).
- Fixed "warnings.log" was never created (regression).


Changes in the Patch 3:

Editor:
- Added scrollbars and zoom slider to the GUI editor.
- Added one extra zoom step to the Room editor and fixed mouse wheel scrolling zoom slider by 3 steps at once instead of 1.
- Fixed Undo history getting lost after saving the script.
- Fixed crash when importing old game's rooms with interaction variables.
- Fixed incorrect character names appearing after old game's import.

Engine:
- Reverted conversion of all graphics on load to 32-bit, made the game run in its native color again, but correctly convert to 32-bit display instead. This fixes certain bugs found in 16-bit games since the first 3.4.1 release.
- Fixed pressing ALT+ combination on Windows sometimes caused another key to "stuck", endlessly triggering key events in game.
- Fixed service key shortcuts (switching display mode, (un)locking mouse in window) did not work at particular stages of the game, like video playback and dialog options.
- Fixed unwanted transparency on built-in GUI in 8-bit games.
- Fixed engine was reporting string format errors as internal ones and not script's.
- Fixed crash when loading an old game's room with interaction variables.


Changes in the Patch 2:

Templates:
1. Now includes new "Sierra-style" template which substitutes elderly "Default" template and contains new age graphics.
Template topic: http://www.adventuregamestudio.co.uk/forums/index.php?topic=54703.0
2. Made small fixes to the Verb Coin template to make it compatible with 3.4.1 out of the box.

Editor:
- Font's line spacing and offset are now used when displaying GUI previews.

Engine:
- Removed limit on maximal asset files in a game package. (Now you may have over 10k voice files in speech.vox)
- Fixed game refused to start at all if speech.vox has bad format.
- Fixed DynamicSprite.SaveToFile() was not appending default  "bmp" extension if user did not specify one.

Android:
- Updated port to work with 3.4.1 engine. Software renderer works again too (was broken in 3.4.0).



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)

- iOS port is probably still not working 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. 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.

my2k

#1
hey! this is awesome!
however I noticed a tiny issue: I gave the game I was working on a try in this new engine and while everything is working swimmingly, without changing any code whatsoever, I've noticed that when starting a dialogue with options, all the dialogue options are completely greyed out now. I can't click them at all. Before they would highlight and I could click to choose them but now they stay there, inescapable until I close the game. I can't choose any of them.

Is there new code or something with the dialogue system? I can't imagine what's changed on my end, as I opened the game directly and gave it a test and this was how it turned out. Let me know if I should ask about this elsewhere but I think the issue might be with the new version, and something to do with rendering the dialogue or finding which is active.. thank you in advance!

edit: I am using the custom options script detailed here.

edit 2: I tried an old backup and yep, exact same code as before- it worked in the last version(3.3.4), but not in the new one. Nomatter what room, or dialogue module, it just won't seem to respond to my mouse-over so I can't select a thing. Thanks again

edit 3: I think I fixed it by changing an option in General Settings! under Backwards Compatibility, you can set "old style custom dialogue options API" to true, and everything works again.

I'll leave all this diatribe here in case someone else has my problem. Sorry guys! 8-)

Crimson Wizard

#2
Quote from: my2k on Wed 07/11/2018 05:09:53
edit 2: I tried an old backup and yep, exact same code as before- it worked in the last version(3.3.4), but not in the new one. Nomatter what room, or dialogue module, it just won't seem to respond to my mouse-over so I can't select a thing. Thanks again

edit 3: I think I fixed it by changing an option in General Settings! under Backwards Compatibility, you can set "old style custom dialogue options API" to true, and everything works again.

I recommend this to everyone: when you upgrade an old project to the new version of AGS, first of all check for "Upgrading to XXX" articles in the manual (each one since the last version you were using). For example, the change to dialog options API is mentioned in the "Upgrading to AGS 3.4":
http://www.adventuregamestudio.co.uk/manual/ags94.htm#UpgradeTo34


Quote from: my2k on Wed 07/11/2018 05:09:53
edit: I am using the custom options script detailed here.

The manual pages in the wiki are terribly outdated.
The most recent online manual is this: http://www.adventuregamestudio.co.uk/manual/index.html

ollj

I like this a lot.

Arbitiarily low entity/pointer consttrains and other engine limits
(like lack of opengl/script performance and hassling with overlyobfuscating dynamic pointer workarounds)
made me do a tricky choice to abandon the AGS editor/engine for almost 2 years, and using other languages instead (mostly opengl).

Time to make a
https://github.com/fabioarnold/TwoTriangles
bridge to AGS, for all the CSG-rootsolging
https://en.wikipedia.org/wiki/Constructive_solid_geometry
spheretracking/raymarching of
https://www.shadertoy.com
if only for some cheap semi 2.5 d fractals/reflections or crepuscularity:
https://www.shadertoy.com/view/ltKcDt

basic idea is to define assets with lots of space partitioning and smoothMinimum:
https://www.youtube.com/watch?v=s8nFqwOho-s
https://www.shadertoy.com/results?query=smin

Crimson Wizard

#4
Quote from: ollj on Thu 15/11/2018 21:57:55
I like this a lot.

Arbitiarily low entity/pointer consttrains and other engine limits
(like lack of opengl/script performance and hassling with overlyobfuscating dynamic pointer workarounds)
made me do a tricky choice to abandon the AGS editor/engine for almost 2 years, and using other languages instead (mostly opengl).

To be fair, AGS did not improve that much since. Some constraints were easier to remove, but quite a few annoying restrictions still remain.

Quote from: ollj on Thu 15/11/2018 21:57:55
Time to make a
https://github.com/fabioarnold/TwoTriangles
bridge to AGS, for all the CSG-rootsolging
https://en.wikipedia.org/wiki/Constructive_solid_geometry
spheretracking/raymarching of
https://www.shadertoy.com
if only for some cheap semi 2.5 d fractals/reflections or crepuscularity:
https://www.shadertoy.com/view/ltKcDt

basic idea is to define assets with lots of space partitioning and smoothMinimum:

I don't think it is worth to expect something like this in AGS. I've said that before on many occasions, but AGS is a very old software focused strictly on 2D point'n'click games, and the way its coded makes it very difficult to add new stuff while keeping it consistent with existing game mechanics. Besides it is now being contributed to sporadically by just a few people.

It's easier to choose another engine that is already based around 3D. AGS will not necessarily suit your needs.

Monsieur OUXX

Quote from: Crimson Wizard on Fri 16/11/2018 15:59:54
Quote from: ollj on Thu 15/11/2018 21:57:55
Arbitiarily low entity/pointer consttrains and other engine limits. It's time to...

I don't think it is worth to expect something like this in AGS. It's easier to choose another engine that is already based around 3D. AGS will not necessarily suit your needs.


For example, you could sugest those features in the subfourm dedicated to MonoAGS http://www.adventuregamestudio.co.uk/forums/index.php?board=29.0
 

Dualnames

#6
Hello, I'm using AGS Editor .NET (Build 3.4.2.1) ** BETA VERSION **
v3.4.2, February 2018

And out of the 4 occasions a Dynamic Sprite is being accessed in the game, one of them crashes, this is a bug that has existed almost for 3 years now, but have been unable to constantly replicate, till now, I have the dmp files, the game files, the game executable, the code etc. Basically from personal tests, even though I thought it had something to do with the size of the Dynamic sprite itself, whenever I attempt to create one no matter what I do it crashes, even if it's like
Code: ags
 grayscale = DynamicSprite.Create(320,200,true); 


grayscale is a DynamicSprite variable that's declared at the top of a script file (.asc)

EDIT: https://uploadfiles.io/gj3cb <- THE dmp file.
Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

Crimson Wizard

#7
@Dualnames, the 3.4.2 was renamed into 3.5.0.
TBH I don't think I was keeping the PDBs (debug symbols necessary to read the crash dumps) from the older wip versions so I won't be able to use your crash dump. The possible options here are:
1) You upgrade to the latest 3.5.0 and try if the bug still exists.
2) I may rebuild the old 3.4.2.1 version again and you try to replicate the crash dump with my engine to make crash dump match actual PDBs.
or share the project source if that's acceptable, etc.

Dualnames

Alright, trying out 3.5 see how that goes gonna keep u posted! I'm gonna assume upgrading gonna break the savegames tho? Then that means I can't replicate it
Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

Crimson Wizard

Quote from: Dualnames on Tue 08/01/2019 16:02:24
Alright, trying out 3.5 see how that goes gonna keep u posted! I'm gonna assume upgrading gonna break the savegames tho? Then that means I can't replicate it

No it should not, savegames are still backwards compatible meaning you should be able to load ones from 3.4.0 even.

(not other way around though!!)

that is if you don't modify game source adding new stuff, but I guess you know that.

Dualnames

Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

Dualnames

#11
And ....

https://imgur.com/KeYqpb7

I upgraded to 3.5.0 (took the mediafire off the first post) http://www.mediafire.com/file/6bak3fncw1dg3ef/AGS-3.5.0-alpha8.zip/file

So, my savegames don't seem to work, they all also appear named as "invalid saveslot"
Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

Crimson Wizard

#12
Quote from: Dualnames on Tue 08/01/2019 16:29:46
And ....

https://imgur.com/KeYqpb7

I upgraded to 3.5.0 (took the mediafire off the first post) http://www.mediafire.com/file/6bak3fncw1dg3ef/AGS-3.5.0-alpha8.zip/file

So, my savegames don't seem to work, they all also appear named as "invalid saveslot"

Ohhh... this must be a temporary format that was later removed. I did not think someone is making actual game with that version tbh.

Ok, I will rebuild the 3.4.2.1 and send you acwin.exe to make a crash with.

Dualnames

Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

Crimson Wizard

Here it is: https://www.dropbox.com/s/w7ilnzu8d61zra6/acwin-3.4.2.1-wpdb.zip?dl=0
But if you want me to check that crash dump I will also need actual game exe (only *.exe is sufficient).

On a side note, I should probably restore support for that save version to prevent such hickups.

Dualnames

That version has a hard limit of 30 fonts and crashes because of that. I'm sorry im giving u such a hard time.
Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

Dualnames

I removed 2 extra font and it's running at least to get us that crashdmp file.
Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

Dualnames

However, because of the way the crash happens (the window becomes unresponsive and says "it has stopped working, debug, close, look online and close") how would i force a generation of crash dmp file?
Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

Dualnames

Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

Crimson Wizard

Quote from: Dualnames on Tue 08/01/2019 17:25:59
That version has a hard limit of 30 fonts and crashes because of that. I'm sorry im giving u such a hard time.

Are you sure it was 3.4.2.1 you were using previously? I checked the history and it seems the unlimited fonts were implemented in 3.4.2.2. I can build that one too, but better double check what you were actually using.

Quote from: Dualnames on Tue 08/01/2019 17:38:18
However, because of the way the crash happens (the window becomes unresponsive and says "it has stopped working, debug, close, look online and close") how would i force a generation of crash dmp file?

I think it should generate it anyway, but maybe just press close?

SMF spam blocked by CleanTalk