How to make a Journal

megumi014

Veteran
Veteran
Joined
Mar 8, 2017
Messages
130
Reaction score
213
First Language
Spanish
Primarily Uses
RMMV
How to make a Journal.
(Point&Click style games)

...
Edit: Added customised entries and fixed the presentation.
...
disajournal.jpg
...​

Hi everyone. I've seen around tutorials about how to make a book (I got the idea watching a tutorial of Echo607 on youtube) but none about how to make a journal, so here is my take on it. I had in mind point&click games, but I think it can be useful for any plot-driven story.


What is the point of the journal: A journal can be "filled" progressively as the story advances any time you see fit. You could include a summary of the day before or some event written by the main character (thus giving an idea of how the character is feeling or their personality), the main points of a long conversation with an important NPC or include pictures and clues related to puzzles.


How to name your pictures: every "entry" of your journal is a different picture, but all of those entries might be on the same “fictional page" of your journal. Therefore you might end up with three different pictures for "Page1", and two for “Page2”. Since we need to override those pictures or “false pages” and still be able to go forward and backwards inside our journal (“real pages”) we will need 2 variables to keep track of them, so I named the pictures Page1a, Page1b, Page1c, Page2a, Page2b... to make things easier, but is up to you how you name them.

For this tutorial I named those variables [Page Number] (for the fictional pages) and [Journal Advance] (for the false ones). I took the picture of the empty book (I was lazy to find a "journalish" picture) from here. (I will explain how to use the variables a bit later).

