Marek's Dev Diary: 2024-12-26
Marek’s Dev Diary: December 26, 2024What is this: Every Thursday, I will share a dev diary about what we've been working on over the past few weeks. I'll focus on the interesting challenges and solutions that I encountered. I won't be able to cover everything, but I'll share what piqued my interest.Why am I doing it: I want to bring our community along on this journey, and I simply love writing about things I'm passionate about! This is my unfiltered dev journal, so please keep in mind that what I write here are my thoughts and will be outdated by the time you read this, as so many things change quickly. Any plans I mention aren't set in stone and everything is subject to change. Also, there may be spoilers inside! Friday 26.12.2024Space Engineers 2This week was quiet because everyone is on Christmas vacation. Looking back to last week, we also did a few kickoff meetings and started discussion on features for VS 1.1 and forward. Some of them are:Camera offset in 3rd person - I'd like to adjust the 3rd person camera so that the character isn't positioned in the middle of the screen, obscuring the focal point. Ideally, the character's head wouldn't be directly aligned with the crosshair. Many 3rd person games offset the character to the left and down to achieve this, but it misaligns the character's forward vector and the crosshair. This can create issues like aiming at the center of a door but colliding with the side due to the character's offset position. We need to find a solution that improves the player experience by providing a better overview of the area in front of the character or ship, without sacrificing aiming, clicking (for building or shooting), or ALT-camera rotation functionality.(This is a quick prototype where we moved the camera 0.5m to the right side of the character instead of the default position behind it.)UGC Ingame Workshop - this will be the first stage, allowing players to share blueprints and worlds between each other. In the VS 1.5 we will release VRAGE Editor and modding, so more options will come. We will have an in-game Workshop browser so players don’t need to leave the game when they want to upload something or download/subscribe. I think this will be super useful especially because in SE2 we have the Blueprint Building, so blueprints will become very used. We will be also releasing a bunch of blueprint modules for building modular ships - actually many of the ships you saw in our trailers were already built out of these blueprint modules.Flora Generator - some of the devs are already starting to work on VS2 (Planets and Survival). We already have planets and survival mechanics in the game but they are disabled because we want to present it until when it’s fully polished. This kick off meeting was about quick alignment on flora generation. We will be using SpeedTree to generate the variations of trees, and then they will be hand tuned by artists, making them wave in the wind, and also break into fractures if a player collides with them. It is important to have solid LOD because there will be many trees and we can’t allow them to kill the performance, so many tricks will be used for rendering trees in the distance - impostors and merging them to the underlying overlay texture. Another topic is grass and small bushes where we will use similar techniques as in SE1, but will improve it a bit. I also hope we can get larger view distances for grass, so let’s see.Ore Detector - The engine will maintain a list of ore locations on planets and asteroids, integrated with our procedural generator for asteroids. This list will be used by the game to display ore locations on the HUD and to spawn ore voxels at those coordinates. We will need to determine what happens when an ore location is fully mined—whether it should be removed from the list or retained.Optimized compile times (VS1.1) - We need to investigate why the game takes 20 seconds to compile, even when only small or local changes are made. Given that this is C# and JIT, compilation should be nearly instant. We suspect the issue lies with library dependencies—libraries that don’t need to be copied may still be copied unnecessarily. I'm confident this can be resolved. Instant compilation is always a priority for me because it enables faster feedback loops (build, test, iterate), resulting in more efficient development. Additionally, it reduces frustration, as few things are more annoying than waiting minutes for a project to compile.Destruction optimizations (VS1.2) - We are embarking on another round of optimizations, continuing our ongoing effort to improve efficiency with every update. This process often involves addressing obvious inefficiencies. For example, the game currently spawns an excessive number of fractures when ships collide, overwhelming the physics engine with collision detections. Addressing such issues will be a key focus in this update.ArtOur artists have started working on new blocks. The typical process begin
Marek’s Dev Diary: December 26, 2024 What is this: Every Thursday, I will share a dev diary about what we've been working on over the past few weeks. I'll focus on the interesting challenges and solutions that I encountered. I won't be able to cover everything, but I'll share what piqued my interest. Why am I doing it: I want to bring our community along on this journey, and I simply love writing about things I'm passionate about! This is my unfiltered dev journal, so please keep in mind that what I write here are my thoughts and will be outdated by the time you read this, as so many things change quickly. Any plans I mention aren't set in stone and everything is subject to change. Also, there may be spoilers inside!
This week was quiet because everyone is on Christmas vacation. Looking back to last week, we also did a few kickoff meetings and started discussion on features for VS 1.1 and forward. Some of them are: Camera offset in 3rd person - I'd like to adjust the 3rd person camera so that the character isn't positioned in the middle of the screen, obscuring the focal point. Ideally, the character's head wouldn't be directly aligned with the crosshair. Many 3rd person games offset the character to the left and down to achieve this, but it misaligns the character's forward vector and the crosshair. This can create issues like aiming at the center of a door but colliding with the side due to the character's offset position. We need to find a solution that improves the player experience by providing a better overview of the area in front of the character or ship, without sacrificing aiming, clicking (for building or shooting), or ALT-camera rotation functionality. UGC Ingame Workshop - this will be the first stage, allowing players to share blueprints and worlds between each other. In the VS 1.5 we will release VRAGE Editor and modding, so more options will come. We will have an in-game Workshop browser so players don’t need to leave the game when they want to upload something or download/subscribe. I think this will be super useful especially because in SE2 we have the Blueprint Building, so blueprints will become very used. We will be also releasing a bunch of blueprint modules for building modular ships - actually many of the ships you saw in our trailers were already built out of these blueprint modules. Flora Generator - some of the devs are already starting to work on VS2 (Planets and Survival). We already have planets and survival mechanics in the game but they are disabled because we want to present it until when it’s fully polished. This kick off meeting was about quick alignment on flora generation. We will be using SpeedTree to generate the variations of trees, and then they will be hand tuned by artists, making them wave in the wind, and also break into fractures if a player collides with them. It is important to have solid LOD because there will be many trees and we can’t allow them to kill the performance, so many tricks will be used for rendering trees in the distance - impostors and merging them to the underlying overlay texture. Another topic is grass and small bushes where we will use similar techniques as in SE1, but will improve it a bit. I also hope we can get larger view distances for grass, so let’s see. Ore Detector - The engine will maintain a list of ore locations on planets and asteroids, integrated with our procedural generator for asteroids. This list will be used by the game to display ore locations on the HUD and to spawn ore voxels at those coordinates. We will need to determine what happens when an ore location is fully mined—whether it should be removed from the list or retained. Optimized compile times (VS1.1) - We need to investigate why the game takes 20 seconds to compile, even when only small or local changes are made. Given that this is C# and JIT, compilation should be nearly instant. We suspect the issue lies with library dependencies—libraries that don’t need to be copied may still be copied unnecessarily. I'm confident this can be resolved. Instant compilation is always a priority for me because it enables faster feedback loops (build, test, iterate), resulting in more efficient development. Additionally, it reduces frustration, as few things are more annoying than waiting minutes for a project to compile. Destruction optimizations (VS1.2) - We are embarking on another round of optimizations, continuing our ongoing effort to improve efficiency with every update. This process often involves addressing obvious inefficiencies. For example, the game currently spawns an excessive number of fractures when ships collide, overwhelming the physics engine with collision detections. Addressing such issues will be a key focus in this update. Art Our artists have started working on new blocks. The typical process begins with game designers providing a block design to confirm the functional requirements. Once this is approved, concept art is created, followed by the LOD0 model, which is tested in-game. After confirming its functionality, the subsequent LOD models are developed. For SE2, block creation is more demanding compared to SE1. In addition to the standard models, we now require block fractures and corresponding LODs. We also create an occupancy mask, which indicates the specific areas of the 25cm grid occupied by the block. Collision shapes are then developed for physics interactions. To maintain performance, we enforce polygon and texture limits per block to avoid overly complex designs. We also monitor Texel Density (TD), which measures the number of texture pixels (texels) per unit of 3D surface area, ensuring consistency across all game assets. Our animators are set to begin refining animations, focusing on improving placeholder assets. This includes reworking the jumping animation, which currently appears unnatural as the character jumps and lands on the same foot. They will also revamp first-person animations once IK (inverse kinematics) is implemented. Trailers Over the past 1-2 months, one of my main priorities has been overseeing the creation of teasers and the reveal trailer. Our process for creating trailers is structured and detail-oriented: Defining Goals - We begin by discussing the purpose of the trailer—what message we want to communicate and how it aligns with our overall PR strategy. Script and Voiceover - We write a script, decide on the trailer’s length, and draft the voiceover narration. Gameplay Recording - Using our Replay Tool, we record gameplay clips. This tool allows us to simulate multiple characters interacting by replaying previous character actions while controlling a new one, creating the illusion of a living, dynamic world. In the final game, there will of course be multiplayer and NPCs, but the Replay Tool is an invaluable tool for video creation, enabling full control over the scene while requiring only one person to record everything. All footage is recorded in 4K for maximum quality. Editing and Composition - The recorded clips are merged, and we begin iterating on the composition. At this stage, we freeze the timing to lock down the sequence, ensuring the audio team can work on sound design and music without worrying about misalignment. Music Composition - The music composer is brought in to create a custom track or adapt an existing piece from the SE2 OST. The timing and pacing of the trailer guide the composer in crafting a soundtrack that aligns perfectly with the visuals. Sound Design - Once the music is ready, the sound designer takes over. He integrates the music with the video, balancing audio levels to ensure the narration is clear, emphasizing specific frequencies, and adding effects to enhance immersion. Video Draft Iterations - Throughout the process, we refine the video, often going through 20+ iterations. These adjustments include improving camera angles, repositioning the sun for better lighting and shadows, tweaking animations, and ensuring the color palette aligns with the SE2 Visual Bible. Every detail is meticulously reviewed to ensure visual consistency and quality. Lore-Driven Narrative - All our trailers are framed through the lens of game lore, presenting the world as experienced by a character who has arrived at Almagest. This approach avoids a dry listing of game features and instead immerses viewers in the world, showcasing tools and mechanics as natural elements of the environment. Final Touches - In the final stage, we add end screens, logo transitions, and other finishing elements to polish the trailer. The final trailer is typically completed just a day before release. This Thursday, Dec 19, we had the alpha reveal, with trailer and stream, where we talked about the SE2 roadmap, dev history, why VRAGE3, live gameplay, Q&A, and everything else. I think it went well, the community seems to be appreciating our choices with a 25cm unified grid system and is excited about what will come in SE2. What was preceding this day? We were pushing hard to have a safe build of the game, so we can show gameplay without crashes, bugs or some imperfections. One of the last moment fixes were the first-person animations, finally working as we wanted. But we had to disable the character shadow in first-person mode, because it’s clearly unfinished - what you would see is a very stiff posture, feeling unnatural. It’s better to disable it and polish during VS 1.2 We were sprinting with our work on the trailer - iterating, making some changes here and there, to make sure it’s the right introduction to SE2. All our teaser/trailers are now told via lore optics, not just pure game mechanics. We want players to feel they are part of The Bering Project, one of the pioneer space engineers in the Almagest System Funny thing is that many players think the narrator is an AI voice, but it’s actually a real human actor, we just radio-distorted his voice, to create the impression of speaking from different time and location One of the last features that got to this build were fixes and improvements in the Blueprint Building - just small details like improper scaling and cropping of blueprint preview on the toolbar or color of the icon, but details create the first impression Another last-moment bug that popped up from hell was that when I entered the cockpit and switched to first person, the camera was inside the head of the character, so a weird dark shape was rendered almost through the entire screen. Very strange. Luckily, the team fixed it and merged it to the VS1 build very quickly. The team is already working on a build for VS 1.1 and VS 1.2, so everything that has to be merged to VS1 (that will be released on January 27) needs to be manually merged and it’s a painfully laborious process. So we need to be careful with picking what gets to VS1, versus, what has to wait for a later VS. My preparation for the live gameplay was about writing a list of features I want to show and then playtesting them, making sure they work as intended and I don’t get stuck in some bugs or confusions. Nothing surprising came out which is good. But during testing I realized that showing the fracture destructions in interiors is much better than in exteriors, because the fractures will start bouncing from the environment and it creates a feeling of a very reactive environment full of space debris. So I decided to show it inside Green Station. I am already focusing on January 27, when we will release the game on Early Access. We need to make sure the alpha build is as stable as possible, no breaking bugs. There’s still a strange issue with shooting with the debug gun, where the impact sounds, or destruction sounds, play kind of randomly… it’s weird, we need to investigate it. Other than that, my focus is on the next VS 1.1 which is the UGC In-game Workshop - allowing players to share their blueprints and worlds. I hope this will be a big thing, because SE2’s is about blueprint building, so sharing it should improve efficiency and range of creations. Then there’s VS 1.2 which is about many improvements, like new ship controls or improvements in animations (jump, inverse kinematics, uphill/downhill movement, etc). I am looking forward to the new ship controls, because we already had a prototype in game but had to revert it because we knew we didn't have time to fully polish it. But it felt so good. I was able to fly a ship without that feeling of moving the mouse over my desk. It was so fluid and I felt like I am finally controlling the ship - with broader and more detailed strokes, as needed. I want it back. Today is the feature freeze day for SE2 VS1. So we are branching out to a new dev branch where features for VS1.1 will continue, while some people will keep testing and bugfixing VS1 - meant for release in Jan 27 I am happy that Blueprint Building got finished just before the deadline, so players will be able to use partial copy paste, assign to toolbar and blueprint screen. This was really important for us to be able to present as intuitiveness improvement in SE2. There are still few UI imperfections and it’s crashing when you click on Place Blueprints, but those are major issues we will fix in a few days. The team has finished the PCU measurements, which means we now know how much CPU and memory is each block consuming on average. There was an issue in the measurement where light blocks were estimated to be thousands of PCUs, but it got fixed and now the numbers are around 10 PCUs or so. We are finishing VS1, the code freeze is on Sunday, only 2 days. I'm happy with the team. Everybody is pushing and trying to deliver their tasks. I love this team spirit and collaborative atmosphere! Some of us are online even at midnight, iterating, pushing things to perfection. I am so grateful! This week I focused on sound design polishing, animations polishing - mainly first person: we try to make sure that the hand and the paint gun is stable when moving the camera around. It’s still not working as I want so it’s possible we will have to postpone it to VS 1.2. But both programmers and animators are trying hard, so I am glad for this. We are doing last moment changes, changing app icon, adding the SE2 logo into the main menu and loading screen, and adding the main menu background image. We did some updates on the What’s New screen that shows at the game start and tells you what is new in VS1 and what is our plan. I'm glad this screen is very aesthetically pleasing. It will be the first thing players see, so it has to be good. We did the splash screen, and I really like it. The art style is brutal, and it sets the mood even before the game starts. We were doing last tweaking and polishing on controls and UI/UX - making sure the context sensitive tips are there and showing the right thing. We were polishing the destruction experience - including the Debug Gun Tool, the damage it causes, particle effects and sounds, and how the fracture system works. I think it’s good, but I definitely plan to revisit this soon, we need to add more debris for armor damage/bending, improve the projectile hit particle effects, and overall make it as much instantly gratifying as possible Friday 26.12.2024
Space Engineers 2
Friday 22.12.2024
Space Engineers 2
Friday 1.12.2024
Space Engineers 2
Friday 29.11.2024
Space Engineers 2