No announcement yet.

Dreamwalkers: Sleep Descent - open world JRPG style game

  • Filter
  • Time
  • Show
Clear All
new posts

    [GAME] Dreamwalkers: Sleep Descent - open world JRPG style game

    Development on Sleep Descent has restarted using the Unity engine. With Droplet: States of Matter wrapping up and going on Steam, I figured I should use Sleep Descent as a means of teaching myself another engine so that I can broaden my skillset. Thank you to those who followed the development of this game!


    So I started this project around 2016 when I was learning Unreal Engine for the first time. The idea behind it was to create a 3D JRPG involving a girl that was mysteriously transported to the world of dreams. I created a prototype game with an open world setting that turned out alright. However, the constant rewrites to the story and the spaghetti code didn't quite pan out for me so I decided to put this project on pause. The result was me working on Droplet: States of Matter - a 3D platformer which has seen a lot of development and work put into it. It's gone very well. If you want to follow development on it, check out the thread for it here.

    After building my skills with Droplet, I felt confident once again revisit Dreamwalkers. However this time, I figured it was best to completely start from scratch with new assets and a new story. While I'm still keeping the core idea of a girl being transported to the world of dreams, the game will feature a brand new plot and characters. Despite its setbacks, the game paved the way for a new shared universe consisting of many different short stories and characters documented in the Omniverse Nexus collaborative writing project. I'm still working on the Sleep Descent-related content on the Omniverse Nexus, but you may visit the site here if you wish to explore the Dreamwalkers expanded universe.


    Maria Martines is a young girl that is descended from two different tribes that practiced the sacred art of dreamwalking - the Ahona of Arizona on her grandfather's side and the Yumekage of the Devil's Sea in Japan on her grandmother's side. Her parents Xavier and Jesusita were scientists that sought to understand dreamwalking from a scientific perspective. To do this, they created the dream world Mobius to serve as a testing ground to experiment with dreamwalking powers. Maria and her sister Elvira were taken to Mobius as young children to have their powers evaluated and tested.

    While both were exceptionally powerful, Xavier had begun to show favoritism towards Elvira. As Maria had been born with nonverbal autism, she had a difficult time communicating - something which greatly frustrated Xavier. After Jesusita expressed disapproval with his methods, their family began to grow apart. Before they could resolve their differences, Mobius became the battleground for the gods that had begun to wage an apocalyptic war against each other. Jesusita was a casualty in the conflict. Xavier and Elvira went off the grid to continue training their dreamwalking skills in order to one day exact vengeance for Jesusita. However, Maria was sent to live with her grandfather Leo to live a normal life way from dreamwalking.

    Many years would pass as Leo continued to look after Maria. However, the same gods that destroyed Mobius also caused a new threat to appear - an all consuming void known as the Rupture which brought forth beings made of pure darkness known as Id. One of these Id mortally wounds Leo, forcing him into reincarnating as a cat. Leo in his new form decides to reintroduce Maria to the world of dreamwalking so that they could prepare themselves for the calamity the world is about to face. Perhaps finding Xavier and Elvira will give some clues as to how to stop the Rupture.

    • Maria Martines - The main character. Despite being mute, she is highly expressive and sports a goofy sense of humor. She wants to uncover the mysteries of her family's fate.
    • Leo Martines - Maria's grandfather who reincarnated as a cat after being mortally wounded by an Id. He is Maria's guardian, even in her adulthood.
    • Morley Calavera - A spirit mage that serves the Ahona tribe even in death. He resides in the Ahona dream world of Talsohu.
    • Daphne - A girl that was transformed into a forest nymph centuries ago. She lives in the Greek dream world of Arcadia.
    • Fenrir - The wolf from Norse mythology that is the son of Loki. He is encountered in the world of Jotunheim.
    • Elvira Martines - Maria's sister and dreamwalking prodigy. She serves her father's will with undying loyalty though she begins to question her father's motives as his quest for vengeance against the gods begins to go too far.
    • Valentine - A knight in shining armor and long forgotten imaginary friend of Maria that defends her childhood dream world of the Toy Box.
    • Kakashi - An Id that managed to develop sapience. Being a fan of the work of the Martines', he joins Maria's crew so that he can better understand humanity.


    Dreamwalkers: Sleep Descent is a JRPG-inspired game with semi-turned based elements. Every ability in the game has a charge time and cooldown time determined by a set amount of real-time seconds. An ability is cast when the charge time is complete and another ability cannot be used until the cooldown time expires. Multiple abilities have different charge times and cooldowns and thus, one must balance them carefully.

    The current prototype supports up to four playable characters at a single time, but I may change this to only two so that battles are a bit more accessible to manage. Either way, I'm looking to build something in depth yet easy to understand and incorporate elements of the fantastical dream worlds.


    A prototype of the new battle system I took a while ago. I'm hoping to get new footage in the near future.

    Maria Martines - The new main character. Check out her article on the Omniverse Nexus for extra information right here.

    Another battle scene showing a menu with a list of abilities.

    2017 BUILD:

    I'm keeping the video footage and download link to the old version of Dreamwalkers up for the time being.

    Download 2017 prototype:


    Full walkthrough of the prototype:

    Test footage of first boss encounter

    Test footage of being chased by a dragon (not yet in-game, coming soon!)

    Footage of a dungeon involving ball rolling physics:

    Test footage of a different type of encounter where you are being chased by an impossible boss

    Attached Files
    Last edited by Krayfishkarl; 02-04-2021, 10:40 AM.

    A quick update video showing some new progress. Made a new area called "Fire Mountain"



      How did you do the battle system and the menu?


        Originally posted by CloudStrife321 View Post
        How did you do the battle system and the menu?
        I will admit that because I first designed this system a year and a half ago, the Blueprints are quite convoluted and could definitely use improvement. I'll try to break down all the major pointers as best I can:

        The menu is just a large combination of smaller UMG widgets, and I switch between them via the Widget Switcher. The items and equipment lists are a series of custom structures stored on an array. The menus themselves are just scrollboxes containing smaller widgets and every time the menu is displayed, it gets "refreshed". It pulls from the array containing the player's data to display them via a ForEachLoop. Similar practices are employed with the party and skill menus. I keep the player data on the game's GameInstance class.

        So the player's data essentially is just one structure containing things like the following:
        -Character Stats

        For navigating the menu, on the game's PlayerController class, I just put a branch next to each input action to check whether the game is in the menu or not. If it it's not, these actions will move the character. If it is, it will move the cursor on the menu (which I use as an integer whose maximum value allowed is the length of the array of items/equipment).

        The battle system is not perfect and I'm planning to redo a lot of the blueprints behind it, but as a principle, it works something like this:

        All of the enemy's stats are stored on a Data Table while I have another data table that determines what enemies are possible in a specific area. The game has actors which I called "Trigger Battles" scattered throughout the overworld that are designated locations for battles to take place. These Trigger Battle actors spawn an overworld monster that will just execute "Simple Move to Actor" when you get close enough to it. The "Trigger Battle" actor also contains an array of three Name variables that you can fill in while editing. If you type "random", it will pull from the list of possible enemies, then pull from the enemy's stats to spawn it on the screen. You can also just type the monster's name directly which I use for situations where I want the same enemy to appear all the time. (i.e. Bosses, unique enemies). In battle, the player characters and the enemies both use the same actor, but just swap out their mesh and animations. I opted for using the same object for all of them so that the same Blueprints could work with them uniformly, although there's probably better ways to handle it.

        The battle menu uses an integer to determine how deep into the menus you are. They work similarly to the list of items and equipment in that its a scrollbox that refreshes depending on what menu you are in. When you select an action, it then triggers an event to put the character in a casting stance. The the current time the character has been in a casting stance is measured with a float value while I have a timer function in the background that increments it.

        And then when the timer expires, I have an event which I put in the GameMode class that executes the attack. The inputs for this event are the one who is casting, an array containing the targets, and a Name variable containing the move being cast. So the next set of blueprints is a delay node to show the attack's name on screen, then it takes the stats of the player, the enemies and move to determine how much damage to do. In the case of multiple enemies being targeted, I just have a ForEachLoop for through each enemy to do the damage.

        Hope I explained well enough, but those are just the essentials of how it works. There's a lot I want to redo such as moving the Blueprints around in more convenient places and changing the system

        Also, just came out with some new footage too. This time, it's an impossible boss that chases you. On principle, it works the same as any other enemy in the game. Only this time, I set the wander radius very high so that it can find you anywhere. And the Griefeater's stats are raised so high that you have no chance of defeating it. The result is some kind of quasi-horror segment where your only option is to run.

        Last edited by Krayfishkarl; 01-14-2018, 12:13 PM.


          Woooooooowwww nice game i like it, keep up the great works !!!!


            Thanks! It's always nice to get a bit of encouragement. The next thing on my to-do list is going to be particularly challenging. To improve the blueprints on the game's battle system, I'll have to sort through stuff I created more than a year and a half ago, but hopefully, the end result will make things much more polished and smoothly running.
            Last edited by Krayfishkarl; 02-02-2018, 12:27 PM.


              Click image for larger version

Name:	BattleScene1.png
Views:	781
Size:	339.3 KB
ID:	1667169
              Work in progress of the new version
              CURRENT PROJECTS:


                I just updated the original post with more information about the reworked version of Dreamwalkers. Droplet still remains my priority, but I had a couple of boons of inspiration I had to get down.
                CURRENT PROJECTS:


                  I've been sporadically updating this project in between Droplet. On the Omniverse Nexus, I've been posting articles relating to the game's backstory and characters. I also remixed one of the game's battle themes. This one is for a miniboss or powerful enemy:

                  CURRENT PROJECTS: