• NULLPTR (unregistered)

    {NULL:NULLPTR}

  • P (unregistered)

    And yet you can bet that when Unity does the same thing, they will do it even worse. Because Unity.

  • (author) in reply to P

    Actually, Unity mostly just takes the .NET JSON serialization and makes it worse. And only mildly worse, at that.

  • (nodebb)

    I object to this json.

  • my name is missing (unregistered)

    You need JSON Bourne to eliminate the problems.

  • Andrew (unregistered)

    I suddenly have an urge to take random games and insert "#" strings into them.

  • Andrew (unregistered) in reply to Andrew

    This commenting system doesn't seem to like forward slashes either.

  • Fabian (unregistered)

    JSON borne Objective

  • Shut the fuck up (unregistered) in reply to P

    It's .net; you use the built in stuff or Newtonsoft just like everyone else

  • sizer99 (google)

    As someone who's worked on it, Unreal 3 was a freaking nightmare to work with, and Unreal 4 finally starts making things clean again. What happened is the usual - Unreal (1) was hacked together by Tim Sweeny as his first 3D project. He's a genius, and he did a fantastic job for his first 3D engine, but you're not going to get API stuff right on your first try. The only people using it were other pro software devs, like Microprose and Legend. It was not for general use.

    Unreal 2 crammed in a whole bunch more APIs, like for physics, making the API even more complicated, starting to get unwieldy. And Unreal 3 is almost like working with SAP, a creaking swaying tower of inconsistent and vomitously bad APIs. You're spending almost as much time fighting the engine as you are writing your game.

    Unreal 4 finally reverses the trend - it cleans up a lot of @#$% and you can tell that it was actually designed using what they'd learned from 1-3. But there's still a lot of cruft left that probably nobody wanted to touch yet.

  • Staticsan (unregistered)

    Considering the weird bugs that the speedrun community keep finding in games like GTA V, I'm not surprised at the quality of game development.

  • I dunno LOL ¯\(°_o)/¯ (unregistered) in reply to my name is missing

    I hear that he won't come out of his shell.

  • siciac (unregistered)

    I want to see the source to Goat Simulator.

  • 510917q (unregistered) in reply to siciac

    Why?

  • str(int(float(0))) (unregistered) in reply to 510917q

    Goat Simulator is a pioneer in the genre of games that leverage hastily implemented physics interactions as a feature - by design the code must have a lot of fun bugs in it which produces the desired flinging and tumbling of ragdolls and rigidbodies.

  • 20kdc (unregistered)

    While this is definitely awful (due to the potential confusion between strings and numbers, etc.), the part where numbers are converted to strings makes sense when one considers the more WTFy JSON out there.

    For example, Elite: Dangerous journal files (a logfile for use by external software) contain 64-bit integers. Standard JSON parsers treat these as doubles. In practice this guarantees you have to use a custom JSON parser... or a JSON parser that keeps all numbers as strings internally.

    I doubt that that is the world's first or last instance of out-of-spec JSON, and it's gotta be read somehow.

    Ideally, of course, the JSON library would actually consider various different types to be, well, different types, and would have an appropriate API, and wouldn't be worryingly close to allowing any string prefixed with "#" to switch types...

  • rn42 (unregistered) in reply to Staticsan

    GTA V bugs mentioned in comments on an article about bad JSON handling in games..

    Oh the prescient irony.

Leave a comment on “An Unreal Json Parser”

Log In or post as a guest

Replying to comment #510868:

« Return to Article