Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Crimson Wizard

#961
I can add options to disable these.
Because Accessibility group may contain a wide range of settings, then they probably will require separate disable settings per subgroup (or even per individual options in certain cases).

Of course this will open an opportunity for game developers to prevent players from having these options when they might actually need them.
#962
Very well, I will just remove them from the engine and setup, and then provide an alternate program that gives them for those players that need this.

Or perhaps I should suggest ScummVM team to implement these instead, and redirect players to use ScummVM to run ags games when they have these troubles.
#963
Quote from: Rik_Vargard on Mon 14/10/2024 08:57:50>> https://www.mediafire.com/file/1wsrvrs6tyep3ce/AGStest04.mp4/file

Please tell, how do you normally convert this to ogv? I'd like to use exact same method and settings, to be certain that i'm testing same situation.
#964
Quote from: Laura Hunt on Mon 14/10/2024 11:52:05
Quote from: Crimson Wizard on Mon 07/10/2024 23:28:58WinSetup:
 - Added "Accessibility" settings for skipping speech and text messages.

Will it be possible to disable these options with the [disable] tag in the cfg file, as we can already do for other options like gfxdrivers, filters, etc?

Won't this defeat the purpose of these options? The whole point is to let players override the game in case developer made it impossible for them to play the game. If a game developer will disable them, then players who might need them won't be able to use them.
#965
@DiegoHolt if you would just explain what kind of animation do you want to make, then we would be able to tell what is the optimal way to do that.

But in general, if animation changes only certain portions of a room, then it's better to make objects per each visible changing part and animate only them.
If you must animate a big seamless picture at once, then it does not matter which type of objects to use, since every animated kind of object (room bg, object, character, button) works exactly the same. Since the room bgs are limited to 5, and you need more frames, then of course using a object for background animation instead would be preferable.
#966
@Rik_Vargard could you please make a video that contains only black frames, and then a single non-black frame in the end?
(or a single frame at start, then black frames, and single frame at end)
With such video it will be much easier to investigate what the video decoder is doing.
#967
Updated to Beta 2
(Please use download links in the first post)

Among other things, this update includes few simpler script API additions backported from AGS 4 Alpha release.

Editor:
 - Added "WrapText", "TextPaddingHorizontal", "TextPaddingVertical" properties to GUI Button.
 - GUI Labels can select full range of Alignment values in their TextAlignment property.

Script API:
 - Added global events: eEventDialogStart, eEventDialogStop, eEventDialogRun, eEventDialogOptionsOpen, eEventDialogOptionsClose (these are handled in "on_event").
 - Added Button.WrapText, TextPaddingHorizontal, TextPaddingVertical.
 - Added DateTime.CreateFromDate() and CreateFromRawTime().
 - Added static Dialog.CurrentDialog property and non-static ExecutedOption and AreOptionsDisplayed properties.
 - Added File.Copy() and File.Rename().
 - Label.TextAlignment has now type Alignment, rather than HorizontalAlignment, and has full alignment range (both horizontal and vertical).
 - Added Overlay.SetPosition() and SetSize() functions for convenience.
 - Added GetTimerPos() that returns timer's position (remaining time), in ticks.
 - Added CopySaveSlot() to complement MoveSaveSlot() and File.Copy() functions.



I suppose that this version may not have any more big additions, with an exception of savegame upgrade feature, which I've been preparing for some time:
https://www.adventuregamestudio.co.uk/forums/engine-development/load-older-game-saves-into-updated-game-attempt-2/

I'd like people to try this version out and test how it works.



Once again, since we don't have an updated manual yet, here's some info about the new Dialog-related events.
These let to do certain actions in your game whenever a Dialog starts, stops, or a topic is run. Which may be useful for adding some custom effects to your game.

All of these events are handled in "on_event" function:
eEventDialogStart - arg1 means dialog ID
eEventDialogStop - arg1 means dialog ID
eEventDialogRun - triggers whenever a dialog entry is run, arg1 is dialog ID, arg2 is entry ID, where starting entry (@S) is 0, and user-made options begin with 1
eEventDialogOptionsOpen - triggers whenever dialog options are shown
eEventDialogOptionsClose - triggers whenever dialog options are hidden

