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 - Gal Shemesh

#121
Hah hah, "Because it's AGS" :-D I like this comment.

Thanks @Crimson Wizard. Then I'll just use a pure black graphic that covers the whole screen. It's nice that this method of 'fade' using a GUI keeps showing the mouse cursor with the Wait cursor like @Cassiebsg has mentioned, so I disregarded the fake 'Wait' cursor GUI I made altogether. :)
#122
Quote from: Cassiebsg on Sat 05/08/2023 19:22:45Forget about the built in fade in and fade out. Write your own, using a GUI, it's easy and it'll solve all your problems. That means you set in the setting the effect to instant, and instead you just turn on the GUI, fade (change transparency from 0% to 100%) the GUI to black, change room instantly, and then fade to normal to the new room. This will keep your cursor behaving normally.

And then instead of using FadeIn() and FadeOut(), you just use MyFadeIn() and MyFadeOut(). (and you can just use a find & replace in script. ;)

And of course, you need to set the wait cursor to the same sprite you normally use (or a special one you might want).
Yep, that would probably be the best way to doing it. Though, the pure black is considered as transparent... Any way to make my GUI color a solid black instead of using a background image?
#123
Appearantly I mixed between the methods. Thanks @Crimson Wizard for the clarification. :)
#124
Quote from: Crimson Wizard on Sat 05/08/2023 15:50:33Are you using FadeOut/FadeIn functions for translation, or a GUI?
Just the built-in transitions, either the default behavior of FadeInAndOut or manually calling for them with the FadeIn() and FadeOut() functions.
#125
Quote from: Snarky on Sat 05/08/2023 14:46:44If your pseudocursor is on a GUI and your custom fade relies on a fullscreen black GUI, then it's just a matter of setting up the GUI z-order to decide whether the "cursor" is in front of or behind the black screen.
Thanks for the suggestion. However, not matter what high number I put in the ZOrder, the cursor remains below the transition...
#126
Thanks @Khris! Just checked that up. It's great! I'm new to modules, but I can see that it can also be modified within AGS which is awesome. :) I modified it to show a text string astertix based on Font0.

Is there a way to make it to also show a symbol and label for characters?
#127
It's so great to have good and talented members that make such modules!

Yet, I think that a dedicated adventure game engine like AGS should have such option built-in, even just by using a GUI label with an 'asterix' that would blink for a second at the center of each and every hotspot, object and character in the room, while pausing the game when it does. Like in Simon the Sorcerer 2:


I tried making a GUI for this purpose, with labels to cover all 49 hotspot slots, and just about enough to cover all objects and characters in a given room, and to position them while they're hidden when entering a given room before FadeIn, based on the existence of the elements they're related to.

The logic as far as I understand should first count the number of elements when entering a given room; that is the number of characters, hotspots and objects, and save them in a temporary variable for each element. Then, a for loop comparison should be built to cycle through each of the elements in the room and compare them with the labels name within the GUI. If there's a match, it should position the label at the center of its corresponding element.

I thought about using IDs for both elements and labels for the comparison, but this won't be consistent when using a single GUI with labels for all the 3 elements (Characters, Hotspots and Objects), as ID numbers are unique, and can't have the same ID number for different labels. So I thought about using the 'Name' property of the labels with a certain syntax name, following with number. And then it should be sliced to grab only the number in it, and then to convert it into an 'int' for the comparison to work.

An example of what I mean is something like this:

lblCharacter0 == 0: cCharacter --> this is character index 0
lblHotspot1 == 1: hHotspotID1 (starting from 1 since 0 is the Eraser) --> this is hotspot index ID 1
lblObject0 == 0: oObjectID0 --> this is object index ID 0

Then, when the 'hint' key is triggered, the hint GUI will show up, revealing all the labels that has an existence element in the room, make them blink for a second, and then set them to be hidden again and close the GUI; only labels that have their corresponding element existence in a given room will be triggered. All the rest should remain hidden and ignored.

