Search Unity

Game Data Editor: The Visual Data Editor [Released]

Discussion in 'Assets and Asset Store' started by Celestipoo, Jun 6, 2014.

  1. Starya

    Starya

    Joined:
    Apr 7, 2014
    Posts:
    9
    Nope, never figured it out. Everything I tried at the time to get things working either did nothing or made it worse. After I got so frustrated I reverted my project and started over, everything has worked perfectly. Even the things I swear I'm doing exactly the same as that first time. It sort of made me question my sanity, so I decided to stop trying to figure out why it went wrong and move on with my life, LOL.
     
  2. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    Heh, I have been there so many times. Glad you got to a sane state :) Be sure to keep the reports coming. Even though we might not get to them in this update, we'll save them for later. Thanks @Starya
     
  3. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    Game Data Editor v2.5 has been submitted! Here's the release notes:

    Version 2.5
    * New Unity Types Supported! (GameObject, Texture2D, AudioClip, Material)
    * Export GDE Data to Excel or Google Drive
    * iCode Support
    * Improved Preferences
    * Big performance update to the GDE Editors
    * Lots of bug fixes

    Remember to always back up your data files before updating. Thanks for being so patient :)
     
  4. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    Excellentay!
     
    Celestipoo likes this.
  5. stevebu56

    stevebu56

    Joined:
    Apr 16, 2014
    Posts:
    26
    Next up on the todo list is updating the docs for the new update. Then we will be switching gears to update Localization Editor and put out a free version of that. Also we will be putting together a bundle of GDE and Localization Editor (LE) so stay tuned for that if you have localization needs. It has a neat feature to keep stuff in sync with the cloud. I think it comes in handy in most workflows.

    Check out Localization Editor if you haven't seen it.

    Also anyone on the fence about GDE, grab a copy before the update goes through because the price is going up a few bucks.
     
    Celestipoo likes this.
  6. royalgia

    royalgia

    Joined:
    Oct 26, 2014
    Posts:
    14
    The syncing process happens before the final-build right ? Anyway, it's another awesome asset, keep it up, you guys are great. ;)
     
  7. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    Yeah. Syncing would be something that you would do during development. It's not an automatic process. You would trigger a sync in the same way you would import or export a spreadsheet in GDE.
     
  8. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    Any news on GDE release to the Asset Store or is it 'with those guys' now?
     
  9. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    It was submitted Friday, July 31, 2015. Feel free to repeatedly slam them with messages to approve it :) (Messages from asset store users have much more impact than messages coming from me.)
     
  10. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    Hah - don't tempt me. Let's give 'em a few days, tops...
     
    Celestipoo likes this.
  11. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    Hot off the press!! (Is that even used anymore?!)

    GDE v2.5 has been Approved!!

    Remember to backup your data files before updating. Enjoy the new features :)

    New stuff in v2.5:
    * Export to Excel!
    * Improved Import/Export to Spreadsheet flow
    * New Unity Types Supported (GameObject, Texture2D, Material, AudioClip)
    * Clone Schemas and Items using the GDE Editors
    * 2D lists now supported in spreadsheets (although I don't recommend hand editing them)
    * iCode Support
    * Lots of bug fixes (especially around paths and moving the GDE folder within your project)


    If anyone has any issues, let me know. Thanks for being so patient. I'll be updating the online documentation shortly.
     
    Last edited: Aug 5, 2015
  12. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    566
    It isn't safe to assume the path doesn't contain the word "Assets" somewhere else than at the end. For example "U:/My Unity Assets/Unity 5.1/GameDataEditorTest". So you may want to avoid code like this:

    Code (CSharp):
    1. string dataPath = Application.dataPath.Replace("Assets", string.Empty);
    A tip:

    Code (CSharp):
    1. System.IO.Directory.GetCurrentDirectory()
    (source)

    points to the Project Root in the Unity Editor.

    Also, constructing paths is probably safer with Path.Combine().
     
    Last edited: Aug 6, 2015
    Celestipoo likes this.
  13. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    Ah, nice. I'll fix that. Thanks for the tip!
     
  14. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    Hey everybody,

    There's a bug in v2.5 when loading Unity types from subdirectories inside Resources (on Windows). If you encounter this issue, apply this patch.

    Thanks!
     
  15. kgil0115

    kgil0115

    Joined:
    Aug 24, 2015
    Posts:
    2
    hi, I want to load many 3d models(fbx format) at my web server using GDE.
    than should i use assetbundle?
    and does GDE support unity 5 version?
     
  16. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    GDE does not support loading GameObjects from asset bundles (yet). That is what I will be looking at for the next update.

    GDE does work in Unity 5+.
     
  17. kgil0115

    kgil0115

    Joined:
    Aug 24, 2015
    Posts:
    2
    than any other method for loading 3d models(fbx format) using GDE?
     
  18. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    If you create prefabs for your fbx models and bundle them in Resources, you can load them with GDE. These are the supported types: http://gamedataeditor.com/en/docs/supported-types.html
     
  19. SoftwareGeezers

    SoftwareGeezers

    Joined:
    Jun 22, 2013
    Posts:
    902
    String for object name and instantiate that object using Load From Resources.
     
    Celestipoo likes this.
  20. Quen

    Quen

    Joined:
    Apr 6, 2010
    Posts:
    21
    Hey, I really like GDE a lot! Great work! :)

    My application creates a lot of "result data" which I need to export during runtime. Would it be possible to export a data set during runtime as xml or excel file?
     
    Celestipoo likes this.
  21. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    Thanks, I'm glad you like it! If you haven't left a rating and review, doing so would be very much appreciated :)

    No, there isn't a way to export data during runtime right now. Stay tuned though. There are some changes on the horizon that will move runtime data out of PlayerPrefs. When that happens, it will be much easier to export runtime data.
     
  22. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    GDE site update: For those of you that are using GDE Playmaker + ArrayMaker, I've created some actions that allow you to load GDE lists into ArrayMaker proxies. These actions should be much simpler to use than the outdated GDE helper script.

    You can download the new actions here: GDE Lists and ArrayMaker.
     
  23. Strail

    Strail

    Joined:
    Sep 20, 2014
    Posts:
    2
    Hi, This is a great product.

    Quick question can GDE currently import XML files?
     
    Celestipoo likes this.
  24. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    Glad you like it!

    No, GDE imports Google sheets and Excel files. You can check the spreadsheet format here: http://gamedataeditor.com/en/docs/spreadsheet-format.html

    If you're adventurous you might be able to write a transform from your xml to GDE's Json format. It wouldn't be for the faint of heart ;)
     
  25. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    PSA: My email was down for about 24 hours this weekend (~Sept 7th, 2015). If you sent me an email and it bounced back, please resend it or contact me here. Sorry for the inconvenience!
     
  26. stevebu56

    stevebu56

    Joined:
    Apr 16, 2014
    Posts:
    26
    Thanks everyone for the awesome ratings and reviews. Those help a ton and provide a great pick me up.

    Follow Celeste & I on Twitter for updates on building GDEOnline.
    https://twitter.com/stevebu56
    https://twitter.com/celestipoo

    We are shooting for an online editor & cloud hosting of your datasets so that users of your games can pull them from the cloud. It would allow for settings to be tweaked and pushed out to users easier and things like DLC (downloadable content) could be made easier too.

    Dunno any schedule yet, but stay tuned and any suggestions are welcome. And we updated our company website as well http://stayathomedevs.com
     
    jprocha101, Starya and Celestipoo like this.
  27. sqallpl

    sqallpl

    Joined:
    Oct 22, 2013
    Posts:
    384
    Is it possible to use GameObject type in spreadsheet import for prefabs that are not located inside the GameDataEditor/Resources?

    When I'm using path like Assets/Prefabs/xyz or Prefabs/xyz my GameObject field is empty after importing the spreadsheet. It only works when my prefab is placed in the GameDataEditor/Resources directory.
     
  28. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    They don't need to be in the GameDataEditor folder, they need to be in Resources. So Assets/Prefabs/Resources/xyz or Assets/Resources/Prefabs/xyz should work.
     
  29. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    Hey everybody, we revamped our blog. I'm building a collection of articles with tips and tricks for using GDE.

    Here's a post on Shop sales and inventories: Shops
    This is a refreshed post about Characters, Weapons, and Armor: RPG Character

    Both posts link to the gde data file used in the example, and also to the spreadsheet with the same data. Feel free to download and import them into your own projects :)

    I've got two more posts coming on Upgrade Paths (for upgrading items) and Random Access, so stay tuned for those. If there's a topic you'd like me to cover, let me know!
     
    Starya and sqallpl like this.
  30. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    @Celestipoo ,

    Thanks - both tutorials are useful and help with thinking re schema of databases.

    In terms of topics, something that is always thwarting me is how to cover a list then with each element/item carrying an additional value (as you've seen in earlier posts in this thread) so any tutorial on that sort of thing would be great. Let's say that you wanted to describe a list of abilities gained by being say an Elf, each with a value, something like Swordcraft and +1.0, Woodcraft and +3.0 and so forth. How best to develop schema to cover that? Perhaps some variant of that 'stock' example?

    Actually, am I REALLY on about adding in Dictionaries as a supported type? ie. Dictionary<TKey, TValue> - where TKey could in fact be another schema? So, an alternative to Lists? Just a thought....

    Also, aside from the useful tutorials and bug hunting, any thoughts on where you might take this asset in terms of any development?
     
    Last edited: Sep 26, 2015
  31. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    Your abilities need to be different based on what you are, like Elf vs Warrior vs Priest, etc. I'll think about a good setup for that kind of design and write up a post.

    What are you trying to do that you'd want a Dictionary type? It's easier for me to think about it when I know what you're trying to achieve.

    The future of GDE, the next update will include:
    * Better item load API: No more TryGetCustom, loading items will look like:
    Code (csharp):
    1. GDEItemData data = new GDEItemData(key);
    * Runtime Cloning: The ability to clone items easily during runtime, like this:
    Code (csharp):
    1. //ShallowClone() only clones base types but references the same Custom items
    2. GDEItemData clone = data.ShallowClone();
    3. //or
    4. //DeepClone() clones all nested Custom items
    5. GDEItemData clone = data.DeepClone();
    Before I get to that update though, @stevebu56 is working on a new service, GDE Online. It will give GDE users the option to host their data with us. We're building a web portal to manage GDE data sets, and also extending the GDE API to work with our service.

    So, big things coming! :)
     
  32. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    @Celestipoo ,

    That all sounds really good.

    With the Dictionary as a type I was really just trying to think of another way to get around my problem.

    Do you could have a 'special' custom key of another Schema item, then a 'value' of say '+1' or whatever and so on.

    I really think it would be great if within a schema item you could define a list but with each element of the list having a name and a value. So, say you had a schema Races and for the Item in that Schema of Elf you would have a number of different variables but also a sort-of-list with a list of Abilities (taken from Items in a different schema) but against each of element in the list an associated value...

    Anyways, keen to see if you can think of an easy way of doing that either by adding a type/functionality to GDE or otherwise...

    Re the other additions you are working on above, the more easy use of GDE functionality through Playmaker actions, the better... ;)

    In runtime, cloning and spawning and even creating schema, items etc (and via Playmaker) would be superb. Also, greatly simplified, random spawning or access to items in Schema, chance etc?
     
  33. Grim_Darknight

    Grim_Darknight

    Joined:
    Nov 22, 2012
    Posts:
    6
    First off nice product.
    I am having an issue with these Custom Field Types. I have one set up with an array of strings but when I use it all i get is: Default value: null. Can I use my own custom datatypes. Things like classes, enums and arrays?
     
  34. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    Hey @Grim_Darknight, thanks :)

    Sorry for the late reply. I don't always get email notifs from Unity forums. A schema is a custom type. So, custom type fields are a way to reference other schemas inside a schema. For example: If you define a Character and a Weapon schema, then a Character can have a Weapon field.

    I think you're looking at your Schema Editor when you are wanting to be using the Item Editor. Once you define all your schemas, you go over to the Item Editor to start creating your data items. Check out this page: http://gamedataeditor.com/en/docs/custom-data-types.html and this post: http://stayathomedevs.com/blog/gde-example-character.

    You can't use your own defined types but you can build types using all of the supported types.
     
  35. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    @Celestipoo ,

    What are you thinking re my problemo above?
     
  36. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    After thinking about it more, you can use your own classes and arrays if you embed them in a Prefab. Then you can link those prefabs in a GameObject field.
     
  37. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    I'm still not really clear on what you're trying to achieve. Why not have schemas for all your races:
    Elf,
    Warrior,
    Gnome,
    etc.

    Then each one can have its own fields, whatever that race needs. You can make your Abilities schema specific to a race and define:
    ElfAbility
    WarriorAbility
    GnomeAbility

    That way each race can customize what an ability is for that race. For example:
    ElfAbility can have Agility, WarriorAbility can have Strength, Gnome can have... whatever Gnomes have ;)

    Am I still off?
     
  38. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    Hmmm. I think the easiest way now would be a special list of abilities for each race followed by a matching list of float numbers for each race.

    On a separate point, one enhancement I thought of would be checkbook to limit your view to just items in the schema you are focussed/working on and no other schema - less cluttered...
     
  39. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    But why the matching list of float numbers? Why not have the float as part of the race?

    You can search for items or filter for a particular schema. You can use both the search and filter to limit what you see in the editor to a couple items. http://gamedataeditor.com/en/docs/search.html
     
  40. Face_Mcgace

    Face_Mcgace

    Joined:
    Aug 29, 2013
    Posts:
    8
    Hullo,

    Fantastic asset! Used the free version for a while and bought the full version recently (saves me loads of time from having to create my own prototype pattern!).

    However, the main reason I'm posting is that I noticed that the Gameobject field in the item editor gets reset to null when entering play mode in the Editor. I discovered that prefabs must be in the root of the Resources folder (and not under a nested folder inside Resources). Not a big deal, just wanted to give anyone else a heads up.

    Is there planned support for searching through nested folders inside the Resources folder?
     
  41. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    Hi, glad you like it!

    Are you on Windows? There is a bug in v2.5 with GameObjects and subfolders in Resources. Apply this patch, and you should be good to go.
     
  42. Face_Mcgace

    Face_Mcgace

    Joined:
    Aug 29, 2013
    Posts:
    8
    Worked a charm! Thanks for the prompt response!
     
    Celestipoo likes this.
  43. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    GDE/LE Bundle is now live!

    As a thank you to all GDE Users, I've set the upgrade price to the bundle from GDE to $15. That means you get Localization Editor for 50% off :)

    The bundle contains:
    Game Data Editor v2.5
    Localization Editor v1.1
     
  44. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    @Celestipoo ,

    Re my queries etc, could you perhaps do a rpg-esque tutorial that covers off your solution for my queries too?
     
  45. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    Yes. I'll get that post done and share it here soon :)
     
  46. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    Great - really appreciated...
     
    Celestipoo likes this.
  47. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    @Celestipoo ,

    Also, I don't know about others, but I really struggle with instantiating prefabs and making them then (as gameobjects) independent of the original prefab and so on.

    Any code help with that (and spawning and as you've outlined above with cloning and with adding items etc in to the database at runtime and saving out) and playmaker support around all that (how all or any of the above achieved with Playmaker actions/FSMs) greatly appreciated...
     
  48. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    You can take a look at ReadDataScene.cs from the Read Data sample scene. It loads up every type that's supported. Here's the snippet that loads Unity types. The thing to note is you need to pass the loaded Prefab to Instantiate() to create an instance of that prefab.

    Code (csharp):
    1. void LoadUnityTypes()
    2. {
    3.   //GameObject
    4.   //This is the light
    5.   if (data.custom_field.go_field != null)
    6.     Instantiate(data.custom_field.go_field);
    7.  
    8.   //GameObjectList
    9.   //This list contains the cube and sphere
    10.   GameObject cube = Instantiate(data.custom_field.go_list_field[0]) as GameObject;
    11.   GameObject sphere = Instantiate(data.custom_field.go_list_field[1]) as GameObject;
    12.  
    13.   //Texture2D
    14.   Renderer rendererCmp = cube.GetComponent<Renderer>();
    15.   if (rendererCmp)
    16.     rendererCmp.material.mainTexture = data.custom_field.tex_field;
    17.  
    18.   //Material
    19.   rendererCmp = sphere.GetComponent<Renderer>();
    20.   if (rendererCmp)
    21.     rendererCmp.material = data.custom_field.mat_field;
    22.  
    23.   //AudioClip
    24.   AudioSource audioSource = GetComponent<AudioSource>();
    25.   if (audioSource == null)
    26.     audioSource = gameObject.AddComponent<AudioSource>();
    27.  
    28.   audioSource.loop = true;
    29.   audioSource.clip = data.custom_field.aud_field;
    30.   audioSource.PlayDelayed(1);
    31.  
    32.   //Material, Texture2D, and AudioClip lists work exactly like the GameObject list above
    33. }
    Same thing in playmaker. First load up the prefab into a GameObject variable. Then use Playmaker's Create Game Object action to instantiate it. You can take a look at the Playmaker Read Test sample scene. Here's the shot of the prefab getting loaded:

    go_playmaker_1.png

    Then take those prefab variables and create instances of them, like this:

    go_playmaker_2.png

    Runtime cloning has not been released yet. This will go out in the next update. I will update the sample scenes and documentation when that goes live.
     
  49. Celestipoo

    Celestipoo

    Joined:
    Jul 1, 2013
    Posts:
    379
    If you'd like to see GDE in action, be sure to check out Shane Masters' "Armored Theater"!

    App Store
    Google Play
     
    Last edited: Oct 9, 2015
  50. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    Excellent - thanks v much (yet again!).

    [edit] - was thinking about some potential enhancements below...

    I was thinking with the Schema editor it might be useful to filter the schema you're looking at much like you would filter the schema when adding items?

    Also, in schema editor, when designing a new schema and adding a custom field (based on a schema) why can't you add an item from the very schema you are designing / have designed?

    Let's say I'm working on spells or player game cards with Elements. Let's say I am designing and populating a schema called 'Elements'. Fire is an element. I've also defined Ice. Ice is an element opposing Fire. Could I have a custom field in the schema listing the opposing element from the very same schema (ie.Elements).? So when I added the item Fire I could add a custom field to that taken from the same Schema 'Element' - Ice? I can't pull from the same schema at present. Just a thought.

    [edit]

    Also, when displaying Schema when creating them or when displaying Items when adding them, why not put the new (most recently created/added) ones towards the top of the list and directly under the expand/collapse all - that way the latest ones are easier to view and you don't have to scroll down to see them if you have a lot - or at least the option to display that way?

    [edit]

    It would also be very useful if you could both list items in a schema and/or list schemas in either your own custom order (set in that order) or in alphabetical or reverse alphabetical order? - as you go along creating things, the order of items and of schema in the editor seems to jump around?
     
    Last edited: Oct 9, 2015