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

#61
The Rumpus Room / Re: Non-AGS game: ShadowBrew
Wed 07/08/2024 13:59:05
Quote from: Crimson Wizard on Wed 07/08/2024 12:47:31That's Python rules, Godot Script is made as an expansion / variant of Python.

That is my understanding as well, and it's driving me nuts! :D
I learned Turbo Pascal at school, then PHP and Java and a bit of C in my later education and finally AGS, so of course Godot feels weird, being the newest addition to the list.
#62
The Rumpus Room / Re: Non-AGS game: ShadowBrew
Tue 06/08/2024 07:44:12
Quote from: cat on Mon 05/08/2024 22:07:48Looks fun, but I guess I'm too dumb for this, I didn't even manage to get water for my mushrooms.

The game page has a small section on how to get started if you scroll down a little. To get going you'll need a glass bottle from the dispenser and then will need to use the nearby water pump to get flowing water, to which you need to drag and drop the empty bottle to turn it into a full one.

The game really needed a better tutorial system to teach people how to play than the text dump at the start, but we simply ran out of time with the 2 week deadline.

Quote from: Babar on Tue 06/08/2024 04:26:56I bumbled through some of the game, but didn't get very far either  :=
As another AGSer who has downloaded and mucked about in Godot a bit now, I'm interested, could you share more?

In AGS I've gotten accustomed to some minor conveniences, like a simple Wait() command, or the ability to natively bind sound files to animation sprites in the animation editor. Blocking animations and scripts in AGS also make it really easy to build small cutscenes and events, making it super easy for a novice programmer such as myself to get going. In Godot the command for pausing a script is relatively long and looks far more arcane and the tutorial I found for binding sounds to frames in an animated sprite object consisted of creating an array that lists the animation frames and sound effects, having the animation fire off a signal each frame to declare what frame it was on and then using a processing function to listen to those signals, compare them to the array and play the sound.

The biggest time loss in our project, one I did not expect at all after so many years with AGS, turned out to be saving and loading the game. While there are numerous tutorials on how to "easily save your game in Godot", we found that our game hadn't been built in a way that any of those worked with properly. Objects and data would get lost, objects would load as duplicates of themselves (loading the game would create new copy of the sun each time, for example). In the end my developer buddy spent two full working days implementing a mostly complete save/load function into the game and even then some things aren't saved, since we have to manually add every single bit of data to the save function to ensure it is not lost. Contrast this to the utter simplicity of the AGS SaveGameSlot() function and someone as simple as myself will find AGS easier to work with every single time. I also developed an intense love for the AGS manual during our project, since compared to Godots equivalent the AGS manual has a ton of useful examples that make it far easier to grasp the syntax of how functions can be used.

What Godot shines in is its easy to use tools for things like creating quick particle effects, complex animations that can be easily visualized, tested and edited in a video editor style timeline tool, built in collision detection and physics for objects, customizable controls for mouse, keyboard and gamepads. It's generally a far more malleable tool that can definitely achieve a lot of things that an AGS developer would struggle with, but achieving those things also requires a LOT more study than I feel AGS ever did to get going.

I also absolutely hate the fact that indenting of code lines is not just a visual thing in Godot, but a functional part of the code, and if your line of code is indented too far right or left the code simply won't compile. :D
#63
I have once more tried all the MAGS games and you can find videos of my attempts here. While I'll happily recommend you play them all yourself, if you just can't be bothered then this might be an option for you:

Becalmed
https://www.youtube.com/watch?v=VGyXgAGUFUo

Hoopoe's Inferno
https://www.youtube.com/watch?v=JpgSIeq28DE

A shameful spoiler for the two videos:
Spoiler
I am ashamed to admit that I failed to complete either of the two games. I feel I got far into both, but found myself stuck and had to give in eventually. I'd be curious to find out what I missed that caused my failure!
[close]
#64
An idea has been had and written down. Now to see if that converts into an actual game!
#65
The Rumpus Room / Non-AGS game: ShadowBrew
Wed 31/07/2024 16:40:25
So I was roped into participating in a 2 week Game Jam. I've just spent 4 days in a row working 15 hours a day to write up the 40 page design document, crunch the project to a finish, all while pestering my teammates to death, but finally it is done!

