Jump to content
Sign in to follow this  

That issue with Datastores.

Recommended Posts

I know this is sort of a rant, but I have to kind of document it somewhere, because atm. DayZ Scripting made me encounter a really frustrating situation.

  • How it started: It seems that files have maximum sizes, that means, simply serializing e.g. player based data into a json file is impossible. I have to start using multiple files. Weird, but fine. I implemented my systems with steam ID as filename in a custom directory in $profiles.
  • It also seems, maximum amount of files in a directory, for whatever reason, is set to 500 in scripts. Saving a file will raise an exception. Nice to realize this by accident.
  • Now since there is a MakeDirectory function in System, one would think: okay, let's use sub-directories with hashed directory names. At this point I just whish, the dumb 500 would be at least 1000, so I can properly hash a SteamID. But no. And MakeDirectory does not work, it simply returns 0, and does not create a directory in $profile. I have no idea how to use $saves on a server, but it does not matter, as it also returns 0 there.
  • I cannot of course read inside a script, how many files there are in a directory, but maybe I have overlooked a function in EnSystem.c
  • I could also of course pre-create a trillion directories so i do not need to create them. naaah... c mon.
  • I have no idea how to create exception handling in this script language, as the documentation is non-existant. But of course if I had that, I could at least try to catch the maximum files error and simply hardcore some directory rotation and predefine maybe 100 directories i jump through until i can save; Of course I would feel dirty at that point, having to fall back to programming techniques like this. (If anyone has an idea how to do that, pls tell me; I mean exception catching, not feeling dirty)
  • There is no socket support whatsoever. By now,  But Clipboard copy / paste. Maybe I should implement communication with the outside world over that? Holy crap, do I just really thought about using the clipboard for application communication?
  • No DB Support exposed. I mean, after the problems Arma2-DayZ Servers had, because you could not use .so files like .dll files to write a db plugin, while most servers ran actually on linux, you would expect them to at least have that on windows. But no DayZ Standalone is even worse in this regard.
  • I know there is database stuff used internally, as the player database is a sqlite db file. So maybe it is still under development. Please tell me it is under development. Because SQLite is not really something you would use in production. It is usually used as placeholder for a more dedicated db system, because it is really not performant, like at all; which probably also lead you to use file dumps for the saves.

I am deeply disappointed at this point, how the technical stuff is handled. No mod loading on join, no linux servers, no database or at least socket communication, no documentation, and then silly restrictions on stuff like files in directory.

Who decides to set a 500 file restriction in a game scripting api? What is that even for? Why? The Operation System itself will handle that! Or wait, was it just because you did not implement exception handling from the operation system side?

Or that thing, that you only get chat message events if the user has set a name via command line to his character and is registered as admin; And even then, you use battle-eye as chat protocol. What. the. ...

I have tried to put in money and time into extending vanilla by a bit to make it a better rounded one-server experience, but atm. given how I face the hurdles, I start to realize, this game is going nowhere with this kind of development.


Atm. I will try another hashing attempt.

  • Like 1

Share this post

Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in

Sign In Now
Sign in to follow this