1. Dawn Apart
  2. News

Dawn Apart News

Destruction Update!

Welcome back Pioneers to the, checking notes, fourth community post since the launch of our steam page in mid-November. Our main subject this week is 'Destruction', arguably the most fun of Dawn Apart's three main features next to ‘super-complex automation' and the whole 'colonize a hostile alien planet’ aspect. Disclaimer: this post is going to be a little more on the technical/coding side but bear with us: We've added some cool footage of us breaking stuff that should enthrall dev dudes and players alike.

But before we start we want to thank our followers and supporters for helping us to hit another milestone: According to SteamDB Dawn Apart has entered the top 1000 of most wishlisted upcoming games! This means our dropship has left the darkest corners of the Steam Universe and is on course to safely land on the bright planet of Aurora in the spring of 2024. Of course we hope to pick up as many space cadets on our journey as possible, so please continue to recommend Dawn Apart to friends, neighbors or random strangers on the street and make sure to join our Discord server!



[h3]Calculating Fractures[/h3]

Destruction in Dawn Apart will be omnipresent. Not only are you destroying Aurora's surface by terraforming and extracting precious minerals but, depending on your choices, you will get attacked by the indigenous It'ak population or have a fall-out with your contractor, the greedy Kobayashi-Schwarz Corporation. Both factions usually react with criticism that is not really, let's say, constructive (rather quite the opposite!)

As we have hinted at in earlier posts, in Dawn Apart we have a system which takes in upcoming damage of an object and figures out how exactly it should fracture. So for example, when a space marine riddles an It'ak hood with bullets, each projectile will create rays with a given force and trace through the object decreasing its force based on the physical type of the voxel it hits.

Life on Aurora is harsh: One minute colonist Luke was enjoying the view, the next he was struck by a factory tile.

Not all materials can be destroyed by physical damage, and in that case the force vector will bounce off and continue on in the opposite direction giving way to much more interesting destruction. After the tracing we have a list of fracture points and match each broken voxel up with the point they are closest with to generate the resulting debris. (Not every damage type lends itself to raytracing. Electricity or fire wouldn’t have the same effect as a bullet so we are developing unique algorithms for each)

[h3]Making an Impact[/h3]

In the last weeks we have also overhauled our explosion systems. Previously we were using a very simple logic to gather fracture points - essentially calculate a random set of points within the explosion radius and call it a day. But after we had to admit that we ourselves were not, well, blown away by the unrealistic big honking chunk the system produced we came up with another way.





Now we cluster fracture points around the impact point and spread them out more as the distance from the center increases. We can do that by creating uniformly distributed rays and march over it using a given step size. For each step we use a modifier to gradually increase the step size. We also implemented some dynamic voxel material attributes to let us “heat up” voxels that burn by explosions, or fire.

For now with the holidays behind us, and us being the Grinches that we are, we wanted to show off the new explosive logic by burning this cozy holiday-themed cabin to the ground (this will be of course not in the game but is a scene adapted from "vox-models" by kluchek, used under CC BY 4.0; we also added a debug FPS controller to our debug fly cam but normal gameplay in Dawn Apart will be top down).

[previewyoutube][/previewyoutube]
TL;DR: Explosions go boom. While this post was all about things falling apart, we hope all those systems will ultimately come together to form one first-class base building, automation, and destruction experience. See you next week and don't forget to join our Discord server for more cool clips of things getting pulverized down to the last voxel!

Building factories and terraforming

Yes, we know - in our last post we actually promised to talk more about our destruction engine and show off impressive explosions, but I guess we blew it (pun fully intended). So while we look forward to sharing fancy detonations in our next post, this week we focus on another elemental part of Dawn Apart - building huge, vertical factory compounds and terraforming the surface of the planet Aurora.

Before we, well, hammer out this building-related post, we want to shout out all the base building and automation fans who have wishlisted Dawn Apart and joined our Discord server - we really appreciate your support and don’t take you for granite (apologies - we promise that was the last bad construction pun:).



Raising the roof

While Dawn Apart features over 100 unique machines including various drills, smelters, and reactors that can be put on the world map as single entities, the game encourages players to construct large, customizable factory compounds and floor halls by placing individual walls as well as floor and roof tiles. Aside from materials each act of building comes with a cost - Lucrum 115, Aurora’s most precious resource, which you must amass to extend your ‘sphere of influence’ (an intricate system of in-game currency that we will explain in more detail in an upcoming post).



As you can see in the (very compressed) Gif above the process includes laying a foundation by removing trees, rocks and other objects, placing relevant machines (in this case smelting ovens and punch presses) over multiple floors and connecting everything through conveyor belts and stair cases.

Enclosing your production facilities in actual factory halls has the advantage of protecting them from environmental decay (the weather on Aurora can be a bit, let’s say, unpleasant at times) and outside attacks (after all the It’ak, the indigenous population that has lived on Aurora for millennia, are not huge fans of you digging up their home). It also makes it convenient for the engineers among your colonists to maintain your machinery and guarantee a smooth production process - even though horrific work accidents will be a thing.

(Terra)form follows function

While Aurora, thanks to its Earth-like atmosphere, is already pretty habitable for our human pioneers, you’ll need to engage in some form of planetary landscaping to transform it into an industrial hub.

[previewyoutube][/previewyoutube]

Because we want the whole planet to be very interactive (not just directly from player input, but from objects that are on its surface) we are working on a grid-based real-time terraforming system, a sneak-peak of which you can see above. If you have deep enough Lucrum pockets, you can change the terrain at your will: from flattening hills to depositioning or extending land masses. Overall, with our building and Aurora-forming systems we really want players to think about the architecture and sustainability of your automated production facilities.

We can’t wait to let you try out these very sandbox-y systems and are working hard to give you a playable demo in the upcoming months. Actually, we have so much stuff in our pipeline that we have decided to switch from biweekly to weekly posts so you can learn more about the progression of the development. If you want to get even more updates, participate in fun surveys, and look at exclusive clips, make sure to join our Discord server. See you next week!

Fleshing out the World of Dawn Apart

It’s been a month since we launched our steam page and shared our announcement trailer and we want to thank you for the ongoing love the community has shown to Dawn Apart - seeing people wishlisting the game, championing it on social media, and joining our Discord server to follow and actively shape the development means the world to us!

In our second announcement post, we want to let you know what we have been working on in the meantime - from adding small, but important details to establishing and refining the basics.

Flashy conveyors



Arguably the most important asset in any automation sim are conveyor belts. So we want to make sure that moving resources from point A to point B looks and feels right. That’s why we are actively working on refining the animations as well as updating the shaders for all conveyor belts to add some animation to their emissive voxels. Since Dawn Apart features a dynamic day/night cycle this essentially means cool, glow-in-the-dark conveyors for optimized production chains all throughout the night!

Branching out



As we have pointed out in our last post, we want Aurora, the distant planet where you establish your colony, to be the real star of our game. Instead of just presenting a lifeless boring, grayish, brownish or greenish sandbox we want our players to engage with a lush fauna and flora that poses unique challenges for extracting resources and terraforming. While our Announcement Trailer featured only a few placeholder trees, we have been busy creating a whole new array of plants for each of our biomes, including this tree inspired by the Dracaena Cinnabari (also known under the badass name of Dragon Blood Tree). Look forward to more colorful alien plants (and other lifeforms) soon!

Saving the world (and loading it)

Adding a save and load function to a game may seem like a mundane task, but creating one for Dawn Apart proved to be quite the challenge. Precisely because our world is so rich in detail and made out of individual voxels, in order to successfully save a map full of moving machines, factories and colonists - and then seamlessly bring it back - our coders came up with a solution.



We first create a new save world and copy over all entities and their data. Once there we can safely format their component data into the format needed for serialization without affecting the world the player actually plays in. To avoid a hot 3GB file size every time the player saves the game we only save the necessary data which is needed to recreate the game state on load. We also run through all voxel objects and check if there are changes in each 8x8x8 voxel grid cell. If there are, we save only that run of voxels and then reapply it on deserialization. Our initial tests on an empty world saving absolutely everything resulted in around a 1.3 GB file, and at the end of our sprint we’re looking at just a couple hundred KB for an active world which was a great success. In other words: Data go in file, data come out. Because it was a rather complex process we’re very proud to share our work in progress Game screen including the options to load save states!

We’re in full scrum mode and can’t wait to share more results of our sprints in upcoming posts (spoiler alert: the next post is going to be explosive, because, well, we are currently refining our destruction engine). In the meantime please make sure to join our Discord server - in the past few weeks the community settled on some important lore questions (for example that giant space ship featured in the trailer is now called The Eventide!) but we need more input!

Creating the World of Dawn Apart

Our steam page went up last week and we want to thank you for wishlisting and following DAWN APART on Steam and Discord. We really appreciate you taking interest in the game and are glad to have you on board as early adopters!

In our first announcement post, we want to give you a quick technical overview, namely how the lush voxel world of Aurora is created and how you as a player will be able to populate, terraform, and destroy it!



Welcome to Aurora
Let's start with the basics: With very few exceptions, the world of Aurora will consist entirely of voxels (for this purpose we have specifically created our own voxel engine built on Unity’s Data Oriented Tech Stack [DOTS]). Each voxel is rendered through a process called raymarching, which gives us a lot of freedom to implement complex and dynamic effects while rendering large dynamic scenes without taking a massive hit to performance.

All objects and characters, including items, walls, conveyors and colonists are created by very talented voxel artists in the MagicaVoxel editor and then added to the game. The terrain on our 2D height map is dynamically generated, however: for each of the various biomes (for example grasslands, forests, deserts and so on) we specify a few different color palettes and the type of resources, trees and fauna that can spawn on it.

Although it is a cliche by now to say so, we really want the planet of Aurora to be its own character in our game – a living, breathing, beautiful and also very dangerous world that both shapes your experience and is shaped by you. For example, being huge fans of games like MGS Snake Eater or Ghost of Tsushima, we decided early on to add to the atmosphere by including grass, plants and trees that are not just simply there but affected by forces like wind, fire or player actions. To increase the interactivity of our world even more, we also plan on adding a grid-based terraforming system that will allow you to dramatically change the surface of Aurora.

Build and Destroy



One of the main features that sets Dawn Apart, well, apart from other colony sims and automation games is our enhanced destruction engine: each object that you encounter can be pulverized down to the last voxel. We can't really share more details on in-game events yet, but the interactions with both the native humanoid alien race inhabiting Aurora and your contractor, the Kobayashi-Schwarz Corporation, can ultimately lead to a partial or total destruction of the planet.

Here we took great inspiration from Teardown where voxels can have their own physical properties. Essentially we parse out the physical material type based on certain criteria. For static objects this affects how incoming damage fractures the object. For example, if a shot from a laser gun hits a wood voxel it should break and burn through it, causing other flammable voxels to catch fire, while if it hits a very heavy metal it might die and just visually heat up that voxel instead.

To be more specific: Each voxel physical type has a set interaction with a damage type and also a modifier for how much force it takes to interact with it. In the case of fracturing we dynamically calculate, among other things, the total mass and volume based on the physical type of each voxel that makes up the debris and send it on its way. In short: While we still have to put in a lot of work, we're sure the destruction feature will be truly awe-inspiring, so please stay tuned!

Also in case you haven't done so yet, please wishlist and join our Discord server – we have a very cool lore section on there where you can learn more about the history of your contractor, the dodgy Kobayashi-Schwarz Corporation, as well as polls where you can actively shape certain aspects of the game.