I'm not an expect yet to make such logic in script - only have it in my head. Maybe someone else could take this idea and put it into an actual script logic. :)
#128
Thanks @Cassiebsg. :) That's another thing I tried solving which remained opened. I just can't find a way to make the fake 'Wait' cursor (the GUI I made) to keep showing on-top of the fade when it plays - in other words, to exclude it from the fade transitions; the transitions affect it even if I set the default fade to Instant and use the FadeIn() / FadeOut() functions...
#129
Quote from: Crimson Wizard on Fri 04/08/2023 19:01:56Gal Shemesh, please tell which version of AGS are you using exactly?
AGS Editor .NET (Build 3.6.0.50)
v3.6.0, July 2023
#130
@RootBound, it's working! 8-0 I thought that 'Wait(1)' will be too short and that the player.ChangeRoom() function will cut it in the middle that I didn't even tried it. Thanks!!  8-)
#131
Thanks for the reply, @RootBound! Yep, I tried the Wait() function. But unfortunately, it doesn't work very well as I want the sound to play when the FadeOut starts playing, and not to have to wait for the sound to end before it does...
#132
Mm... I see. Thought there might be a simple option for this in the editor as I wanted to use the same button sprite for different buttons, where each should cover a different area to serve as its hotspot. Anyway, thanks for your reply, @Khris! I ended up by making separated graphics for each button.
#133
Hi everyone,

Trying to solve this one out myself but kind of stuck...

I'm willing to keep the mouse cursor visible with the 'Wait()' sprite when Fade-In and Fade-Out transitions are playing. But Can't find a way to doing so - whenever a fade is playing, either by the 'player.ChangeRoom()' function or manually by using 'FadeIn()' and 'FadeOut()' functions the cursor gets hidden.

Thanks

EDIT:
Not sure if this is the right way to doing it, but I just ended up making a hidden 'gWait' GUI that I set with the Wait cursor sprite and size, and set it to follow the X and Y positions of the mouse cursor in the repeatedly_execute() function. Then I made a custom function that is called when clicking on the main menu buttons, and in it I set the 'gWait' GUI to show up, then I set a FadeOut() transition to play, and right after it before changing the room I made the 'gWait' GUI to be hidden again.
#134
Hi everyone,

Not sure if it's a bug, but better get a reply that it's not than not reporting at all:

When the 'player.ChangeRoom()' function is used along with the default 'FadeInAndOut' behavior, and a certain sound is set to be played just before changing the room, the sound doesn't play but only after entering the changed room.

For example, I made a click sound for buttons on a main menu screen, and set it to play right before the player.ChangeRoom() function. The click sound however plays either when the fade-out is finished or when the changed room is loaded (I can't tell). But if I set a FadeOut() function manually and afterwrads put the player.ChangeRoom() function then the sound plays correctly upon pressing the button.

Thanks
#135
Hi everyone,

Is there a way to align a sprite image of a button to either any of the sides / corners / center of a GUI button boundaries, the same as can be done for the text of a button?

I have a circled image button and I want that the hovering area of it will have padding in either direction, so it will be easier to hover and click on as the circle is only 26x26 pixels in size. It should also cover a text label below it which I want to highlight when the mouse cursor is hovering on the button.

Thanks
#136
Hi @Duzz,
Just watched your online video demonstrating the PowerQuest. Nice work! :)

I played with the Unity engine many years ago, way before it had the 2d handling objects and plugins that it has today, and I remember that I were very frustrated by the fact that creating a basic 2d game with it wasn't straightforward as I thought it to be. However, your PowerQuest looks amazing and it seems like you put a lot of thought making it very similar to AGS! :) Unity users who are interested in making 2d point-and-click advenure games are surely going to appreciate it a lot!

I also just finished playing your "The Telwynium: Book One" and enjoyed every second of it! Now I even understand better the benefits that your PowerQuest can add to a pixel-art game. Keep up the good work!
#137
Quote from: Crimson Wizard on Fri 28/07/2023 04:15:33This seems similar to what the SpeechCenter plugin does:
https://www.adventuregamestudio.co.uk/forums/modules-plugins-tools/editor-plugin-speech-center-version-2-2-0/

Ahh, didn't know that it exists. Thanks for pointing this out! Just checked it and found that there is some similarity, yet there are some differences:

I really like the idea that the plugin works directly in the editor, and that there's this feature that you can changes your entire game string directly from it; this is a very powerful feature. Yet I still find having an external file from the editor better, as I fear a little from plugins that can change my scripts - I prefer to do it manually, literly knowing that I'm the one who actually changing my scripts. :)

