X-Rebirth : I told you so… And other news !

Hey everyone !

So, no, I’m not dead. I won’t go into details, but I had to stop writing Grand Rogue Auto for (mostly) financial reasons and partly for a lack of interest in the subject matter. Also, to be honest the code base was kinda crumbling under the weight of new additions, so a fresh start was needed, we’ll get to that.

Anyway, that’s not exactly why I’m writing this post right now. Of course it’s about X: Rebirth (and also about a new project that you may find relevant to your interests).

As I said countless times before release (to deaf hears), X:Rebirth is the worst game made by Egosoft ever. There’s no arguing it. First of all like all previous games, it’s a buggy unfinished mess. That’s not really an issue in itself, as Egosoft will patch the bugs as they always did. But it’s kinda interesting to note that the longer they take to write a game, the more buggy it is. Bugs are one thing, given the complexity of the modern games, developers can easily be forgiven as long as they fix them (Paradox and Bethesda are notorious for this and no one, except idiots, would blame them). However, broken promises are another thing, much harder to swallow:

They promised (as always) a much better user interface (UI). Given the UI in X2/X3+ it should have been a fairly simple task, especially when starting from scratch. Instead they made an “XBox Interface” ™ to be able to sell their game on XBox. Sadly, the deal was never made, and they ended up with a bastard system worst than anything seen before. Making a good UI is not a trivial task, I agree. Still, since X1:BTF they should have known their system well enough to at least improve. But nope. I’d love to have a coherent explanation, but apart from a canceled contract with Microsoft / Xbox, I have no idea.

One day we asked about planetary landings and exploration (like did Elite 20 years ago and like does Evochron:Mercenary nowadays), and they said 2 things:

  • “Procedural / Terrain generation is costly, we can’t afford it”. That I know is a lie. I do procedural stuff all the time, It’s not costly by any mean, you don’t need to buy a 10k license to do so when easy to use and adaptable code is found all over the internet.
  • “We don’t want to add something just for the sake of it if it has no practical functionality”. Fair enough, that’s an argument I can rally behind. The amusing part, is that X:R features (3 different copy/pasted) station interiors where you *have* to walk around to do your trading, recruiting, mission taking replacing a much more convenient menu, for immersion sake, you know… That is more purposeful and immersive than planetary flight, I guess.

On the other hand, sectors are larger (that was much needed, thanks), well it doesn’t exactly work like before and it’s hard to describe, but it’s better on that front for sure. Except that you have to do a minigame/QTE when moving across said sectors… Sigh.

Stations are also bigger, and ship faster. All of that kinda defeating the point, because if everything is bigger and faster, then, basically everything is the same at a different zoom level. Except for the pathfinder, who understandably get more confused. And hell yes it does, poor thing. But no worries ! For this not to be too blatant, it has been disabled on your personal ship ! Yep, no autopilot, suck it up, that’s 7 years of development for you, A* path-finding is too complex for Egosoft I guess (even if a basic collision avoidance algorithm would work in a space game with basically no terrain). Also, fun fact, yes sectors are bigger, but the whole universe is way smaller. ‘Tiny’ would be the best word to describe it.

Of course, old timers will tell you that modders will fix all that and add tons of features. They are both right and wrong. The UI is supposedly written in LUA (scripting language widely used in gaming), if it’s true, well yes the UI can be rewritten from scratch. What’s weird, despite LUA not being a compiled language, there’s no trace of such file in the release. I don’t understand that, they must be very well hidden or something is very wrong here. I won’t speculate, my limited time with the game doesn’t allow me to. Adding and modifying game assets (ships, map, weapons….) has been made much easier that’s for sure and making things cross compatible too. However, I am not sure that large plugins like Pirate Guild, ADS or Race Response Fleet can be put into X:R at all. They removed the script engine in favor of the Mission Director system. There’s pros and cons regarding this system. Pros being you can actually type it on a notepad. Cons being that’s it’s the most horrible scripting language i have ever seen (and god i’ve seen plenty) and that it doesn’t scale well with large projects. If someone manage to achieve something along the line of Pirate Guild with it, Egosoft should hire him (or burn him as a witch, i don’t really know).
So yeah, quick fixes from the modding community, sure. Overhauls, and years of additional gameplay not so much sadly.

