Ren'Py DSE 1

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.
Message
Author
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:

Ren'Py DSE 1

#1 Post by PyTom »

I just posted a draft of the Ren'Py DSE. DSE is short for Dating Sim Engine. DSE is a set of add-on rpy files that make it easier to create event-based games with Ren'Py.

An event-based game in which the story in which events can happen in an order that is largely determined by the user. In such a game, each plot arc is broken up into events, and the choices that the user makes may mean that he's on event 1 of one arc while on event 7 of another. (Or something... use your imagination.) Compare this to traditional visual novels, which have an order that is largely fixed.

Anyhow, DSE consists of two modules. The first is a working day planner. In concept, this is similar to the one found in the Ren'Py demo, but this one works, and can be configured by code at runtime. The day planner assigns values representing activites to variables representing periods.

The second element is an event dispatcher. This code chooses which events are run, based on a number of conditions that are associated with the event. Some of these conditions are:
  • Arbitrary python expression, which can be used to check that a specified activity is being undertaken, that a given period is underway, that stats are above or below certain values, or whatever else you can think of.
  • That an event has not yet executed. In general, events that advance a plot should only occur once.
  • That events that our event depends on have already occured. This ensures that events occur in the right order.
  • That no higher-priority event will execute. This is useful for giving default events that only occur if special events do not.
Events are run by calling them. The events are expected to return, allowing the next event to run.

A DSE demo game can be downloaded from:

http://www.bishoujo.us/renpy/dl/dse/1/dse-1.zip

Unlike the Ren'Py demo game, the DSE demo game is actually a fairly-full-fledged game, complete with 3 endings and 2 winnable characters. It doesn't use any graphics, however. It was made in a morning, so it's not the world's best game... but it might be interesting for people who are jonesing for new games in the post NaNoRenO lull. If you think you can do better... you're probably right! Why not try!

This is still an early release. There's no documentation except for the comments in the sample game, and there are probably bugs. (I caught one while writing this post, that'll be fixed in the next release.) I'm sending it out into the wild so I can get some feedback, and improve the next version... so send some feedback!
Last edited by PyTom on Wed Sep 14, 2005 10:32 pm, edited 2 times in total.

chronoluminaire
Eileen-Class Veteran
Posts: 1153
Joined: Mon Jul 07, 2003 4:57 pm
Completed: Elven Relations, Cloud Fairy, When I Rule The World
Tumblr: alextfish
Skype: alextfish
Location: Cambridge, UK
Contact:

#2 Post by chronoluminaire »

Wow, superb... I was actually thinking of implementing something like this myself on top of Ren'Py for one of my two next games. I'd done a bit of thinking and planning; I thought I'd build on top of Ren'Py to take advantage of the save/load code and so on. But this is excellent news. I've not tried it yet, but I definitely will. And I'll probably build a game on it. :D

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:

#3 Post by PyTom »

Well, if you try it and have any comments or suggestions please let me know. DSE is very much a work in progress, so any feedback, especially concrete feeback on how to make it better, is appreciated.
And I'll probably build a game on it. :D
That's what makes it all worthwhile.
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

ShiraiJunichi
Miko-Class Veteran
Posts: 651
Joined: Sat May 21, 2005 12:28 pm
Location: University of Utah
Contact:

#4 Post by ShiraiJunichi »

Awesome! I'm downloading it right now. I was planning on using Ren'Py to make an event based game by using a ton of variables, and if clauses to determine which events have already been completed. But the DSE will save me a lot of time and energy- and probably give better functionality too ^_^.
I think event based games have much more potential than path based games. With events, the user is given more freedom to complete the game in their own way. I think that after the DSE is fully functional and bug free, it should definitely be made a standard part of Ren'Py.

Great job. Innovations like these will continue to empower the community to make better and better ren'ai games

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 »

ShiraiJunichi wrote:AI think that after the DSE is fully functional and bug free, it should definitely be made a standard part of Ren'Py.
Why wait? I plan to ship the current version of DSE with the next release of Ren'Py. (Which might be out as early as tonight, depending on how much time I spend packing for my move back to DC, on Friday.)
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

User avatar
mikey
Lemma-Class Veteran
Posts: 3249
Joined: Sat Jan 10, 2004 6:03 am
itch: atpprojects
Contact:

#6 Post by mikey »

