Skip to main content

Storing stuff in Unity3d

The last days, or weeks, maybe months, I have been fighting with the problem of storing several game element definitions, like NPCs, their inventorys, items, skills and abilities.

Lets say you want to have an NPC named Frolo the Habbat at point X. In Unity3d editor you can place the mesh, adjust it, etc, but, how do you specify that Frolo has a Big Stick of quality 3, his attributes are 4,5,4,6 (whatever that means), and has a Magic skill level 5? My first approach was to use XML. When you have a hammer, all problems will look like nails to you, and in this case, XML is the hammer I have been using in all my previous iterations of this project. It is flexible enough to let you put any number of different stuff inside. The drawback is that you cant edit it inside Unity3d editor.

The Unity3d solution is to use ScriptableObject and asset files. An asset file can store the definition of an ScriptableObject, and its properties can be edited in the editor inspector. The asset files are good to represent unique things: an item, an NPC. But I havent found a way to use it to represent a generic skill that I can attach to the NPC skill list and then set its level for that specific NPC.

Probably Im going to stick to XML for a while.

Comments

Popular posts from this blog

Isometric camera with Godot

Took some effort and some of my sleep hours, but at last, I made it. Here is my first videotutorial: implementing an isometric camera in 3D, with Godot. Useful if you want to emulate the look of old classics like Fallout 2, but with some extra features. Considering that my voice is not so nice, and my english pronounciation is even worse, I also added texts to help you underestand what Im saying. You will also notice some background noise, but cant do anything to solve that. Any suggestion is welcome. Expect another tutorial soon.... or sor tof. This time, will be about my AI system.

Lessons about game dev

 Meet Bobby (not Kotick)! He is going to taught you a lesson about how NOT to make games. Bobby is a very sharp bussinessman, that sees everybody is playing games. More important, everybody is spending money in games. What would any smart bussinessman do? Well, get into the games bussiness, and he knows he has an advantage. See, Bobby is not going to spend hundredths of thousands dollars to make a game, when he can make it much cheaper.  And here comes the first mistake. Bobby goes to his birth city, in a shitty third class communist country, where it is easier to find a honest politician than a game developer. There, he assembles the Avengers... I mean, a team of talented guys that... never made a game in their lives. He invests in hardware, with good workstations equipped with fairly modern GPUs, pairde with the worst, cheapest 18 inches display you can get. Also, a server with a 24 VRAM GPU, because any game studio needs a server for... nobody knows exactly for what, but t...

Vulkan and open source engines

It is weird, but even when Vulkan has embraced the open source philosophy (open drivers, tools, etc), Im not seeing too much enthusiasm to adopt it in open source game engines. I have been following mostly Godot and Urho3D, yet Ogre3D and Irrlicht doesnt seems to be rushing to implement the new renderers. It is worth to mention that Godot promissed they would delay the long needed refactoring of its 3D renderer until Vulkan release, but now they say they wont be using it, favoring GL ES 3 instead. The other engines seems to be dealing with lack of man power (Urho3D leader left the work on hands of community, as he is not working on Vulkan renderer right now) and base code designed for older APIs, specifically, DirectX 9. Lot of work is required to adapt this code base, not only for Vulkan, but for DirectX 12 too. Well, nobody said that developing a game engine was easy. The advantages of Vulkan have been widely detailed. From engine point of view, it would centralize all renderers...