Stellaris Dev Diary #269 - Digging a Grave, and Galactic Matters
To allow new content designers to familiarize themselves with all aspects of the game, they are usually assigned some onboarding tasks. The Tiyanki Graveyard was a combination of two such tasks: designing a unique solar system with new ships on patrol, and creating an arc site. Stellaris already includes a massive amount of content, and one of the hardest things as a new content designer is to avoid retelling stories. I decided to focus on space critters, because they have relatively few events associated with them, and most of these havent been touched in years. We already have a system where Tiyanki are born, so why not show where they die? Something that struck me while rereading all our Tiyanki-related content was that killing them allows you to research the Regenerative Hull Tissue, but their superior healing abilities dont have any narrative impact. This gave me the idea of a sort of elephant graveyard full of wriggling corpses that dont stop growing even if theyre dead. After getting the main concept approved, it was time to build the event chain. The onboarding tasks required me to create new ship types, so I decided to make some static Tiyanki gravekeepers protecting the arc site. I knew some players would never hurt a Tiyanki, though, and I wanted to keep the content accessible to different playstyles. A special project was thus added, allowing pacifist players to lure away the gravekeepers without hurting them.
Communication between different departments is crucial when working on a team. I wanted my ball of corpses to look the part, but the art team was busy working on Toxoids so instead of requesting art assets for a minor onboarding task, I experimented with what was already in the game. After all, we already have a perfectly good Tiyanki Matriarch corpse. Why not scale it down and spawn a couple copies around a planet, wrapping it in tentacles? My first attempts, however, produced... Unintended results:
Space in Stellaris is actually flat: all planets and spaceships are bound to an invisible 2D plane. We can offset the coordinate of ambient objects (decorations) to make them appear above or below the plane, but we usually use this kind of trick only for temporary VFX, like when a planet cracker hovers over a planet. Figuring out how to wrap a planet in corpses took a bit of experimentation, but eventually we got there!
Once implemented in-game, the content gets tested for bugs by QA. While testing, we noticed a curious issue: the graveyard looked fine when you encountered it the first time:
But if you closed the system view and opened it again...
...It ballooned into a fleshy monstrosity whose size rivaled the Sun! The cause, as fellow Content Designer Caligula Caesar discovered, turned out to be an obscure bug that resulted in offset decorations being incorrectly sized during initialization.. As mentioned above, we usually use offset for temporary VFX, so this bug has never been noticed since release!
At this point, the art department stared at my work in mild horror and decided it was best to create an unique asset for it. The graveyard looked fine, but smashing ambient objects together is not standard practice and could potentially create performance issues. Nevertheless, the horrible mishmash provided a useful reference for the concept art and the final model:
My graveyard was dismantled, but I hope it will inspire you to create even worse abominations. Heres a handy summary on how to offset ambient objects. When spawning an event object, make sure sure to use use_3d_location = yes to be able to adjust its position.
Objects spawned with random horizontal offset.
Objects spawned with random vertical offset.
Objects spawned with random angles.
Left group is set to face the star (not in the screen). Second group is set to face this (the planet they spawned from).
Both Tiyankis have an angle of 0. One is set to base_angle_towards = star, and is aligned to its "face" like the planets. The second is set to base_angle_towards = this, where this is a planet with an angle of 180 No tiyankis were harmed in the making of this dev diary. ------- But that is not all! For I, Caligula Caesar, have something quite cool to show off, namely some experimentations with galaxy shapes. We havent made any changes to the available galaxy shapes for I think since release, unless I am mistaken. Anyway, we wanted to spice things up a bit, and took a look at whether we could persuade our galaxy generator to create new shapes. First we taught it a few new tricks. Now you can define a new galaxy in script and feed parameters into it, and it will be available to select in the galaxy generation screen. This means that when modders inevitably decide we didnt go far enough in this dev diary, they can make their own combinations without replacing existing ones. It now also doesnt determine its behaviour based on what the galaxy shape is called. With this I mean, in the current version the 2-spiral galaxy will always have two spiral arms, and you can merely tweak how thick and twisting these arms are - this is no longer the case. Now you can freely define how many arms you wish to have, and also combine them with a ring if you so please. As a result, we could add a few new shapes. For instance, we could add some spiral galaxies with different numbers of arms:
But there was more we could do. In particular, we wanted to make a few galaxy shapes that would create some unusual galactic terrain, and some potentially interesting asymmetric starts. For instance, we could make a twist on the two-arm spiral galaxy that has very thick, slightly winding arms, resembling a bar galaxy:
Credit: NASA and STScI
Yes, those two halves are connected by a single hyperlane A ring galaxy and a spiral galaxy could be combined to make a cartwheel galaxy:
Credit: NASA, ESA, CSA, STScI and Webb ERO Production Team
Alternatively, we could omit an arm of a 4-arm spiral, and create something we dubbed the hedgehog:
Finally, in a bout of silliness, I also added the starburst, which is a shape that is actually impossible in reality, but might create some interesting gameplay:
Another thing related to galaxy shapes which weve looked at a bit is static galaxies. This is the system modders use to generate a specific preset galaxy, for instance certain total conversion mods. It turns out that the code for generating a random galaxy (i.e. those we usually generate) and that used for static galaxies differ completely, which specifically became an issue during galaxy generation: the two different versions of the code probably did the same thing once upon a time, but inevitably the code has diverged, so modders reported numerous issues with static galaxies. For instance, it was not possible to use secondary species, and there were a number of small issues with starting setups, such as starbases and sectors not automatically spawning. It also wouldnt call the empire_init on_actions, which would cause further divergence from how things would be if a regular galaxy was generated. Anyway, I probably shouldnt talk about this, since the code has not yet even been approved, but I tried to combine as much of the random galaxy and static galaxy code as possible, resolving a fair few issues with the latter, and hopefully making it more robust in the future. (Also, on the prompting of a modder, I added the ability to specify "effect = { }" in a particular systems entry in a static galaxy. And you should now be able to create several static galaxy maps rather than being limited to one). So, basically, for players who enjoy mods that create bespoke galaxies, you will probably be able to get access to much improved versions of these in the near future. (Can't promise it will definitely be in the next patch).
[ 2022-09-29 08:00:08 CET ] [ Original post ]
written by CheerfulGoth and Caligula Caesar
Hello there!
Im CheerfulGoth, a content designer on Stellaris, and today Im excited to share the design process behind the Tiyanki Grave Mound that was added in the Fornax patch!
Concept and Planning
To allow new content designers to familiarize themselves with all aspects of the game, they are usually assigned some onboarding tasks. The Tiyanki Graveyard was a combination of two such tasks: designing a unique solar system with new ships on patrol, and creating an arc site. Stellaris already includes a massive amount of content, and one of the hardest things as a new content designer is to avoid retelling stories. I decided to focus on space critters, because they have relatively few events associated with them, and most of these havent been touched in years. We already have a system where Tiyanki are born, so why not show where they die? Something that struck me while rereading all our Tiyanki-related content was that killing them allows you to research the Regenerative Hull Tissue, but their superior healing abilities dont have any narrative impact. This gave me the idea of a sort of elephant graveyard full of wriggling corpses that dont stop growing even if theyre dead. After getting the main concept approved, it was time to build the event chain. The onboarding tasks required me to create new ship types, so I decided to make some static Tiyanki gravekeepers protecting the arc site. I knew some players would never hurt a Tiyanki, though, and I wanted to keep the content accessible to different playstyles. A special project was thus added, allowing pacifist players to lure away the gravekeepers without hurting them.
Prototype
Communication between different departments is crucial when working on a team. I wanted my ball of corpses to look the part, but the art team was busy working on Toxoids so instead of requesting art assets for a minor onboarding task, I experimented with what was already in the game. After all, we already have a perfectly good Tiyanki Matriarch corpse. Why not scale it down and spawn a couple copies around a planet, wrapping it in tentacles? My first attempts, however, produced... Unintended results:
Space in Stellaris is actually flat: all planets and spaceships are bound to an invisible 2D plane. We can offset the coordinate of ambient objects (decorations) to make them appear above or below the plane, but we usually use this kind of trick only for temporary VFX, like when a planet cracker hovers over a planet. Figuring out how to wrap a planet in corpses took a bit of experimentation, but eventually we got there!
Implementation
Once implemented in-game, the content gets tested for bugs by QA. While testing, we noticed a curious issue: the graveyard looked fine when you encountered it the first time:
But if you closed the system view and opened it again...
...It ballooned into a fleshy monstrosity whose size rivaled the Sun! The cause, as fellow Content Designer Caligula Caesar discovered, turned out to be an obscure bug that resulted in offset decorations being incorrectly sized during initialization.. As mentioned above, we usually use offset for temporary VFX, so this bug has never been noticed since release!
Final Art
At this point, the art department stared at my work in mild horror and decided it was best to create an unique asset for it. The graveyard looked fine, but smashing ambient objects together is not standard practice and could potentially create performance issues. Nevertheless, the horrible mishmash provided a useful reference for the concept art and the final model:
Notes for modders
My graveyard was dismantled, but I hope it will inspire you to create even worse abominations. Heres a handy summary on how to offset ambient objects. When spawning an event object, make sure sure to use use_3d_location = yes to be able to adjust its position.
Command
entity_offset
Offsets an object on the horizontal axis (left or right).
Takes both fixed values or a min/max amount (useful for randomly spawning multiple objects in a while block).
Example
create_ambient_object = {
while = {
count = 10
create_ambient_object = {
type = "small_dead_tiyanki_object"
use_3d_location = yes
entity_offset = { min = -10 max = 10 }
location = this
}
}
}
Example Result
Objects spawned with random horizontal offset.
Command
entity_offset_height
Offsets an object on the vertical axis (up or down).
Example
Takes both fixed values or a min/max amount (useful for randomly spawning multiple objects in a while block).create_ambient_object = {
while = {
count = 10
create_ambient_object = {
type = "small_dead_tiyanki_object"
use_3d_location = yes
entity_offset_height = { min = -10 max = 10 }
location = this
}
}
}
Example Result
Objects spawned with random vertical offset.
Command
entity_offset_angle
Offsets the angle at which the object is spawned in relationship to its spawning point. Think of a clock: the base entity is the pivot, while the new objects are spawned around it.
Example
Takes both fixed values or a min/max amount (useful for randomly spawning multiple objects in a while block).create_ambient_object = {
while = {
count = 10
create_ambient_object = {
type = "small_dead_tiyanki_object"
use_3d_location = yes
entity_offset_angle = { min = 0 max = 360 }
location = this
}
}
}
Objects spawned with random angles.
Command
entity_face_object
Automatically rotates the object towards the target.
Scope: planet, fleet, star, this.
Example
create_ambient_object = {
type = "small_dead_tiyanki_object"
use_3d_location = yes
entity_face_object = star
}
Example Result
Left group is set to face the star (not in the screen). Second group is set to face this (the planet they spawned from).
Command
base_angle_towards
Determines the default angle of the object in relationship to the base entity.
Scope: planet, fleet, star, this.
Example
create_ambient_object = {
type = "small_dead_tiyanki_object"
use_3d_location = yes
base_angle_towards = this
}
Example Result
Both Tiyankis have an angle of 0. One is set to base_angle_towards = star, and is aligned to its "face" like the planets. The second is set to base_angle_towards = this, where this is a planet with an angle of 180 No tiyankis were harmed in the making of this dev diary. ------- But that is not all! For I, Caligula Caesar, have something quite cool to show off, namely some experimentations with galaxy shapes. We havent made any changes to the available galaxy shapes for I think since release, unless I am mistaken. Anyway, we wanted to spice things up a bit, and took a look at whether we could persuade our galaxy generator to create new shapes. First we taught it a few new tricks. Now you can define a new galaxy in script and feed parameters into it, and it will be available to select in the galaxy generation screen. This means that when modders inevitably decide we didnt go far enough in this dev diary, they can make their own combinations without replacing existing ones. It now also doesnt determine its behaviour based on what the galaxy shape is called. With this I mean, in the current version the 2-spiral galaxy will always have two spiral arms, and you can merely tweak how thick and twisting these arms are - this is no longer the case. Now you can freely define how many arms you wish to have, and also combine them with a ring if you so please. As a result, we could add a few new shapes. For instance, we could add some spiral galaxies with different numbers of arms:
But there was more we could do. In particular, we wanted to make a few galaxy shapes that would create some unusual galactic terrain, and some potentially interesting asymmetric starts. For instance, we could make a twist on the two-arm spiral galaxy that has very thick, slightly winding arms, resembling a bar galaxy:
Credit: NASA and STScI
Yes, those two halves are connected by a single hyperlane A ring galaxy and a spiral galaxy could be combined to make a cartwheel galaxy:
Credit: NASA, ESA, CSA, STScI and Webb ERO Production Team
Alternatively, we could omit an arm of a 4-arm spiral, and create something we dubbed the hedgehog:
Finally, in a bout of silliness, I also added the starburst, which is a shape that is actually impossible in reality, but might create some interesting gameplay:
Another thing related to galaxy shapes which weve looked at a bit is static galaxies. This is the system modders use to generate a specific preset galaxy, for instance certain total conversion mods. It turns out that the code for generating a random galaxy (i.e. those we usually generate) and that used for static galaxies differ completely, which specifically became an issue during galaxy generation: the two different versions of the code probably did the same thing once upon a time, but inevitably the code has diverged, so modders reported numerous issues with static galaxies. For instance, it was not possible to use secondary species, and there were a number of small issues with starting setups, such as starbases and sectors not automatically spawning. It also wouldnt call the empire_init on_actions, which would cause further divergence from how things would be if a regular galaxy was generated. Anyway, I probably shouldnt talk about this, since the code has not yet even been approved, but I tried to combine as much of the random galaxy and static galaxy code as possible, resolving a fair few issues with the latter, and hopefully making it more robust in the future. (Also, on the prompting of a modder, I added the ability to specify "effect = { }" in a particular systems entry in a static galaxy. And you should now be able to create several static galaxy maps rather than being limited to one). So, basically, for players who enjoy mods that create bespoke galaxies, you will probably be able to get access to much improved versions of these in the near future. (Can't promise it will definitely be in the next patch).
Stellaris
Paradox Development Studio
Paradox Interactive
2016-05-09
Strategy Simulation Singleplayer Multiplayer
GameBillet
8.91 /
€
Game News Posts 537
🎹🖱️Keyboard + Mouse
Very Positive
(119848 reviews)
https://www.stellaris.com/
https://store.steampowered.com/app/281990 
The Game includes VR Support
Linux [153.28 M]
Stellaris: Infinite Frontiers eBook
Stellaris: Plantoids Species Pack
Stellaris: Leviathans Story Pack
Stellaris: Utopia
Stellaris: Nova Edition Upgrade Pack
Stellaris: Galaxy Edition Upgrade Pack
Stellaris: Anniversary Portraits
Stellaris: Synthetic Dawn
Stellaris: Apocalypse
Stellaris: Humanoids Species Pack
Stellaris: Distant Stars Story Pack
Stellaris: MegaCorp
Stellaris: Ancient Relics Story Pack
Stellaris: Lithoids Species Pack
Stellaris: Federations
Stellaris: Necroids Species Pack
Stellaris: Nemesis
Stellaris: Aquatics Species Pack
Stellaris: Overlord
Stellaris: Toxoids Species Pack
Stellaris: First Contact Story Pack
Stellaris: Galactic Paragons
Stellaris: Astral Planes
Stellaris: Expansion Subscription
Stellaris: The Machine Age
Stellaris: Cosmic Storms
Stellaris: Grand Archive
Stellaris: Rick the Cube Species Portrait
Stellaris: Season 08 - Expansion Pass
Explore a vast galaxy full of wonder! Paradox Development Studio, makers of the Crusader Kings and Europa Universalis series presents Stellaris, an evolution of the grand strategy genre with space exploration at its core.
Featuring deep strategic gameplay, a rich and enormously diverse selection of alien races and emergent storytelling, Stellaris has engaging challenging gameplay that rewards interstellar exploration as you traverse, discover, interact and learn more about the multitude of species you will encounter during your travels.
Etch your name across the cosmos by forging a galactic empire; colonizing remote planets and integrating alien civilizations. Will you expand through war alone or walk the path of diplomacy to achieve your goals?
Main Feature
Featuring deep strategic gameplay, a rich and enormously diverse selection of alien races and emergent storytelling, Stellaris has engaging challenging gameplay that rewards interstellar exploration as you traverse, discover, interact and learn more about the multitude of species you will encounter during your travels.
Etch your name across the cosmos by forging a galactic empire; colonizing remote planets and integrating alien civilizations. Will you expand through war alone or walk the path of diplomacy to achieve your goals?
Main Feature
- Deep & Varied Exploration.
- Enormous procedural galaxies, containing thousands of planets.
- Explore Anomalies with your heroic Scientist leaders.
- Infinitely varied races through customization and procedural generation.
- Advanced Diplomacy system worthy of a Grand Strategy Game.
- Ship Designer based on a vast array of technologies.
- Stunning space visuals.
MINIMAL SETUP
- OS: Ubuntu 20.04 x64
- Processor: Intel iCore i3-530 or AMD FX-6350Memory: 4 GB RAM
- Memory: 4 GB RAM
- Graphics: Nvidia GeForce GTX 460 or AMD ATI Radeon HD 5870 (1GB VRAM). or AMD Radeon RX Vega 11 or Intel HD Graphics 4600Network: Broadband Internet connection
- Storage: 12 GB available space
- OS: Ubuntu 20.04 x64
- Processor: Intel iCore i5-3570K or AMD Ryzen 5 2400GMemory: 4 GB RAM
- Memory: 4 GB RAM
- Graphics: Nvidia GeForce GTX 560 Ti (1GB VRAM) or AMD Radeon R7 370 (2 GB VRAM)Network: Broadband Internet connection
- Storage: 12 GB available space
GAMEBILLET
[ 5951 ]
GAMERSGATE
[ 3154 ]
FANATICAL BUNDLES
HUMBLE BUNDLES
by buying games/dlcs from affiliate links you are supporting tuxDB