Page numbers.jpg


  1. First make the item for the journal and insert a Common Event (CE) inside it to open the journal event (In this tutorial I named it [Open Journal]). Set it to 'NO consumable', the scope to ‘none’ and the occasion ‘Menu Screen’. Is up to you to set it as Regular Item or Key Item. Make sure you create an autorun event as soon as the game start to give the item to the character or a normal event if you want the player to find the journal through the game.

    *You could also use the plugin Hide Item Quantities, made by Mr Trivel, writing <noq> on the Note window to (duh) hide the x1 on the item for aesthetics. (PLUGIN NOT MADE BY ME)
    Link to Mr. Trivel’s Hide Item Quantities

    Item-Journal.jpg


  2. Now open the CE Open Journal and insert a picture of the journal you are going to use without any writings on it (like the one on the link before). This will serve as a “base” in case you want to include animations to flip the pages or your game lags in between pages. In this tutorial it's Picture #1. Then create a Switch (here called [Inside Journal]) and set it to ON. -> you could put all of this inside a “Choice” option if you want to be asked if you want to open your journal or not.

    *Optional: you could use the opacity of the picture to create a transition when you open the journal, setting it to 0 and then increasing it progressively to 255. The dimensions of your picture are up to you and the screen resolution you use for your game, but make sure they are big enough so the player can read them easily. You could add a sound effect too before showing the picture.

    open journal.jpg


  3. Now create 3 new Common Events, we will use them to “turn” the pages of the journal (a.k.a. to control the variable): [Turn Right], [Turn Left] and [Turn Right/Left].

    On the [Right] one create a Conditional Branch in which if the button “right” is pressed down, we will ADD (+=1) to the variable Page Number.

    For the [Left] one is exactly the same but since we are “backwards” on the journal we will SUBstract (-=1) to the variable Page Number if the button “left” is pressed down on the condition branch.

    Finally just copy and paste those 2 condition branches on the [Turn Right/Left CE], making sure that they are separated.

    *You could add a SE or place a small waiting time after the events to ensure a nice pacing. Technically you just need to use the CE Turn Right once, so you could write it down on the main event, but I like to keep it as a separate event to keep it simple.​

    turn rightleft.jpg


  4. Now create the final and most important Common Event: [Inside Journal], set the trigger to Autorun and set the Switch you made on the Open Journal CE as the condition.

    autorun.jpg


    Inside it make a Conditional Branch: if the button [cancel] is pressed down, erase the picture you used as an empty base shown on the Open Journal CE (Picture #1), erase the picture you will use to place all the pages (here Picture #2) and finally turn the condition switch for this autorun event OFF. -> keep this at the end of your CE, and preferably place it inside a “Choice” option so you don’t close the journal by accident.

    close journal.jpg


  5. Now is time to make the heavy content of the [Inside Journal] event. It is not difficult to do, but quite long and a bit hard to explain; please check the pictures and the examples since they might be easier to understand than the explanations:
    • First create many individual Conditional Branches, one for each “fictional page” of the journal, and set the variable [Page Number] equal to 0, 1, 2, 3…. (keep in mind that unless you make a cover picture, the first page of our journal will be variable = 0, the second page variable =1... and so on).

    *If [Page Number] = 0 (page1)
    *If [Page Number] = 1 (page2)
    *If [Page Number] = 2 etc. (page3)…​
    • Then inside each of those [Page Number] branches, make another set of conditional branches, this time for the variable [Journal Advance]. Make one branch for every number of pictures or “false pages” you have for that page and finally SHOW the picture inside it accordingly. All of them have to be on the same picture #x slot. Here they are on Picture #2.

    So, for example, if I have 3 different pages one, 2 different pages two and 1 page three (page1a, page1b, page1c, page2a, page2b, page3a) it should look like this:

    *If Page Number = 0 (page1) -> this line will not have a picture
    *If Journal Advance = 0 (show picture page1a) -> these yes
    *If Journal Advance = 1 (show picture page1b)
    *If Journal Advance = 2 (show picture page1c)

    *If Page Number = 1 (page2)
    *If Journal Advance = 3 (page2a)
    *If Journal Advance = 4 (page2b)

    *If Page Number = 2 (page3)
    *If Journal Advance = 5 (page3a)​
    • Now make a COPY of the last picture you have per page and place it under it, but instead of making the condition of the variable equal to the number of the false page (=), make it it equal or bigger (≥) to the number of the next variable [Journal Advance] . Make sure it is equal or bigger or you won’t be able to use it as the story progresses. It would look like this:

    *If Page Number = 0 (page1)
    *If Journal Advance = 0 (page1a)
    *If Journal Advance = 1 (page1b)
    *If Journal Advance = 2 (page1c)
    *If Journal Advance ≥ 3 (page1c)​

    *If Page Number = 1 (page2)
    *If Journal Advance = 3 (page2a)
    *If Journal Advance = 4 (page2b)
    *If Journal Advance ≥ 5 (page2b)​

    *If Page Number = 2 (page3)
    *If Journal Advance = 5 (page3a)​

    inside1.jpg


    The reason we do this is because when you get all the entries of your, for example, Page 1, you still can’t turn into Page 2 because you haven’t gotten it in-game. But once you get a new entry and “unblock” Page 2, you want to be able to travel between these pages freely. Therefore the extra “repeated” false page will have the Turn Right (for Page 1 only) after the show picture line and Turn Right/Left (for all the other extra pages). Except for those of the Page 1 (they don’t have any turn event), all the “false pages” should have the Turn Left event.

    Like this:

    inside2.jpg


    If you have understood all my bad explanations and how the event works (congrats :’D) you could also set the event like this to make it shorter: just place that extra page under the last false page, changing the equal (=) of the variable to equal or bigger too (≥). It works exactly the same, pick the method that is easier for you.

    inside1A.jpg

  6. We still need to do one more thing for this event as a whole: how to make the [Journal Advance] variable actually increase on the game. This variable will be modified outside these common events we made for the journal: every time you want to include an entry on your story include a [Control variable: Journal advance -> add 1 (or adjust the number accordingly) on the event you are using to advance the plot]. Then the new picture will appear on the journal.

    *Optional: When you close your journal, it remembers the last page you were looking at (it remembers the variable duh :D), so next to that "Journal advance add 1", you could add a conditional branch (if journal advance is X, then set the Page Number to X), to make sure the player will open the journal on the correct page every time they get a new entry.​

    advance plot.jpg

  7. And FINALLY, this is optional but STRONGLY recommended: if you check that last picture I put you will notice a new switch called [show journal item] at the end of that event. This switch activates a new Common Event set on Parallel. It will make a sound effect and show a small picture on the corner of the screen to notify the player that a new entry has appeared on the journal. If we didn’t do this they wouldn’t be able to tell when it happens and they would forget about the journal and our effort to create it :D Remember to turn off the switch at the end of that event. You can make the picture bounce or increase-decrease like in this example:

    journal icon.jpg
    It would look like this:

    Point&Click.jpg

And that is it!

I hope this was useful for someone and that the explanation wasn't too confusing (sorry for any English mistake).

..........

New: How to customise the entries of the journal:

In you need/want the player to have more interaction with the entries you can introduce a few options to make it so. It is limited to the size of every entry and the place they occupy on the page, but can bring more variety to the gameplay. Since the structure is very similar to the previous journal example I won't explain them again.

The Sleeping Princess.jpg

  1. The first stage of the event is exactly the same as before: create the item, the Open Journal common event and the 3 common events to turn pages.

  2. Then you have to write your entries on top of a transparent background. If you want more than one entry on the same page you should be careful of their placement. It helps to keep a consistent naming for all the pages, for example: Page1entryAtext1, Page1entryAtext2, Page1entryBtext1...

    pag1atext1.png pag1atext2.png pag1btext2.png pag1btext3.png
    Those pictures share the same space on the page, so it doesn't matter what combination of entries the player chooses.


  3. Now the Inside Journal Common Event:

  • It will still use the variables Journal Page, Journal Advance and for the most part the same structure as the previous journal, but we will need new variables, one for every choice the player makes: the variables start with 0 value, so we can use that default value to make the choices. Since we don't want those choices to reappear over and over we need to set a new value to that variable according to the choice made. We will still need the external event to increase the Journal Advance variable.
  • The main difference between this method and the other is that we will need to use more number of pictures as they will "pile up" one on top of the other instead of substituting the previous one. On the previous mode we only needed picture #8 and picture #9 for the examples. Now we will need as many pictures as entries on the same page, and erase them accordingly on the Cancel button part of the event. Depending on how you organise your entries you could reuse some picture numbers instead of erasing them, for example Page 1 could use pictures 9, 10, and 11; Page 2 pictures 12, 13 and 14; Page 3 again pictures 9, 10, 11...
*If Page Number = 0 (page1)
*If Journal Advance = 0
*If Journal Page 1 entry A = 0
-Show text: Do you want to write about.../How are you feeling...?
-Show options:
-if option 1: control variable [Journal Page 1 entry A = 1]
-if option 2: control variable [Journal Page 1 entry A = 2]
-if option 3: control variable [Journal Page 1 entry A = 3]​
*If Journal Page 1 entry A = 1
-Show picture #9​
*If Journal Page 1 entry A = 2
-Show picture #9​
*If Journal Page 1 entry A = 3
-Show picture #9​
*If Journal Advance = 1​

4. Since we don't know what picture will be chosen we need to include them all on the next "Journal Advance" entry before the new Choice. Then we will use a new variable and a new picture.​

Exampleoptions.jpg


5. When you need to turn the page of the journal the structure is the same as before, except for a couple of things:​

-Erase the previous pictures shown on the last page.

page2turn.jpg
-From the second page onward include the Turn Left or Right command after every picture.
And that is pretty much it. If you need more examples or something is unclear let me know.
 
Last edited:

berkough

Warper
Member
Joined
Feb 28, 2015
Messages
2
Reaction score
1
First Language
English
Primarily Uses
RMMV
I'll definitely be trying this later on tonight! Thanks for sharing.
 

Antroxity

Rookie
Member
Joined
Jul 14, 2015
Messages
4
Reaction score
3
First Language
English
Primarily Uses
RMMV
I was actually looking for this kind of Journal. Google always give me the quest journal and stuff.
Thanks!
 

Pikheat

Veteran
Veteran
Joined
Feb 3, 2017
Messages
30
Reaction score
19
First Language
German
Primarily Uses
RMMV
Great.

Thank you for sharing, i will use that for my game.

Thx!
 
Joined
May 4, 2017
Messages
13
Reaction score
20
First Language
English
Primarily Uses
RMMV
This is really cool, though I wonder what it would take to have the player enter their own entries.. would that even be possible?
 

megumi014

Veteran
Veteran
Joined
Mar 8, 2017
Messages
130
Reaction score
213
First Language
Spanish
Primarily Uses
RMMV
Write their own entries would be very hard. You could use the "name input processing" with some pluggin that increased the characters to more than 16 to change the name of an Actor ID and then use the Show text: \N[number of the actor ID] as if it was a text on a journal, but I can't think of any way for them to appear at once and "flip" pages with texts instead of pictures.

I found the idea interesting though, so I included a small part on the entry about customised entries. The players wouldn't be able to write them themselves but they could chose between more options.
 

AbhijitK

Warper
Member
Joined
Aug 30, 2017
Messages
3
Reaction score
3
First Language
English
Primarily Uses
RMMV
A very detailed tutorial. Thanks.

Needed something like this. Will give it a try!
 

DavidFoxfire

Veteran
Veteran
Joined
Feb 28, 2014
Messages
224
Reaction score
44
Primarily Uses
This is something I've been looking into for some time. Not exactly an fully-fledged plugin, but an Event-based version would be just as useful.
 

karinthefox

Veteran
Veteran
Joined
Apr 13, 2019
Messages
41
Reaction score
12
First Language
Spanish
Primarily Uses
RMMV
Thank you so so much for this tutorial!! This is just what I need for my game!!

Just a question: is there a way to add "sections" to the journal? Like, for instance, "notes, "recipes" and "people"; and making it so you'd be able to jump from section to section?
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??

Forum statistics

Threads
105,860
Messages
1,017,040
Members
137,569
Latest member
Shtelsky
Top