Felt like sharing, and I hope it's not too badly frowned upon to share a non-AGS game here in the rumpus room:

https://wham.itch.io/shadowbrew

My main takeaway from the project: goodness I love AGS compared to Godot engine! AGS has so many convenient features that I came to miss greatly now that they were gone, and while Godot has its own neat features, most of them feel like they're geared up for making pretty lights and sparkles happen, rather than help you create an interesting game.
#66
Still hoping to see participants. I'm out of this one myself, as I'm experimenting with the Godot engine together with a developer friend, participating in a game jam. That experience has been inspiring, though, so I'm itching for future MAGS rounds!
#67
I have once more tried all the MAGS games and you can find videos of my attempts here. While I'll happily recommend you play them all yourself, if you just can't be bothered then this might be an option for you:

Carnival of Shadows
https://www.youtube.com/watch?v=F09kNNqCUPY

The Stew of Las Moras
https://www.youtube.com/watch?v=98KTtuVTP74

The Zoo
https://www.youtube.com/watch?v=1PpfSEzymzA
#68
I tried all the MAGS games and you can find videos of my attempts here. While I'll happily recommend you play them all yourself, if you just can't be bothered then this might be an option for you:

Mathilde's Dream
https://www.youtube.com/watch?v=ieHDxPBOWpc

Blackbird Pie
https://www.youtube.com/watch?v=R_iysm3Xrao

(EDIT: I remember being a bit confused about the theme when it was declared and only NOW did I realise I had misunderstood it completely! :D So if you're wondering why I'm so confused in my videos, the reason is that I misunderstood the theme as being a more generic "find an interesting nursery rhyme and create a game based on it" when in fact the rhyme provided as the example was the ACTUAL rhyme to base the games on. It's probably good I didn't participate this time around...)
#69
Engine Development / Re: AGS engine Web port
Thu 06/06/2024 17:01:20
Quote from: eri0o on Thu 06/06/2024 16:10:12Version?

That was the right question to ask. I wasn't on the latest version at all, but 3.6.0. After updating the editor and recompiling, the game seems to run with zero issues whatsoever.
This is, as the cool kids say, real heckin' neato! Many thanks, I will surely put this to use with my future projects as well as recompile some old ones for renewed distribution.
#70
Engine Development / Re: AGS engine Web port
Thu 06/06/2024 10:48:14
Wasn't sure if I should post in this thread or somewhere else, so please direct me elsewhere if more appropriate:

I wanted to try this out and the game builds without issue, so I uploaded it to itch.io to try it out. It starts and plays fine if I let it run, but skipping the intro cutscene by clicking the mouse or pressing a key it causes an "Exception thrown, see Javascript console" message. In the console I have the following, which I sadly do not understand at all:

Uncaught RuntimeError: null function or function signature mismatch
    at ags.wasm:0x59c479
    at ags.wasm:0x66931f
    at ags.wasm:0x2b7e74
    at ret.<computed> (ags.js:1:235375)
    at invoke_viiii (ags.js:1:266053)
    at ags.wasm:0xa3283
    at ags.wasm:0x218ada
    at ags.wasm:0x59698a
    at ags.wasm:0x6680e1
    at ags.wasm:0x179dd1

If I let the cutscene finish fully before I do any kind of input, the game seems to work just fine from there on out.

The windows build I compiled at the same time runs without any issues with the skip cutscene function working, so as far as I can tell the underlying game is fine and shouldn't throw any errors on its own. Any suggestions or ideas would be very welcome, and I'll happily share more information or discuss on Discord as well.

In the AGS code, the game loads into a room, sets up a cutscene with the function.
StartCutscene(eSkipAnyKeyOrMouseClick);

