I wanted to talk about Star Citizen Development Concerns, Technical Debt AND the importance of helping develop Star Citizen with feedback, being able to voice criticism and a Reddit post that I think is worth talking about titled: A CTO/Senior Software Dev’s take on Star Citizen
“I’ve been a software developer for over 20 years. I’ve worked in the trenches fixing bugs, I’ve built entire systems from the ground up, I’ve led teams, and I currently work as a CTO.
In that light, here’s my take on the Star Citizen discussion:
I’ve read a lot of arguments between two camps. 1. People that are frustrated with the current gameplay and wish things were more polished 2. People that think polishing an alpha is worthless and will slow the overall timeline of the game getting to release
There is a bit of truth to both sides, but in reality – the amount of bugs included in releases is discouraging to say the least.
Why? I call Technical Debt “the valley where companies go to die”
The truth is: code is a living, breathing organism. Also, the way that developers write code changes over time. Devs learn more efficient ways to do certain things, new best-practices are adopted, there are framework and language updates that solve OR create problems. Another important thing to understand is that certain issues with your architecture are LITERALLY unavoidable.
While each new area of the code is built out, you will see patterns and inevitably need to rebuild or refactor certain things so you can keep the overall architecture clean and healthy (at least that’s the way the pros do it). If this refactoring isn’t done, it compounds technical debt and will eventually become unsustainable.
One example I’ve noticed that might highlight this issue is the Mobiglass. People (obviously) wanted to be able to change the color of their Mobi display along with buying a different colored Mobiglass. This isn’t going to be possible. I wonder why? Especially given the fact that different colored displays are present between ship manufacturers. The likely truth? This highlights a subtle but meaningful weakness in the architecture of the UI code. I’m going to assume that the Mobi/HUD display color was a static, single color originally. When different colors for different manufacturers came along, instead of restructuring the architecture to account for future possible changes, the devs most likely branched directly existing components/modules and added something along the lines of “if [different ship manufacturer]: different color” and tacked this onto the logic that handles rendering the Mobiglass display (and its color) in different contexts.
Seems pretty harmless, but if this type of problem isn’t fixed early on, it leads to a situation where the logical structure of modules/components is so convoluted that even the smallest changes introduce massively complex problems that are almost impossible to solve without breaking other things and causing more problems. This type of situation nearly ALWAYS happens in the lifecycle of a codebase. When it happens, a team has to make a decision: Either take the time to rebuild the code to make it more flexible and extensible, OR just duct-tape on whatever the quickest possible fix is. If (and when) the wrong decision is made, the overall health of the codebase gets worse and worse. I’ve personally seen the long-term result of this practice, and it gets bad enough that the only solution is to rebuild from the ground up (which comes with its own issues).
My fear is that I can see a lot of examples that highlight this pattern. Bugs and limitations obviously have varying levels of severity, and the color of the Mobiglass display isn’t a cancerous, unsolvable problem. However, something like the prison loadout bug (https://robertsspaceindustries.com/community/issue-council/star-citizen-alpha-3/STARC-110648-After_serving_my_prison_sentance_in_Klescher_im_stuck_at_a_black_screen) is definitely concerning… The issue with that particular type of bug is that I can’t think of a simple or harmless cause of the bug. In one instance while I was trying to fix this exact bug, I had removed all my gear and let a guard kill me. When I died, I saw the prison-issued mining tool drop on the ground from my body.
The reason I was letting a guard kill me was because any time I died, I would get a black screen that I couldn’t get rid of without reloading the game entirely.
The terrifying thing about this is that the cause of the bug could be that the contents of a player’s loadout might be used to calculate whether or not they should be in prison. I’m not saying I have conclusive evidence that is the case, but it shows a possibility that something like the prison feature was duct-taped and hacked together so quickly that the logic behind it really is THAT bad.
This ramble leads to my real argument. If these types of bugs are an indication of the way the code is being built, they’re just the tip of the iceberg. If that’s the case, using the excuse that “backend features and core functionality is more important than features for right now” doesn’t hold water because if they’re compounding technical debt at THAT level, the backend architecture probably isn’t much better. If the architecture is bad, it’s never going to support a solid, polished game no matter how long they work on it, how many milestones they miss and push back, etc.
No codebase is ever going to be (anywhere close to) perfect. What you’re really shooting for is a healthy relationship between – positive forward momentum (polished features that are bug free, code that is flexible enough to allow for new feature development with relatively little changes to the architecture that only cause minor bugs) – disasters and major slowdowns (areas of the architecture that are so bad you have to completely rebuild them, which means rebuilding a variety of areas where the code interacts with that architecture)
If you can have a healthy balance between these two and keep your forward momentum going, it allows for what’s called “continual refactor” which means small, incremental rebuilds of features, components/modules, and occasionally key architectural pieces. If not, you’re basically just trudging towards the inevitable.
So the real question is, what’s the situation with CIG? It seems to me like there are more red flags than green.
The other side of my argument is that CIG is underutilizing the fanbase they’ve put together for the PU. Even when the backend architecture is more flushed out, it is going to need adjustments and changes to properly integrate new features, mechanics, and content. I’m not saying they shouldn’t focus on the back-end architecture, but we should be able to see the progress. We should see less breaking bugs, better performance, etc. While there have been (some) improvements, they’re not happening fast enough to convince me that CIG is moving forward instead of treading water.
On the same note, features and gameplay mechanics keep the community interested. With the current state of the game, it is difficult for me to want to bring friends into the game. I bought the game in 2015, was pretty underwhelmed, and took a 5/ish year break. I re-downloaded the game a few months ago, and was excited about performance increases and new features, but overall was disappointed in the lack of progress. On top of that, the game is (so) broken that it’s barely playable. If bugs were hotfixed and the overall gameplay experience were more polished and more stable during the current alpha, I could almost guarantee there would be more players pledging ships – which would mean more money to spend on development – which would mean the dream of the fully realized MMO (and S42) coming true a lot sooner.
I’ve personally hotfixed bugs in systems with (a lot) more users than currently play SC. It was admittedly butthole-clenching, and didn’t always go well, but things like the 30k, random crashes, and black screens of death (etc) are game-breaking and experience-ruining enough that I think it justifies the indignation and frustration I’ve seen from people in the community. These issues also shouldn’t be MONUMENTAL to fix. They also (definitely) shouldn’t persist between major quarterly patches, which many of them have. I’m personally in a place where I wouldn’t pledge another dime until CIG can give me some proof that they’re worth my investment. I feel like a large percentage of the community feels the same. That means CIG is probably spending more than they’re bringing in, which ultimately means that things could get a lot worse before they get better (if they ever do).
So if CIG is neglecting polish in lieu of backend stability, SHOW ME THE MEAT. Show me some of the payoff of that focus. Give me some proof that the backend stability is actually improving. If you aren’t going to release new features, polish the ones we have. Give us more reason to earn aUEC. Release more shiny cosmetic features that can be duct-taped on in a stable enough way and can be quickly rebuilt later. Give us more ship customization. Release more variety in the current mission types. Hire some college interns to write some engaging gameplay loops and questline stories (like the PI Covalex mission). Give us more excuses to explore the current system. Leave unmanned Hammerheads and Capital ships out in deep space with treasure-hunting clues on how to find and commandeer them. Balance out the money you can earn from missions so that it’s a better competitor for trading (and / or, make trading more stable).
And EVEN BETTER IDEA.. Make smaller sub-systems of the PU that have newer features in isolation. That way, servers can be smaller and easier to maintain, and you won’t have to worry as much about the infrastructure. Put more gameplay loops into the existing cities, and have server options that only include that one city.
Hell, MAKE THE TITTIES BIGGER. Put in boob physics. Whatever.
I could go on. (clearly… brevity is not my strongsuit)
All in all, I believe in the Star Citizen dream/project because it has LIMITLESS potential. Pretty much anything I enjoyed doing in other games, I could get an even better experience from Star Citizen. The amount of depth that’s possible in this game is staggering. When it finally does release, my wife is probably going to divorce me. All I want is for CIG to give the community more of a nod, make sure we feel acknowledged, appreciated, and important. Polish the current state of the game enough that I can at least consistently enjoy what’s currently available, and so I can feel comfortable bringing my friends to the game. (Cus I totally have some of those… definitely.. A non zero number of real-life, human friends..)
If you’re from the camp of people that flame on others for being frustrated. Spool up your quantum drive and look for the marker that says “Over yourself.” Hopefully you have enough QF for the journey. Jokes aside, being up on a high horse when people are (justifiably) frustrated doesn’t do anything for the community. Developers need to be held accountable, and it’s healthy for them to hear honest feedback. Especially because the corporate, soulless cucks who make budgeting decisions need to have an accurate look at the health of the fanbase so they can be kept in check. If we just act like it’s all roses, we’re asking to be ignored while the game is developed more behind closed doors. Along with that, I agree that I would rather have long-term stability over current features. However, if that’s what they devs are doing, we should be able to see some of the payoff. There are also a lot of polish elements that should be more than possible while the backend architecture is improved. AND, breaking bugs shouldn’t last longer than a few weeks. If you’re going to expose anything to end-users, you have to commit to polishing it to the point that there aren’t any dead-ends that users can’t at least fix somewhat easily. Proof to my point is features like the bartender and actor-animated eating/drinking. Nobody gives two shits about watching their character drink a water. These “immersion” features have been given way too much focus while breaking bugs persist through quarterly patches, along with long-awaited features and ships are left by the wayside and keep getting pushed back.”
Now that was quite a long post… but I do agree with some of it… I’ve talked many times about the problems and conflicts with having a PLAYABLE ALPHA… and the marketing of major releases… I bet when we see the 3.10 launch trailer we see amazing footage and pretty much no bugs… BUT to me the bug hunting and long term involvement of the community in development is one of the largest draws of star citizen to me.
I can’t vet whether that gentleman actually has experience in the industry or not BUT some of what they say is reasonable whatever their background.
I do see bits a little differently as I do believe the core of the game systems are getting refactored and updated long term rather than just duct taped as are large portions of the code and back end services (as far as I am aware)… tho certainly Star Citizen’s Development is a hugely long cycle… with feature creep, delays and some frustrating bugs some of which I do feel should have been fixed ages ago.
However a lot of the criticism of bugs would hold more weight if the game was out of Alpha… CI made a rod for their back in some sense by having to now maintain a Playable Alpha… that said it ties directly into their monetization model and you cannot argue that Cloud Imperium is a successful business.
I know 100s of players that have an amazing time of the game now in 3.10 on the PTU even.
I find Star Citizen quite playable as a sandbox game OR I suspect for many as a tourist destination to checkout every few months.
It is however fine to be worried or concerned about elements of the game or the development and to be able to voice that in a civil manner. I don’t think you should be trying to convince people what they should think, I think you should have your feedback and have your voice matter if it’s at all constructive or helpful.
I’d love to see an Inside Star Citizen or big community post on technical debt or the evolution of Star Citizen over from 2012 to date warts and all… trials, successes and failures.
I think Star Citizen is going to be an amazing game… I am enjoying it even now… BUT not in the same why I plan to enjoy it when it’s finished… I loved EvE Online though in recent years it’s changed for me and I enjoy it much less, I played a lot of WoW and many many other MMOs and Diablo Games for 1000s of hours.
I am looking forward to doing the same with Star Citizen…
Do I agree with everything the Poster said? No I do not, it’s their POV and opinion.
But I do like the fact they shared their opinion and concerns and were met with upvotes because of that. And I think that CI could address some of those issues publicly… that would be great.
I do think CI should give us a lot more information, more detailed, more accurate roadmaps that cover a longer period of time, most consistent communication, more videos and general updates to the community as well as answering more questions on threads.
What we have currently only showing the Roadmap for 3.11… less than 3 months of development and no Squadron 42 updates is unacceptable to me.
For me Squadron 42 is the proof of whether CI can make a great game or not and it should be the first full product they put out. I do think Star Citizen will be a genuinely great game and maybe that’s because I am more biased OR have more insight OR am just more interested in this type of game and project.
But that’s enough of my rant… be civil, get involved with the games development and give feedback that’s my advice, some people will agree with you, others not so much BUT that’s alright.