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 - Monsieur OUXX

#301
Quote from: Snarky on Tue 11/02/2020 10:02:06
Quote from: Monsieur OUXX on Thu 06/02/2020 15:52:51
I don't understand : Does this apply to AGS?


EDIT: Oh yes, yes it does! And I already have the logging module ;)


Please explain. How would you performance-profile an AGS game?

I was mistaken. This does not apply to AGS. At least for performance. For a moment there I thought it could be useful to visualize stuff like "how much time does my tester spend in that room?" if you write it into a Json file during the game session.
#302
I don't understand : Does this apply to AGS?


EDIT: Oh yes, yes it does! And I already have the logging module ;)
#303
Quote from: Crimson Wizard on Tue 04/02/2020 14:31:09
Quote from: Monsieur OUXX on Tue 04/02/2020 14:08:46
This, with the right set of modules, would make AGS very, very powerful.

This needs a properly maintained database where authors could register and update their modules. Right now the list, links and information is kept by hand, in a personal repository.

Yes, the author told me that it was a pain for him, but how about just storing the modules into github, maybe with an info file coming with each module, acting as a manifest?
#304
Wow! Never heard of that game before! Wish you the best of luck!
#305
This, with the right set of modules, would make AGS very, very powerful.
#306
Quote from: Crimson Wizard on Tue 04/02/2020 13:34:59
Quote from: Monsieur OUXX on Tue 04/02/2020 13:27:05I wish I could intersect sprites, or intersect a sprite with another alpha mask, for example, to produce cutouts of sprites.

See DynamicSprite.CopyTransparencyMask:
https://github.com/adventuregamestudio/ags-manual/wiki/DynamicSprite#dynamicspritecopytransparencymask

If i remember correctly, that should cut the transparent holes in one sprite using another.

I know, but I meant without entirely replacing the sprite's current mask.
To be honest I need to dive back into it but I remember it not quite working in a way that would make it useful. I don't want to talk more about it as I don't have more constructive feedback than that fron the top of my head.
#307
Quote from: Crimson Wizard on Tue 04/02/2020 12:47:32
I guess, this is also a question of optimization: do you redraw all the shadows every time? That is much simplier, but also slower if you use software drawing.

My above reply was containing a suggestion about optimization. Guess, I forgot to explain better...

I find that usually for low-res games, per-pixel computations are not that big if a deal. For bigger amounts of pixels I use tricks relying on the build-in functions (Tint, redraw the same sprite several times, slice the sprite into smaller sprites, etc.). But usually I bump into the lack of flexibility of the functions used to manipulate the sprite's alpha mask. I wish I could intersect sprites, or intersect a sprite with another alpha mask (not just entirely overwrite it), for example, to produce cutouts of sprites.

#308
Quote from: Snarky on Tue 04/02/2020 12:29:57
Oh, and if the question is combining multiple dynamic shadows, you simply draw them all in opaque black on an intermediate canvas, then draw that with alpha-transparency onto the room.

So if some of them are already part of the background, you just leave them out of that mask you were talking about?
#309
Quote from: Crimson Wizard on Tue 04/02/2020 10:16:32
If we are talking about software method...

Are you discussing the technical means of computing the shadow's pixel values? I'm not 100% sure I understood. But if that's what you're doing, then it's not my question. Computing transparency is just a technicality. What I was asking was : "how do you tell your shadows engine that 'this background pixel does represent a shadow, and the player's shadow should not make it darker, while that other background pixel does not represent a shadow, so the player's shadow must make it darker' ?".
#310
I would still like to know how your would implement the shadow of the player being cast o top of the shadow of an object. Let's say for simplicity's sake that both shadows should be 50% opaque. Well, then when on top of each other, the combined shadow should still be 50% opaque, not 100%.


#312
Quote from: Ali on Mon 03/02/2020 16:16:04
Great stuff, my module is getting pretty old. I've put a link to this one on the first post.

Your module was awesome, but it's nice to have a module made for 3.5 natively.
#313
If you're planning on using this module, then also consider using the module "Rellax" ( https://www.adventuregamestudio.co.uk/forums/index.php?topic=57489.msg636611474#msg636611474 )
#315
Can you describe how your module differs from the SmoothScrolling module, which offered smooth scrolling & Parallax (by Ali) and foreground+background parallax too?
#316
You beat me to it here too :-)
I really need to unify all those modules and put them in github.
#317
You beat me to it Mehrdad!