PyTom wrote:Why wait? I plan to ship the current version of DSE with the next release of Ren'Py. (Which might be out as early as tonight, depending on how much time I spend packing for my move back to DC, on Friday.)
^_^ with this updating pace, why not do something like "Ren'Py Update", a win-like service that checks for a new version and automatically updates it. ^^ :P :P

I'll check out the DSE tonight, gotta run now!

saru
Regular
Posts: 27
Joined: Mon Apr 18, 2005 7:05 am
Location: Maeklong , Thailand
Contact:

#7 Post by saru »

i like old demo day_planner more than a new form. :D

i think. i can modify old demo day_planner form to my game.



ummmmmm...

How can I apply status point to an old demo day_planner form?

:D :D

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 »

Okay, I posted up a new release of DSE, to:

http://www.bishoujo.us/renpy/dl/dse/3/

This release consists of just the files containing the DSE, which you'll have to drop into a renpy game directory yourself.

This release now has the old day planner, as well as the new one. You can use the old day planner by changing one line in main.rpy. The line:

Code: Select all

    call day_planner from _call_day_planner_1
should be changed to

Code: Select all

    call old_day_planner from _call_day_planner_1
I've changed the download location for DSE, and also updated the link in the first post.
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

ShiraiJunichi
Miko-Class Veteran
Posts: 651
Joined: Sat May 21, 2005 12:28 pm
Location: University of Utah
Contact:

#9 Post by ShiraiJunichi »

I've been looking through the DSE files, and I'm having a little trouble. Things are kind of coming together, but some documentation- or even a tuturial, would be a tremendous help

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:

#10 Post by PyTom »

For now, your best bet is to ask questions... I have alot on my plate right now, and writing documentation is at the bottom of the pile, unfortunately.

OTOH, forum posts are processed as interrupts.
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

ShiraiJunichi
Miko-Class Veteran
Posts: 651
Joined: Sat May 21, 2005 12:28 pm
Location: University of Utah
Contact:

#11 Post by ShiraiJunichi »

I'll look into it some more on my own, and try to develop my own tutorial- then could you look through it, correcting and adding stuff as needed?

By the way, a possible bug I noticed was when you name the dse .exe file with an underscore in the filename (and rename the corresponding directory the same) it doesn't load the dse script, but loads the script in the game folder

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:

#12 Post by PyTom »

That's not a bug, it's a feature.

The idea is one can have an executable named "run_foo.exe", and then it looks in the foo directory.

Maybe it's a mis-feature.
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

ShiraiJunichi
Miko-Class Veteran
Posts: 651
Joined: Sat May 21, 2005 12:28 pm
Location: University of Utah
Contact:

#13 Post by ShiraiJunichi »

oh, I see. So, if I wanted to name the game directory "My_Game", I would have to name the executable "run_My_Game.exe". It was just misleading because I had thought the convention was to have the executable, and the game directory have the same name- which is simplier, IMO. Of course, it's no big deal

ShiraiJunichi
Miko-Class Veteran
Posts: 651
Joined: Sat May 21, 2005 12:28 pm
Location: University of Utah
Contact:

#14 Post by ShiraiJunichi »

oh, I see. So, if I wanted to name the game directory "My_Game", I would have to name the executable "run_My_Game.exe". It was just misleading because I had thought the convention was to have the executable, and the game directory have the same name- which is simplier, IMO. Of course, it's no big deal

ShiraiJunichi
Miko-Class Veteran
Posts: 651
Joined: Sat May 21, 2005 12:28 pm
Location: University of Utah
Contact:

#15 Post by ShiraiJunichi »

I'm curious as to why you put:

# Here, we want to set up some of the default values for the
# day planner. In a more complicated game, we would probably
# want to add and remove choices from the dp_ variables
# (especially dp_period_acts) to reflect the choices the
# user has available to him.

$ morning_act = None
$ afternoon_act = None
$ evening_act = None

within the day block, and not the init block of the main.rpy file. Wouldn't it be more efficient to have them only set once inside the init block? Especially the dp_variables...

Also, I'm wondering if you could give me a complete rundown of defining event objects. All the parameters it takes, which parameters can be omitted, order of parameters (though I'm not sure that's even applicable), and default values assumed if certain parameters aren't given (like, a priority of 100). With that info I should be able to complete my tutorial- the DSE is a lot simpler to use than I first thought. I guess it just takes familiarity

Thanks

Post Reply

Who is online

Users browsing this forum: Bing [Bot], DewyNebula, Google [Bot]