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

#1701
Quote from: Dave Gilbert on Thu 18/01/2024 19:18:074K monitors are quite common now! But keeping it in "linear interpolation" mode fixes any problem.

I am confused, earlier you said that the problem appears with "linear interpolation"?
#1702
Strictly speaking, for the 1920x1080 game "render sprites at screen resolution" setting is useless, unless the monitor is much bigger (2k, 4k).

I will try to investigate this problem again, but last time I failed to get any fixing ideas in the engine, so cannot promise anything.
#1703
On the topic of this thread awhole. I believe it should be closed (locked), and a new one started, with an up-to-date explanation of how to use mac port, and how to deploy your game for it (same as done with few other port-related threads).

This thread, and iOS, and the two ones remaining which contain very outdated information.
#1704
Quote from: aKro on Mon 18/09/2023 12:54:45I don't want to be accused of digging up this thread, what seems to be frowned upon on this forum but is it definitively impossible to fix Maniac Mansion Deluxe AGSflashlight.dll on Mac without rebuilding ?

Hello, sorry for the delayed answer, but I was not certain whether this problem is related to missing plugin or not.

Lately I've been testing Maniac Mansion Deluxe on Windows and found that Flashlight plugin does not work correctly either. It appeared that certain thing changed in the engine, breaking compatibility between it and this plugin.
It's now fixed in the latest 3.6.0 patch:
https://www.adventuregamestudio.co.uk/forums/ags-engine-editor-releases/ags-3-6-0-patch-8/
(also in the latest 3.6.1 RC release)
#1705
Quote from: Dave Gilbert on Wed 17/01/2024 23:17:59I'm using the same settings as before (openGL, "render sprites at screen resolution" ticked on, only happens in windowed mode)

Could you clarify if this happens with any filter or only linear one?

I suppose that this happens in windowed mode probably because then the screen resolution is not evenly divided on game resolution. It's also possible that if you resize the window, the lines will look different.


In regards to fixing this, I currently don't have much ideas.
But I think it may be worth rendering this sprite to a completely white surface, and also write the texture to file to see the actual runtime texture contents. Because it will be interesting to find out which color these lines actually are, and if these black lines appear as a part of a texture, or as a result of that texture being rendered on screen.

Writing the texture to a file would require some addition or a hack to the engine.
#1706
Quote from: Custerly on Wed 17/01/2024 04:26:13I was wondering if this is the fault of my dialogue GUI specifically, or if this is an issue AGS has running animations while a GUI is open, so I tested this by making a new and very small GUI consisting of just one button to trigger the animation (the lightest GUI possible). The animation stuttered. Therefor, this is an inherent issue AGS has running animations while any GUI is open.

This is unexpected, a lot of AGS games have some GUI on screen at all times. In the past there have been issues with GUIs slowing down high-res games because they redraw unnecessarily on some actions, but that has been fixed.
I'd need to investigate, and know some details about GUI, and how animation is run, how is it started in script, etc.
Do only animations stutter, or the rest of the game too? For example, does cursor slow down or jitter at the sametime?
Please also tell which version of AGS are you using, and which graphics driver do you use to run the game, because that may matter.

EDIT: in Default Setup pane there's "Display FPS on screen" option that enables a FPS counter useful for noticing performance problems. If you could turn that on and test this case, you would see if the whole game slows down or not. If not, then there's something incorrect in how animation is run.
#1707
Quote from: Custerly on Tue 16/01/2024 20:30:15I will take your advice (and that of others here) and lower the res. Will I need to manually resize all assets, replace the current assets with the smaller ones, redraw all hotspots, re-place all sprites, etc. or is there a way to automate this within AGS?

There's no way to automate this in AGS, but there must be a way to automate this using some graphics tool. Unfortunately, I do not have much knowledge of this, but maybe someone else can give an advice on which to use.

Quote from: Custerly on Tue 16/01/2024 20:30:15Also, I want to have character portraits shrink to half size when they are not the current speaker during a conversation, but I want these miniature sprites to retain the ability to animate.

Using Overlays will let you display sprites on screen with any scaling, but you will have to script animation yourself, changing overlay's graphic in periods of time. But I think you would have to do that yourself anyway, as AGS does not have a feature for displaying second portrait on screen.

