Page MenuHomeWildfire Games

Check references from inside the engine [proof of concept]
Changes PlannedPublic

Authored by wraitii on Jun 7 2020, 5:47 PM.

Details

Reviewers
None
Trac Tickets
#5802
Summary

checkrefs.pl, while useful, is annoying:

  • it's written in perl, which is arcane at the best of times.
  • it's also annoying to run (I don't have libxml::simple or whatever its dependencies are and installing them is a pain).
  • Running externally, one has to recreate a bunch of game functionality.

If we were running templates validation from the inside the game, we could leverage the VFS and make our lives a little easier perhaps. Further, using the VFS might actually be faster than running on the OS, and javascript with a JIT is rather optimised too.
We could also leverage our GUI to give some neater information, though I'm really doing nothing of that kind right now.

This adds a mod to run some simple validations. I used it to confirm D1775.

Refs D1381.

Test Plan

Run the game from the CL or whatever.

Event Timeline

wraitii created this revision.Jun 7 2020, 5:47 PM
Vulcan added a comment.Jun 7 2020, 5:48 PM

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/2363/display/redirect

Stan added a subscriber: Stan.Jun 7 2020, 6:04 PM

I'm not sure about it. I agree that perl is a _pain_ although it does get better with experience. But there are a lot of feature in there and I planned to add DAE checking for prop points at some point.

Maybe rewriting it in python makes more sense but I never got around do it :/

A data validator within the game actually sounds nice, that way modders can use it as well. But I agree it ought to have the same functionality.

wraitii added a subscriber: Itms.Aug 17 2020, 9:27 AM

@Itms I guess with your input I'll know if I should work on this further or not.

I do think it's kinda useful to have in the game, because it makes it much easier to abstract the VFS away.

Itms added a comment.Aug 17 2020, 9:44 AM

Just like the others, it would be nice to have that functionality in-engine (mod validation could even happen as part of the archivebuilder workflow!)

But this should cover at least as much as the perl script. The script detects mistakes fairly regularly, I don't think we can afford losing any coverage on the referencing in art files.

Nescio removed a subscriber: Nescio.Aug 17 2020, 9:50 AM
wraitii planned changes to this revision.Aug 17 2020, 9:52 AM

Right. I don't think it'd be that easy to port the whole functionality over for now, so I'm putting this on the back burner.

Thanks for your comments.

I'll make a trac ticket for this too so that other people can see it easily : #5802

wraitii updated the Trac tickets for this revision.Aug 17 2020, 9:52 AM
wraitii edited the summary of this revision. (Show Details)