1. Streets of Fortuna
  2. News

Streets of Fortuna News

Devlog #2 - NPC Behaviours & Simulation



Fortuna Citizens!

Lead Designer Brent is back with our second Streets of Fortuna devlog, this time about programming NPC behaviours. Fortuna is a city that has simulated people who have their own schedules, behaviours and lives, regardless if the player is present or not. We can currently support 1000 NPCs at a time, with that number hopefully growing to 3000 as we have more content and buildings to support them. When playing Streets of Fortuna, it will be important to get to know people in the city no matter what playstyle you choose. A key part of being a thief for example, would be to learn the schedule of a rich merchant and find access to their store-rooms in the right moment.

In the devlog, you’ll see a play-by-play of two kinds of NPC behaviours with Work-in-progress gameplay footage. Brent also shows off some behind the scenes footage with the Behaviour Tree plugin to show exactly how we are tying it all together. Watch the full devlog on Youtube:

[previewyoutube][/previewyoutube]

We are looking forward to getting the whole city full of interesting characters and seeing what kind of interactions they can have, with you and with each other.



Thank you everyone for the reception to the last devlog. We hope to continue to make these videos regularly as much as we can to give you a peek behind the curtain of development. What are your thoughts about NPC in Street of Fortuna? What kind of theiving trickery do you hope will be in the game? Let us know in the comments or on the Kitfox Discord!

-Alexandra, Brent and the rest of the Streets of Fortuna team

Devlog #1 - First in-engine gameplay (WIP) 🏛 Streets of Fortuna Dev Update



Attention Fortuna Citizens!

We are thrilled to share our first video devlog hosted by Lead Designer Brent Ellison. In this video, Brent shows off the first in-engine work-in-progress gameplay footage. You’ll see the player character moving around a giant generated city, various interactions with objects and NPCs and some of the tools the team has been using to craft buildings and objects. He also outlines the goals of the project and the development philosophy that will shape all future updates. Please keep in mind that all footage is captured from our internal builds and the editor which means there’s unfinished early/prototype art, UI and functionality. Watch the full video on Youtube:

[previewyoutube][/previewyoutube]


The context menu will contain a huge selection of verbs for most objects so you can manipulate the world as you like. At the start of the game you may not know what you need to do to succeed, but you should be able to figure out how to do something relatively easily just by messing about with the context menu or dragging items around.



Now we’re in the Generation phase where we’re procedurally creating the city, its citizens and all of the content. While we had the prototype to look back on for the core design, the rules of Generation are all new so there’s a lot of discovery and back and forth to do here but it’s going very well.



Let us know what you'd like to see in the next video devlog, head over to our Discord and let us know! If you'd like to receive these updates via email, sign up for the Streets of Fortuna newsletter here.

See you in the next one,

Alexandra, Brent and the rest of the Streets of Fortuna team

Constructing a Capital of Late Antiquity 🏛 Streets of Fortuna Devlog



One of the most important considerations on Streets of Fortuna is the creation of editor tools for designers and artists. With hundreds of locations and tens of thousands of objects it takes a great deal of variety for the city to appear believable and compelling so we need to quickly and easily be able to create A LOT of stuff.

In fact, the Item Tool was one of the very first things implemented in the project - it was through the process of creating different types of Items in the editor, even before they could do anything in-game, that we worked out many of the details of how we should simulate the gameworld.

Whenever we start a new feature that requires authoring we really dig deep to figure out how to make a tool as user-friendly and flexible as possible because we anticipate using it for years to come.



Almost anything you see in the game besides walls, floors and characters is a simulated item, even the furniture and rugs. This is because they all need data even if it’s just for the purpose of generating an object that matches the economics or tastes of their owner. And since every object on a shelf or in a cabinet can be picked up and manipulated that’s a lot of items to create.

What’s more, we expect Items to be able to be damaged, transformed, mixed together and be able to be changed by any number of systems. These aren’t special minigame interfaces that only use a limited number of objects, but actions and processes that can take place through the same game interface such as our recipe-less cooking and crafting.

Behold this chicken transformed into… CHOPPED CHICKEN

But we’re not simulating the game down to the literal atom so we’ve got to draw the line somewhere and come up with our own definition of this game’s physical world. To that end we’ve defined Items as having a “Form” and a Composition made up of one or more “Substances”. Each of these has their own tooling pipeline as part of the process of creating the objects that appear in the game.

A Form defines the basic appearance of an object and many aspects of its use, size, etc. Most of the actions a character can perform on an object are based on its Form. A Form might be a Vessel that can store a certain amount of liquid, or it might be a Weapon with an edge to apply Slashing Damage. Or maybe it’s a well-crafted statue of a mythological hero that’s worth a great many bezants!