Here's a demo game that illustrates their principal usage:
https://www.dropbox.com/scl/fi/vkezgxxrujldunxn4n55o/362-demo-dialogevents.zip?rlkey=yueyy9uymp0d8c0ypntdnpqh1&st=cdrprje1&dl=0
(use TalkTo verb on a player character to start a dialog)
#968
@FortressCaulfield you should really mention which code you are using when asking such questions, or at least which template you started with. If I knew that you did not write any code for keyboard controls yourself, then I could at least guess that you are probably using KeyboardMovement module which comes with Sierra template, and explain how to modify it in my reply.

AGS does not have any built-in movement controls. It also has very limited built-in controls overall (like default inventory clicks handling), provided mainly for backwards compatibility, and these may be disabled in game settings.

For the most part you code all the controls yourself, use the script that comes with template, or adjust that script.
#969
Quote from: Dannymac247 on Sun 13/10/2024 14:46:30Like, the help browser would open, and I could see the searchable table of contents and everything, but when I selected anything IN that table of contents no content would open up.

This normally happens when you download something in a zip file and Windows marks the contents as "dangerous".

Try selecting "ags-help.chm" file in a file explorer, open file properties, and find "Unblock" button there.
#970
It's curious, I tried the same video with the SpriteVideo plugin that uses a different TheoraPlayer library, and it seems to have same effect as AGS, with faster video playback.

There must be something specific in how the video is encoded, which standard theora playing lib cannot handle.

EDIT:
Since I have very little idea what to look at in OGG Theora, I will try downloading VLC player's source code and find how it interprets this video's parameters...

EDIT2:
Another curious thing: i tried to convert original video to Theora + OGG type using VLC itself, and the resulting video has exact same problem now...
#971
Quote from: Tonal on Sat 12/10/2024 18:09:21Do font characters have a standard width? If not, is there a way to determine the width of characters passed to the screen by a function in AGS? I cannot find one in the manual.

Fonts may be monospace or variable width, so you should not rely on characters being same width.
AGS provides GetTextWidth which calculates a width of a string. It may be used to calculate width of individual characters as well.
Also there's GetTextHeight that calculates how much height the wrapped text will occupy:
https://adventuregamestudio.github.io/ags-manual/Globalfunctions_General.html#gettextwidth
https://adventuregamestudio.github.io/ags-manual/Globalfunctions_General.html#gettexteight

Other two functions that may be helpful for calculating text position:
https://adventuregamestudio.github.io/ags-manual/Globalfunctions_General.html#getfontheight
https://adventuregamestudio.github.io/ags-manual/Globalfunctions_General.html#getfontlinespacing
#972
I received this video, and can observe the problem, where video is running faster than it should.

But I also noticed that there's a noise in the sound playback, which is not present when playing with a regular video player. I don't know if these two issues are connected or not.

EDIT: I found a previous topic by Rik_Vargard:
https://www.adventuregamestudio.co.uk/forums/beginners-technical-questions/ogv-video-images-going-faster-than-the-mucic-in-ags/

Rik_Vargard's video was 24 FPS, kursh's video is 25 FPS, idk if that matters.

EDIT2: I've been comparing first 5 seconds of intro, because that's roughly the time that makes the title text go upwards beyond the screen.
In AGS these 5 seconds are played roughly in 3.5 seconds, for some reason.

I have few proposals:
1. Video lies about its FPS (but then, how does the video player do it right?).
2. Video contains some "filler" frames that are supposed to be interpreted as "repeat previous frame", but the decoder in AGS ignores these.
3. Video frames are tagged with timestamps, i.e. playback is not supposed to rely on times calculated from FPS, but use each frame's timestamp instead.
#973
Quote from: rattusrattus on Sat 12/10/2024 14:41:46My issue beforehand though was that I tried to implement the sound effect through a speech voice over, and it didn't work. I titled the wav file of the sound effect NARR1. This is the code I tried to use:

The code looks fine. The speech file has to be called NARR1.wav and placed into "Speech" subfolder in your project - this is where AGS finds the voice-over files and compiles speech.vox from them. Also it's worth checking whether this file plays at all if imported as a regular sound: because AGS had issues with certain WAV files in the past.