eir0o may I ask what your intentions are?
#318
Thanks everyone for the answers.

Let's recap :
QuoteYou could use an object and a hotspot instead of two objects
Good idea!

QuoteYou might need a hotspot and TWO objects if the baselines don't match
Yes, but I haven't encountered that scenario yet, I'm keeping it simple

QuoteWhat's wrong with using two objects?
Nothing is wrong with that. I'm just trying to reduce the number of manual actions as much as possible. if I have two objects, I have to import two sprites, not get mixed up in the sprites numbers, and one of the sprites must have a pink area (which means more manual work with layers in the graphic file). The hotspot method is great because I can just draw a rough shape over the single sprite and be done with it.

QuoteWhat about overlapping objects?
No one mentioned that one but I'm taking the liberty of adding it : if my shovel (and its shadows) are behind a cabinet door, then when the cabinet door is closed I have to disable the hotspot AND the door cannot use the hotspot method (as hotspots can't overlap). But that's just a corner case, no big deal (this corner case happens to be present in Relic of the Viking, though).

QuoteIf the object casts a shadow then the character must cast a shadow too
In theory yes, but it's actually like that (no shadow from the character) in many games, and it practice it goes fairly unnoticeable.

QuoteThe character's shadow could be automated with a module
It's not the topic of this discussion, but I've also thought about it and the main difficulty is that shadows are not additive. Only the brightly lit parts of the background would become darker. The parts that are already under a cast shadow from the scene would not get darker. It means you can't just draw the character's shadow over the scene, as is. You'd need to keep the overall shadows in a separate channel. It quickly becomes overly complicated.


All in all, I got my answers.
Thanks again, everyone!
#319
AGS 3.4.1 Patch 1

Short version : How to run an embedded AGS game, when the parent and the child don't necessarily have the same languages (apart from English) ?


Imagine this :

  • You have an AGS game that you compile into a .EXE game.
  • That game has two translations : "English" and "German". They appear as .TRA files alongside the .EXE file.
  • You have another game that you compile into a .AGS file, and that you then place into the folder of the .EXE file
  • That second game has two translations: "English" and "ITA". You put ITA.TRA in the same folder as all other files (.EXE, .AGS, .TRA) and you don't care about English.TRA (As there's also a file named English.TRA that belongs to the first game). The game's default language is English anyway.

Your goal :

  • You run the setup program of the first game and select language "German", then "Save and run".
  • You prepare the call to the child game by doing Game.ChangeTranslation("English") -- so that the child game starts with a translation that is shared by both
  • You do RunGame("secondgame.ags")
  • Inside of the child game you do Game.ChangeTranslation("ITA")

On the paper I thought this would work.

But when I try, this happens :

  • Game.ChangeTranslation("English") works (returns true)
  • RunGame("secondgame.ags") works
  • But then I have an error message telling me that seconggame doesn't support "German". I don't understand why it complains as I forced it to start with "English"?


What am I doing wrong? Is there a better practice?

I'm trying to keep manual maintenance to a minimum, that's why I don't merge the translation files of the first and second game (apart from English).
#320
There's this paradigm I keep bumping into, and I don't know if I'm doing it right.

Imagine this :
- you have a room
- in the room, there's an object that the player can pick up
- the object is part of the room, so it casts a shadow

The problem is :
- the shadow is part of the object sprite (because it needs to disappear at the same time as the object when you pick up the object) => it means that the "clickable area" of the object will include the shadow.

For small objects it's not noticeable. But for large objects it's awkward (like, you have a shovel standing against the room's wall and it says "shovel" when you hover over it with the mouse, but the 40 pixels to the right of the shovel (representing its shadow cast on the wall) also say "shovel" for no apparent reason).

How I usually resolve it :
- for small objects I let it slip
- for objects with a big shadow I create a second object just for the shadow, that's meant to blend into the background (it's not clickable). To do so I set its baseline to 0. Then when the player picks the "real" object, I disable that shadow objet at the same time.

Is there a better way?
SMF spam blocked by CleanTalk