Data Driven (Scripts aren't Data) #rpg

preview_player
Показать описание
Join this channel to get access to perks:

My hottest of takes in 3 parts:
- Being data driven is good
- Even for design
- Scripts aren't data
RPGs consist of HUNDREDS of bits of design. If that all lives in script, all you've done is moved your hard coding from code to script. And chances are your code has a better debugger.

Did we make a merch store?

Chapters:
0:00 Hottest Take
0:57 Scripting isn't Data
1:57 Have a Scripting Language
2:45 Templates and Repetition
4:01 Looking at Everything
5:23 Do You Have a Scripting Standard?
6:27 If You Don't Have a Scripting Language...
7:38 RPGs Have a LOT
9:38 Scripts Take Over...
10:54 Data Encourages Readability

Social Media:
Рекомендации по теме
Комментарии
Автор

So have at it. If you want to argue that scripting IS data...

MarkDarrah
Автор

I feel like "hardcoding everything -> generalizing everything -> figuring out what to hardcode and what to generalize" is an evolution that most devs go through at some point, including me. It's nothing else, it's a decent learning experience, as long as you figure it out on your own time and not on production for a big team.

DragoniteSpam
Автор

So, I've been writing a computer aided TTRPG that runs on browser/mobile/desktop, and this is very much a thing I had to get sorted out pretty much from the start, simply because it's basically impossible to hardcode/script everything even if I wanted to. The players/gm need to be able to adjust and modify basically anything at anytime, and so anything that isn't a core rule or mathematical process is entirely driven by tables and objects. It was hell to get working, but you absolutely cannot beat the flexibility of a data-driven system; adding new content is trivial and balancing existing content takes seconds without ever needing to compile anything. It's absolutely worth the effort. Thank the gods for document store databases.

EmrysCorbin
Автор

Makes sense to me.

Hey, I was watching a YT video recently concerning two of the lead devs from The Outer Words commentating on a 12 minute speed run someone did on that game. They talked a lot about "gates" and how they didn't predict how some players might get around them and other things like how players found shortcuts by jumping/moving through certain geographical areas and stuff all like that. All stuff that was not hacks or cheating but stuff they found loopholes for in the game. I am curious how you handled that with the Dragon Age games as well as your advice on how to approach that generally. Perhaps a future topic for a video?

fallwitch
Автор

Clear Scriptable Object(in unity) / data driven architecture FTW for sure. Always make the "right" things modular per project basis, not everything needs to be, but data and structure needs it, otherwise you're in for a rocky ride of a production cycle.

Jackrabbit
Автор

so after the last project our studio decided to remove all scripting features. now we just have data and it was decided that everything goes through programmers now and we just take the hit on velocity and deal with it. the designers don't like it but we just have 2 designers vs. 10 programmers so it is what it is.

goeddy
Автор

I remember editing ini files to change damage, hp etc. back in the day. Would not have been possible as easily if it was hardcoded :)

samuelschwager
Автор

You have an epic way of speaking/voice...all your words simmer in my brain, 😎

MalarikFilms
Автор

For me the biggest gripe so far in my career has been data driven systems being so convoluted, poorly documented and non-centralized that some people are dedicated to the data setups

So much so, that designers rarely left confluence or powerpoint, leaving the data setup to those people who were dedicated to data
And that, for me, is a total failure

But yes, data driven is a good way to go as it should, through proper tools and editors, limit errors. The tools can catch or not allow invalid data altogether. That is where data driven shines in my opinion

Xxnightwalk
Автор

I can feel that you are a contractor with Larian Studio.

HeroDono
Автор

As someone who spent two and a half years on the development team of The New Order: Last Days of Europe, I can say that Paradox Interactive’s grand strategy games have exactly the sort of scripting overdependence you describe. Modding them would require you to learn a frustrating scripting language that even someone with programming experience would struggle to learn. I’ve since moved to much more data-driven design in my own projects.

gutza
Автор

The _second_ you need to use something in more than one place, you'll be happy to know it's data and not hardcoded script.

the_original_MPG
Автор

That is very interesting. I just finished your video on BG1 so that's fresh in my mind, but I assume all of what you you're currently saying echo's what you said about 2DA files. That the data files should be mostly used to import data in the code and not being open and modified in real time ?

Also, I wondered something. If somehow during the development of the game, the designers realized that something is wrong/missing/should be changed in the format of certain data what would be the best course of action : re-formating the data themselves, or having a script post processing the data when imported in order to add the new elements ?

Rajeenik
Автор

I feel like I just walked into a pitch meeting that's secretly "2DA is actually still awesome" :P

patrickschulz
Автор

I hope this video wasn't sparked by something you saw in BioWare (well, even if it was at least you were there to say "hey, stop it now" [damn seagulls]). I assume by data driven you mean like a json or yaml file with say weapon and/or item characteristics etc, but it could be a csv file or anything really. But would you go so far as to 'hardcode' the damage types like bludgeoning in the actual game, or would you make that a script? Or would that be a 'depends'?

OniFeez
Автор

Gotta say this blew my mind. Yes, ive come across an rpg tutorial here on YouTube that hard codes everything. They scripted 3 different exact amounts of damage onto an AI. I stopped watching their stuff. But i was shocked to hear you say there are actual studios hard coding everything? Why, that just seems painful, unnecessary and a way to make a lot more work for myself. Greg Wondra teaches UE. And his thing is we should make dynamic scripts. So we can use data to update systems. Instead of well yeah doing it all by hand. But ya learn something new everyday. So, as always thanks for taking the time.

Take care and have a good one

burningflag
Автор

Was it fun to create you own scripting language? Some programmers say it's a really cool thing to do in order to better understand how computers work overall. Do you you think it's easier to create a compiled or scripting language? :)

aidanhouk
Автор

Shadowrun Returns has Fireball 1 that does 15 damage, Fireball 2 that does 20 damage, and so on, marketing that their game has hundreds of spells when it's basically got three (weapon, wall, and aura), they're not fooling anyone. The magic-users aren't much fun to play because there's just not that much to them, a pud with a rifle, medkit, and some grenades has more combat options. You can do too much with data, or rather too little with code.

I like to take a diametrically opposite approach; if a spell doesn't need any custom code, then it needs to be re-thought and made more interesting and more distinct. I'm never going to have hundreds of spells, but you can tell them apart from each other and from the weapons.

Pyrian
Автор

so, if this is a hot take here's mine: Does people think that scripts are data?
Hard coding is an expression, a concept. Hard coding is hard coding be in the actual code or in the script.

rd-umsp
Автор

Unreal makes this an absolute nightmare. So much of the blueprint ecosystem begs you to have all your data embedded in nested, unparseable proprietary binary assets. DataTables are binary and only use serialized formats as a backup, not to mention that their editor interface is horrible and completely precludes effective batch actions and aggregate view setups. Blueprints don't support nested maps (dictionaries) without workarounds. Unreal c++ reflection is rigid and limited and requires explicit, static typing, which severely limits the extensibility of json i/o and data mapping. C++ templates suck as generics broadly, and are even worse in Unreal because they can't be exposed to the blueprint layer at all. Then the issue of data driven design seemingly being a foreign concept to many unreal developers overall. The editor-tool-heavy ecosystem of unreal is addictive and makes raw data management with external tools seemingly scary for most people at my studio. So then if you want to make a real data driven system in unreal, have fun scripting editor widgets for 3 months. It makes the prospect of creating a content heavy game in unreal at a large studio seem... unrealistic?

Kojification
visit shbcf.ru