Oh, yeah, another lie. “We don’t support 32bit”. When their game is a 32bit application with the LAA flag set to true. Meaning they can manage 3Gb of RAM, and that’s all. What’s true is that they don’t support 64bit systems in fact. This said, i’ve read countless of ridiculous posts on the matter so here’s a summary good enough for everybody (and toward other coders, yeah it’s no 100% accurate, i know):

Contrary to popular belief, applications compiled in 64 bit are marginally slower than the same compiled in 32 bit. Not in a noticeable way for the end user, but still. 64 bit means that the processor has to move around larger blocks of memory which take more time.  In any case, having 8 or 256Gb of RAM won’t change a thing performance wise (even in a true 64bit app, it wouldn’t matter as much as people may think).

Anyway, the list can go on and on for hours. I’ve not seen enough of the game myself to judge it, but reports on the official forum are mind-boggling. And I am not even talking about newcomers, but reports from die-hard fans with 10 years old accounts.  So the question is how we ended up in this situation? Before trying to answer this question, I’d like to make a statement about myself. Despite their flaws, I loved every single game they made since X2 which was a freaking revelation to me (gaming wise). It’s hard to count how much time I spent with their games, but between modding and playing (mostly modding), it’s certainly not hundreds of hours, but several thousands I spent customizing their games.  But I am not a fan boy. Egosoft has serious flaws, and I acknowledge that fact.

So first, there’s the constant “pre-release” lies. It’s not a new stuff, but it’s disturbing from a small company to lie that much about their products. No matter the iteration, before release they release press kits filled with false information. My favorite one being that they hired economists to balance X3. FYI you are the only one using money in this game, every other NPC ships is buying / selling wares for free. And funnily enough, even with this ‘cheat’, they managed to deliver a game with an economy so broken that most of the galaxy would stop producing anything if you don’t fill the blanks. Same promises were made about the AI, the relations between factions, all broken of course.  And there I don’t know if it’s the ‘Peter Molyneux’ syndrome or not. I sincerely hope it is. But when it’s company width, it’s kinda alarming.
In any case, the constant lying, on purpose or not, in this day and age of twitter, youtube channel and blogging is bad for business.

Secondly, there’s the bugs. As i said earlier. Big games will always be buggy. As long as they are patched, i won’t complain about that, I spent enough of my time writing software to know that (too bad the customers don’t). Still, Egosoft, yes, I’m talking to you directly here. Stop using forum users as free beta testers. And if you do nonetheless, fucking listen to them ! Also, in general stop using your community as free workforce. As far as i know:

  • you used forum members to translate your game for free. That I know because I had several arguments with the mods of the french forum who made a really crappy translation of your game, but how can you win an argument against someone who threaten you with a banhammer, even a decorative one (can’t really ban the most productive plugin maker for petty reasons) when you are trying to be civil.
  • You used modders (including me, despite not requesting anything, you asked me to add my plugins to the package) to publish the superbox, gave X3:AP away to those who bought it, but gave no reward to the people who made the package possible in the first place.
  • You replaced professional beta testers (with at least basic code knowledge) by a bunch of fans. And i don’t mean that as an insult toward the said beta testers, but they served no purpose. Not being paid they had no real voice (“ignore them, they are just X3 fanatics” kind of mentality).
  • And given the voice ‘acting’ in X:R i’m pretty sure those are not pro either (also “nice talking to you, not” ? seriously?)

Many old timers (non modders) like to think that Egosoft is a friendly company, able to discuss with its user-base. That’s not true. Sure, mods are nice (damn i was “internet-friend” with several, if not most of them for a while) but they are from the community, not Egosoft employees. I remember a time when, we, scripters, found a bug in the “dock.to.something” script, a rare bug, not one a normal user could find, but still a bug. No answer. Then we asked for a common wiki / dedicated dev forum. We got an “answer” so limiting and contriving that most of us discarded the idea of contributing to it. Egosoft looks friendly because it doesn’t prevent free speech, and give more visibility to the people who know what they are talking about. That’s all, they are good at forum management, but they are certainly not open.

My take on all that ? Well, Egosoft, definitively love space games, they have/had a vision for it but it has always been clouded by the fact that they’d love to be a real AAA studio earning tons of money. They don’t like to be a “niche” development studio, despite others like Paradox or Matrix doing very well. I can’t blame them for that, but I am not sure it’s a valid excuse. More to the point, they will never achieve that goal, especially nowadays.

Finally, I am just going to copy/paste a forum post i made:

People who pre-order or buy a game on day one without reading any review have only themselves to blame (and that extend far beyond egosoft games). In fact, you are the main problem, encouraging companies to ship their game as soon as they have managed to balance their account. […]

Also, and that’s a small nuance, I don’t blame you for the poor product (of course), THEY made a shitty game yes ! But ffs, stop pre-ordering stuff from AAA studios, and buying on day one without even looking at reviews, you are encouraging this kind of practice. It’s toxic and i sincerely hope (sorry) that it will be a lesson.

I do understand people giving money to Kickstarter (or whatever) projects for coders with no resources, or small indy dev studios. But it’s a whole different story where donators are involved in the development process.

This said, given the experience I got writing Grand Rogue Auto, I am currently building, well, something very similar to X3, in 2D, with a nice GUI, taking advantage of all the core your computer may have to offer. It will be 100% moddable, procedurally generated and hopefully fun to play :). More info now available here.  Also, it will be a donate ware. (free, give money if you feel like it).

8 thoughts on “X-Rebirth : I told you so… And other news !”

  1. Best of luck with the game. I think that 2d makes more sense fir this type if game anyways. Much easier to control large numbers if assets and see what’s going on at all times!

  2. Didnt know xbox contract never went through, which makes it even more pathetic being stuck with such game on pc.

  3. Thanks for the comments, it was interesting hearing from a long time player and modder on their experiences with Egosoft and their games, as well as the recent train wreck that is X-Rebirth.

    “Well, Egosoft, definitively love space games, they have/had a vision for it but it has always been clouded by the fact that they’d love to be a real AAA studio earning tons of money. They don’t like to be a “niche” development studio, despite others like Paradox or Matrix doing very well.”

    You put into words something ive been puzzled about for a long time.
    Their design decisions always seemed odd to me, some older ones in x3 to some extent, but especially what they said in press releases before X:Rebirth. Clearly their vision of the X-Series is outside of the niche games theyve delivered over the years.

  4. @Steve: Well it’s true, but in my case it’s mainly a constraint. 3D games need models, textures and stuff i can’t make on my own. I made a small prototype (single sector, with ships moving around, factories producing wares and other stuff), not yet publishable but things are progressing relatively fast 🙂

    @sync: My take on the XBox part is just a speculation. I can’t be sure. Still it’s obvious that at one point or another, they had such an idea (the user interface and the leftover files dedicated to xbox architecture). And as the game hasn’t been announced on it… It’s a fair guess.

    @Diamondback: Yes, it’s kinda sad for their old user base (us). X2/3 as a game was quite unique, half Space Opera, half Sim City. And for a coder like myself it was a magical sandbox (has to be for me to cope with the in-game script editor).

    At least with Elite 4 and a few other Kickstarters on their way, space opera fans will have more alternatives.

  5. A* is not really a good pathfinding algorithm for space combat. It could work for the basic navigation, though, and I wouldn’t be surprised if it already is used for that. E.g. for ships and the player navigation indicator to find the fastest path through the highway/gate network. A node based approach will most likely not work to actually get around the station geometry, though.

    I honestly don’t think planetary flight would add a lot to gameplay, at least not to an arcade-ey space shooter like Rebirth. Planets are terrible in Evochron, and I don’t like going to them. They worked in Elite, and were interesting enough there, but making planets look -good- nowadays would be a lot more effort than the station shenanigans. Which I agree should be done away with.

    There actually is .lua all over the game client. E.g. most of the UI is written in it. Problem is, that the lua code in question is compiled instead of being interpreted from plaintext. And the generated binary lua is not exactly modifyable. It’d be trivial to mod A LOT more components of the game if Egosoft released the lua sources, but so far they have not done that.

    They don’t ‘support’ 32-Bit OSes because an LAA binary on 64-Bit Windows can address a full 4GB. And it already struggles with not hitting -that- limit. Of course that is a bandaid solution, but it’s better than the 2GB/3GB (depending on registry settings) on 32-Bit windows, especially given with 4GB total and a lot of that address space being eaten by the OS itself or GPU memory, actually getting 3GB leftover is extremely unlikely.

    It is true that 64-Bit binaries are marginally slower due to larger pointers and the related bloat if they’re compiled with identical compiler settings (which is something stupid noone sane would do). It is patently false that they are also slower when the compiler settings are correct, because the architecture of a 64-Bit processor is actually drastically different by specification. They have 16 64-Bit GP registers instead of 8 32-Bit ones, and are guaranteed to support at least SSE2. The additional registers allow processing of more complex loops/operations without as many (by comparison enormously slow) L1 cache hits, and those are drastically sped up as a result. They also greatly increase performance with double precision operations (64-Bit floats) because the values fit into a single register. Most compilers have sane defaults for this, so the performance gains for these two improvements is virtually automatic, though code optimized for the many registers obviously profits more.

    I know of performance gains across the board in the 2%-15% range, and in case of certain special cases (Certain database applications, for example), the gain can be as big as 50%. With massively parallel AI scripts on hundreds of AI ships, I’d estimate the script engine performance gains for Rebirth to actually be towards the higher end of that 2%-15% range. I’m not sure how much the renderer would profit, though, so that may not directly lead to a noticable FPS improvement, depending on how the engine is written and on how much of the expensive math is stemmed by the GPU vs. the CPU. Egosoft wrote their own engine for Rebirth so I don’t have metrics for this.

    Also, a 32-Bit application running on a 64-Bit OS still runs many processor calls through a virtualization layer. After all, the actual system is 64-Bit. The virtualization layer is relatively thin, but it still causes a slight performance loss that you wouldn’t have running a 32-Bit binary on a 32-Bit OS. Going to native 64-Bit binaries would remove this overhead as well.

    And being unaffected by the 4GB limit would actually help a -lot-. Sure, the game might not profit from being able to address 256GB of RAM or whatever, but being able to safely go past 4GB instead of that leading to an instant memory allocation crash would be very, very useful. It’d open possibilities for modders just as much as it’d open for Egosoft. I’m pretty sure that many gameplay limitations were put into place late simply because they were scraping at the memory limit.

    Either way, limiting the game to 64-Bit OSes because the game teeters between 3GB and 4GB of memory used, but not actually taking any advantage of the performance gains of 64-Bit systems is ridiculous. Egosoft claims that some of their third party libraries have no 64-Bit equivalents. I actually went and googled all the .dll files that were easy to identify, and all of the ones I actually located DO have 64-Bit versions available. zlib, av, and lua for instance have had stable 64-Bit libraries for YEARS.

    I’d still love to hear from Egosoft firsthand which 3rd party libs are actually the problem.

  6. Hey Hal,
    Thank you for your very detailed post. I am not going to respond to the whole thing, because you are right anyway. I will just make a few precisions and notes if you permit.

    About the planetary flight: I think you understood it, but just in case: my point wasn’t that they should to add planetary flight. I tried to showcase their inconsistency regarding immersive features. On one hand, they said that they won’t add something just for the sake of immersion if it has no practical purpose (an idea i rally behind), but on the other hand, they add station interiors and made them mandatory (in vanilla) by using them as a clumsy 3D menu.

    Thanks for the heads up regarding LUA. It’s kinda unsettling to think that the menu system is written in a commonly used scripting language (and compiled to make things worst), and that all the actual scripting is done with a language written over a XML layout (descriptive stuff)… Seems counter productive. Especially when it was obvious from the late addition of the MD to X3TC that the scripting community hate it.

    Regarding the 32/64 bit stuff, yes I know most of that. Well, I overlooked a lot of things as I just tried to keep things accessible to the non programming crowd and, well, it wasn’t the point of the article. That said, thank you for the technical details, it was a very complete and interesting read and I learnt a few things.

    My comment regarding memory was very badly written. The first part was in the context of a 32bit LAA application. And the second part was meaning that more RAM *by itself* don’t make things go faster (if a program only need X gb of RAM, having X+10 gb of free ram won’t help). Sadly enough, many people tend to think that adding more ram works the same as adding hertz to the CPU clock.

    Regarding the claim regarding their libraries. I think that’s in the same line of damage control we got so far. The reality is probably that the game was initially written as a 32 bit application, development started 7 years ago after all. Converting it to a full 64 bit app [and taking advantage of the 64 bit architecture which takes time, as you said it’s not as simple as changing a few flags in the compiler] would have taken too much time, and money. The project was already way behind schedule and ridden bugs as is. At least that’s my guess.

    Just a thing you wrote made me tick :
    “Egosoft wrote their own engine for Rebirth so I don’t have metrics for this.”

    I was under the assumption that they did too for X2/3, am I wrong ?
    Also you seem to know a lot about the internals of their engine, have you worked on their previous engine ?

Comments are closed.