The question here is rather, whether are you planning to make whole game with voice-over, or only play 1 sound for narrator messages.

If latter, then it may be convenient to write a custom function that plays the sound and displays given text, and then use that function instead of placing sound Play function every time before narrator sais something in a dialog. That might save some time and be less prone to mistakes.

I don't know your intentions, or what you are doing in your code, so mention this just for information.
#974
Quote from: Honza on Sat 12/10/2024 15:42:20About the shadows, you mean a lack of shadows in the drawings, or the fact that there are no regions where the character would be darker?

The former, lack of shaded areas on backgrounds.
#975
I'd like to figure out what is happening, and look for a possible fix, that's why I've been asking for a test video with such problem. If we manage to fix it, then users won't have to stumble on this, or separate audio from video.
#976
Quote from: rattusrattus on Sat 12/10/2024 03:37:30Sorry to not respond to your replies I keep forgetting to. I am wondering if there's a way to play a sound effect during dialogs? I tried to put the sound effect as a speech sound file under the narrator and it doesn't seem to work.

In general, please do not post unrelated questions in the existing topic. This topic is about "blurry fonts", so it's in no way connected to the speech sounds.

About your question, please clarify, are you trying to add voice-over to the narrator, or are you trying to play an arbitrary sound during narrator's speaking?
When you say that you're tried something and that does not work, please always explain what exactly did you try and what happened. For example, post your actual code, and explain result, or post a error message if you got one.

AGS has a voice-over system, as explained in the manual:
https://adventuregamestudio.github.io/ags-manual/VoiceSpeech.html

Is this what you are looking for, or you want something else?
#977
Yes, room objects can use Views and animate, this may be found in the manual:
https://adventuregamestudio.github.io/ags-manual/Object.html#objectsetview
https://adventuregamestudio.github.io/ags-manual/Object.html#objectanimate

In regards to performance, it's not exactly clear from your description, but if you animate same big picture, then it won't make a difference whether you animate as room background, character or object. It only makes difference when you break big picture into multiple smaller parts that animate separately, while most of the background stays static.
#978
The Theora video decoding was mostly untouched in many years, with the exception of small fixes.
The process of retrieving and decoding data is controlled by APEG library, everything happens inside of it. This is a very old library, and may have limitations, and, in theory, there may be cases that it simply does not know how to handle.
In order to decode an audio using SDL_Sound, for example, we would need to split the process into sound packet read and decoding steps. I suppose it might be possible to hack this inside APEG. But at the same time it may be beneficial to get rid of APEG and write a completely new video decoder, which will use SDL_Sound either directly, or through some interface.

Quote from: eri0o on Fri 11/10/2024 16:46:11why is the mpeg audio decoding code disabled there?

I have no idea, it may be a remains of times when MP3 was under a patent.

#979
@kursh , @Rik_Vargard , could any of you please make a short video that demonstrates this problem?
I have an old Rik_Vargard's video, but it's pretty long and has lots of stuff happening in it, it's difficult to understand at which point the problem appears, so not very convenient for a test.

Ideally, it could be a video with visual cues (visual element appearing/dissapearing/changing) synced with certain points on sound track, like beats.

I am interested what the actual problem is that results in video-sound desync:
- is it that the sound is playing literally slower, like slower tempo.
- is it that sound is played with pauses.
- is it that video frames are changing too fast, more frequently than required.
#980
Quote from: eri0o on Fri 11/10/2024 15:37:21The sound decoding in AGS implementation is not done from libogg, but instead using SDL_Sound, which has a different implementation inside. This is done because we do decode the video images through the traditional Xiph library but pass the sound through the AGS sound system - this is for better sound control in our system, not in ags4 we have decoding multiple videos and other things supported there for video.

This is not true, the video's sound is decoded by the libogg libvorbis (apparently), and only played by our general sound output (MojoAL).
SDL_Sound library is not used in case of video.

You may see the sound frame retrieval here:
https://github.com/adventuregamestudio/ags/blob/0d6194bff20633eca557793829738909131cff59/Engine/media/video/theora_player.cpp#L175-L191
SMF spam blocked by CleanTalk