Forget-About-Me2 / FamMel

Code for the omo game Melissa Explains It All
4 stars 3 forks source link

Sorry + Wanna collaborate? #174

Closed M0nkey5ee closed 5 months ago

M0nkey5ee commented 5 months ago

Hi there @Forget-About-Me2,

sorry for the trouble, wanted to clone your repo and got a bit confused as it seems.

Now I have a few Ideas about how to make the game a bit more "enjoyable" / enhance the quality of life I hope:

  1. Most of the screen is empty, either on pc and/or mobile. Why not putting the status bar on the top instead of the bottom and making all fonts 20%+ bigger to make the stuff actually readable without "clunkyness"?
  2. Why not add (AI-generated) Images and emojis and colors etc. - where it fits - to the whole thing? Sounds like little stress to implement but a lot of added quality for the player. I attach you an example-picture of the theatre and the scene inside so that you get what I mean. (these are just examples of course) theatre_v0 1-min theatre_inside_v0 1-min
  3. What do you think about more and/or deeper conversation within the game? For example instead of

"You and Laura enter the darkened theatre.

You settle into your cushy seat with her by your side and the lights dim.

Laura is sitting beside you.

She brings her hand up to her cheek and rubs it once."

More like this:

`You and Laura step into the shadowy ambiance of the old theater, its walls steeped in history and draped with heavy velvet curtains. As you glide through the dimly lit aisle, the scent of aged wood and popcorn lingers in the air, evoking a sense of nostalgia.

Finding your way to the middle of a row, you both sink into the plush, red velvet seats that seem to embrace you with their worn comfort. The seats are slightly reclined, and as you settle in, the armrests are cold and smooth under your touch. Around you, the murmurs of the gathering crowd taper off, replaced by an expectant silence.

Beside you, Laura shifts slightly, her presence a comforting constant in the penumbra of the theater. The lights begin their gradual descent into darkness, signaling the start of the film. As the screen flickers to life, casting a soft glow that briefly illuminates her features, Laura lifts her hand delicately to her cheek. With a thoughtful expression, she brushes her skin lightly, a gesture that carries a hint of anticipation or perhaps a fleeting memory.

In this moment, isolated from the world outside, you are both enveloped in the unfolding magic of cinema, the upcoming story ready to sweep you away into its narrative embrace.`

  1. What do you think about adding new scenes and/or beverages? Like they could drink energy-drinks at her place together and then drive to a beerfest for example. I can generate everything from rough code to the content with AI, what I cannot (figure out and implement fittingly) is to make this properly work with your existing code.

Thanks for your work, looking forward to your reply! Cheers

M0nkey5ee commented 5 months ago

My support could for example look like this, without having coordinated with you so just out of the blue, the idea of the mentioned scenatio in one-shot code:

Script: beerFest.js javascript Copy code // Global variables to hold data and state let beerFestData; // Data about beer fest activities and restroom scenarios let bladderLevel = 0; // Track bladder pressure

// Function to setup the beer fest environment function beerFestSetup() { getjson("locations/beerFest", beerFestJsonSetup); return { "visit": [beerFestVisit, "Visit the beer fest"], "group": 1, "visited": -1, } }

// Initialize data from JSON function beerFestJsonSetup(json) { beerFestData = json; }

// Main function for visiting the beer fest function beerFestVisit() { let curtext = printList([], "Welcome to the Beer Fest! Choose your beer:"); curtext = appendBeerChoices(curtext); sayText(curtext); setUpListeners(); }

// Append beer choices to the text function appendBeerChoices(curtext) { curtext.push("1. Light Beer"); curtext.push("2. Strong Beer"); return curtext; }

// Set up listeners for beer choices function setUpListeners() { cListener([chooseBeer, "Light Beer"], "lightBeer"); cListener([chooseBeer, "Strong Beer"], "strongBeer"); }

// Handle beer choice function chooseBeer(beerType) { let increaseRate = beerType === "Light Beer" ? 5 : 10; bladderLevel += increaseRate; checkBladder(); }

// Check bladder status and handle bathroom visit function checkBladder() { if (bladderLevel >= 20) { attemptToUseRestroom(); } }