https://adventuregamestudio.github.io/ags-manual/Overlay.html

EDIT: Alternatively, you could try using a dummy Character for that, which can be animated using a Animate function, and manually scaled too.
But keep in mind that characters are drawn on a "room layer" behind all GUIs, so that might be tricky (depends on situation).
#1708
Quote from: Custerly on Tue 16/01/2024 17:31:30- Perhaps 4k is excessive, I just didn't previously see a reason not to go for the max resolution.

The logic of selecting game resolution for 2D games should be opposite: choose the lowest resolution that suits your requirements, as AGS itself can easily scale the game up to any monitor, and that should not cause any performance issues.

The reason to NOT go to max game and asset resolution is simple: the higher resolution, the
- more disk space the assets require
- the longer assets load and prepare for display.
- more RAM and GPU memory they require while being displayed on screen; and if there's not enough of that, they will keep getting reloaded all the time, slowing game down.
So you may be making your game unnecessarily big on disk, and introduce potential performance problems for the players who do not have powerful computers, while not gaining any actual benefit.

This is also why I don't suggest to go to 1080p, but rather recommend finding a resolution which matches the asset looks. That is a resolution where your sprites, fonts, etc can be displayed 1:1 without quality loss. Even if that's 720p or less.

Quote from: Custerly on Tue 16/01/2024 17:31:30I have been developing this on a 1080p monitor with no perceptible degredation in quality from AGS downsizingh everything from 4k.

I suppose that may be because 4k is evenly divided on 1080p.
#1709
4k resolution?... AGS currently runs 1920x1080 games more or less fine without too many simultaneous objects on screen, but they still get issues sometimes (we spent last year improving things there). But 4k sounds like an overkill. Frankly, AGS engine was simply never meant for this, it has a lot of old methods in it in way of it handles resources and graphics, that may not be suitable for this resolution.
There's also a question of how would this run for players whose monitors don't support a resolution that big, as pixel 2D games that AGS produces cannot reliably downscale the game without massive quality loss.

Quote from: Custerly on Mon 15/01/2024 19:27:32I run said animation chain via scripting triggered during a conversation (with my custom dialogue GUI open) it stutters noticably. When I run the same animation chain outside of dialogue via clicking on a hotspot, it runs butter smooth. After poking around a bit, I noticed that if I set all of the dialogue GUI buttons to invisible during the animations, it runs smoother (though still not as smooth as when the animations are triggered outside of the dialogue GUI)

When you say "custom dialogue GUI", do you mean that you script custom dialog options rendering, or something else? Are these actual buttons, or something that you draw using a DrawingSurface?
#1710
To clarify, do you animate one character or multiple characters? I'm asking this because you used same "c.Animate" everywhere.

Normally, if all animations run equal amount of time, then you may simply play last animation blocking.

If they have different length, then make a waiting loop:
Code: ags
while (c.Animating)
{
    Wait(1); // let engine update and redraw
}

where you check the longest animation. Or you may check every character:
Code: ags
while (c.Animating || c2.Animating || c3.Animating)
^ this means that either of the characters still animating.
#1711
Quote from: vga256 on Mon 15/01/2024 00:38:58I tested it, and it is true. This is kind an interesting undocumented feature of the engine: Object.GetAtRoomXY's point hit detection is determined by the Pixel-perfect click detection setting.

It's not a "undocumented feature", but rather not documented well enough. The "click" in the setting's name is for a historical reason. I suppose that in early versions of AGS there were no functions that would find an object, and all the player click behavior was hardcoded in the engine.

Today there's no difference between "click" and "hit", as clicks are done through a hit test, so that's effectively exact same thing.
Everything that deals with finding objects under cursor depends on this setting, because each related action goes through the same hit test algorithm. This includes ProcessClick, GetLocationType, GetLocationName (and consequently "@OVERHOTSPOT@" macro label), GetAtScreenXY, GetAtRoomXY, and anything else I might forget.