I also found a few issues, such as that the plugin didn't include my custom .Say function lines (I read the discussion of other members relating to this). Also, I've found that it considered some Display() messages as if my Narrator is saying them; I have a custom Narrate function for showing messages, but I'm not sure why it considered as if the Narrator is saying them, as I used a regular Display() function (not the custom one) in their case, such as when I click on the 'About' button to show some text on the screen.

As for the export to CSV, that's great but it lacks styling benefits. That is why I prefer to have a pure Excel (.xlsx) file; I made table-format which highlights odd and even lines in different color, making them much easier to read when translating. Here's a screenshot of the strings file from my recent 'Going Home' mini-game:


As for listening to either the original or voice-over speech files, the formula shown above is a local folder path link, and it gives you the freedom of having them play in your default media player program. The best thing is that you don't need to load the game in the editor for being able to see and click-to-hear the speech files next to the text lines, and you can even just send the Excel file along with the relevant speech files to your voice actors so they could work on them from their home.

Another note about how I handle audio files in advanced for saving time and effort later:
I made a very basic CMD script that lets you create copies of an 'empty-template audio file' of your choice, for setting up in advanced as 'placeholders' in scripts: the script asks you to choose a name for the file, along with the amount of files that you want. Then, it does all the work for you creating them in a Speech folder - if files already exist, it skips them so you don't end up with overwriting the precious speech files that you already recorded; for my convenience I made the empty file at the exact 1000KB in size, just so I could distinguish them in a detailed-list in File Explorer.

I made this script so I could provide speech files index number for my string lines in advanced, right when creating them in my scripts. This saves me time later, as once I have voice acting speech files I don't have to come back to each and every line in my scripts and manually add pointers to them; I just copy the most updated files over the empty ones and "tada"! :) Besides, it also lifts from your head the need for saving a new speech file and to manually give it a number after each recording (which could also have mistypes); you just open the empty placeholder audio file number that you need, record what you need, save and exit from it and move forward to the next file. And if you find that you need more placeholders, you just run the script again and give it a higher number.

Here's a GIF animation of how it works - I'm thinking about including this in my video tutorials:



I guess it's a matter of what works best for you, the same as we all make different ways for achieving the same goal. :)
#138
QuoteEditor is rather sensitive to the removal of project files. I might fix it to let it load at least.
Forgot to relate to this:

Thanks! That would be great if the project could be at least loaded if a translation file is missing.

QuoteIt is also a known problem that any change to a source text will cause it to create a new entry in the translation.
Solving this also needs a translation system redesign.
I wanted to note that I've found that even if the editor makes duplicated lines, manually editing of the trs file and removing them (while their exact version already exists above in the file) and then recompiling it, makes the editor to relate the original lines again. And then, if you re-update the translation file from the editor it doesn't make duplications in the trs file for these lines again.

I wouldn't touch the way that translation and speech are currently working in AGS; during trial and error I managed to develop some best practice and got a grip on the sensitivity of the translation file, in a way that I'm more experienced now in fixing things in it before the issues even arise. I also made a sophisticated Excel file for writing all the strings used in the game, along with formulas of direct links to the speech files of each line so you could listen to them directly from the Excel when doing either the English voice recording or voice-over; its structure is the same as the trs file, with odd lines for the original text and even lines for the translation. So if something goes wrong I can simply generate a new translation file, and then copy and paste all the lines from my Excel to it.

I will probably make an online tutorial showing this method as this may help others - by building a game that way this can save a lot of time afterwards, in both dubbing and translating process.
#139
Yep, I meant the alignment to the right. Thought I'm just missing an option as I took alignment for granted as a built-in option.

Anyway, thanks for the custom dialog options render suggestion and link! However, as I'm using 'Wait()' functions from within the dialogues in traditional scripting to make some 'pause' between the conversations, this may not work for me. As if I understood correctly from what is written there, blocking functions can't be used...
#140
Completed Game Announcements / Re: Going Home
Wed 26/07/2023 21:01:41
Quote from: CaptainD on Wed 26/07/2023 08:06:25Congrats on making your first game!  ;-D  I'm sure it will be the first of many.
Thanks!! :)

Quote from: bicilotti on Wed 26/07/2023 20:00:48Voice acting was hilarious!
A nice, short, polished game, I loved it!
Thank you so much! So glad you liked it. :-D
SMF spam blocked by CleanTalk