Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

[WIP - 80%] Database and Object Manager

Discussion in 'Works In Progress - Archive' started by abelreyes, Jan 28, 2016.

  1. abelreyes

    abelreyes

    Joined:
    Sep 11, 2013
    Posts:
    28
    Hey everyone,
    We're working on a powerful tool that allow developers to easily create and manage Databases and its objects without a line of code. We talk about Game objects' database:

    MainGuiTest.png
    (Main GUI of the extension. Allow you to create a new Object based on ObjectTypes you've already configured. At the bottom-right you can configure the actual variables of selected object)

    ObjectTypeEditor - show some config.png
    (ObjectType editor GUI. It allows you to configure some ObjectTypes (Weapon, Consumable, ...) and which variables this types will store)

    Features:
    -Graphic object creation with no code (Final GUI will be improved)
    -Fully customizable db objects (You can store inside it whichever kind of variable you want without any line of code)
    -Graphic inventory creation (Character or object local DB):
    -All necessary functions to manage the inventory will be included (Add/Remove objects, Save inventory, ...)

    [Edit 30/01/2016]
    • Almost all loading and saving Inventory function fully working.
    • After some troubles, the Database itself will not be editable on runtime. You will be able to modify inventories (Personal character (or object) database) using the predefined database values.

    [Edit 02/02/2016]
    • Loading time tested:
      • 1 object -> 17ms
      • 100 objects < 300ms
      • 200 objects -> 808ms
      • 300 objects -> 2.1s -> 8.8mb ram reported by profiler
        (Tested using a i7 4ghz powered computer)
    • Some GUI improvements

    [Edit 12/02/2016]
    • Fully redesigned User Interface (Screenshots coming soon...)
    • Lots of bugs and exceptions solved, for much better stability when working with big projects
    • Autosave implementation: don't worry anymore about losing data
    [Edit 12/02/2016]
    • Lots of bugs solved
    • Lots of exceptions programmed
    • New idea: themes (light, dark and some other for fun)
    • Multi editing! - You can select multiple objects by holding Control and edit them together
    • Hiding object types - To much object types to edit? Hide them and empty your workspace.
    [Edit 20/02/2016]
    • Some multi editing bugs solved
    • Theme system created
    • Inventory editor bugged, so the release will take a bit more time
    [TODO]
    • Some other minor bugs and lots of hours of testing
    • Solve inventory editor

    What do you think about it? Is anyone interested? Is there any feature you would need?

    The final price will be of about 7$, but we will create Packs with our other assets with some discounts.

    -----------------------------------------------------------------------------------------​

    While this project is released, you can take a look at our other asset, InputManager, and achieve a discount when buying this asset!
     

    Attached Files:

    Last edited: Feb 20, 2016
  2. manpower13

    manpower13

    Joined:
    Dec 22, 2013
    Posts:
    140
    Hi there,

    Looks pretty cool to me. How would one acces an item from the database?
    What is the speed when using hundreds of objects?
    Is the data readable for users to edit (to create runtime mods, for example?) or is it computer-only :p.

    Floris Weers
     
  3. abelreyes

    abelreyes

    Joined:
    Sep 11, 2013
    Posts:
    28
    Well, right now it's about 50% of the expected work, we've done mostly the GUI and logic, but we haven't configured functions to manage data in runtime yet. The main idea only let "inventory" to be modified from runtime, but not the Database itself, but if you need it, i'll program it.

    We haven't tested it with huge amount of objects yet because of some small errors when deleting objects in Db that corromped the whole database and we had to configure it all once and once, but as soon as I can I'll try with about 200 objects and post it on the main post.

    The way to access objects from database is scripting, but with some premade functions that make it really easy. "Do you need to add to the Inventory of your player a Database object? Simply call "inventoryObjectOfYourPlayer.AddObject(DatabaseObject)", and you can get a DatabaseObject from Database by calling "database.GetObject("ObjectName"/int objectIndex)". Inventory is a MonoBehaviour driven class, so you can get your player inventory by attaching an Inventory to it and calling "player.GetComponent<Inventory>();"

    Also, InventoryData will be persistent between executions, if you call "inventory.Save()".

    The package will be finished in about a month, and will contain some basic examples of everything, plus a mini-game showing its power.

    I'll explain everything much better when finished in a documentation PDF, but I hope every of your questions has been answered.

    Thank you, Derepent team.
     
    manpower13 likes this.