Menu choices - Random order

Discuss how to use the Ren'Py engine to create visual novels and story-based games. New releases are announced in this section.
Forum rules
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.
Post Reply
Message
Author
monele
Lemma-Class Veteran
Posts: 4101
Joined: Sat Oct 08, 2005 7:57 am
Location: France
Contact:

Menu choices - Random order

#1 Post by monele »

I'm playing Tokimeki Memorial 2 and I'm wondering... is there a way to have the choices of a menu appear in a random order instead of the fixed order from the script ?

User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

#2 Post by PyTom »

Not easily. You would have to use renpy.display_menu to do the menu choice, as it's not supported in the menu statement.

Could you take a couple screenshots of TM, and maybe describe the interface a little bit? I'm considering writing an extension/replacement for the DSE that asks the user throughout the day to choose what he wants to do next, and I believe TM uses a similar system.

(The rationale behind this is it will be easier to understand, and that it's actually quite unrealistic to expect someone to plan their day completely in advance, and then to slavishly stick to that schedule.)
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

monele
Lemma-Class Veteran
Posts: 4101
Joined: Sat Oct 08, 2005 7:57 am
Location: France
Contact:

#3 Post by monele »

About random choices :

Let's see... one could do a routine that loops, picking a choice out off a list (using the random functions), adding it to the final list, removing it from the initial list... until there's one choice left which would obviously be added last. Then, use the renpy.display_menu function.

Or... make some kind of "shuffle" function that randomizes the order of elements in a list... then give the resulting list to renpy.display_menu.

TM uses this for dates when the girl asks something and you have to answer with three possible choices. The order always being randomized :)


About TM :

Sounds like an interesting job to do ^.^. Just know that TM is week based with the exception of weekends and some holidays where you often get an extra action. But I'll get a few screenshots of what it offers. It could at least give some inspiration ^^.

monele
Lemma-Class Veteran
Posts: 4101
Joined: Sat Oct 08, 2005 7:57 am
Location: France
Contact:

#4 Post by monele »

Image

Main interface : activity panel (upper-left), reminder (upper-right), stats (down). You can also click on the TV for fun and use the phone (that squarish thing left of the books...) to dial numbers yourself.

Activity panel (from left to right, going down) : Litterature, Science, Art, Sports, Club... Chat, Fashion, Sleep... Phone, Date, Magazine... Options, Calendar, Load/Save.

The first options are studies related. The club one lets you choose a club first, and then you choose it to go to the club. Chatting is good for stress and common knowledge. Sleep is mandatory when your stress goes up or your health is down.
The phone lets you either call a girl on a date, or ask one of your male friends for intelligence on the girls (phone numbers, tastes, clubs and what they think of you).

Image

The magazine lets you know of incoming events, date spots and other such things.
The calendar lets you review every incoming date, school test, vacation and special days.

The activity panel can be arranged in two other fashions :

ImageImage


Image

When doing an activity, it's either for the whole week, or during the weekend (which is reduced to Sunday, Saturday being included in the week). You can see a little 3D animation (2D in TM1) of the activity and wether you succeed or fail, day by day. Stats go up and down depending on this. Each activity has an effect on multiple stats, good and bad.


Image

Calling a girl to go on a date. I need to phone my male friend first to know their numbers ^.^. If the girl was home and available, I can...

Image

... set a date and...

Image

... pick a location.

Depending on all this, she can accept or refuse (club activities, something planned with a friend on that day... or simply because she doesn't like me ;o;).

ImageImage

DEITO suruze~! The date takes place in regular VN fashion with the girl saying something. You then get to choose between three possible answers. There's a good, a neutral and a bad answer. I'm pretty sure that the place you take the girl to has some coefficient which means if you answer good on a good place, it's *really* good. But if you answer bad on a bad place, it's *really* bad ^^;... She might also not take it well if you say you're bored in one of her favourite places.

Image

Double-date! Along with a male friend of course. Those are special events occuring throughout the 3 years of the game.

Image

There are also exams taking place every few months... and this is the result panel. Some girls don't care how good you are while others will only date the best of the best ^^;.


Well I guess that's it for now ;). Should be enough to get ideas. I think I could get a video if you need to see all this running together.

User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

#5 Post by PyTom »

I think I get it. I find it interesting that you can only plan one activity per week.... but I guess if the game has 2 periods per week * 52 weeks * 3 years, that's 312 choices, which is alot... and that's not counting the per-date choices.

Right now, for an enhanced DSE, I'm leaning towards a system similar to that used by the flash-style dating sims, which would subsume this interface. Basically, time is divided up into periods. (Days, weeks, etc.) In each period, the player gets a certain amount of energy. (This might also be considered to be the time of day.) He's presented with some activities he can do, depending on various factors. (Skill, time of day, money, etc.) These consume time/energy, and trigger events. When out of energy, the time period ends, and we go to the next one.

I would argue this is quite similar to TM2, except for the fact that in TM2, it seems like all actions are instantaneous, or else consume an entire time period. (We'd be able to support this mode.)
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

monele
Lemma-Class Veteran
Posts: 4101
Joined: Sat Oct 08, 2005 7:57 am
Location: France
Contact:

#6 Post by monele »

I forgot to say that on Sunday, you get the option to call the girls OR make any usual activity with augmented results compared to a regular day (Sunday would be equivalent to 2 or 3 regular days I think).
When you make a call, it's over and you're choosing your activity for the coming week. The only exception is when a call doesn't yield a result (some special events when you get an answering machine or something similar).

When I played before, I kept thinking "this game is quite unrealistic with all the dating and stuff", but actually, looking at the calender, you actually only date once or twice a month, everything else being school. So it's not that unrealistic.

Anyway, your system sounds good if we have that much freedom. Could make very complex games where going to the market doesn't take as much time as going on a ski vacation. Do you think the energy would be taken away when the event starts (when the choice is made), or only at the end?
Imagine the case where you go on a date with a girl and things turn out different, such as deciding to sleep over. The usual "one day" would turn into "the whole weekend" for example.

bookie
Veteran
Posts: 269
Joined: Fri Mar 25, 2005 10:17 pm
Contact:

#7 Post by bookie »

Pytom, you made a sort of mini engine before where there as a sort of timeline/stat system involved didn't you? I remember looking it up, playing the demo, and getting excited about making a game like that, but when my first game stalled everything else was put on the back burner.

User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

#8 Post by PyTom »

monele >>> My current idea is that each event will have a minimum amount of time/energy it consumes, but that the event will then be able to consume more time/energy. So if you wind up missing the last train of the day, and having to sleep over in a Love Hotel:

1) Lucky you.
2) We can model that.

(Too bad in New York, there's no such thing as a last train or a love hotel.)
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

monele
Lemma-Class Veteran
Posts: 4101
Joined: Sat Oct 08, 2005 7:57 am
Location: France
Contact:

#9 Post by monele »

That's why dating sims should take place in Japan :3

Matt_D
Regular
Posts: 77
Joined: Tue Oct 31, 2006 3:28 pm
Contact:

#10 Post by Matt_D »

In London there is most defenetly a last train, and a last tube. After 1am there is mearly "unlicensed cabs" ¬.¬

Post Reply

Who is online

Users browsing this forum: Google [Bot]