Eulorangement

Sunday, 10 July, Year 8 d.Tr. | Author: Mircea Popescu

The title is obviously a portmanteau. But what is it a portmanteau of ? Well, Eulora on one hand. It's a safe enough bet given the context, not to mention the category is after all S.MG. Fine. And on the other hand ? Management ? Derangement ? Something like that, right ? Enlargement, ye haters!

But moving on, Eulora will receive a major update this month (July). Chief elements in this update's arsenal, aside from surprise and a fanatical devotion to the slope, are :

  • The code is, has been, and hopefully won't forevermore be migrated from 32 to 64 bits.i
  • We're adding more graphics, chiefly as a process pipeline test, and to support future updates (discussed below). It is unclear at the time of this writing if we'll manage to get animations in along stationary objects, but keep a toe crossed for us.
  • There's going to be a special window recording a hall of fame sort of thing for pops, over various time intervals.
  • Various cosmetic and UX updates to the client : better keys, better stack counts, etc.
  • A few things that I won't mention to preserve the surprise, but should be pretty delicious once finally discovered.

Unfortunately, all the above isn't simply a matter of adding more content to the /art folder. The update is breaking old clients, to continue to use the game after it was deployed you will have to recompile (or obtain a new binary from a maintainer). I fully understand this is inconvenient - nevertheless it is strictly necessary. What's worse, it's not even the last time we will be doing this - for instance the migration to RSA based communication for client-server conversations is slated to go in possibly next year. We will endeavour to not produce more than one of these a year, and hopefully do the last one before the end of 2020 - but you never know with these things.

As far as the future is concerned, other than small fixes and other server-side improvements (which are generally installed during the regular Wednesday night downtime), we plan on another major release later this year, which principally should include the land update.

What's the land update, you ask ?

Oh, the land update is a thing of wonder. So my plan is to have the presently seen map, 1k x 1k coordinates, as the fundamental unit. The player can cross into another, similarly sized unit, in either direction, through a procedure currently examinable in game, at the central building - when you go inside, you're basically "crossing a boundry" of this nature. It'd work exactly the same.

Taking the current map as the center of this matrix, at 0, 0, the server can hold 4`611`686`018`427`387`903 units in either direction. As you can see, traversing the map currently takes in excess of one minute, and consequently traversing the entire matrix would require 8`774`136`260`326 years of non-stop running - for which reason we don't intend to actually have margins to the Eulora world.ii Obviously, exploring each and every individual map will also be impossible, in any sense and to any degree. Simply attempting to retain a one byte per location sort of information graph will cost

    103iii * 103 * .9 * 1019iv * .9 * 1019 = .8 * 1044 bytes,

which is somewhere midway between the 1023 number of stars and the 1080 number of atoms in the known universe. In other words, a possible if not exactly trivial task.

Yes, this means land ownership, in the sense of owning a plot sized as the entirety of present day Eulora will be open to players ; yes this means playing so as to never run into another player ever is certainly possiblev, yes this means all sorts of mind boggling things.

Lest I give too much away I'll say no more, for now. But rest assured that, even as we speak, the wheels are in motion, for they are turning.

———
  1. This is not in the slightest an easy task even under the best of conditions.

    Meanwhile Eulora's conditions are very far from best, and in the same direction also far from "unfortunate", "horrible" and "what the fuck ?!". If it's ever happened to you playing the game that you managed to fall off the edge of the map, and then simply fell forever in a blue hole as the previous landscape quickly disolved into a point far above your head, you have a correct representation of our unfortunate position : both mountain of "not easy task" and valley of "nononononoNO PLEASE NO GOD NOOOOOoo!" long disappeared overhead, leaving behind ~360k lines of "code" server-side and a further 270k lines of idem "code" client-side. Which, through the blessings of beautiful minds no doubt trained on Windows scripting languages / Excel include such wonders as hardcoded modulo 100 calculation (not even bite shifting! wouldn't you at least have the decency to implement this horror as byte shifting ?) in regards to inventory counts. Literally, to make the character hold 101 rather than 99 items you have to edit HUNDREDS of lines that count on the magical number 100 being as fundamental to our universe as e, pi or i. And then hope and pray you found them all, and well... do roughly speaking fifty billion unit tests, that'll take longer than whatever's left of this decade.

    Getting back to the management / derangement side of the discussion, you might find yourself inclined to wonder why then did a year long hunt for the right software package to start from yield this, rather than say $random-fashionable-item. For the same money you could wonder why The Bitcoin Foundation picked the historical Bitcoin, warts and all, rather than $random-blockchain-technology crapolade. The dispositive concern wasn't that the codebases selected are good ; rather it was that they are merely very, very, veryveryVERY dirty ; whereas the supposed cleanner substitutes aren't actually any cleanner, and are fundamentally built in such a manner to prevent effective ownership and therefore any sort of useful cleaning. We're using this bundle, here as everywhere, because of the certainty that after a finite quantity of work has been sunk in, we will own it, absolutely. And by absolutely I do mean just very much exactly that, an absolute. No convention can substitute for this, much like conventional property fails to much interest, licensing agreements ~ of any type or kind ~ fail to entice.

    This said, the finite quantity is indeed very large, and besides it's always worse when you actually have to do it than it seemed when you were only committing to it. But such is life. []

  2. This is, obviously, a very major first in computing, and it's an interesting testament to the cultural, generally intellectual as well as practically technical leadership of The Most Serene Republic, that it is our lot to, for the first time in the history of computing, or of games, do this. Just like everything else. []
  3. 1k X and 1k Y coordinates on each map []
  4. 9`223`372`036`854`775`806 by 9`223`372`036`854`775`806 maps in the matrix. []
  5. This, incidentally, is the correct solution to "griefing" complaints : make the space so large, people are fucking happy to see another. It's how America was built, back before it needed to be great again.

    That the problem never finds its correct solution in the hands of, to quote "AAA industry" is yet again testament to the simple fact that either you're with us, the terrorists, working to destroy fiat sovereigns and everything they stand for ; or else you're with them, the stupid, and you will never ever have nice things. []

Category: S.MG
Comments feed : RSS 2.0. Leave your own comment below, or send a trackback.

5 Responses

  1. [...] 0.1.2 Sunday, 31 July, Year 8 d.Tr. | Author: Mircea Popescu As previously announced, the new Eulora version is here. We're expecting to migrate the server Wednesday the 3rd of [...]

  2. [...] will include two major items : a first implementation of the "practically infinite landscape" as discussed previously ; and a migration to RSA-based authentication for both client and server. There will probably be [...]

  3. [...] months now, and for months if not years to come, we have been struggling to cut out a piece out of the [...]

  4. [...] 0.1.2 Sunday, 31 July, Year 8 d.Tr. | Author: Mircea Popescu As previously announced, the new Eulora version is here. We're expecting to migrate the server Wednesday the 3rd of August, [...]

  5. [...] with the codebase's warts and foibles gained throughout the adventure, but especially in the transition to 64 bit ints, with the ultimate goal of having complete and correct test coveragev for the entire codebase. This [...]

Add your cents! »
    If this is your first comment, it will wait to be approved. This usually takes a few hours. Subsequent comments are not delayed.