Search Unity

  1. The 2022.1 beta is now available for testing. To find out what's new, have a look at our 2022.1 beta blog post.
    Dismiss Notice

Assets [WIP] Faux 3d Dungeon Crawler Toolkit

Discussion in 'Works In Progress - Archive' started by Fhiz, Mar 30, 2018.

  1. Fhiz

    Fhiz

    Joined:
    Feb 28, 2018
    Posts:
    81
    Hi there, this is another asset I am working on - ETA is early 2019 (Im just one person after all). I plan to create a game out of this (featuring handcrafted dungeons instead of procedural ones) but I also want to release this little pet project as an asset because it is built with the thought in mind, to be a toolkit to create dungeon crawler style RPGs:

    Welcome to the Dungeons!


    Create exciting oldschool 3d Dungeon Crawler games without a single line of code using this asset. You will be able to design a first person, single player and single character RPG with gameplay similar to Ultima Underworld, System Shock and other golden Oldies. The faux 3d graphics use Sprites instead of models for monsters and items and allow you to integrate content at the highest pace. Based on my own experiences with Unity3d in the last year, the 3d Dungeon Crawler Toolkit was built around three principles:

    Ease - It makes content creation as easy as possible. Every object in the game ranging from Monsters, Items, Traps, Doors and Chests - as well as the Player and Skills is editable via scriptable objects.

    Complexity - Comes with a whole battery of features right out of the box. And new features will be added with every major update. I want this asset to be as complete as possible.

    Speed - The simplified faux 3d graphic and the powerful scriptable objects allow for rapid content creation. Create an item in a minute, a Monster with multiple attacks in five minutes, add a small dungeon level in one hour or a small dungeon in one weekend.

    I would like to update this thread every once in a while in order to explain the core features to you in detail. Furthermore you will be able to vote on upcoming features to give them more priority.

    Thanks for reading!

    PS: I labelled this asset "Dungeon Crawler" - but wilderness areas are possible as well.

    -Weaver



    IMPLEMENTED FEATURES UNTIL TODAY:
    • Ships with high-quality, open-source graphics (CC0) by Justin Nichol
    • Ships with open-source dungeon interior models (CC0)
    • Ships with complete PDF documentation (also available online)
    • No scripting required, completely driven via Scriptable Objects
    • Ships with full source, easy to extend (if you want)
    • Multiple Language Support (switchable while playing)
    • Ships with Sound & Music System
    • Monsters with mulitple Attacks as well as Mana/Ammo
    • Stairs/Teleporters
    • Desctructible Objects / Containers (optionally trapped and/or lootable)
    • Chests (optionally locked, trapped and/or lootable)
    • Floor Traps (optionally invisible, disarmable and triggerable by Monsters)
    • Status Effects for both Player and Monsters (Buff/Nerf)
    • Stamina System (Food Clock)
    • Equipment Damage / Equipment Ammo Depletion
    • Action Combat system with melee, ranged and magic combat
    • Effect system for Magic/Psi/Skills/Items and Projectiles
    • Level System with upgradeable Attributes and Skills
    • Physical and Elemental Resistances (both Player and Monsters)

    FEATURES WORK IN PROGRESS:
    • Skill/Magic System
    PLANNED POST-RELEASE FEATURES (you can vote on this list):
    • Character Creation System
    • Quest/Game Progress System
    • Save/Load System
    • Crafting and Professions
    • Ingame Shops
    • Animated Traps
    • Minimap System / Map System
    THINGS THAT MIGHT HAPPEN IN THE FAR FUTURE:
    • Alternate Graphics mode that allows to use 3d Models
    • Jumping/Climbing/Swimming
    • Pets and Hirelings
    • Procedural Dungeon Generation (although there are assets available that do the same)
    • Ad Integration / Premium System

    THINGS THAT ARE VERY UNLIKELY TO HAPPEN:
    • Networked Features
    • Multiplayer/MMO Capability
    • Multi Characters/Party
    • Top-Down View (or other)
     

    Attached Files:

    Overlurker likes this.
  2. Fhiz

    Fhiz

    Joined:
    Feb 28, 2018
    Posts:
    81
    Devlog Update: Numeric Variables

    I would like to show you one of the finished features of this toolkit: All Attributes and Statistics are variable and flexible. You can assign them to your player and monsters via the inspector and very simple building blocks. This allows us to create games with 7 attributes, or 5 or just 3 - and all of them have side-effects and interlock with other attributes and stats in the game. This makes sure no two games look the same.

    You can have 3 different types of mana if you want, or 2 health stats and your monsters can have less thats than your player character (which is good in terms of reducing overhead).

    In total there are five different "families" in the game that you can fully customize:
    • Attributes (like Strength)
    • Statistics (like Health)
    • Elements (used for both Elemental/Physical Attacks and Defenses)
    • Skills (more on that later)
    • Buffs (more on that later)
    Attributes
    The basic building blocks of all player and monster objects. The description you set here is tied to a language Scriptable Object (more on that later). The "Increase Statistic" is the Stat your players use to "pay" in order to increase this attribute. All other effects of Attributes are found in the other Families.

    Players should feature all Attributes in your game, as should monsters. But monsters can go with less attributes if you want, but they wont receive a bonus when the attribute is missing (so no Health bonus when the monster has no strength stat). Simpler objects like Destructibles can go competeley without Attributes.

    attribute-intelligence.png
    attributes.png

    Statistic
    Statistics are more complex and can increase as well as decrease their value throughout the game. Several options are available, for example one or more Attributes can increase the MaxValue of a Statistic as seen in the "Boost Attributes" section below.

    A stat like "Health" is required, or otherwise the game object cannot be defeated. Players have about 12 stats including Experience and Level, while most Monsters only have 2: Health and Mana. Monsters casting spells are limited by their mana stat.
    statistic-health.png
    statistics.png

    Elements
    Elements represent both Physical and Elemental/Magical Resistances and Attacks and are used for dealing damage as well as to prevent damage. I will explain the Attack/Defense system later in more detail as the combat system has several other design options available.

    resistances.png
     
  3. Fhiz

    Fhiz

    Joined:
    Feb 28, 2018
    Posts:
    81
    Devlog Update: Language Settings

    You as a designer can define any number of languages for your game. Using the language system is very simple, as it is completely designed around Scriptable Objects. Every object in the game: Items, Monsters, Attributes, Skills, UI Elements and Stats can be linked with a Language Object that contains its name and description. This makes it very easy to translate your game into various languages.

    Languages can be switched while playing and all changes are updated in realtime.

    The Sample Dungeon (+ Content Database) that ships with the Asset comes in 3 language variations (English, German and Italian).

    Of course its perfectly fine to use just one language if you don't want to support multiple languages (not all Indie project can or want to do that anyway).

    Most Scriptable Object used by the Asset are just references, so we do not create a unique instance for each. Even if you have 1.000 "Barrels" in your game - there will be only one Barrel Description in your asset database and memory.

    language.png
    english.png german.png italian.png
     
    owlhowell likes this.
  4. Vampyr_Engel

    Vampyr_Engel

    Joined:
    Dec 17, 2014
    Posts:
    449
    Will you be able to have this on a sphere or better inside it?
     
    Last edited: Apr 4, 2018
  5. Fhiz

    Fhiz

    Joined:
    Feb 28, 2018
    Posts:
    81
    Im not sure if I got that. You simply assign a Description file to each object in the game in the objects inspector. This allows you to translate your game into different languages (real world ones, not fantasy languages).

    So instead of writing "Plate Mail" directly as the name of a Item. You assign a Description File that contains the word "Plate Mail" (plus a description and a few other stats) in your games languages (English, German and Italian by default).

    I plan to have ingame languages (Elvish, Orcish etc.) later on as well. In order to read plaques, scrolls and talk to NPCs. But this features is planned for post-release.
     
    owlhowell likes this.
  6. Vampyr_Engel

    Vampyr_Engel

    Joined:
    Dec 17, 2014
    Posts:
    449
    Bo I meant on an actual round cyberplanet rather than a flat plane Would characters be able to move around on it like in Super Mario Galaxy or even make caves inside the sphere so characters can move inside it??
     
  7. Fhiz

    Fhiz

    Joined:
    Feb 28, 2018
    Posts:
    81
  8. Fhiz

    Fhiz

    Joined:
    Feb 28, 2018
    Posts:
    81
    Attached you find a very early movie showing some basic features of this asset. Please ignore the bad layout, badly chosen icons and lack of design. Im sorry its not more fancy, I just don't have anything else to show off yet.

    What you see is a Oxygen & Drowning system. It is very important to understand that nothing in this movie was hardcoded. So the whole Oxygen/Drowning system can be built using the asset and its Scriptable Objects, without a single line of code.

    You can also design other systems like Radiation, Damage Floors, Lava Floor, Poisoned Areas etc. in this way.

    What you can't see in this movie is that there can also be passive Skills that affect the speed of oxygen depletion. It is therefore possible to create a "breath underwater" skill or a "fishman" race that will deplete oxygen much slower.

    Humble beginnings and still a long way to go!

     
  9. Vampyr_Engel

    Vampyr_Engel

    Joined:
    Dec 17, 2014
    Posts:
    449
  10. Fhiz

    Fhiz

    Joined:
    Feb 28, 2018
    Posts:
    81
    Devlog Update: Music Manager

    The asset now features a simple Music Manager that allows you to assign a individual background music to the various states the game can be in. So you can have music for the title screen, the options screen, while playing the game, the character screen and so on.

    Players are of course able to adjust the volume of both Music and Sound Effects. You can also control the global volume of all music and the individual volume of each tune as well. It is also possible to leave the music for a certain state blank, then the currently playing music will continue to play (Example: The game music is running and your player accesses the options menu. When you do not define a music for the options, the game music continues to play).

    music-manager.png music-volume.png

    Furthermore you can define "Music Areas" that can be Spheres or Cubes in your scene. When a player enters such a area, the current music is switched (faded) to another one. This allows you to have unique tunes for the various areas in your game/dungeon/world. Just make sure not to overlap them.

    music-area.png

    Finally a special option is the combat music. This tune only plays while the player is engaged in combat. A player is enganged when the last hit by an enemy was not longer than 30 seconds ago (adjustable of course). That hit must have been caused by a Enemy, environment damage does not count. After 30 seconds, the music will switch back to the default tune or the one of the Music Area your are currently in.

    Sounds work similar but feature a few more options (as sounds are 3d in the scene, while music is global). I will explain them in a later devlog entry.

    Thanks for being with me!

    -Weaver
     
  11. Fhiz

    Fhiz

    Joined:
    Feb 28, 2018
    Posts:
    81
    Devlog Update: Dynamic Properties

    Welcome back to another round of number crunching RPG madness! In one of my previous posts I showed you some statistics already. I would like to put some more emphasis on this topic, because the asset gives you a lot of freedom in that regards:

    What I dislike about most game editor / game assets is the fact that all core stats are fixed. You have your set of Attack, Defence, Health and Mana - and thats it. Applying modifications is a chore (if it is even possible). Thats not only true for most of the Unity assets out there, famous RPG Editors like the RPGMaker work exactly the same way: Use the built-in stats or you are in trouble.

    The Dungeon Crawler asset goes a different route, as all stats are dynamic. You can create stats and assign them to the Player, Monsters, Items, Status Conditions and so on!

    attributes.png

    Dynamic Attributes
    The image above for example, shows you the main attributes as used by the example project. As you can see we have typical attributes like Strength and Dexterity. You as a designer can create any number of attributes and assign them to all game objects in your project. You can also set dependencies and side-effects for each and every attribute.

    The player object should feature all attributes in your game, but your monsters can have less and the simpler game objects (like destroyable barrels, chests etc.) can feature even less or none attributes at all.

    A simple example whats possible: Vitality increases an Objects Health (HP) while Intelligence increases an objects Mana (MP). Your player object should therefore feature both attributes, so your players can benefit from them. Monsters on the other hand are not forced to feature Vitality/Intelligence because they rely on the static Health/Mana values you assign to them. Of course - if you really want, you can assign a Vitality/intelligence attribute (alongside all others) to your monsters as well. Its your decision!

    statistics.png

    Dynamic Statistics
    The image above shows the secondary Statistics of the Player object in the assets demo project. As you can see thats quite a lot! Monsters on the other hand feature only 3 Stats in the demo as they simply don't need that many. Why? Here is another example:

    Load - The load stat increases when the player picks up an item and adds it to the inventory. Carrying too much stuff results in a "Burdened" status. The load you can carry is boosted by the players Strength stat as well.

    Now, monsters cannot pick-up/carry items with them (except for the loot they drop) - therefore it makes no sense to define a Load stat for monsters.

    The same is true for Attribute Points, Skill Points and several others. I think you got the point.

    statistic-example.png

    Defining Statistics

    The image above shows you a few of the options available when defining such a Statistic as "Mana". The options you see here are independent of a players race/class or a monsters base value. They simply define how the Statistic "works in general". We have a few triggers here like what happens when the stat reaches its Maximum or Minimum Value. You can use these triggers to build (almost) any kind of stat you like. Here are a few examples:

    Health - When reaches 0, the game object dies
    Load - When reaches Max, add "Burdened" status to player
    Stamina - When reaches 0, add "Exhausted" status to player

    Dynamic Resistances/Elements/Damage

    All that was said here also applies to the elemental Resistances/Damage stats of a game object. We will go more into detail about Defense/Damage in another dev-post as the topic is quite complex.

    Conclusion

    From these simple building blocks, you can create (almost) any Attribute and/or Statistic as you like (and Elemental Resistances/Damage as well as we will see later). You want a game with 6 main attributes like in good old D&D? OK. You want 9? OK. 14? OK. Or for or simpler, more action paced RPG you can go with just 3 stats (Body, Mind, Soul). All OK.

    You want Food, Thirst, Sleep and Stamina in your game? OK. Or just combine it into one single stat called "Energy"? Thats OK as well. Or do you want to go without any "food clock" features? No problem!

    Five different types of mana or just one? Thats all up to you!
     
  12. Fhiz

    Fhiz

    Joined:
    Feb 28, 2018
    Posts:
    81
    Lots of little things this week, the asset is still hard at work.

    • Added Headbobbing
    • Added (very simple) character selection at the start of the game
    • Added starting stats, skills, resistances and equipment for the character classes
    • Added Invisible/Visible Teleporters
    • Added onScene / offScene Teleporter functionality
    I now have about 30 more larger and smaller points on my (text based) to-do-list. When that is done, there might be finally a prototype to show. So the plan for now is:

    • Finish the to-do-list
    • Build a Demo Dungeon
    • Setup a WebGL Demo
    • Create a official trello for further development/roadmap
    Plus, a few people wondered what "Faux 3d" is, so i wrote a paragraph about it:

    The term Faux 3d describes fake 3d graphics in a first person environment - as many computer games prior to the mid 90s and pretty much all console games prior to the fifth generation era did. The most significant "feature" of this graphic style is the use of 2d sprites in a 3d environment in order to display objects like Monsters and Items.

    The list of games using Faux 3d graphics is long - and includes timeless classics like "Dungeon Master", "Eye of the Beholder", "Ultima Underworld", "Black Crypt", "Might and Magic" and "System Shock" among others. Even until today, we see this kind of graphics - especially in the independent game development scene. A famous example is "Delver" but lesser known titles like "Ebony Spire" or "One more Dungeon" exist as well.

    The Faux 3d graphics style has been chosen for the uRogue asset out of several reasons. The first one is the charming atmosphere of retro graphics, the second is the ease of acquisition and implementation of 2d graphics compared to much more complex 3d models. And the final reason is the integration and content generation speed. uRogue is a number crunching, retro RPG asset with a strong focus on gameplay features. Graphics are secondary to it (which does not necessarily mean "bad").

    tutor.jpg
     

    Attached Files:

  13. erichey

    erichey

    Joined:
    May 5, 2017
    Posts:
    20
    How's it coming?
     
  14. HeadClot88

    HeadClot88

    Joined:
    Jul 3, 2012
    Posts:
    719
    Hey @Fhiz any news on this or has it been mothballed?
     
  15. Fhiz

    Fhiz

    Joined:
    Feb 28, 2018
    Posts:
    81
    Hey guys,
    Thanks for your responses, but im not working on this project anymore. See, my last post was April '18 and now we have June '19 when there was a first answer to the thread.

    Im working fulltime on a Unity based Indie MMO engine and that one forced me to cancel ALL of my other endevaours. You can learn more about it here (it's based ontop of another asset):

    https://www.indie-mmo.net

    https://forum.unity.com/threads/fhiz-addons-for-ummorpg3d.549742/#post-4645846

    https://discord.gg/DPSqMMy
     
    HeadClot88 likes this.
  16. Overlurker

    Overlurker

    Joined:
    Jun 12, 2020
    Posts:
    1
    This is a very good toolkit/framework, by any chance can you make it so that I can make a blob (multiple characters as one entity) each with their own HP and Sanity (or MP, I can try to modify that by draining MP characters get a penalty, I'm planning to go lovecraft on my game, where casting spells use Sanity instead)? I can live without character creation since I already have a fixed party to stick with, with more focus on their individual stories. For attacks you can just randomize the enemy attacking any character in the party, I don't plan on having taunts or similar crowd control effects yet (the only tactical option is block: increase self defense, and defend: adds your defense to a party member), And less work since I don't need to put an animated sword in front, I'll just put 2d slash/magic effects

    Perhaps in my request, might be an additional party member switching mechanic when out of combat (or even, you can only change in town but not once in a dungeon)

    I don't mind if the enemy is just one and not a group at a time, as I'm making them larger than the party, to give the feeling of Your party vs a Titan/Eldritch horror.
     
    Last edited: Jun 12, 2020
  17. Moody_Mek

    Moody_Mek

    Joined:
    May 22, 2014
    Posts:
    15
    Don't bother, the creator is a scammer that sold broken asset and never delivered promised features.
     
unityunity