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 - Alan v.Drake

#21
I use paintshop pro and never had a problem just saving an indexed image. Photoshop works fine too (it has indexed mode and a color table palette where you can save/load colors).
Gimp should be able too, if you remove checkbox from unsafe options that remove unused colors, but I never used Gimp.

Maybe we can go forth with the idea of deciding an universal mask palette, and let AGS match those exact colors when importing a non-indexed mask image.

To note, if someone makes an optimized export in their program of choice, colors might still end up messed up. "Export for web" and other similar features are never really safe for accuracy. Never use "export" options, when color is crucial.

- Alan
#22
The themes have been updated with the styles for the new log panel.
You will need the latest 3.6.1 beta from the thread.


- Alan
#23
Quote from: eri0o on Thu 28/09/2023 12:47:17Of course I don't have an answer for this [...]

I made a node-like system where I declare all doors and which rooms they link, and it's all simple textual data in a TSV file, which could be used to generate a graph.

I ended up needing that both to track position/direction when arriving from another room, and tracking door locked status for the minimap.
It's tempting to link rooms directly, but then you may stumble into the case of having multiple entrypoints between two rooms, and then everything falls apart.

- Alan
#24
Fun fact from testing on my branch:
original acwin.exe:  Virustotal 2/71 (Bkav Pro, MaxSecure)

changed encryption string: Virustotal 1/71 (MaxSecure)

removed encryption: Virustotal 1/71 (MaxSecure)


So maybe "Avis Durgan" is in some class of heuristics, but no idea why MaxSecure's still triggers its own heuristics even with no en/decryption routine. I guess there's some other code piece causing the false positive.


- Alan
#25
I remember we ventured the idea some time ago. IMO, a tree panel akin to painting apps is the most convenient option for users.
Besides, if it were done as a dockpanel panel it could be positioned on the side of the room panel as click-to-expand, so it doesn't waste space.

I can't think of any other way to make it more intuitive.
As a tree panel it would be immediate to switch bewtween modes. Visibility and lock could be implemented by adding clickable icons.

There isn't much else to say, I think.
A tree view with the same node structure as the navigation bar is all one could need.


- Alan
#26
Quote from: Radiant on Sun 06/08/2023 21:50:55
Quote from: Alan v.Drake on Sat 05/08/2023 22:02:32If it's caused by the xor encryption, maybe we can use something else or not encrypt at all.
What makes you think it is caused by XOR encryption?

Heuristics can trigger at poor attempts at obfuscation but there's no telling if it's the case unless someone tries with a reproducible case.


- Alan
#27
If it's caused by the xor encryption, maybe we can use something else or not encrypt at all.


- Alan
#28
Modules, Plugins & Tools / Re: AGS ThemeEditor
Wed 05/07/2023 12:55:25
With the modern format, all you need is a text editor with plugins, or even a json online editor like https://jsoneditoronline.org/

Be sure to read the format docs: https://github.com/adventuregamestudio/ags-themes/blob/master/FORMAT.md
If you don't need retrocompatibility, making themes is much simpler thanks to the new format.


- Alan
#29
Lookin' good!

- Alan
#30
Since I have some time right now, I'm trying to finish implementing the base support for PO translations.
So, I'd like to discuss some things and plan what to implement.

I have an open ticket for this activity:
https://github.com/adventuregamestudio/ags/issues/1780

What are PO translations?
The PO format is a widely adopted standerd for translating strings.

What are the advantages over .tra files?
It's more solid.
Currently you can mistakenly add spaces to the original string, and end up the Editor recognizing it as a new entry.
Or adding a newline, and so inverting the order of all subsequent "original<->translation" pairs.
With this new format, besides avoiding those problems, we can add some metadata which may come in handy, and most important, there are plenty mature tools to edit them (Poedit, web platforms, etc).

I currently do not plan to implement pluralization or using different translations depending on context, as these would require some bigger changes to both editor and engine.

What's there to think about?
Because PO files support a variety of features (tracking source lines, comments for translators, etc), I'd like your input on how we should implement them in the future.

1. Comments for translators:
I think the standard here is using a "// TRANSLATORS: lorem ipsum" comment.
I might go with that unless someone has better ideas. These can be seen in tools like Poedit and could be useful providing specific context.

2. Context tag:
The po format has a context field, which usually can be used to differentiate different translations for the same words.
Alas, we're not going to implement that any time soon, but we could use it as a visual aid since some editors display it as a label.
An idea could be using the script name for context, though that information can already be added in the source reference. Maybe the script name makes more sense.

My suggestion for duplicate strings remains that of using unique ids, and then making a translation for the current language.