Then some animations play through a bunch of wait commands and moving objects around and changing transparencies, then the game switches to a new room, plays a bit more animation and then does an EndCutscene();.
#71
Congratulations Mandle! A well earned win!
#72
Quote from: Baron on Tue 21/05/2024 01:56:53Wow, this was a hard one to judge.  Really solid entries all around.
@WHAM
Spoiler
I loved your world-building and the mechanic of swapping places with yourselves in the mirror.  I was slightly confused as to the nature of the other Jans.  Do they reflect different aspects of his personality (the Hedonist on the right, the Father in the centre, and the Junkie on the left) or are they just replicas of him that have just experienced more degrading time in the world (the Young Man on the right, the Older Responsible one in the centre, and the Ancient Decaying one on the left)?  I'm leaning towards the latter - you say Old Lefty reflects mistakes made during Jam's training, implying that Jam remembers those lessons, and yet he is grilled about his overnight activities as if it was news to his selves, which makes me doubt that they do, in fact, share consciousness.  I think the mechanic would be stronger if it were explored further, with each reflection's relevance being revealed through the action of the story.  Still, it's a good story that makes you think.
[close]

I wanted to leave the nature of the mirrors a bit vague, both to keep the story from getting too long and expanding out to time skips or flashbacks that move the reader around in time and location, but also to maintain some mystery and let the reader come up with their interpretation of how they work.

However, if you'd like my version of what they are:

Spoiler
As you correctly guessed, the mirrors are a tool Jan created to split his personality. He can put aside his charming, social side and focus on his studies, or bring out his most mature, calculating and businesslike side to run the shop and its affairs. The leftmost Jan was the adventurous and reckless one, the one that took upon itself to experiment, take risks and, as unfortunately happened, fail sometimes. This effectively broke off a part of his personality and the parts that remain both try to live on while also striving to find a way to recover what was lost. Being reprimanded for abusing the shared physical body the different aspects of Jan is a way to imply that the way we apply ourselves may seem like the right thing to do for one aspect of our minds, while another might view it as frivolous or troublesome.

We all balance different aspects of ourselves. The person we are at work may be quite different to the one at home, for example, and the person we are around loved ones and family may differ further from the person that emerges under duress. The mirrors were a way to try and explore that concept in a more concrete and fantastical way.
[close]
#73
Having had a close call with this type of attack a while ago, and knowing it's likely too little too late, here's what small advice I can give to people as a way to try and avoid falling victim to this kind of thing:

If you are ever requested to download and install something or to follow a link that seems even the slightest bit shady, despite coming from a seemingly trustworthy source, try to confirm via a second channel of communication that the request is genuine.

For example, if a link is sent via discord, try to verify it through email or via a PM here on the forums if possible. It adds a bit of extra security, as the attacker must have breached more than one account to convince you at that point.

As always, though, more security means less convenience. That's what makes it so easy to fall victim to these kinds of attacks, as we all crave a bit of convenience and dislike the hassle.


As for my experience with this:
Spoiler
An old friend of mine messaged me out of the blue on Discord, asking me to do a favour. His 'friend' had 'worked so hard' on developing a game and nobody was playing it, so I was sent a link to download and try it out and maybe leave a review. In my case the attack was crude and the 'game' the link sent me to was a Chinese knock-off MMORPG that I bounced off enough that I didn't download anything and called my friend out, only later realising I'd barely avoided a mess just by being picky with what I'd download based on the images on the website that acted as the source of the dangerous files.
[close]

Be safe out there, folks!
#74
- RootBound: Can You See Into My Stomach?
Spoiler
A kind of horror story that left me wondering just how broken this person's mind was to see, imagine or conjure up such things. While one could see a tale of the supernatural, I just see one of mundane sadness, depression and darkness. Solidly written and executed.
[close]

- Stupot: Just Look at You
Spoiler
Quite short and to the point. While the story focuses heavily on the experience of disfigurement and its effects after the fact, it feels like this tragic past event is swept aside a bit too swiftly to let its impact, the way it jolted Aven's world out of order, be properly felt. Her, and the stranger's, characterization also leaves some to be desired, but I do appreciate that bit of relief at the end. A bit of hope.
[close]

