TynanSylvester / TyD

Tynan's Tidy Data Format
MIT License
49 stars 3 forks source link

What is the main benefit beyond RDF? #2

Closed linonetwo closed 5 years ago

linonetwo commented 5 years ago

RDF is a W3C recommended "resource describing framework" and is designed for describing Object, character.

Take a look at turtle https://www.w3.org/2007/02/turtle/primer/#L1323

It's an exchange format, and there are many libraries supports it. If two game can use such a standard format, then hopefully they can share some definition mod.

linonetwo commented 5 years ago

RDF is an abstract standard, and definition files written in turtle format can be converted seamlessly to JSON-LD, N3, and XML. And maybe TyD.

TynanSylvester commented 5 years ago

Looks like RDF is designed to describe web resources. TyD is designed to describe game content, config, and language data.

I think you could use many formats for this. I've used XML, others have used JSON, both get the job done. But when you're the designer/writer who spends hundreds or thousands of hours editing these files, making them absolutely as readable and concise and intuitively-formatted as possible really does matter.

The idea with TyD is to do better than just re-using a language designed for everything (XML) or something else (JSON).

linonetwo commented 5 years ago

I'm also a big fan of definition driven game, I'd like to create dev-tool and knowledge tools for procedural content generation. Hopefully will create a knowledge-driven PCG game cosmos one day...

So I'm always excited about everything related to it, for example, your TyD, I think you are the pioneer of this field. But for the past two years, I was playing RDF and SoLiD(a project about managing UGC definitions).

I thought RDF will be the choice of my game, to support massive UGC definitions, and reuse online ontologies

(for example, http://schema.org/ and DBpedia contain knowledge graph about relations between things, reuse them so your game knows "sister's sister is a sister" and "father's father is a grandfather" for free, don't need to write them by hand!)

(And about the schema, an instance of Person can have worksFor property whose value is an instance of Organization ontology. A definition can check against schema on schema.org, or check against other modder shared schema graph, to improve code intellisense and cross-mod compatibility (I think))

I think that is the significance of web resources, to reuse entities and relations. I'm not very clear about this, so this summer I will create a prototype driven by RDF to prove this. If I succeed I will show you then.

linonetwo commented 5 years ago

But I also agree that TyD might be easy to read (it provides large padding, removes useless decorators and surroundings(< and > in XML, and "" in JSON)) and endings (; or ,).

RDF syntax dialects (turtle) looks like yaml, I think it is clean enough if you describe only one entity in one file, but you said it is complex and very general, can you further explain it?

I was always curious about what editor people are using, to edit definitions for Rimworld mod (I guess you use code editor since you are improving source file format). Is there something like "In-Game Definition Editor" or "Character Editor" (but runs standalone) for Mod developers, so they can just fill in some form and get a def done?

If developers can use GUI to create and modify definition, does a clean syntax still really help?

And my final question is, can TyD improve mod loading speed and cross-mod compatibility issues? If so, what is the key to the speed and cross-mod compatibility?

Thank you!

TynanSylvester commented 5 years ago

I wouldn't use a GUI to make this data for the same reason I wouldn't use some special GUI to write C# code. Text editing is just fluent in a way GUIs are not.

I don't think TyD would have much effect on loading speed, though it is designed to be simple and thus fast.

linonetwo commented 5 years ago

I understood. Looking forward to further update on this project.