3. The problem of unwanted strings:
When you include a module in your project all those strings end up in the translation file, creating unnecessary clutter.
We should perhaps think about mechanisms to exclude scripts while building/updating translations.
Dialogues and Room are likely always in need of translations. Not sure about others, maybe we should add a property to scripts, or some magic comment to enable/disable string fetching for translations.

4. What to do with obsolete strings?
Currently they remain inthe translation file forever.
I'm on the fence whether keeping them and marking them as "fuzzy" (which means thay need to be verified) perhaps with an extra "deleted" comment  or removing them completely.


I can promise nothing, but having some ideas could help chart a course to make the translation system better. Let me know what you think.

EDIT: Just to be clear, this will be landing in AGS4

- Alan
#31
General Discussion / Re: Obsidian
Wed 29/03/2023 16:48:14
I use Obsidian as well, mostly for writing down tasks, and some documentation stuff I'll inevitably forget when I need it again.
The recent addition of the canvas feature is welcome for flowchart making. One less separate tool I need to use.

I don't agree with their commercial pricing, though.


- Alan
#32
I think AGS should auto-link events by naming convention unless expressly specified in the properties pane.
The possible drawback is renaming an object/character, but  we could add a step to perform a string replace in the room script, so it's not particularly lethal or anything.

A warning when there's no match to the specified script name, would be in order. Currently it fails silently to make sure you regret your life choices.


- Alan
#33
I hadn't noticed I'd been mentioned here, but I always keep these custom commits constantly rebased as it's what I use to develop my game and test experimental stuff, so if we ever want to merge pieces of it they're always available in the primary branch in my repo (just refreshed a few hours ago).
The fake gamma should work fine as is, unless someone wants to write the implementation some way better.

- Alan
#34
Quote from: eri0o on Tue 22/11/2022 17:00:31Hey, I have no idea yet what it is, but today I cut a piece of code and then when I hit save, before pasting it back, I got the error below. I don't know yet what it means. Using the 3.6.0.37 version.

I guess you managed to find a case where the CustomCombobox has an invalid "a.Index" that doesn't exist in the "Items" array in the DrawItem event handler.
I expect the error is thrown from ComboBoxCustom.cs around line ~76 where "Items[a.Index]" is accessed.

I'm not sure exactly how to reproduce the issue, though.
A theme that colors the combobox certainly is a requisite, but removing and pasting a function didn't do much for me.

Maybe we can just add a guard in the event to make sure the index is within bound or return, then call it a day.


- Alan
#35
@Crimson Wizard  It's probably a side-effect of the ugly hacks with the Padding. I have a fix in this experimental PR which should fix this case: https://github.com/adventuregamestudio/ags/pull/1806
Specifically, the commit: Editor: restore proper panel dock fill behavior (fixes dock fill and removes padding hacks)

- Alan
#36
Official Themes Repository


The repository contains all the current themes, updated for compatibility, and new ones for the new theme system.
If you're interested in creating/editing themes, you can find the format documentation in the FORMAT.md file, along with notes about versions and support.

Themes marked with [C] are compatible ones, that should work from 3.4.2 onward, while those marked with [M] will make use of the modern theme system (no one had better suggestions on the naming on discord).

What's new?
- HTML color strings "#dd4400", no more bulky rgba arrays
- Added some missing themeable properties
- Lenient theme loading, no more errors if some property is missing
- Global styles, not everything has to be specified, which makes themes easier to author

What's to come?
- Tools to aid conversion from old<->new themes
- Maybe a visual theme editor (depending on who has time to make one)


Have fun.

- Alan
#37
I'd rather the icon be inside. Nobody has ever managed too see jack squat in those ant-sized frames anyway.
Besides, eri0o implemented a magnifying slider and i can make a smaller icon made only of inverted color, so there's no actual obstruction. The complaints are invalid.

Moreover, I wonder if anyone would actually notice, since linking audio to frames doesn't happen very often.

- Alan
#38
Another option is using CallRoomScript: https://adventuregamestudio.github.io/ags-manual/Globalfunctions_General.html#callroomscript
You could for example define a specific int value for each character and use this system to write the code directly inside the room script, while Globascript merely launches that call and does nothing else.

- Alan
#39
Yes, I enforced the panned sound to all view-generated sounds, because for me there is no case where that is not preferable. We could add an option for enabling/disabling it manually and merge this feature in ags4.
The only con is that the sound origin, for objects, takes the corner which is not the center. At least until we can change the origin. It's only an issue if one has a very wide sprite animation.

Another possible way to handle it was to implement function binding  to individual frames, and maybe pass the type and id of the object/character so it can be dealt properly via script.

- Alan
#40
Maybe we could try doing these contests on discord?
To be honest I don't pay much attention to the forums, I'm more active on github and discord. Also the forum moves so slow (on  the topics I follow) it feels doomed.  :~(

- Alan
SMF spam blocked by CleanTalk