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

#261
Looking at other reports of this error message (here, here or here, for example), it seems like it most likely means that you've already used the name buttonSprite some other place in the script, perhaps in an import statement. Or you might have used it as the script name for some game entity (such as a GUI Control). Basically, it's telling you that the name is already in use.

There's also a mistake in line 73 in the code (going by the numbering in the forum post), since you're hardcoding it to use SaveGameSlot 1. You need to use lstSaveGamesList.SaveGameSlots[lstSaveGamesList.SelectedIndex] to show the currently selected savegame. (You may need to wrap it in a check so you don't get an "array index out of bounds" exception if nothing is selected in the listbox.)

Other than that, I find it a little weird that there's a bunch of code to ensure that if the player uses the same description as an existing savegame, it will overwrite it rather than save it as a separate savegame. That would really piss me off as a player.
#262
Quote from: Ghostlady on Mon 12/08/2024 02:01:56But where do I add the code where it reads "at the top of the script outside event functions"  Does this mean the global script?

Yes, it means in the same script as the function (i.e. the global script), by itself (not inside of any function), somewhere above the function where you use it.

Quote from: Ghostlady on Mon 12/08/2024 02:01:56If so I added at the top and I get an error.

What error, pointing to what part of the script?

Quote from: Ghostlady on Mon 12/08/2024 02:01:56Secondly where do I put this code for the Saved Game Slots:
Code: ags
int index = lstSaveGames.SelectedIndex;
RestoreGameSlot(lstSaveGames.SaveGameSlots[index]);

Well, this is the code that restores a game from a save (by calling "RestoreGameSlot"). So when do you want that to happen? When the player clicks on the Restore button, no? So it needs to go in the Button.OnClick event handler for that button. (Which you create by going into the GUI editor and the event panel for the button.)
#263
The function you need is DynamicSprite.CreateFromSaveGame, and there is an example of how to use it in the manual.

You would put a button where you want to display the screenshot, and call that code in the OnSelectionChanged event handler for the listbox. (You need to get the SaveGameSlot of the selected savegame, and set the width and height to the size of the button.)

This works for the savegames that are already stored. If you want to display a screenshot for the Save dialog before saving the game, you need to grab that screenshot before you display the dialog, using DynamicSprite.CreateFromScreenShot.
#264
Quote from: eri0o on Sun 11/08/2024 10:57:27The more code added to the template to make it easier to configure also makes it harder to completely modify it - check verb coin.

One or the other may be more suitable, depending, but if you can't easily do either, then I think there's something wrong in the design.
#265
Quote from: eri0o on Sun 11/08/2024 10:42:16Just don't, use the sierra template instead and then build your own on top of it instead later.

That seems like an unsatisfactory solution. Perhaps the template should be adjusted to be more easily configurable/modifiable?
#266
I never want to discourage people from learning perspective construction, but at the same time I don't really think perspective is that much of a problem in these backgrounds. There's only one object that jumps out at me as being seriously off-perspective (the shelving unit in the third picture). Most of the screens seem to be drawn using more-or-less parallel projection rather than one-point perspective, which is perfectly valid. (There are some cheats to get the horizon in the picture, but that's a common trick.)
#267
Good stuff, perfectly serviceable for a non-commercial game. If you did all this in a day, you're in a good place.

Some stuff you could work on:

- In this cartoony style, I think the colors could be more vivid. Everything looks a bit "washed out" to me (except that some of the darker red-browns and blues appear over-saturated compared to the other colors).
- You should be more conscious of and bolder about contrasts. In the third image, it's hard to make out the details of the couch and shelf because you're using very close shades of red/brown (and the shelf also tends to blend in with the floor). Similarly, in the last image I didn't even see the table because it blends in almost entirely with the floor. Meanwhile, in the second image the crates and nearer poles of the pier "pop" out of the image: they contrast very strongly with the rest, in a way that doesn't seem intentional, while the far poles don't have enough contrast against the sea: different hue, but nearly the same value.)
- You're using basically no shadows or shading. It's as if there are no defined light sources. This creates a rather flat feeling and doesn't give any sense of mood or atmosphere.
- In the third and the last images, the angles are so high that most of the screen is taken up by the floor, which is boring. Lower the camera so that more of the screen is filled by things in the room and on the walls.
- You have some bad tangents, where the edges of different things line up so that they seem like part of the same shape. Most obviously on the right side of the first image, where two different struts of the walkway line up exactly so that one seems to continue the other. (I also question the engineering of this construction; it would make more sense if the same beams did continue down all the way to the floor.) But also the top of the building roof in picture four lining up with the image edge.

To spot some of these issues, it may be helpful to examine the images by hue, saturation and value. To examine the value, you can just desaturate the image (convert it to grayscale), while hue and saturation are a bit trickier: in Photoshop you can put a flat gray layer below the image layer and set the blend mode of the image layer to "Color" to see the Hue and Saturation together. These tend to be so closely linked that you don't need to examine them individually, but if you add another layer with a perfectly pure color (e.g. pure red) on top and set its blend mode to "Saturation" you can see just the hue contrast, while diffing the image with a desaturated version of itself gives just the saturation contrast.

Otherwise, I recommend Ben's articles:
http://ben304.blogspot.com/2017/03/using-contrast-to-affect-visibility.html
http://ben304.blogspot.com/2017/01/low-camera-angles-in-adventure-game.html
http://ben304.blogspot.com/2017/02/tangents-and-why-they-should-be-avoided.html
https://adventuregamers.com/articles/view/an_artists_analysis_using_lighting_to_cionvey_mood
(And more...)
#268
I was gonna say I saw her performing that song live when she opened for Patty Griffin and Aimee Mann in Pittsburgh back in 2003 (which was the week I moved there for college), but on second thought I believe that was Sophie B. Hawkins.

Sophie B. Hawkins – "Damn I Wish I Was Your Lover"
#269
For a task like this, I would absolutely try to read the Bible text from an external text file rather than copy it all into the AGS parser, which sounds like a massive time sink.

I think it would also be smart to try to separate the data from the logic, so that each can be iterated independently. If you find a better way to compare player input to the database of verses, you don't want to have to redo the whole database.

Finally, I would strongly recommend doing a small demo for people to playtest, of just this particular bit (with only a few verses) before you spend a whole lot of time copying the Bible into AGS: you might get feedback that makes you rethink/tweak the gameplay mechanic to something that needs to be implemented completely differently.
#270
I saw Pulp in concert last night, so I can scratch that off my list. This will always be the ultimate Pulp song for my money:

Pulp – "Babies"

And yes, they played this one, along with pretty much all the hits–the crowd was singing along to practically every song (you could tell that fewer people knew "O.U.", "Weeds" and "Sunrise"). Jarvis was in full crowd-pleasing mode, throwing out phrases in Norwegian and doing that pandering thing where artists change lyrics to fit the venue ("I seem to have left an important part of my brain/somewhere, somewhere in a park in Oslo"). Snark aside, I loved it.
#271
I don't follow your logic, @LimpingFish. Isn't that like saying (25 years ago) that there's no way Amazon is going to be a big deal given the opposition from other book sellers? The question is what audiences think.

And while generative AI is certainly controversial among artists, it's not as universally condemned as you seem to think. There are a number of established artists who have embraced it and started to use it in their process.

Having just visited an Arts & Crafts museum during Mittens, I think there are some clear parallels. The Arts and Crafts movement was one attempt to push back against commodification, mass production and the loss of handicraft traditions (as well as the proletarianization and impoverishment of the workers engaged in production). It had some successes, but ultimately became something of a niche. (You see a lot of handmade jewelry and knickknacks, but how many people today have handmade cutlery or even a lot of handmade furniture? I venture to claim: mainly people with too much money.) And several of the more successful of its adherents ended up adopting aspects of industrial production.

It would have been a serious mistake to have taken the criticisms from the Arts & Crafts movement (valid as they were) as evidence that industrial mass production was "not in a good place to influence a massive paradigm shift." There wouldn't be such a passionate backlash if the paradigm shift wasn't happening.
#272
Quote from: Khris on Wed 07/08/2024 07:37:31Snarky The bubble will burst in the NFT sense. Those are still around, but the public doesn't care.

Sure, text and image generation is here to stay*, but OpenAI isn't heading for a self-aware computer program.
Everybody will realize that the people hyping AI are simply stupid and something else will be all the rage, like 8K monitors or whatever.

The difference between NFTs and generative AI is that generative AI (like plastics or online shopping or social media and other developments that have been associated with massive hype and have massive downsides) is actually extremely useful for lots of things people want to do. I'm sure at some point the "hype" will die down just because it becomes a fact of life, and there will be business models that pass the costs on to customers, but it's not going to become less of a thing. That's just wishful thinking.

Nor do I think you are correct in claiming that generative AI is getting worse. "Training data inbreeding" is a (potential) problem, but so far the systems are still getting better and better (harder and harder to distinguish from reality or from human work). But at least it's a good counterargument to the "intelligence explosion"/"singularity" predictions: it shows one reason why it's unlikely that an AI will be able to build a better AI that will be able to build an even better AI and so on.

I'm not going to get into the copyright/plagiarism/ethics arguments other than to say that I don't see a substantial ethical dimension to the question of where models get their training data; only to what they produce. As Jesus would say: "It is not what goes into the training that defiles an AI model; but what comes out of it, this defiles an AI model."
#273
Engine Development / Re: AGS engine Web port
Wed 07/08/2024 07:13:11
Quote from: eri0o on Wed 07/08/2024 01:09:10@AGA are you asking about it to integrate some ags player in some website? :p (like, for playing old games)

Do you have any thoughts on how this might work with games hosted externally, for a bunch of different games? For example, given a link to a game download as a zip file, would it be possible to offer a button that downloads, extracts and runs it in the browser?
#274
This is basically what I predicted a couple of years ago, @Khris:

Quote from: Snarky on Fri 28/10/2022 19:14:40I had a thought that isn't particularly new or original, but that suddenly struck me forcefully.

We've discussed how GPT-3 and other machine learning systems can produce ever more convincing texts (as well as images and voice). And we know that bots are used extensively by spammers and scammers, including to post spam on these forums, and for example on dating apps, because for most of their schemes, the (cost of the) human effort involved is the limiting factor.

It just occurred to me that it's inevitable that as these ML systems become better and better at impersonating a real person, they will be widely adopted by crooks, who will flood every digital channel and forum with deceitful material meant to scam people out of their money (or for other nefarious, monetizable purposes). There will be so much AI-generated bullshit online that it will drown out any genuine human attempts at communication.

[...]

Capitalism + lightweight identity + AI = end of human connection

I think you're fooling yourself if you believe AI will go away because "the bubble will burst" (any more than the Internet went away when the Web 1.0 bubble burst). It's like plastics: way too useful for way too many things for people to give it up, regardless of the negative consequences. For better and worse, we'll need to figure out how to live with it and how to mitigate its problems.
#275
Yeah, it was a small Mittens, but in some ways that made it more relaxed; it was easier than usual to coordinate activities and outings. And we did a lot:

- Broadway Tower (Gothic folly—in fact, look up "folly" on Wikipedia and it's the first photo) and the bunker for a nuclear observation post
- Oxford, with colleges and museums
- The Rollright Stones (standing stones from the stone age, including a stone ring)
- Warwick Castle, with a bunch of exhibits and shows, including a jousting/trick riding-based recreation of the Wars of the Roses, the firing of a trebuchet, and a very cool falconry/birds of prey show with birds flying around and between the heads of the audience
- Stratford-upon-Avon, with visits to various Shakespeare-related sites
- Chipping Campden itself, a very picturesque Cotswolds town with many attractive houses, including a couple of churches, a museum of arts and crafts (C.C. was a center for the movement from the turn of the century, attracting a lot of artists and craftsmen because of its country beauty, which they helped preserve), and a silversmith studio—we also made a good attempt at visiting every pub in town for lunch/dinner, but fell short (and never got to have the whitebait)
- A few walks in the surrounding area (esp. Matt)

The Mittens House was pretty cool; charming in that old English way (and also infuriating in some of the same ways). I never found out exactly when it was built, but it must be a couple of hundred years old, at least. Wooden floors and stairs (above the ground level) that were completely uneven and creaked loudly whenever you moved. Weird plumbing details. An AGA (no relation) gas oven that couldn't be turned off and made the kitchen stiflingly hot (apparently this is some kind of status symbol?). Overall though it was cozy and comfortable, centrally located in the town and with a nice little back garden.

It was great to see everyone again, along with a couple of new participants: Creamy and the first second-generation Mitteneer. And having a child along turned out to be no real problem at all; I did sometimes worry whether he enjoyed the experience, but he usually seemed pretty keen once we got going.
#276
Quote from: DIYDylana on Sun 28/07/2024 11:02:50Turns  out it IS included in the remake! Should I upload the original somewhere?

If the creator has removed the free download but it's being offered as a bonus when you buy the remake, then you probably shouldn't distribute it separately, no.
#277
Another thread just brought up text speed (or ability to turn off automatic text advancement entirely) as another option that it would be useful for players to override.
#278
This is a good example of accessibility support, which we recently discussed. @Crimson Wizard expressed openness to adding some kind of player override functionality to settings like this. I don't think it's exactly on any roadmap, though.
#279
Here is an alpha/bugtesting release of v2 of this module: TextField v1.99.0

Main changes:
- Updated to support Unicode strings and the new text entry API (this version requires "Use old-style keyboard handling" to be set to false)
- This in turn fixes problems in the previous version where rapid typing could cause glitches
- Select parts of the text using mouse or keyboard (SHIFT+arrows)
- TextField is now scrollable, so you can type more than fits into the field! (Up to about 3000 characters; after that things seem to get a bit weird)
- Added various visual config options to control how the TextField appears (colors, transparency, border width, etc.)
- Added an internal clipboard so Cut/Copy/Paste works even if you don't use the Clipboard plugin
- Options to enable/disable clipboard, undo history, editable
- Fixed some bugs

Example of use:
Spoiler
Code: ags
TextField* inputField1;
TextField* inputField2;

function game_start() 
{
  // Turn btnTextField1 into a TextField
  inputField1 = TextField.Create(btnTextField1);

  // Configure appearance (font is taken from btnTextField1):
  inputField1.SetPadding(4, 4, 4, 4);
  // When focused, display black text on white background with a red border
  inputField1.SetColorsFocused(Game.GetColorFromRGB(0, 0, 0), 15, Game.GetColorFromRGB(255, 0, 0));
  // When not focused, border is black
  inputField1.SetColorsUnfocused(Game.GetColorFromRGB(0, 0, 0), 15, Game.GetColorFromRGB(0, 0, 0));
  // When disabled, grayed out
  inputField1.SetColorsDisabled(Game.GetColorFromRGB(64, 64, 64), Game.GetColorFromRGB(128, 128, 128), Game.GetColorFromRGB(64, 64, 64));
  // Selection: White text on dark blue
  inputField1.SelectionTextColor = 15;
  inputField1.SelectionBackgroundColor = Game.GetColorFromRGB(0, 0, 64);

  inputField1.BackgroundTransparency = 75;  // Background is semi-transparent
  inputField1.BorderWidth = 2;  // Thick border

  // Create another (pre-filled) text field with the same appearance as inputField1
  inputField2 = TextField.Create(btnTextField2, "Type text here", inputField1);

  inputField1.SetFocus();
}
[close]
#280
Thanks!
SMF spam blocked by CleanTalk