Form data for a small urn. These are intended to use Ceramic substances but there may be a number of different types of clay with their own properties. Furthermore, pots such as these can be painted in dynamic colours (in case an NPC loves blue for example).

Substance affects other properties, such as how an item receives damage or deals it (regardless of whether it’s part of a Weapon or not). Some substances are Edible, with various flavours and nutrition values attached. And most objects break down into base Substance items when they’re destroyed.

In most cases an object has only one Substance, but metals, foods and liquids can potentially have more than one in their Composition. Objects made of metal alloys display their colour as an aggregate of the various metals involved and properties such as hardness and value change significantly. Meanwhile food compositions have a significantly more complicated system for determining their appearance and flavours combine and change in a variety of ways.

Substance data for a Pear. There is also a Pear Form, but since an object can be chopped up, turned into a paste or undertake various other transformations it’s important that these properties remain. By the way, a “Constant” is a value that can be found somewhere else in the project to make it easier for us to balance and maintain the many, many items in the game. These will be exposed to modders, naturally.

Finally, the Form and Composition must be combined. Objects can be created dynamically during gameplay of course, but we must author many of them for the purposes of the initial city generation. Most are “Derivative Items” where we can identify one composition that makes up the majority of the object but there are also “Complex Items” for those objects that are clearly made up of multiple disparate parts (beds, forges, fountains, etc).

Did you know Bronze is a combination of Copper and 12-12.5% Tin? Thank you Wikipedia!



Buildings in Fortuna have hand-authored geometry but procedural contents and residents. We decided on this method because making locations in a 3d game is a significant challenge and we want them to both look good and be optimized for performance. But this means we need to be able to make them as quickly as possible to have enough variety to fill out a city.

Locations are constructed with tiles. We’ve put A LOT of work into this process to make it efficient with a ton of customization options. The wealthy elite of Rome & Constantinople decorated every room of their homes differently and that needs to be reflected here. Part of our pipeline is something called AutoTiles 3D and it’s been a big help in crafting the basic building shapes.

Making a location is easy peasy thanks to the not-so-easy efforts of tooling and tile creation.

Once the building is physically complete, we must author the Properties that determine where people can work, live or attend for some other purpose (as a patron, worshipper, etc). Properties are used to determine what people will be generated as well as to populate their schedules and determine Ownership rules for the items contained within.

Any given Property has a number of different potential uses that we can author. Obviously the space determines much of what it could be sued for but a residence could potentially be set for multiple low wealth citizens vs one person of mid wealth, or a storefront could be any number of different shops, smiths, etc. These can be selected randomly or influenced by other factors such as district or overall wealth of the neighborhood.

The first floor of an insula with different types of properties. Red are residences, yellow are shops/artisans, purple is a taverna, the green on the bottom is a stall, and blue is the common area (spreads across multiple floors).

Finally we place the Sets that will determine what Objects ultimately get generated in the world. An Object Set is a collection of nested collections of objects with the potential for a huge amount of variety. There are many possibilities within each Set, down to the layout of a cluster of bottles on a shelf.

These are selected in accordance with the selected Property Type but also influenced by the owner/resident of the property where an Object Set is placed (if any). For example, a Blacksmith is more likely to have fine works of Iron around their home, while a person with the “Love Cats” trait might select objects whose Form has a “Cat” tag attached (like a kitty-shaped oil lamp).

Various potential layouts for a 2.5x.2.5 single-room blacksmith. There are a few placeholder objects in the mix and of course the possibilities will grow significantly over development.

Obviously there are many other tools that we use to construct dialog, NPC behaviours, perks and more but all of them serve the same purpose: to maximize the game’s potential for delivering on the ambitious concept of exploring an urban center modelled on the ancient world. Next newsletter we’re going to go into detail about insulae: the Roman & Byzantine style of apartment buildings that most citizens of Fortuna reside in. And if this sparks any other thoughts or questions for you, head over to our Discord and let us know!

See you in the next one!

Brent

Why Constantinople? 🏛 Streets of Fortuna Devlog

We often get asked “Why Constantinople 500 AD?”, either because people aren’t familiar with this uniquely fascinating moment in history, or because people ARE familiar and wonder which aspects are relevant to Streets of Fortuna. A quick follow-up question is often “So how historical ARE you?”, which is trickier to answer but we’ll give it a try.



In case you’re not familiar with the ancient city, Constantinople around 500 AD was the capital of the Roman Empire, which historians later decided to call “Byzantium” to distinguish it from other periods of Roman history, and to more easily discuss its unique blend of cultures and contribution to culture. It’s the home of the famous Hagia Sophia, and a classic “east-meets-west” melting pot in history. There are literally thousands of books written about it, and many feature its particularly famous rags-to-riches emperor Justinian (reigning 527 - 565) and his equally legendary empress Theodora. If you’re looking for something easy to read to start, the Sarantine Mosaic fantasy duology by Guy Gavriel Kay is a fun pair of books. If you want something more factual, my next recommendation would be Theodora and the Emperor by Harold Lamb, which is relatively strict in its sources, but much easier to read than more academic texts.



