AGS 3.6.1 - Beta 16 -- new WIP version

Started by Crimson Wizard, Sat 27/05/2023 04:37:47

Previous topic - Next topic

Baguettator

Hi there ! Just launched my game previously made with 3.6.1.6, with the latest build 3.6.1.13, and I got a crash immediately. There is my error message :

An exception 0xC0000005 occured in ACWIN.EXE at EIP=0x0046522A. program pointer is -42, engine version 3.6.1.12, gtags (1,1).


Crimson Wizard

#61
Quote from: Baguettator on Mon 20/11/2023 18:18:37Hi there ! Just launched my game previously made with 3.6.1.6, with the latest build 3.6.1.13, and I got a crash immediately. There is my error message :

An exception 0xC0000005 occured in ACWIN.EXE at EIP=0x0046522A. program pointer is -42, engine version 3.6.1.12, gtags (1,1).

Do you mean that you run a compiled game with the new engine, or that you recompiled an older project with the new editor?
Is there anywhere I can download your compiled game to see what happens there?

If not, then I'd need to know what is in "game_start" function(s) in your game in order to reproduce the problem.

Baguettator

Yes I recompiled an old project ! And tried with another one, same crash.

I send you my project by PM.

Crimson Wizard

#63
Alright, so I broke File.Open command in script. I've been changing things there and forgot to test, it fell out from my head.

I must fix this and re release the update.

But what can be possibly done to improve this situation? I constantly miss to test things. There have not been a single update where I did not have to quickly fix something. Maybe we can recruit testers?

EDIT: I wish we had some kind of automatic testing system running games and game scripts. Alot of problems could be prevented early.

cat

#64
I guess that's what betas are there for - that people can test them and find bugs.

As for improving the situation: what about providing the last two betas as download in a spoiler tag (just like "For Editor", but "Previous Betas"), so people can easily downgrade to a version before the bug so they can continue working while the bug is fixed? This could reduce stress to make a quick re-release.

Automatic smoke testing would be great, but this is a lot of work and comes with its own set of challenges.


By the way, thanks a lot for having a look at the mask resolution issue.

Crimson Wizard

Quote from: cat on Mon 20/11/2023 20:26:51As for improving the situation: what about providing the last two betas as download in a spoiler tag (just like "For Editor", but "Previous Betas"), so people can easily downgrade to a version before the bug so they can continue working while the bug is fixed? This could reduce stress to make a quick re-release.

All the previous Beta updates are available for download on our github releases page:
https://github.com/adventuregamestudio/ags/releases

But yes, I can add a link to previous beta to the first post too.

Crimson Wizard

The Beta 13 update was re-uploaded, with a File.Open script command fixed. Please download again (links are in the first post).

Baguettator

Thanks a lot Crimson Wizard ! I'm going to test it, but surely it works as you tested it before me with my project ;)

Crimson Wizard

Quote from: Baguettator on Tue 21/11/2023 18:59:32I'm going to test it, but surely it works as you tested it before me with my project ;)

Well, I only tested the startup, did not play your game further, so could miss something.

Baguettator

#69
I feel very limited when I know that I can't dynamically increase or decrease the size of an array of a custom struct. Like :

struct Item
{
  String name;
};

Item items[];
items=new Item [50];

Is there any wish to make it possible in future versions of AGS ?

EDIT : weird thing is I can declare
Item items[];
in my script, and the game is launching well, but I can't then do
items = new Item [50];

Crimson Wizard

#70
@Baguettator this may be done by creating a new array, copying old elements, and then assigning a new array to the pointer variable.

But I am bit puzzled with your example, because afaik regular structs cannot be stored in dynamic arrays, only managed structs can be. While Strings cannot be stored in managed structs in 3.6.* versions. So I am not certain what is your real use case.

EDIT: oh, judging by your thread in Tech Support, it appears that i misunderstood your intentions.
This problem is not about resizing existing array, but about having dynamic structs of regular structs, or structs containing strings.

In any case, I suggest looking into AGS 4 version, which has a new script compiler with a number of new features supported. The AGS 4 forum thread has a link to the new syntax cheat-sheet. Perhaps you will find a solution to your case there. If not, then please open a new suggestion for AGS 4 version. We try to not plan any big features for AGS 3 anymore.

EDIT: here's an active list of suggestions for the AGS 4 script:
https://github.com/adventuregamestudio/ags/issues?q=is%3Aopen+is%3Aissue+label%3A%22ags+4%22+label%3A%22context%3A+script+compiler%22+label%3A%22type%3A+enhancement%22