- Baron: ¡RorɹoЯ!
Spoiler
I feel like I've just read a campfire ghost story about a campfire ghost story and I'm not sure if that's just another layer of the theme or a funny coincidence. An entertaining read and a little more lighthearted than the two I read before this one, even if this one opts for a darker turn at the end.

Have a point!
[close]

- Mandle: The Halt
Spoiler
The longest read and, by far, the most engrossing one. Placing the reader so directly into the story felt odd at first but became clearer and more focused as I read on. The very end of the story with its descriptions of tentacles felt a bit too close to more common fantasy tropes for me, a slight step backwards in the original and unique nature of the story otherwise, but all in all I enjoyed this very much.

Two points!
[close]


And my points / scores tallied for Sinitrena's convenience:

Spoiler
- Baron: ¡RorɹoЯ! = 1 point

- Mandle: The Halt = 2 points
[close]
#75
Discovered that an artist I'd listened to as a teenager has had their works remastered and put up on Spotify again a couple years ago, after being absent for a long, long time.

E Nomine was both my gateway to German music and to anime music videos back in the day!

#76
The Three Mirrors

Spoiler
Jan sat on the edge of his bed, bare feet hovering over the cool wood of the floor below, the soft fabric of his nightshirt still twisted about his tall but strong frame. He pulled his hands off the wooden edge of the bed and let the long sleeves of the shirt fall around his palms, which he then brought up to his face to rub sleep out of his eyes, before rubbing them down his smooth hairless cheeks and jaw adorned by a narrow patch of beard. As his hands fell back down and into his lap, his green eyes turned to the window. The sun had just cleared the horizon and the landscape of green hills and dull mossy treetops were still damp with dew, yet steadily brightening before his eyes. There was birdsong and the distant whispering of wind. The four small panes of imperfect glass that made up the window distorted the world as Jan moved his head.

With a final nod down at the floor he accepted his fate of meeting the new day, despite not feeling up to it. He set his feet down to the floor and squinted his eyes with discomfort as the cool wood drove off the last vestiges of the warm beds embrace.

"Mmmrh- Oh, right."  -he murmured as he pulled his feet back up into the air. "Slippers, please." A pair of soft white slippers crawled from under the bed, carried by slender spider legs. With soft chittering sounds they positioned themselves beneath his feet and then stopped. As Jan lowered his feet a second time they slipped perfectly into the comfortable slippers, while the spider legs retracted into the fuzzy fabric and vanished from sight.

With a few wiggles of his toes to ensure a pleasing fit, he nodded his head again.

"Better. But still room for improvement."

Jan stood up and walked off. The bed was left unmade. The window closed. The bundle of clothes discarded on the wooden chair before his studying desk littered in piles of notes, scrolls and leather bound tomes untouched. He put his hand to the wooden frame of the doorway as he exited the square bedroom and study, and entered the upstairs landing of the house he had come to call home. For a moment Jan felt tempted to head downstairs and fix himself some strong tea.

"A bright day, young master. " -came a shrill voice from above. A white bat hung upside down from the rafters, wings folded about its body for comfort and warmth, but its head had turned to face directly at Jan's own, blood red eyes fixated on his own green pair. "Tithe and tax, no time to relax!" -the creature screeched, seemingly pleased with its latest rhyme.

Jan rolled his eyes.

"I know, Vesper, I know. I haven't forgotten." -he replied with a hint of frustration in his voice as he turned to the second of three doors on the landing, the one leading into the windowless bathroom. The bat shrugged its shoulders, upside-down, then turned its head away again so it could keep napping now that it had delivered its reminder.

