Announcement

Collapse
No announcement yet.

Best way to go about a Megami Tensei: Persona style calender system with blueprints?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Best way to go about a Megami Tensei: Persona style calender system with blueprints?

    I am newish to the Unreal engine and I was just wondering what would be the best way to have time advance at very specific times while showing what Day it is and what part of day it is on the HUD?

    like "Aug 22 2019 Thursday - Evening" in hud. then when and only when you click on your bed it advances to "Aug 23 2019 - Morning" like this https://youtu.be/57HdAicBlRs?t=448

    I could make a new map for every day and time of the day with characters in their new positions, the different lighting, events and what have you, but I feel that will waste a lot of space lol

    Is there a way to store each day+time of day as a variable everything calls on?

    #2
    Dynamic day night cycle tutorials will help you understand how to do this.

    For implementing a date system, I would suggest solving out a julian day calendar so you can just add 1 subtract 1 and get all the info you need from just one number to the UMD for display.
    As julian calendar goes it will also work backwards in time.

    The best way to implement this is C++, but being its q plain mathematical solution you can work it out in blueprint as well.

    As far as time advancement goes only at certain places, well, you can literally just decide when to add a number or more then 1 number, or 1.5, to your julian date based on whatever script runs the level.

    You will end up needing 365 "scripts" to go through a year day by day like persona - it's kind of a massive undertaking.
    Duplicating levels would make the game size unmanageable even with the same elements within them and no landscapes.

    I would do 4 levels, one per season, in which the characters are in vastly different places and new events can occur.
    then just re-arrange positions on a day to day basis for that season cycle to give it a somewhat random feel.

    Either way you can drive the clock with level On tick like you would a dynamic sun.
    or you can create events based on Game Time and run the separate events on various timers so you can automate the day to day process.

    Player plays 1 hour (minus pause) loop to the new day sort of thing.
    Or, player goes to sleep, go to next day.



    Comment


      #3
      Originally posted by MostHost LA View Post
      Dynamic day night cycle tutorials will help you understand how to do this.

      For implementing a date system, I would suggest solving out a julian day calendar so you can just add 1 subtract 1 and get all the info you need from just one number to the UMD for display.
      As julian calendar goes it will also work backwards in time.

      The best way to implement this is C++, but being its q plain mathematical solution you can work it out in blueprint as well.

      As far as time advancement goes only at certain places, well, you can literally just decide when to add a number or more then 1 number, or 1.5, to your julian date based on whatever script runs the level.

      You will end up needing 365 "scripts" to go through a year day by day like persona - it's kind of a massive undertaking.
      Duplicating levels would make the game size unmanageable even with the same elements within them and no landscapes.

      I would do 4 levels, one per season, in which the characters are in vastly different places and new events can occur.
      then just re-arrange positions on a day to day basis for that season cycle to give it a somewhat random feel.

      Either way you can drive the clock with level On tick like you would a dynamic sun.
      or you can create events based on Game Time and run the separate events on various timers so you can automate the day to day process.

      Player plays 1 hour (minus pause) loop to the new day sort of thing.
      Or, player goes to sleep, go to next day.


      Thank you, that's probably a good idea to just hint at randomness. I will try something like that out, I am actually going to break it up month by month as smaller games, I am new to this and don't want to bite off more than I can chew lol, I'll loose the game long player chosen relationships, but I can't have it all.

      Maybe I can do some sort of variable that just goes up by one each day and everything links to it including the hud? I don't quite want to reveal the exact year and time, just day, number, and part of day. I don't want time to advance until they go to sleep, for what ever reason I am having trouble just finding what blueprint set up I'd have to have something like if this "integer" is at number "X" then this happens, for each char(like a macro?). then just have the number go up each time you go to sleep.

      I know that should be simple but for some reason I just can't figure it out lol. a simple if A = 1 then it's this day, if A = 2 then it's what they say on next day, and A = 3 would be the day after that.

      Do you know what that would look like?

      Comment


        #4
        As I might have mentioned, you need to have a look at some dynamic time of day tutorials to understand the ways in which to work the blueprint for this.

        because you are keeping count of the day globally however, and you are bound to be loading new levels, the Game Mode might be the best place for you to store and keep count of the day.

        The characters/actors can easily access that too.

        Another alternative would be the PlayerController...

        Comment

        Working...
        X