// Attempt to use the restroom function attemptToUseRestroom() { if (Math.random() < 0.5) { sayText("Restroom is available."); bladderLevel = 0; // Reset bladder level after using the restroom } else { sayText("Restroom is not available. Choose an alternative:"); offerRestroomAlternatives(); } }

// Offer alternatives when the restroom is not available function offerRestroomAlternatives() { cListener([useStaffRestroom, "Use Staff Restroom"], "staffRestroom"); cListener([useNearbyCafeRestroom, "Use Nearby Cafe Restroom"], "cafeRestroom"); }

// Using the staff restroom function useStaffRestroom() { if (tryPersuasion()) { sayText("You managed to use the staff restroom."); bladderLevel = 0; } else { sayText("You couldn't convince the staff to let you use their restroom."); } }

// Using the restroom at a nearby cafe function useNearbyCafeRestroom() { sayText("You walk to the nearby cafe and use the restroom."); bladderLevel = 0; }

// Attempt to persuade the staff function tryPersuasion() { return Math.random() < 0.5; // 50% chance to succeed in persuasion }

// Function to print the current scenario text function sayText(text) { console.log(text); } Explanation Global Variables: Tracks data and bladder level. Setup Functions: Initializes and fetches data. Event Handling: Manages beer selection and the consequences on bladder pressure. Restroom Logic: Checks availability and handles alternative options when the main restroom is not accessible.

Looking forward to your answer, cheers!

Forget-About-Me2 commented 5 months ago

Hi, so there are few things to address here.

  1. I'm not happy with the current design of the game, I also didn't make it, I've just slightly cleaned up the existing design of the previous developer, in part to make it full screen instead of only a part of the screen. But really this game is originally from like 2007 and it shows in the design. Part of me would love to redesign the game a bit and modernize it but I'm really not good in CSS and frontend design so I've just kinda let it lie. Having said that it shouldn't be too hard to implement a setting for font size, so I could create an issue for that.
  2. Yeah I don't think this is as simple as you're thinking, like aside from deciding where on the page the emojis and images and whatever should end up. Actually implementing it in the page generation code is probably going to be a bit of a challenge. Not really sure if those image would really increase the quality of the game, it's a text based game mostly. Beyond that I'm not sure how I feel about using AI images.
  3. Oh yeah a lot of the existing scenes definetly need a overhaul, they can be a bit bland or weird. It's been on my todo list for a while but I've been wanting to focus on adding more content and features instead, because it's not that bad in most cases. Though I do want to be a little careful about not making scenes too long, I think there should be more a focus on gameplay vs story telling, with of course a good balance between the two. But yeah this is not really a priority at the moment.
  4. I mean yes of course I would want more locations and items and stuff, I'm pretty sure there's plenty of mention of that in the current issues. But that's a lot of work. Just adding more drinks begs the question: what makes each drink unique. i.e. we currently have cocktails, beer and soda. a cocktail works to increase stomach capacity, beer is a diuretic that makes the bladder fill quicker, and soda is just a lot of drink in one go. Same question goes for new items. Same goes for a new scene/location what makes it unique and different? What are it quirks. And then it needs to be actually implemented, which also probably the most work, writing the code, making it fit with the existing code, and debugging it takes time. And I haven't really been active developing on this. I have a life and other things I want to do. I only work on this here and there. It's not that I have no ideas, I have still plenty, again look at the issue lists. I can't really add anyone else's code like that, especially AI code because that code you posted does very little if I'm frank.

If people want to work on this they are free to do so, I'm willing to review prs, but I can't code for you. I'm willing to help people out if they are stuck trying to understand the code or implement something. And people are free to give ideas on what they would like to see in issues (yk like the font size thing) and I'll see what I do with it. But beyond that I don't think there's much I can do with this.

M0nkey5ee commented 5 months ago

Makes sense, thanks for your transparent assessment. I will try stuff out on my own then and see what I learn on the way because right now it seems as if I cannot add anything useful combined with what you want to offer, what I can understand completely.

I will reach out if/when I have some more to work with, have a good one and thanks again for your work!

Forget-About-Me2 commented 5 months ago

Closing this as this isn't an issue and I think fits more in discussions? for the future