In a small silver cage beside the bathroom door a shimmering spirit stirred, swirled up off the bottom of the cage and spread its four insect-like wings. As they began to buzz rapidly, warm golden light spread out past the thin bars of the cage, illuminating the room. To the left of the door was a cabinet filled with soft towels and fabrics, to the right a large oval-shaped wooden bathtub that was currently empty. To the front was a much smaller basin carved out of stone, filled with clear, still water and above it, set in the concave curved wall, a set of three mirrors. They did not reflect the light in the room, their surfaces remaining a dull silvery colour surrounded by a brightly polished silver frame as Jan stepped up to the basin and dipped his hands into the cool water.

A cold splash over his face made sure he was fully awake. The water dripped back down into the basin. What clinged to his face and hands felt chilly and tingly.

"Did we sleep well?" -came Jan's voice from his right side. As he blinked and turned his head, he could see his reflection. Bright green eyes full of vigor, a smooth grin that bared pearly-white teeth, a healthy tan and a posture of confidence greeted him within the silver frame. "Are we headed out? We do remember the tavern recently hired a new maid, right? Could always go and say hello, hm?"

"No. Not today, buddy." -Jan replied to himself. The reflection in the mirror frowned and shook its head.

"We might be the Grand Old White Wizard and all that, but... you know, might be nice to meet someone before we get to that whole white beard and wispy hair thing." The Jan in the mirror clutched an invisible beard beneath its jaw and pantomimed tugging on it with a faux distressed look on its face.

"I know, buddy. Tax day, though." -Jan defended himself, flicking his hands to dislodge a few more beads of water back into the basin from his fingertips.

"We are headed to the Castellans Keep, then? Could meet some fair maiden there, you know. Make a fine first impression, conjure up some dazzling displays, just sayin'."

Jan rolled his eyes and his reflection did the same in perfect synchronization.

The reflection in the left mirror had returned as well. Its eyes were blank, milky white, surrounded by scar tissue that left it without eyebrows. Much of its hair had fallen out. Its jaw hung open, a pair of teeth missing while several others were cracked and chipped, the mouth beyond a black void, save for a distant glow of white light, ever-so-faint, but distinctly there. Just out of reach. This reflection did not move, save for the miniscule turning of its head as it tracked Jan's face in a way that made a chill run down his spine. A reminder of past mistakes, of one particularly close call during the final days of his training. Vesper had suggested he put a curtain over that mirror to hide it from sight, but as macabre and unpleasant as it was to see his reflection like that, Jan didn't want to forget.

"We will find a way to fix us." -came a stern voice from the central mirror. Jan flinched, not having realized he had frozen while staring at the practically dead reflection of himself. He turned and faced his third reflection. It stood with its back straight, jaw slightly raised, hands clasped behind its back. Its green eyes were narrowed, studying himself, always seeming to find some flaw or point of improvement. Even dressed in its pristine nightshirt it exuded a sense of authority. A figure one could trust.

"One day." -Jan affirmed, as he had done many times before, still unable to hide the hint of discomfort in his voice.

"I take it we will not be opening the shop today? It seems you've stayed up late once more." -the reflection queried, its comment delivered in a stern, fatherly tone of voice. It didn't judge, but made it clear Jan could be taking better care of himself than he currently was.

"Correct. I finished the study of The Light Magnificent by Terrence Practicum, but I fear it provided me with very little new. Conjuration of basic illumination, minor light spirit summoning..."

The figure in the right mirror yawned theatrically, waving its hand over its open mouth. The one in the middle mirror nodded its head very slightly. Jan raised his hands to shrug. He'd set himself a goal and completed it, even if it meant he'd barely slept and now felt like hell.

The figure in the central mirror shifted on its feet, moving its hands from behind its back to its front, pressing its downward-pointed fingertips together before its stomach. "We have time. Shall I present out taxes to the Lord Castellan?"

"Please do." Jan replied, stifling a yawn. "You'll make a better showing than I would." He dipped his right hand to the basin, coating his fingertips with the cool water once more, then reached the hand towards the central mirror.

His reflection reached out in unison, the real hand and the reflection lining up perfectly.