We chose Constantinople 500 AD as our primary reference because it seemed like the most interesting sandbox in which to live your other life, due to its:

- being one of the main centers of trade, culture, and wealth in the world
- newly-revamped systems of law and centralized government
- larger-than-life leaders (Justinian, Theodora, Belisarius, John the Cappadocian, etc)
- several major active religions, with Catholicism relatively fresh and fractious
- many records of the time, which are flawed but more usable than pure hearsay/legend
- latter-day Eastern Rome is relatable, dynamic, and dramatic, as an empire mid-collapse

In short, knowing that we wanted to generate and simulate a city that was uniquely suited to be a criminal or a religious leader in, or both… Constantinople stood out among all the options.



Criminal thugs or keepers of the peace? Governments throughout history have found organized gangs useful in enforcing the status quo.

For the past few years now, I’ve been digging into various sources for inspiration and scholarship on the subject, and I think it could fascinate me for the rest of my life. The more I learn about what we now call “Byzantium”, the more I want to learn.



We’ve been consulting with 3 published Byzantine scholars since 2022, with lectures on different topics and email exchanges or calls for more specific clarifications. I found them via my Twitter network recommendations, with each ending up from a different country (one here in Montreal, one in the US and one in the UK), and each with different special interests and reference materials.

One of them, Dr. Lindsay Corbett volunteered:

“When I heard Kitfox was looking for scholars to collaborate with I jumped at the chance. It is the ultimate ambition for the historian to make the past come alive… [Other games] tend to focus on the Byzantine military and its exploits [while Fortuna] addresses a greater multitude of social perspectives, especially from that of the everyday citizen - a social stratigraphy even Byzantinists are still striving to better understand. It also offers a close look at Constantinople as a microcosm, exploring the interwoven complexities that made the city function, driven by its lower-class citizens, so often marginalized in history.”

Another scholar, Dr. Lauren Wainwright added that Kitfox “had so many interesting questions about the everyday life of people in sixth-century Constantinople that I'd never even considered before.” and Matthew Parker chimed in that he hopes “early medieval Byzantium will finally get the representation it deserves”. We hope so too!

In 2022, the scholars gave us a series of lectures, about architecture, fashion, urban planning, economy, etc. And just recently when we showed Dr. Corbett some character concept art with different costumes for different wealth levels, Lindsay pointed out “textiles rarely pictured vegetal designs in the roundels, but it was very very common to see animals”, so not just pointing out things that ‘stick out’ from a Constantinople flavor perspective, but also suggesting solid improvements.



As much of late antiquity Constantinople still retains a Roman flavor we may occasionally cherry pick elements from later in its history. This elite guard armour is more typical of the 10th century but we’re going with it because it’s very distinctly Byzantine.

Ultimately, Fortuna is a fictional city, but we want it to feel lived-in and genuinely Byzantine. I see historical Constantinople as the equivalent of a lore bible, filled with references we can use whenever we’re not sure how to move forward, but which we’re also allowed to change.

Still, we bend “reality” to suit the needs of gameplay and production, and to create the experience we want. Our city, for example, probably will have higher-wealth residences on higher floors to challenge thieves even though it was often the opposite in reality (street-level apartments were much more expensive due to the convenience).



In this case someone has conveniently placed a ladder right where you need it but normally you would be required to sneak through the rest of the house to get to the goods on the second story.

Obviously the details of the implementation are subject to change as gameplay develops. If you have questions about the setting or anything else (Istanbul travel tips?) feel free to post them here or in the Discord! Next time we’ll turn our attention to the megasim side with a look into the tools being used to procedurally generate locations and simulate the world down to the composition of alloys.

See you there,

Tanya

Streets of Fortuna is a chaotic The Sims-like in an ambitious open-world city sandbox, made with the help of Dwarf Fortress creators

For me, sandbox games are never better when there’s an inherent chaos about to erupt at any given second. In a literal sandbox that might be anything from a kid burying a freshly-laid turd like a mischievous cat ready to be stepped on by an unsuspecting trespasser, gathering handfuls of grit to lob in a another kids’ eyes or swallowing a bunch of sand (hopefully turd-free) in pursuit of alchemising diamonds in their stomach. There don’t seem to be turds of any kind in upcoming sandbox RPG Streets of Fortuna, but that’s about the only thing that this ambitious “megasim” appears to be missing in its sprawling go-anywhere, do-anything open world.


Read more