As per usual, anything said during the show is subject to change by CIG and may not always be accurate at the time of posting. Also any mistakes you see that I may have missed, please let me know so I can correct them. Enjoy the show!
PU Animation Team
Ship Animation Team
Components need updating to fit the new architecture so they will work with the new Interaction System
Every single team at CIG is working towards this due to the level of and demands of the features wanted
The old 1.0 infrastructure worked well for its time, but with the level of complexity and features we wanted it would soon lead to chaos as far as controls and callbacks were concerned not to mention if something needed to be augmented or added at a later date, and in the process increasing variety as well
The Item 2.0 System is actually allowing components to affect game-play in a logical and intuitive manner as with quantum fuel tanks on bigger ships allowing more fuel and thus longer distances before refueling
The new Interaction System now ties interactions with certain interaction points enabling more contextual and logical control behavior
Every team literally is having to revisit all of our animations, damage materials, the UV2s and even props
Where lights are concerned they now have things called light groups that designate where these lights are and when exporting the level it creates item ports where the lights attach to, now the control manager is aware of them and they can get power and control
They took it a step further and have something called the light controller which registers to the control manager and the lights register to that now there’s, for example, a button to turn lights on and off
Each ship requires an entire retrofit from step one
Interactions that used to occur automatically, some of that control has been given over to the player
In some cases they took old assets and updated the code to implement them, in other cases they updated the assets to adhere to the new code
Balance tweaks which will give the player incentive to explore upgraded items
They need to maintain game play that the community loves with the balance and hard work done by the designers
A lot more capacity for multicrew ships with Item 2.0
Each component (Ex: physics, geometry, etc) can have their own update or they can update in a batch update
One of the biggest improvements they hope is going to be with the IFCS
Just recently moved it from a main thread physics to one of these batch updates
Sandi Gardiner (SG): Hello and welcome to Around the Verse, our weekly look at the development of Star Citizen. I’m Sandi Gardiner.
Eric Kieron Davis (EKD): And I’m Eric Kieron Davis.
SG: While there are a lot of features planned for the upcoming 3.0 release, one that's been affecting just about every department is item 2.0.
EKD: Yeah that’s right and migration every ship to this new system is an enormous task. So today we’re going to dive in and explore this new system and the wide ranging effects it will have on all of our ships and vehicles.
SG: But first let's go to Austin and Turbulent for their Studio Updates.
Jake Ross (JR): Hey guys, Jake Ross here, Producer in Austin. The wheels are in motion on several features here in Austin, let's dive right in and see what’s been going on this month.
Right now the Austin design team is completely focused on things related to 3.0 or near term goals. The core tasks we’ve been working on mostly are state machines for the first few NPCs we’ll be implementing. State machines in organization and animation assets for the mission givers like Miles Eckhart and the nav beacon system. The state machines are how we not only visualize how the NPC will behave, but also informs the animation team when and where our animation need to transition between each other.
We want off the state machines to the animators who then approve the behavior or give it back with feedback. Not only does this dreive the animations we need, but also guides our NPC behavior setup in subsumption.
The nav beacon system will allow players to create their own roads throughout a given star system. These can be used both in the vastness of space as well as on planetary surfaces. Beacons are physicalized objects that are deployed from ships and give players visual markers to lock onto for quantum travel, they also point to and fly towards when used on a planetoid surface. Players will be able to grant use access to others as well as hack another persons beacon. Both allows you to use someone else's nav beacon. Over time, beacons need to be serviced by the owner, restoring their energy source. Finally because they’re a physical object, you’ll not only be able to find them and destroy someone else's beacon if you so desire. It should make for some fun gameplay decisions. Do I hack it and use it myself? Do I destroy it so others can’t travel? Do I sell it to pirates as a potential ambush point? There are lots of opportunities for this new system, we’re excited to work on and see it progress in the future.
Finally Miles Eckhart development is in progress. We’ve been organizing this mission givers assets which are being polished by the animation team in our Derby office. Creating his state machine and getting his initial behavior setup and running in subsumption. Eckhart will be unlocked to the players by accumulating reputation with him, earned by completing other available missions. Once unlocked, you can visit him for a wide variety of missions.
The new mission manager will drive his selection that you will be able to choose from anything he currently has available. We’re really looking forward to getting Eckhart into your hands in the 3.0 release.
The PU Game Director, Tony Zurovec has had his hands full with several things this month. A major part of which is subsumption. As a reminder, subsumption is the data driven and highly abstracted foundation on which all the AI and mission logic in Star Citizen is constructed. Tony’s finished conversion of the subsumption tech to Linux for integration with our backend services and completed the shopping service for game code to start hooking the new shopping tech into. He’s reviewed and directed mission scenarios for 3.0 as well.
Ship Artist, Josh Coons has been working on the ship lods for the Cutlass Black. It’s a very consuming task since our LODs our mostly handmade and the ship he’s working on is quite large with many pieces that have to be optimized. In addition to optimizing the mesh, he also reduces the material IDs as he goes down to LOD chain. This way the mesh will have less draw calls from a distance and be more efficient.
Our server engineers have been working very hard since our last update. We’ve been providing support for the shopping service which is a non Diffusion service. This service communicates with Diffusion and the game systems through our Diffusion gateway. The gateway allows external and non Diffusion services to communicate with the game as if they were internal Diffusion services. Recently we’ve been focused on integration of the Diffusion code into the primary game development stream. This will be deployed with 3.0. This was a massive integration with a lot of moving parts and has required a large amount of collaboration between our server engineering team and DevOps. The effort has taken a few weeks to get everything moved over, tested, and in a state where it can be deployed.
From an internal perspective, we have been working on a service creation tool. This tool provides a simple to use UI allowing engineers to create new services: Add, remove, or modify components and management resource control. The output of the tool is a basic service shell and set of source files that are customized for the new service. This is a huge time saver and allows new engineers to create services without having to worry about any boilerplate work and thus allowing for rapid service development.
We’ve started to add Star Citizen specific extensions to Ooze. For those who don’t know, Ooze is the language written by Lead Server Engineer, Jason Ealy. It’s the scripting language that drives Diffusion. These extensions expose Star Citizen's specific constructs to Diffusion, allowing services to provide more intricate support for gameplay features, helping to move the game into a more distributed architecture.
Finally there’s been work on the router mesh functionality. The router mesh distributes services over multiple router endpoints, improvised redundant communication paths between other services. The mesh will use a technique to isolate high bandwidth services away from lower bandwidth or more critical services. The primary responsible of the router mesh is to provide a high level service availability and performance.
This month on the Persistent Universe animation team, we finished up the two handed carry animations. This includes standing, crouching, and for zero g. Standing we can pick up 25cm, 50cm, and 75cm crates. That is the new standard metric for crates in game that you can pick up. You can pick them up from the floor all the way to a shelf that’s 175cm high. Crouching we will be able to pick up 25, and 50cm crates from the floor all the way to a ledge that is a 175cm high. In zero g we will be able to grab 25, 50, and 75cm crates floating around in space. Code and tech has hooked it up so you can retrieve cargo in zero g, EVA back to your ship, stow your acquired loot in your cargo bay.
We also did a last minute mocap shoot in our office when Animation Director, Steve Bender stopped by our Austin Studio for a visit. Steve put on the mocap suit and ran around like a crazy person capturing all of our fps starts and stops for stock rifle locomotion set. We also took this opportunity to take Sandi Gardiner in the suit and capture some exercise motion for our female characters when they decide to do a workout on our exercise useable. In this mocap we stuffed our Lead Animator, Bryan Brewer in the suit as well because we just about killed Steve Bender on the first day and captured needed animations for the crouching carry animations. We are starting work on some specific NPCs so that you can go into a pub, get a drink from an NPC bartender or go into a shop and buy things from an NPC shopkeeper. Animation is working closely with design to make this experience a fun experience for all.
On the ship animation team we have been continuing our improvements with the cockpit experience. Working with the U.K. Studio’s design and programming team, we are in the midst of updating our Gforce blendspace poses, utilizing a low pass filter for smoother, smarter camera motion as well as adjusting the cockpit geometry to allow for button presses. In addition to this, we are creating the system that will allow us to make coms calls within the ships during flight.
This month the DevOps team has been busy optimizing the build and publishing systems. The game builds are growing rapidly as content continues to pour in for 3.0 sp we’re constantly tweaking and tuning to keep up with the demands of the dev team.
Ahmed and his team have been collecting team feedback on network performance from our three locations and comparing that to internal data so we can optimize network performance wherever possible. This is an ongoing task, but we’ve also found some good opportunities for improvement in this area.
For May, the Austin QA has been working heavily on regression of bugs, particularly on a massive sweep through our open bugs to see what items are still valid given the new systems and tech coming online for both the PU and Squadron 42. This allowed us to eliminate a considerable number of bugs before they ever reached development, saving our busy developer cohorts time they would have spent investigating issues that no longer were occurring on the latest build. Major testing items for our groups including actor serialization, multithreaded resource containers and network transport queue for the engineering teams. We continue testing the moons in the Stanton system for any potential issues such as collision and performance testing.
New vehicles, ships, and FPS items came online throughout the month including the Behring P8SC SMG that we were very excited to play with. In addition to testing the continued item 2.0 implementation all of which have kept our Arena Commander and Star Marine testers busy.
On the new system front we’ve been working very hard testing the new procedural breathing and stamina system as well as a new air traffic controller. Other projects we’ve been assisting with have included testing some updates to our current game launcher. Primarily bugfixes to our players, but also a few quality of life fixes.
We continue providing additional support for the animation groups here in Austin. Including mocap file cleanup, supporting setup and teardown for pickup shoots and ingame video captures for final reviews. Regular editor and engine testing has continued as well with Austin QA completing regular smokes in the subsumption editor, procedural planet tools as well as our normal editor testing.
Player relations team has been extremely busy preparing for upcoming 3.0 work as well. The biggest item that players will see is the new player experience that will ultimately go on the website and will match the new content coming up in the game. They’ll also be adding to the Evocati ranks in the upcoming weeks and are excited to announce that they’ll be adding headcount in Austin, Manchester, and Frankfurt. We’re getting more and more excited the closer we get to 3.0 release. We have a ton of new content we’re pumped to show off and get into your hands. Thanks for everything you do, keep it up, we’ll see you around.
Benoit Beausejour (BB): Hi guys, here’s your Star Citizen platform update, but to start somebody you haven’t seen in awhile, We’ll see Benjamin Fardel to talk to us about other projects here at Turbulent.
Benjamin Fardel (BF): Hi I’m Benjamin Fardel and this is the Turbulent monthly update for the month of May. This month we’ve been working really hard on redesigning a huge section of the RSI website. What we’re designing now is a consolidated view of everything that’s currently playable, what you can currently do in the game and that will hopefully make it more understandable and more useable for any newcomers and existing players too. Our US and content teams came forward to us with a lot of examples that we took great inspirations from about websites that felt particularly immersive of games that were making it easy to get into the universe, their backstory and get involved into what the game is without actually having played it yuet and that’s what we’re going for now so that people can come in and know what Star Citizen is about even before engaging the rest of the community, but what those websites have in common is they make high use of a clean streamlined design and images and videos that make you feel like you’re becoming into the game as you watch them. So that’s the inspiration we took from there is we’re making it all about making Star Citizen shine in the website by showing and showcasing what it has accomplished so far which is fantastic.
We felt that we have more than enough material to make a compelling view of what Star Citizen is now even that far into the process. We also took a lot of inspiration from what the community has been producing. We have witnessed a lot of incredible production from members of the community, videos produced in the director mode, but also tutorial videos and streams, the whole setups that people have when they broadcast about Star Citizen and that became a great input in the design that we put for Star Citizen.
A new module we’re implementing for this new release of RSI is a new play guide which is going to be a new module that covers all the bases you need to know, not necessarily if you want to get good at Star Citizen from the get go, but if you just want to learn how you start playing the game. So we’re working really closely with all of the CIG teams in player relations, QA, and marketing so that we can cover all the bases of everything that new players need to know when they want to start playing the game and we’re designing this as a modular interface that we can make evolve as new patches come in and new features come in so that it can become a staple feature of the website when you want to point to something that’s currently playable in the game. So keep your eyes open for this new and redesigned Star Citizen website coming in this summer.
BB: So in the past few weeks we’ve been hard at work reviewing the first two months of live operations for our Spectrum Alpha. We’ve been reading all of your feedback and compiling all of it. We’ve already begun some work, but in this release that we’re preparing now called 0.3.5. We’ve got major updates and major changes to the system which I think you guys will like.
The first one is we’re transferring the view preference for threads. So instead of somebody creating a new thread and choosing which type of discussion, is going to be fully managed by a view mode which the viewer can decide so you’ll be able to set a global setting to decide if you want to see threads as nested or chronological or we call them classic now, or you can also per thread decide that you want to see this thread that’s chronological, but this one is nested. So we’re going to persist your choice across sessions and so this basically becomes a completely user preference is hopefully… guys who prefer chronological threads versus nested will be able to just see chronological across the board and hopefully you guys will like that.
We’ve also done major work in this release to try and unify what we call the read state which is if you’ve read a thread or a reply already and so now we’ve changed the UI so that we display a yellow dot for items you have no read. So this will reflect in your sidebar on the left, but also on threads and on every reply within a thread. So this will help nested thread users who want to know if they have read a reply or not through the tree, even if it’s not chronological you will be able to see, haven’t this reply or have seen it before.
One major change that we’re also implementing is related to tags. So we’re changing the way we’re now surfacing tags on the community index so that you’ll be able to jump directly from the list of channels to a tag straight up which is basically much more functional as a subforum. The tags are also now can be set to mandatory so now when you create a channel you can say: “this channel requires tags or not.” They’re browsable from the community index and the channel directly. They’re also bookmarkable so you can bookmark a tag within a channel if that’s what you’re interested in and they’re also now these bookmarks which are now and this applies for every bookmark, every bookmark are now renamable so you can go in your managed bookmarks and change the name of your bookmarks to something that you want, organize your sidebar the way you want. So this applies to tags, but also to every other type of bookmarks that you’ll store in the sidebar.
0.3.5 also comes with major changes to search. We’re adding new filters that will allow you to filter by author and by role. So you’ll be able to search by for all staff posts for example or search for every post from this user within the community or all communities you have access too. So this will make search more viable. It’s also now accessible on mobile which it wasn’t before so now if you’re on a mobile screen, the search options will display and you’ll be able to use them.
0.3.5 also comes with a lot of work behind the scenes where we’ve been looking at usage patterns over the past few weeks and there’s a lot of performance updates we’ve done so Spectrum should load faster for you guys. The thread listing should be at least 10 times faster than it was before. We’ve added a lot of server side reporting so we can track client crashes and basically try to preempt fixing stuff without having you guys report them, it’s all automated for us so that’s really great.
So this is it for 0.3.5 so a lot of changes coming up. We’re hoping that by the time you see this it's already live. It’ll be a matter of day if that’s not the case so see you guys on zero 0.3.5.
In terms of 0.3.6. Which is our next shorter term version. We’re working on revamping the mini profiles to display more information about you guys. Have a bunch of actions available on the mini profiles. We’re going to more of a calmer display, they’ll be able to jump from the miniprofile to a user's post and take action specifically on that user. This is where we’re going to add later on, not in this release, but later on all the functions for friends lists, friend system, blocking will go in that area.
The major feature for 0.3.6. is the availability of custom roles and so we want orgs to be able to add additional roles to their org, assign roles to their members, all done through the mini profile directly on Spectrum so that’s going to be a big thing for 0.3.6. There’s also work going on in the editor for the forums to allow endline images, linked formatting and more formatting options. This is tuning out to be a bigger project than we thought, but we’re hoping that it’s going to be ready in 0.3.6 for you guys to use straight on the live site. There’s also group private messaging that we’re trying to achieve in 0.3.6, though this is more looking like a 3.7 feature, but we’re still working on it and of course all the background work related to voice transmission and game integration is ongoing, but you know this is basically what we’re looking for in Spectrum for 0.3.6
SG: and it’s great to see subsumption taking another step forward. The system is the bedrock for so much of the game so it’s exciting to see it all coming online.
EKD: Yeah and the PU Game Director, Tony Zurovec who is creating the tech is in Los Angeles this week working with the team on subsumption and many other important features.
SG: Another new system that you’ve heard mentioned in previous studio updates is Item 2.0. It lays the groundwork for swappable ship component and so much more. Once fully implemented Item 2.0 will provide the framework for many cool features to come.
EKD: Yeah and although converting ships to this technology is well underway, we thought it would be good to explain the facets of this system and highlight just how important Item 2.0 will be to improving the overall Star Citizen experience.
Kirk Tome (KT): Hi. I'm Kirk Tome, and I'm the lead technical designer here at Cloud Imperium Games.
Mark Abent (MA): My name's Mark Abent. I'm a senior game-play programmer here, and I'm also known as the Bugsmasher … -ish [Chuckles] Yes it's that tacky, but it's great. [Laughs]
Ashram Kain (AK) Hi. My name's Ashram Kain. I'm a producer here in Los Angeles working primarily with the engineering and tech design team. So part of my job is working with engineering and tech design to get all of our ships converted over to a new framework, our Item 2.0 Framework, which is going to support all of the multitude of features that we want to have in our ships moving forward in the game. The reason we had to do this conversion to get all of these ships into this new framework was to support the kind of features we wanted in the long term.
KT: In the case of ships that already existed we do need to update various components, the seats, the way we enter the ships and the way we interact with the items and the various systems on the ships so we can make them work with the new interaction system. In the cases of new systems we need to implement them in accordance of the new architecture.
AK: It's easy enough to make a spaceship and put it in the game … not that easy, but compared to what we're trying to do it's a walk in the park. But when you want to have a spaceship with modular components that's upgradable, swappable, changeable, damageable … when you want to have ships that die, because components fail inside or ships that explode, because of damage done to important internal pieces. That's not something you can do with a out-of-the-box system. That's something you have to build from scratch. Honestly this conversion is involving every single team in the entire studio. There is not a team that is not part of this, and I mean everybody from marketing all the way to the physics guys in Germany who are having to be part of this, because this conversion touches everything. It's primarily being driven by LA Engineering and LA Tech Design through Mark Abent and Kirk Tome.
MA: So as you guys know now the current release we're using the 1.0 infrastructure, and we've used that since basically we released the dogfight module way back in … during the dinosaur era. That system worked really, really great for our single shooter ships where you just have a guy sitting here maybe one copilot, but when you started having these much more big complex ships and you're just adding a bunch of items onto there it became a big gigantic behemoth to maintain our item infrastructure. The biggest issue we had is we have our ship he knows all of the items that are attached onto here, and when you have a guy right here he gets all of these callbacks and events saying, “Hey this was added”; “this was added” and “you have control”; “you have control”, but we have another seat, since that event system was basically on the main route of the ship he would get those same events. So if you had five seats, they would get events from everybody else and then every other seat had to figure out who had what control and where, and then you had a more complex thing because then you had the visor or the HUD or the UI, you had the AI, you had the different modules all listening for these events trying to figure out who had control when/how, and then when you add in multiplayer where this seat could come before the vehicle, and then this item could come, and then we had to reconnect this here. Anything could come in any order. It just became pure chaos trying to make sure everything worked in a nice coherent manner. As you can tell we had a lot of fun bugs and it's also not maintainable, especially since each of those items were their very own special cupcakes where we had all this logic built in for the weapons, and if we want to use a single part of it like say we had another type of weapon that didn't shoot projectiles it shot some … We want to shoot M50s out. You had to basically copy/pasta that logic into that other item and then you have another set of bugs, because you have to maintain two sets of logics blocks and this was the whole Item 1.0 infrastructure, so it just became a mess. Going back to that big logical block we want to take each of those bits of logic and turn them into these bits of … what we call them components. This thing handles geometry. We take it out. Stick it in a component that handles geometry. This thing handles physics. Take that out and stick it into a component that has physics. The idea was we shrink this item into nothing but it's bare bones and it's just a list of logical blocks or bare components that defined what the item actually did. So in theory I could take this piece; put it here. Take this piece; put it here, and now I have a whole new weapon or I have a whole new logical item that we wanted to do, and that was the very bare bones Item 2.0 or infrastructure.
KT: So the Item 2.0 System comes as a lot of different components to make ships fit within our new architecture. The items that we're improving the game-play functionality on are systems like power, cooling, the shield system, utilizing our new room system when you turn power off to a particular room all the lights that are in there will automatically turn off, or when you open up a door that's connected to that room entity we can suck the atmosphere out. Being able to do things like set a door lock in between those two rooms so that we can simply connect those two rooms utilizing that airlock, and it knows the states of the atmospheric conditions within their zones and can react accordingly when you open that airlock implementing new ways in which atmospheric flight affects your fuel consumption, how those thrusters actually utilize power and fuel to fly, better systems for functionality such as quantum drives. We're able to balance the fuel consumption that ships will take to go from one nav-point to another, therefore we can make some other ships that are larger and perhaps have a larger quantum fuel tank be able to traverse the … make those trips without running out of fuel whereas some of the smaller ships maybe they can't, and they must refuel before they can take that next jump. These are all parameters that we are updating and making it a little bit more transparent for the player to understand what's going on with them.
MA: So now that you have this control, it's cool and the problem is how do you interact with this control? And that's where we bring in this other set of technology that we have which is the Interaction System. We had an old interaction system that hit a button and it did something, but now we have a much more contextual system where you can register these things called interactions on interaction points, and what that allows us to do is we can build a list of these things and then the code gets some callbacks and if I look at say a door I could get two interactions maybe open and close, and then code could get those and figure out what to do with them. Using this thing with the control thing is basically we have this thing called a seat access at what seats. Before we have this ship called a Constellation, and we have these two turrets, and the thing about the turrets is that when one came down it had to block the other one, but we couldn't do that on the old one. So we kind of had to … you can actually do this now with the existing system. If you use the top turret you can use the bottom turret, and you can see the animations messing with each other, because these two seats don't know about each other. But now we have this thing called a seat access that is aware of these two. It's basically the state machine for these two things. So if you want to get into either one, it will block the other one. And we do that by using the Interactions System. The top one has an interaction to enter/exit. The bottom one has an interaction to enter/exit, and there's an invisible physics box, but you'll just see a glowing thing saying that I can enter this turret or enter this turret. You walk up to it and you see the actual floating text saying, “I want to enter the top”/”I want to enter the bottom”, so when I enter the top the code will get the callback saying that I should begin to move this one down, and the seat access will be, “Alright since this one is moving down I can block this one”. So now if someone walks up as you are entering this guy, he won't get any interactions, because he can't enter this one because he was blocked until this guy goes up to the top, and then now that interaction will pop up saying, “Hey, you can enter now”.
AK: This isn't simply an engineering task or a design task. We're having to revisit animations. We're trying to revisit entire structures inside how ships are built from the ground up which means we are trying to reconsider how doors, simple doors, are implemented on the interior and exterior of the ship, and that's art time. That's time that the artists and modelers have to be involved in, and part of that means we're also having to do rework on some of the damage materials, the UV2s that we use for our damage states ... literally every team. One of the biggest impacts is things you wouldn't think about like the prop team, because we're having to do things like build our power components and our modular power supplies. That means we need a prop for that, and that prop needs to be built by somebody. So, all of the sudden things you never really saw on the ships but we're kinda there, I mean they were a little bit hidden, they're suddenly going to be there, and as we start rolling out this technology more and more and implementing it through later iterations in the ships you're going to be able to see these components inside the ships, and that means we need to have those components to show.
MA: One awesome example of moving one of the items to this whole new Item 2.0 centric system on the vehicles is we have these lights on your spaceship, and with our 1.0 or legacy ships, we had an item that attached to an item port and it would create these things called… basically rendered out all along the ship. It would look cool and I could see the lights on, problem is I get out of the ship or the wing blows off, lights are technically still there. We did cheat and listen for when something blew off but power doesn’t do anything, can’t control them, they’re always kinda on.
So what we did for 2.0 is we have this technology called an Object Container in the inside of our ships it’s basically a mini level we can insert into our ships. So we already have that, we’re using it for Item 1.0 and what we want to do is since designers are placing a bunch of stuff like beds and all that stuff in there, we wanted them to use that same technology to move… have lights, the same lights that were defined before.
So we basically tossed the old system, allowed designers to create lights and using this thing called light groups you can designate that these lights are basically, you know, the interior. These lights are the exterior and a way of grouping them. When you export that level it creates these things calls item ports but we attach these lights on the item ports and since they’re on item ports, the control manager now knows about them. Since they’re an item and they have an item port, they can get power, they can get control.
So now they register to this thing called the control manager and they register to the item ports and they can actually request to get power, they can request to get heat and if they don’t get it… we can turn off the lights. We could do anything we want and we took it a step further, we have this thing called a light controller, it registers to the control manager and those lights register to that and if the user sits down in the seat, and get into the control manager I get a button to turn off those lights that are inside of the ship that normally don’t spawn in.
AK: It’s not something you can just sit down and say, ‘we’re going to do this ship, the this ship, then this ship’, cause it doesn’t work like that. Each of these systems is so deeply interconnected that when we encounter a bug on one ship, we just can’t stop and wait for that bug to be fixed. We have to move onto another ship that we can work on, we’re having to work so quickly on so many different complicated pieces and track all of the bugs that the real challenge is being able to predict where we’re going to be.
The whole point of scheduling isn’t to make a plan on how to get some place, that’s the easy part. It’s being able to show where we think we’re going to be based on the work that we’re doing and the work that we’ve done. This work has never been done before, nothing like this has ever been done before.
KT: The other difficult issue is that we do need to go in and do an entire retrofit of every single ship from step one. Some of the steps include converting the ship’s seats to the new system, creating a new dashboard element which is the part of the ship when you’re seated in the cockpit that you interact with so that we can have visual interactions that allow you to turn power on, engine on and off, set the ship to flight ready. These are interactions that occur automatically before, now we’re going to give the player a little bit more control to give them a more visceral feel when they’re in the cockpit.
This can also be true for other stations when you’re seated, get an engineering station going will allow you to aim in a certain direction, hit a button this does a particular task. Then utilize the screen so that you can divert power to repairing, swap out individual items on the ship, etc. So in some cases we take the old assets and then update the code we use to implement them, in other cases we update the assets themselves so that it’ll adhere to the new code standard that we need but in most cases we’ll do both.
So, we’ll take the dashboard out of the ship geometry, make it its own item and then set up the interaction points so that when the player does get seated in the seat… they’ll have an indication of where to look at to do these interactions.
AK: Coordinating all of these teams is a real challenge because we’re talking about 400 people who need to be aware of what’s happening and the hardest part in coordinating all these teams isn’t necessarily tracking the tasks or the individual work on any given person. Making sure that all the teams are aware of what’s happening and what’s coming down the pipeline, we don’t want to break something that’s going to then prevent one of the teams from being able to work.
A good example of this I can give is AI team, we’re having to be very conscious of delivering components and pieces of this feature in time for AI to have the opportunity to implement and integrate that with their system. So that, you know, we can have people inside these ships and they can fly around and interact in all the different game worlds. This is particularly vexing when it gets to more complicated parts of the interaction system because these ships have a lot of interactions, so making sure that all the interactions are functioning is sort of the key point to making sure we can interface with these ships as we change and integrate them into Item System 2.0.
Then there’s the tertiary stuff that you don’t really think about when you’re considering doing all of this stuff. How does this interface with stations? How is this going to work when you go buy, sell and be cognizant of all of the items inside your ship inventory, your personal inventory, your player inventory and then where do we want to go with that. How does the economy interface with all these other pieces. So, maybe you should let everyone who’s cognizant of the long term goals as well as present in what we’re trying to achieve for 3.0 and 3.1, that’s the biggest challenge.
KT: There will be some balance tweaks that the player will notice which will incentivize the player to explore upgraded items for example, especially ships, because we are utilizing the new interaction system. It’s the first thing that they’ll notice when they walk up to a ship and when they get sat down and look at the cockpit there will be a noticeable difference.
AK: Game play is one of the most interesting challenges in this conversion because at once we need to maintain game play that the community loves and the balance and the hard work that the balanced designers implemented on these ships. So on the other hand we have a to implement a whole new way of thinking about the ships and the ship balance. We have to implement new ways for the thrusters to function, we’re rebuilding parts of IFCS and integrating IFCS into the Item Component System. That means that we have to reconsider that balance as well.
Suddenly a fighter is no longer just a fighter when you have to worry about managing your shields and your power supply and your weapon group, really… in real time. With Item System 2.0 we’re going to have a lot more capacity for multicrew ships as well. It’s no longer going to be, ‘oh I’m riding around in your Caterpillar’, it’s going to be, ‘I need somebody on the shields and the power at the engineering station to manage this as I’m in a heavy fight’.
MA: One of the big things is probably performance. With this componentized system, each of these components… so if we have a seat, we can have geometry, we can have physics, we can have a bunch of other logic. Each one can have their own update but they can update on this thing called a batch update which means during a specific time in the frame, we can basically spawn a bunch of threads and say, ‘you’re updating, you’re updating, you’re updating, you’re updating and you’re updating’. We may do like a couple thousand at one go and then do another thousand and then do another thousand so that frame update from like this to like this, and we can do a lot more.
One of the biggest improvements we’re hoping is going to be with John Pritchett’s physics flight controller, the IFCS. We just actually recently moved his update block from kinda main thread physics call and it was stalling physics and taking that out and moving it to these batch updates and it will still act the same, it’s now just spawned off into one of those threads. So we’re pretty much utilizing multicore systems at this point.
AK: This is one of the largest things I’ve ever worked on and it singularly can be considered one of the largest things that I think has ever been done in a game, particularly a multiplayer game. This is a system that… I mean think about the multiplayer games that are out there, I mean you might have a mount in World of Warcraft or Elder Scrolls Online or a house but you don’t fly your house around. You don’t have twenty houses that you fly around and you have to worry about them being damaged and the states they’re all going to be in and how other players are going to interface with them, that’s something we’re having to consider.
When we talk about Item System… Item System is more than just the things in the ship or the things on the space station or the things on the planet. Its an entire framework for objects and entities in game persistence being persisted and having actual relevant information to be part of that player experience. I think players are going to start seeing an incredible versatility and power to this technology.
MA: So that was some of the big architectural changes we wanted to do but of course changing something huge is going to have some big repercussions. Stay tuned next time where we’ll tell you about some horrible, horrible fun that we had to do when transitioning from A to B.
EKD: Thanks guys. Converting the game to Item 2.0 is really no small task, but it’s an essential one to building the Best Damn Space Sim Ever.
SG: Yes and it will add a lot of versatility to ships and let players interact with them like never before. It should have a significant impact on gameplay.
EKD: And that’s it for today’s episode. Please join us tomorrow for Happy Hour Friday at 12pm Pacific as Mark Abent and Ashram Kain join us to talk more about Item 2.0.
SG: And thanks to all of our subscribers who make shows like ATV, and Happy Hour possible.
EKD: And thank you to all of our backers. We really couldn’t build a game with hundreds of swappable ship components without your support.
SG: And that’s all for this week. We will see you…
SG/EKD: Around the Verse.