Monika-After-Story / DDLCModTemplate

A template for producing Doki Doki Literature Club Mods that adhere to Team Salvato's guidelines
96 stars 65 forks source link

More polished example script #2

Closed therationalpi closed 7 years ago

therationalpi commented 7 years ago

The example script is supposed to be a self-contained tutorial on renpy scripting.

It shows how to set a scene, add music, put in dialogue, add characters, do basic scene blocking, check basic conditionals for branching dialogue, and show menu screens.

Right now all of the functionality is there, we just need more animations and expressions for Monika and better commenting for new functions as they come up.

haloff1 commented 7 years ago

I think it's a good idea but ...we would basically do the same thing the Tutorial of renpy did, wouldn't we? ... But I do agree doing the same thing with just Monika would be nice. Alright I will work on it.

therationalpi commented 7 years ago

I figure a fair number of people who come here are going to be first time modders that have never used Renpy before and aren't going to bother going through the tutorial.

Plus, it's a chance to write more dialogue for Monika, so stop complaining! 😆

haloff1 commented 7 years ago

Alright, alright, you convinced me. I'm going to do the following:

  1. How to set a scene, basic dialogue and basic sprite position
  2. How to add music and sounds
  3. How to use custom sprite position
  4. How to use transformation (Monika jumps toward the screen and try to hug you!)
  5. How to give choices and go the next scene
  6. Other more advanced stuffs.

I intend to start working on that tomorrow, Friday 3 November, 18:00 UTC+1. If anyone already started to work on this issue before that, then please explain what you are doing here so that we don't work on the same stuff.

therationalpi commented 7 years ago

If I find time, I'm going to give the current example script a once through to add more expressions and comments. Please use that as a base if I do get around to it.

logokas commented 7 years ago

I will begin fleshing out this feature around 10:00 UTC+1, and expect to commit something well before 18:00, so feel free to continue from there. EDIT: on second thought, this afternoon has been quite eventful and I think I'll spend the remainder of my time wrapping my head around how DDLC has set up their character positioning and rendering instead.

logokas commented 7 years ago

OK, nevermind. I've just gone and made Monika not be stonefaced through the entire example. Enjoy!

This can probably be pushed to master as well, but please audit my work as I'm really not that great at this yet. Ahaha!

therationalpi commented 7 years ago

I appreciate it! We can always do more for a future release.

Be sure to make a pull request for your changes.

haloff1 commented 7 years ago

Hi there. As planned, I will now begin working on script-example. It seems you guys added some stuff. First I will review them. Then I will learn again renpy because although I'm experienced in Python, I don't know much renpy yet. I also need to memorize each expression and position of Monika. I think I should at least finish the following tutorials before midnight (UTC+1).

How to set a scene, basic dialogue and basic sprite position How to add music and sounds How to use custom sprite position

I'll keep you updated.

haloff1 commented 7 years ago

Update:

Hmmm things got more complicated. After doing once again Renpy's Tutorial and reviewing the original scripts, I decided we should first modify the gui to explain better how to code. In the Tutorial, as the same time as Eileen explains how to use Renpy, she shows code examples illustrating what she is saying. I think this is a great feature and I would like to add it. But I want to go further than that. I want to provide simple exercises that the readers/beginner modders have to do to complete the tutorial. Monika would basically ask them to complete a block of code and they would have to input the missing word/ line (it won't be a menu, they would have to input exactly what is needed). It would be weird if Monika modifies her own code in live so the examples would be about other DDLC characters like Sayori.

To sum up, in order to increase the friendliness of DDLC mod template's tutorial:

  1. Add a new feature: code example as in Tutorial
  2. Add another feature: exercise. Monika asks the modder to fill incomplete code block. The modder than has to input the right answer.
  3. The examples would be about other DDLC characters talking and moving. It would be weird if Monika makes another Monika appears and then asks you to make that Monika smile or make her move.

It would take me some time to implement that these features (one day I guess so it should be done before Sunday). What do you think?

therationalpi commented 7 years ago

I don't think I want to implement those features, because I want the template to be as close to vanilla DDLC as we can get. Might reconsider it in the future, though.

haloff1 commented 7 years ago

Awww I'm a bit disappointed but I understand your point of view. The issue would be different if the DDLC Modding Tutorial was different from the DDLC Mod Template, but as the two are the same for now, I agree we should avoid adding new feature.

In that case, I will do now what I planned using just Monika's dialogue box. I will use menu with choices to provide new modders some problems to solve.

haloff1 commented 7 years ago

Update: After many hurdles, I managed to make the custom menu for the tutorials. I'm now working on the tutorials themselves. custom_menu_1 custom_menu_2

therationalpi commented 7 years ago

That's amazing work! Can you make a pull request for this so we can share the work of making those tutorials?

haloff1 commented 7 years ago

I planned to do a pull request once I finished everything (hopefully this night). I once again changed my mind for the tutorials. I came to the conclusion that the best way to teach new modders was to make them mod themselves!

The idea is to make Monika teaches the modder how to make a monika route mod while explaining each step. For example at the beginning, she will asks the player...:

Tutorial PART 1

  1. Copy-paste the DDLC Mod Template Directory in Ren'Py's directory and then go inside the new folder
  2. Make an empty text file called "monika_route_script.rpy"
  3. Edit script.rpy and replace the line "call example_chapter from _call_example_chapter" by "call monika_route from _call_monika_route"
  4. Edit monika_route_script.rpy and add "label monika_route:" 3.1 Explain the meaning of call and label

TUTORIAL PART 2 MUSIC AND SOUND

  1. Add " stop music fadeout 2.0"
  2. Add "play music t2" 5.1 Explain the meaning of each keyword and how music works in Ren'Py 5.2 Show the modder where they can find the meaning of t2 (definition.rpy) 5.3 Invite the modder to see what happens when they write "music t3"

TUTORIAL PART 3 BG AND TRANSITION

  1. Add " scene bg residential_day"
  2. Add " with dissolve_scene_full" 7.1 Explain the meaning of the two lines 7.2 Show several other bg used in DDLC

TUTORIAL PART 4 Dialogue

  1. Add " "It has been four days since I joined the Literature Club. Today is Saturday and I finally decided to confess my feelings to Monika"" 8.1 Explain how dialogue works

TUTORIAL PART 5 CHOICE AND VARIABLE

  1. Add "menu".
  2. And so on. Monika will basically teach the modder how to make something like The Question.

I think this kind of tutorial is much better at teaching a new modder than a tutorial where all you do is reading.

therationalpi commented 7 years ago

I agree, this sounds like a really good tutorial.

That said, I would really like to have your custom scrollable menu for one of the other parts of this template: the API library. That would basically be a Q&A screen where the player can learn about specific functions in DDLC, like how to use the glitch effects or check for character files.

That said, the basic example is now polished, so I'm going to close this issue and start opening issues for our 0.2.0 release. Your template will be a part of that release.