As Jan felt his fingertips touch the silvery surface of the mirror he inhaled first, then blinked his eyes. During that blink his very being seemed to shudder and shift. It felt like being plunged face-first into a pool of mercury, like drowning under a wave of something cold and heavy and bright, only to emerge immediately on the other side.

Jan opened his eyes and let the held breath escape through his nostrils. His reflection in the right mirror made a disappointed, dismissive gesture with its hand. The one in the left stood unmoving, still. The middle mirror's reflection now had its hair in a mess atop its head and appeared to have slept poorly, dark patches under its eyes, an inkstain on its cheek from when it had absent-mindedly rubbed its hand over its face in the night. Its wrinkled nightshirt sat untidily on its body and its posture could have done with improvement.

Jan brushed his hands over his pristine nightshirt to remove any semblance of wrinkles and gave an approving nod.

"I look forward to a productive day. Gentlemen, I shall see you on the morrow."

"Yeah. Later!" -replied the reflection in the central mirror, raising its hand to briefly wave at Jan.

"Don't forget to do that smiling -thing we talked about. We might be sixty years old, but as long as we don't look like it, we don't need to act like it!" -called out the figure in the right mirror while flashing a broad, bright grin.

Jan nodded to each of the three mirrors in turn, then stepped back. The reflections faded and vanished. It was time to get dressed, to conjure up some nice herbal tea and to take to the road. Already Jan's mind was busy going over his mental notes, the bookkeeping of the downstairs shop, the finer details of law when it comes to taxation of supernatural services in the realm of Light.

It was to be a very busy day. He'd have Vesper take notes for him.
[close]
#77
Quote from: Radiant on Mon 06/05/2024 16:29:30Thank you, I've enjoyed watching that!

Good to hear it! I know from experience that seeing someone else play your game can give a lot of context for feedback and help figure out how players think differently than the developer does.

Aside from adding some guide or tutorial to help the player understand what items really do, I feel I have one piece of feedback in hindsight: add a slide to the movement when moving diagonally against an object. Currently it seems that if you approach an obstacle diagonally and don't hit the corner, you just stop, have to adjust sideways and then start moving again. Having the player character slide along the edge of the obstacle until they reach either a dead end or a corner they can slip through would help make the movement feel a lot nicer (though it might also alter the balance too much).

Just my two cents, Sherwood was an impressive outing for a MAGS effort in any case!
#78
Quote from: Ponch on Sat 04/05/2024 23:25:59WHAM, you described me as "middle aged." I am outraged, good sir! I'm barely 51 1/2 years old. I'm still young and hip! I'm "with it," as the kids say.  :=

Sorry the game was too buggy to finish. Like most of my MAGS efforts, the budget schedule didn't allow for playtesting.  :tongue:

Thanks for giving it a try, even if my build was a bit "wack" (as the kids say).

It was a fun one, though for a moment there I was wondering if my Twitch account was going to get some sort of strike for inappropriate content. (Insert the non-existent suggestively eyebrow waggling blue cup emoji here)

And yeah, it was hella wack but also bitchin', no cap, fo'rizzle!
#79
I tried all the MAGS games and you can find videos of my attempts here. While I'll happily recommend you play them all yourself, if you just can't be bothered then this might be an option for you:

Barn Runner: Fashionably Late
https://www.youtube.com/watch?v=e-x97iBLaJk

Steeplejack
https://www.youtube.com/watch?v=6m2IQ2T5Wuc

Sherwood
https://www.youtube.com/watch?v=CF2IFEmAs4E

In Our Midst
https://www.youtube.com/watch?v=wK1kE7oOdHA
#80
Oooooh, I see now! Having never played the fabled Amogus myself, I had no idea! :D

Spoiler
Maybe instead of text it could have used different error icons, so it doesn't look like the same action and error are being repeated in the eyes on an uninitiated player? Fast forward icon, stop hand icon, sadface icon. It would give a player like me the idea that repeated attempts might at least have different errors or outcomes.
[close]
SMF spam blocked by CleanTalk