Crimson Wizard

#71
Updated to Beta 14
(Please use download links in the first post)

Contains all the fixes from 3.6.0 Patch 7.

Other changes:

Editor:
- When run with "/compile" argument Editor will print all messages to the console (stdout), instead of displaying modal message windows.

Script API:
- Added Game.PrecacheSprite() and Game.PrecacheView(), which preload certain sprites and linked frame sounds into the engine's cache memory.



My intention is to have this as the last 3.6.1 "Beta", and make a "Release Candidate" after this version gets tested.

The purpose of 3.6.1 was improvements to the engine performance and Editor's convenience of use. Some things done here were not planned from the start, but appeared to have surprisingly good results (such as scripts execution speed, for example). There were also several "quality of life" improvements done for the Editor, such as Log Panel, and "Goto Definition" command from script's context menu opening characters and other game objects. Overall this seems like a nice relatively minor update after 3.6.0.

Baguettator

I don't know if it's possible to implement this in AGS 3.6.1, but could it be possible to add the "eWheeleast" and "eWheelwest" parameters for mousebuttons ? With any mouses, you can't do that, but with a pad (I don't know the name in english, but the square used with the fingers near the keys in a laptop that replaces the mouse)  you can do that. It could be great !

Baguettator

Also, I found that sometimes, the compiler doesn't see mistakes in sintax. I wrote that :

String a=String.Format("%d", dalle.typepion);

The compiler ran, and "a" was "0".

BUT typepion is an array in the "dalle" struct.

Code: ags
struct dalle
{
int typepion[10];
};

The compiler didn't tell "you can't make an int equal to an array". It should, isn't it ?

Crimson Wizard

Updated to Beta 15
(Please use download links in the first post)

Common features:
- Removed length limits for: Game name, savegame folder, Character's script name and regular name (description), Inventory item's name (description), Mouse cursor's script name, Audioclip's script name.

Editor:
- For non-Windows build targets Editor will fix config containing Direct3D graphics driver option and set OpenGL instead.
- Fixed sprites may get wrong transparency settings after "Crop sprite edges" operation.
- Fixed deleting collapsed "region" in script would sometimes lead to portion of the script undeleted but staying invisible.
- (Possibly) Fixed a "Index out of range" exception in Script editor, related to the "script location" drop-down list, which could occur at random circumstances while working with the script, and any Color Theme is enabled.

Engine:
- Print some info about memory usage when reporting a "Out of memory" error.
- Fixed Display and Say commands treating the second met "&" sign as a voice-over token too (they must only check the first one in string).
- Fixed `@GAMENAME@` label was not updated if Game.Name got changed in script.
- Fixed a crash when switching to a cursor mode which has no sprite assigned (regression in previous Beta).

Engine Plugin API:
- Expanded IAGSStream interface, which was added in previous Beta.

iOS:
- Updated port for 3.6.*.

Windows:
 - Fixed a rare bug when the Windows engine could fail loading the game for no good reason. This error is related to a bug in Windows SDK 8.1.

Dave Gilbert

Quote- Print some info about memory usage when reporting a "Out of memory" error.

Awesome. Hopefully this helps track down the OOM errors I've been getting. Thanks! Nabbing now.

Dave Gilbert

#76
Sorry for double-posting. Unfortunately, this update doesn't seem to be compatible with the SpeechBubble module. I get this error when any character speaks:



Any idea why this may be happening? I've tried adjusting the backwards compatibility settings but I get the same crash. I reverted back to beta 14 and everything works, so it must be something with the update.

Thanks in advance!

-Dave

Crimson Wizard

#77
charBubbles contains a pointer to SpeechBubble. If it's null, then it was not created for some reason.

This is too complicated to have any ideas, as this involves a script module and a game script that use that. Can I have any test game where this may be reproduced?

EDIT: Okay, I will try with the game sources I had.

Dave Gilbert

I made a small test game using the bubble module and the current update, and of course the bubble works perfectly!  :-D  So there must be something specific about my game that isn't playing nice with the update. I will see if I can narrow it down.

Crimson Wizard

Quote from: Dave Gilbert on Thu 21/12/2023 20:12:22I made a small test game using the bubble module and the current update, and of course the bubble works perfectly!  :-D  So there must be something specific about my game that isn't playing nice with the update. I will see if I can narrow it down.

I could reproduce this using the "Old Skies" sources from October. Now I am going step by step back to see which changes in the engine cause this.

SMF spam blocked by CleanTalk