EDIT: updated this in manual.
#1712
Quote from: Dave Gilbert on Sun 14/01/2024 18:59:26You are right. If I extend the head/neck areas by a few pixels it does make the line go away. There are dozens of characters in the game so I was hoping to avoid having to manually edit every single talking frame on every expression for every character  (that's hundreds of files), but if it can't be avoided I guess that's what I'll do. That's what I get for not testing this out long before now! Thanks either way.  :grin:

I'm certain that this may be automated. If your sprite files are organized in pairs (e.g. by having matching part in the name), someone could write a tool that would load both images, copy first few non-transparent lines from body sprite to head sprite, and save head sprite. Then you could run this tool over a folder with image files.
#1714
Quote from: Dave Gilbert on Fri 12/01/2024 22:37:11I am unsure if this issue has been here for awhile, or if it's new to RC2.

In my game, I animate heads on top of bodies (using two different characters) so they can do gestures and expressions seperately. I noticed that if I tick the "render sprites at screen resolution" option on, and play the game in a window, there are lines where the heads and bodies meet

This has been an issue for a while. I've seen it in another game, run in 3.6.0, and maybe earlier versions, where similar problem affected walk-behinds. It looked like a 1 pixel gap between walkbehind cut-out and a non-walkbehind part of room background.

This problem exists only in non-software renderers, and is probably related to a "uneven" texture size.
Linear interpolation causes antialiasing where texture edges may become half-translucent. Although I can't remember if this problem was seen with nearest-neighbour or not.

At the moment, I don't know how to fix this, or if this is even possible to fix in the engine.

The only non-engine solution I may think of is to overlay objects a little, by a few pixel lines. In other words, you make your head sprites higher by 2-3 pixels and have copy of body pixels in this extra part. When positioning, the head should overlay a body by this amount (or other way around). This might make things look seamless.
#1715
Quote from: Khris on Fri 12/01/2024 11:30:45Now add a game to ScummVM and pick [game folder]/Compiled/Windows as the folder to add. You might get a compatibility message, just click "Add anyway".

Not Compiled/Windows though, but Compiled/Data. Data folder contains raw game data (file called gamename.ags). It is also never deleted.

Quote from: Khris on Fri 12/01/2024 11:30:45Do not save the game after this because it will delete the .exe again!

Game exe in Windows folder is not deleted on saving, but on a test run (F5).
#1716
Updated to RC2
(Please use download links in the first post)

Editor:
 - Adjust sprite's import settings after "Crop sprite edges" command; this would ensure that this sprite is restored from source file keeping the cropped size.
 - Fixed "\\[" escaped sequence not saved correctly in game properties (GUI Label, etc) (regression since 3.6.1 Beta).
 - Fixed a warning condition for copying 32-bit bitmaps to a desktop clipboard of less color depth.
 - Fixed keyboard shortcuts for GUI Editor's Copy and Paste commands.

Engine:
 - Fixed NumPad keys not handled properly by the engine (in on_key_press, IsKeyPressed, and TextBox control).
   This is a regression since 3.6.0.
 - Fixed loading pre-3.* games could lead to a memory corruption (regression in RC1).
 - Fixed audio not playing when loaded from the game package (regression in RC1).
#1717
Quote from: Wesley on Thu 11/01/2024 12:28:57I'm not familiar with how the Sierra-style dialogues should look

For the example, here's how it looks like in Space Quest 5 (please ignore the name label, this is not necessary for this art, and may be generated in game script anyway):

#1718
Ah, I should have posted, here's an example of how this look like in Space Quest 5, for example:
https://sierraclassicgaming.com/wp-content/uploads/2013/06/sq5_spikeexplains.jpg
#1719
I suggest posting in the "Critic's Lounge" forum, so that more people could check it out and comment:
https://www.adventuregamestudio.co.uk/forums/critics-lounge/

The style may be similar to the classic Sierra SQ games, this is what this character is based on. Portraits may have backgrounds and/or frames too.

In regards to the character, I guess the Roger character is supposed to be a positive comedy character, so the look of the face should be more cheerful I guess? But I wish AGS community had a collective opinion on this work too.
#1720
Template's resolution is 320x200, so this had to be something suitable for that resolution. Around 1/4 to 1/3 of a screen height perhaps?

No expressions are necessary, only a short speaking animation. This is meant to provide example only.

The portrait's looks should match the template character looks (Roger):
https://github.com/adventuregamestudio/ags-template-source/blob/master/Sierra-style/Sprites/Defaults/ego_down_00.png
SMF spam blocked by CleanTalk