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 - Snarky

#541
Yeah, that looks right. Thanks eeri0o, and Dave for reporting the bug. (I think I've heard it reported before, but don't remember when/where.) I'll incorporate this fix into the next update.
#542
Engine Development / Re: AGS engine Web port
Thu 27/05/2021 11:58:16
Next step: a way to embed it into forum posts, so that you could have playable AGS games on the AGS Forums!  8-0 (nod) :-D
#543
Engine Development / Re: AGS engine Web port
Wed 26/05/2021 06:28:40
Brilliant! I was actually thinking just yesterday about asking if there was a way to integrate a game hosted online with your web engine (I was thinking some way that a file for download could be automatically opened in the player, but this is even better).
#544
I didn't mean to talk you out of the decision. I think putting the focus on AGS 4 (and, critically, dropping the requirement for backwards compatibility) is the right strategy. Whether that means no further development (apart for bug fixes and critical issues) on the 3.x branch, or if less radical changes can be ported there without complicating the work too much, you will have to decide.

And I want this module to be compatible with 3.4 and earlier versions, so I would not actually be able to rely on the new API in any case.
#545
Ah, that's a shame, since the lack of this Wait() API is the cause of a lot of the issues with this module. As it stands, it's not possible to fully replicate the AGS .Say() advance-to-next-line behavior in script (there's no WaitMouse(), and you cannot reliably tell whether a WaitKey()/WaitMouseKey() ended because of a click or because it timed out, much less which particular keyboard key was pressed).
#546
Quote from: eri0o on Fri 21/05/2021 11:56:37
Hey Snarky, when you update the module, if you can please add the border support that was here : https://www.adventuregamestudio.co.uk/forums/index.php?topic=56121.msg636587529#msg636587529 (I don't think they made into the latest release).

Absolutely. I have a half-completed internal build that merges those additions. IIRC, the main outstanding issues that remain to be addressed are:

-Logic to handle speech repositioning (in cases of scrolling rooms or character movement)
-Support for integration with lipsync module (which turned out to be more complicated than expected; may drop this for the next version)
-Weird bugs related to the custom blocking functions (redundant as of upcoming 3.5.x version with Wait() extensions)
-Streamline the code: in particular related to not allowing pointers inside managed structs and the AGS compiler bug about static structs/attributes (I don't suppose that has been fixed yet?)

I seem to recall I abandoned it last time around because I found it so tedious to work around the AGS limitations. Providing a nice API required literally thousands of lines of boilerplate.
#547
That is not supported because SayAtBubble() doesn't have any positioning logic. If you want to position the speech bubble to align the tail with the character, use SayBubble().

I would suggest you go back to the official version of the SpeechBubble module and use it as intended. If there's anything it won't allow you to do, or you have any bug reports or feature requests, let me know and I'll see how to address it. I am not going to continue supporting a hacked version.

Edit: At the same time, I know I have been neglecting this module for a long time, and it does need an update. PM me and let's figure out how I can best support your development and get the module to version 1.0.
#548
Really happy I noticed this thread. So cool! I haven't played it yet (or any earlier version of KQ4, actually), but I'm really psyched that you've got all the various music and audio from different versions combined.

Not gonna lie: I would really love to see this refresh of the game design/UI combined with Nightfable's VGA-style art (the 3D-rendered, SVGA style does not appeal to me), even though I have a whole lot of respect for this approach as well. Perhaps some day…
#549
Hey Dave, this issue is discussed a few posts up in the thread, here.
#550
The Rumpus Room / Re: What grinds my gears!
Mon 26/04/2021 16:24:17
Today, believing wrestling is real is like believing in Santa Claus, but isn't a big reason people go on about it â€" in addition to what Stupot says â€" that for a long time the industry insisted it was real, and quite a few people did believe it?

I could be quite wrong, but my impression is that when wrestling broke out big on TV in the 1980s, a lot of people initially thought the fights were real (even if some of the personas and outside antics were an act). By the 1990s more and more (probably most) fans were aware it was fake, but a considerable number of naive/younger fans still were not (I didn't watch wrestling as a kid, but I remember vociferous arguments about it in, like, middle school), and the industry worked hard to stamp out any public acknowledgment of the playacting. Then as the Internet spread, a lot of the "inside info" became more widely known â€" including a lot of the insider jargon, such as "kayfabe" itself â€" and the industry gradually gave up on keeping the "secret" in anything but a symbolic way.
#551
The Rumpus Room / Re: Guess the TV show
Tue 20/04/2021 19:41:09
Timeless?
#552
Somehow, bicilotti has never received the Lifetime Achievement award. This oversight should be corrected.
#553
I wish you would stop modifying the module code, and instead build helper functions on top of the module for stuff like this. It's very hard to support when the code you're using is not the code I wrote.

As for the tail, it should be a matter of setting SpeechBubble.TalkTail = null;
I seem to recall that there was some AGS bug/quirk that kept this from working correctly, but if so you can add the line import void set_TalkTail(static SpeechBubble, String value[]); and call SpeechBubble.set_TalkTail(null); instead.
#554
I guess I wasn't explicit enough in my last reply. If you add a GUI gSpeechBubble to your project, then this code should display the speech on top:

Code: ags
gSpeechBubble.ZOrder = 1000; // Any number higher than the inventory GUI's z-order
cBob.SayBubble("Blah Blah Blah", gSpeechBubble);


Alternatively, you can put this in game start, and it will always use the GUI:

Code: ags
SpeechBubble.DefaultGui = gSpeechBubble;
gSpeechBubble.ZOrder = 1000;


However, as I tried to explain, this could potentially lead to trouble if you have overlapping speech using SayBackgroundBubble.
#555
By default, speech bubbles are drawn on overlays, which I think always appear below GUIs? Anyway, you cannot control their Z-order (though I believe this will be available in an upcoming AGS version). However, you can make it appear on a GUI by passing a bubbleGui argument to the SayBubble function, or setting the SpeechBubble.DefaultGui property. With a GUI you can control the Z-order through the property GUI.ZOrder.

(Only one character's speech can be displayed on a single GUI at a time, so if you have overlapping dialog through SayBackgroundBubble, you will need to set different GUIs for the different speakers.)
#556
Quote from: bx83 on Fri 09/04/2021 06:56:05
Snarky, I have two things and wondering if they’re possible:
1. Turn off speechbubble easily (so they never display) by setting one option.

I'm not sure what this means, exactly. The speech bubble is shown when you explicitly tell it to be shown, by a command such as cCharlie.SayBubble("Blah, blah");. If you don't want it to be shown, you should not call this method. If you want to be able to switch between displaying text in a speech bubble or with built-in speech, you would need to write a custom function for that which would check the variable and call the appropriate function.

Quote from: bx83 on Fri 09/04/2021 06:56:05
2. Not allow a speech bubble to be written off the right edge of the screen (at the moment it must start at x=0, but if a character is standing too far to the right, they’re speech bubble may be cut off). Is there a way to make their right edge or both edges impossible to be drawn off screen?

Looking over the module code, I don't see how it could position the bubble to be cut off on the right by more than 1 pixels:

Code: ags
// SpeechBubble.asc

int _clampInt(int value, int minRange, int maxRange) // line 347
{
  if(value<minRange) return minRange;
  if(value>maxRange) return maxRange;
  return value;
}

// ...
  x = _clampInt(x, 0, System.ViewportWidth - bubbleSprite.Width); // line 1314
  // ...
    bubbleOverlay = Overlay.CreateGraphical(x, y, bubbleSprite.Graphic, true); // line 1320


The position is constrained so that the sprite x-position is not above System.ViewportWidth - bubbleSprite.Width, and therefore it should only be cut off by 1 pixel at most (that's a small bug, but it sounds like you're talking about something bigger).

So unless you've modified the code, I don't see how this is possible.
#557
The Rumpus Room / Re: Guess the TV show
Tue 06/04/2021 00:31:55
Well, they were both on The West Wing, but that's not it. And Matlin looks so different in that makeup that I didn't recognize her.

I'm almost positive this is not it, but it has some of the vibes of Murder One (which seems to have been largely forgotten; one of the first showsâ€"following Twin Peaksâ€"to revolve entirely around a season-long mystery).
#558
The Rumpus Room / Re: Guess the TV show
Mon 05/04/2021 20:05:38
Well, that's Mark Harmon, so… NCIS?
#559
The Rumpus Room / Re: What grinds my gears!
Fri 02/04/2021 21:38:09
Quote from: Danvzare on Fri 02/04/2021 15:56:13
I disagree of course, because that would make changing the calendar on your fridge, a game. But that doesn't matter, since I've already agreed with you about there being multiple definitions. and yours being completely valid in this case.

Well, that was an unexpectedly pleasant response. Thanks, and I will happily agree to disagree.
#560
The Rumpus Room / Re: What grinds my gears!
Fri 02/04/2021 12:34:28
Quote from: Danvzare on Thu 01/04/2021 18:55:51
We have words for a reason. There clearly is a definition. That's what language is about.  >:(

No, definitions of natural-language words are after-the-fact attempts to describe what they tend to mean. Many words (and not just homonyms) cover a number of similar/related concepts, but not in a clean way where you can sum it up in a formula. I think "game" is one of those.

QuoteAnd what you have just stated clearly means you don't have a definition for "game", meaning you should have no opinion on the matter. Which means you're not allowed to discuss why a definition for "game" is wrong, as you yourself don't have a definition for it yourself. It is essentially a word that isn't in your vocabulary. Because as you clearly stated, you think it is unreasonable to assume that there is a definition for "game".

In other words. Shoo.

Oh get bent.

If you insist, for the type of game under discussion, I'd go with something like "a structured activity undertaken for fun" as a definition. This would not cover unstructured children's play, or indeed everything we call "computer games" (including most adventure games)â€"because I think those are genuinely slightly different things that just happen to be called by the same name. Similarly, I think there are mostly good reasons for what it includes (e.g. square dancing) and excludes (e.g. professional competitions).

Quote from: Danvzare on Thu 01/04/2021 17:51:35
Using mental strain to change the outcome is not a meaningful choice. It's the illusion of choice.

Roulette has a meaningful choice. Sure, it's completely random. But despite the odds, it's going to land on one of those numbers. You can make a meaningful (albeit completely uninformed) choice.

If it's completely random then it is not meaningful. You have no more control over the outcome than you do when you roll dice. You have no real agency.

We can demonstrate this by a small alteration of the Snakes and Ladders rules. Let's say that before you throw the die, you have to pick a number A between 1 and 6, and then this number is added to the result of your throw, D. The spaces you move is then calculated as (A+D-1)%6 + 1; or to put it more simply, if the number is greater than 6, subtract 6, giving a result between 1 and 6. By this alteration, S&L is now a game according to your criteria (you have to make a choice each turn, and that choice affects the outcome)â€"indeed, very similar to rouletteâ€"but it's obvious that the change makes no meaningful difference, since the randomness of the roll means you have no control of the outcome, and so your choice is meaninglessly arbitrary.

Or take traditional Bingo (with pre-filled cards). There is no agency: you're at the mercy of the card you get and the numbers that are randomly drawn. The interactive, challenging element is to listen, pay attention, spot the numbers that are called on your card (or, more often, cards), and recognizing when you have completed a line. In other words, tasks that a computer could easily do automatically without your input in a computer version, and that amount to following the rules of the game. Those things are appropriately challenging for the audience, just as S&L is for its audience.

QuoteYes, a computer could randomly click through everything in an adventure game. But in my example, I merely included what was considered good-design practices.

If anything, you've only showed that a fully computerized version of S&L would not be a game. It does not follow that the non-computerized boardgame is not a game.
SMF spam blocked by CleanTalk