Ahoy mateys!
Another month has come to an end and here we are a touch late on our news post plans. Fortunately, the team closed up the studio for a nice week off to rest and recharge, but unfortunately that threw the news post schedule a bit off balance. But were back, this month talking to Lucien Baldacchino, Captain and lead programmer, about both his work on Orphan Age, as well as whats under the hood of the game:
What is your role and what do you do at Studio Black Flag on Orphan Age?
Im the lead programmer, which means I do programming, but also manage all of the programming work that is to be done by the team. This involves splitting the work among the programming team, keeping track of progress, estimating time, and discussing with the designers the cost of implementing featurescost being in time and risk, not money.
Whats under Orphan Ages hood? What engine and tech are we working with?
Were working with Unity. We were on the 2021 version, but recently upgraded to 2023, which wasnt an easy process; changing the major version of the engine while a project is ongoing is never an easy task. On top of that, theres is some sort of homebrewed engine within an engine, called OrphanEngine, and it manages all of the dataflow and does a lot of heavy lifting regarding asset and resource management. It makes making the game easier, and simplifies dev work. Were not exactly making the game itself in Unity, but rather a suite of tools that are then used to make Orphan Age. Most of whats visible and possible to do in the game hasnt been programmed, but implemented using those tools: actions, interactables, quests, dialogues, etc.
From a technical standpoint, what do you find most interesting about working on the game?
Everything mentioned previously, that most of the work is oriented towards programming and supporting tools. The making of the game from them is then, in theory, just playing around with boxes and dropdown menus to visually program what we want the game to do. Its extremely interesting to work this way, because it means that the game code itself has very little knowledge of the game itself, which makes it extremely scalable, and flexible.
Can you clarify what you mean by the code having little knowledge of the game itself?
There's no specific element of the game present in the game code. For example, the "dismantle" action doesn't exist anywhere but in the game data. It's the same code for all actions, and all actions are exactly the same, as far as the codebase is concerned. It's the same for orphans, for interactable objects, for quests etc. Without data the game is like a "blank slate," and putting in data is akin to a game or level editor. Skyrim's creation kit is what'd be closest to the kind of thing we have.
Where have you found the most difficulty, whether that be implementing features, using certain tools, processes, or whatever else?
The game went through a lot of iterations over the three and a bit years Ive worked on it. Most of the difficulty isnt to add new features, but removing them when they arent needed anymore. Other than that, nothing is ever easy, and everything comes with risks and added bugs and stuff that we need to come back to and patch.
But I dont recall anything in particular being the most difficult. Maybe the character animations? Theyre always very fiddly.
Can you give an overview of what it looks like to take one of our features from concept to implemented? What does that entail for you and our developers?
A game designer first comes up with a concept for a feature and produces a design document. Its then discussed with the production team and myself as the lead programmer to fit it into the production plan; looking at how long will it take, what impact can it have on the game, etc. And the concept is refined from there until it is ready enough to be put in the game. Theres a tech review next from a programmer (most often, me again), that will look at the finished documents and try to point out potential areas of friction and difficulties, etc. Once everything is ready, and validated by everyone, it can be put in the game.
Generally, a single dev is responsible for doing a whole feature. Depending on the size, the work can be split up, but its usually just one. Implementing a feature is usually split into two parts: the making of a framework (adding code needed for the feature to work, but nothing more), which results in the feature being implemented, but not actually visible or available in game. This usually means for the dev to produce a tool, or prepare some data structure, and the integration part which is filling the feature framework in the tool with the relevant data. This is usually done by the designer.
Of course, no two features are alike, and each is often its own special case. Afterwards, a new feature always introduces new bugs that are kept as surprises for later. When they surface, the dev that handled the feature will fix them.
And finally, whats your favorite feature or aspect of the development process of Orphan Age?
Most of what I prefer to have worked on and take the most pride in seeing work are all of the invisible parts of the game. For example, downloading and automatic formatting of game data from google sheets, the entities framework that allows for referencing every functional object in the game or a node editor tool I made from scratch be able to make all our other node based tools with as little boilerplate code as possible. Things of that nature are always the most satisfying.
And there you have it!
For April Im looking at putting out the aforementioned high-level look at our systems, or the highly requested dive into our expedition system and how leaving the base will work. Currently Im writing them both, but theres a few factors Ill need to confirm before being sure which oneor bothwill go out.
As always, if you have any questions, thoughts, comments, you can find us in the comments, on our Discord, or across whatever is left of the collapsing world of social media.
[ 2024-03-29 15:22:07 CET ] [ Original post ]
Orphan Age is a life-sim game where you look after a band of orphans in a cyberpunk warzone.
Set against the backdrop of an unforgiving, neon-lit dystopian warzone, your only battle is the fight for survival, scraping out a living in the face of extreme danger. You will guide a band of orphans, each with their own skills, emotions, strengths, weaknesses and fears, through a dangerous and ever-changing city in a bitter struggle for survival. Constantly balancing risk and reward, you must make the big decisions to ensure the group stays alive. Build up your base, scavenge, craft and explore the city for new recruits, whilst ensuring there are enough supplies to keep going, even when it seems all hope might be lost.
Orphan Age plays as a single player campaign with a lot of replayability inspired by the 4X genre. But there’s a twist! 4X stands for Exploration, Exploitation, Expansion and Extermination. In Orphan Age, we replace Extermination with Empathy, bending the 4X genre into a 4E.
The city of Orphan Age is ever-changing and procedural. You won't find the same building twice. There are high risks and high rewards when you explore. You can find rare resources, Orphans to recruit, but you can also get wounded or worse...
Exploration is similar to the expeditions of Fallout Shelter: procedural text adventures. They offer more complexity though, because you have to make decisive choices while you're out of the orphanage.
Hundreds of resources are left to be scavenged in the Orphanage or in the city. They are classified in 6 categories that allow you to eat, drink, take care of wounds and to craft the items and resources you need to build your Orphanage.
The Orphanage is the place your Orphans call home. The environment surrounding the Orphans greatly affects their moods. Try to keep the rooms lit, warm, furnished and clean for the happiness of all!
There are 38 different items of furniture to build (beds, playgrounds, science mats, campfire, heaters...) and each one can be upgraded.
Research allows you to discover better furniture and improve living conditions for the orphans.
Orphan Age is a deep micro-simulation making each Orphan unique in personality and in gameplay. The Orphans have different ages, set of skills, backgrounds and personality traits. Depending on who they are and how well they are, the Orphans will take different paths anytime there is an issue to be discussed.
INFO:
- Available in Early Access this winter
- For PC, Mac & Linux
- Comes with a companion visual novel Orphan Age: Diaries
- OS: 64 bits
- Processor: Intel Core i3 / AMD Ryzen 3Memory: 4 MB RAM
- Memory: 4 MB RAM
- Graphics: DX11 Compatible
- Storage: 2 MB available space
- OS: 64 bits
- Processor: Intel Core i5 / AMD Ryzen 5Memory: 8 MB RAM
- Memory: 8 MB RAM
- Graphics: DX12 Compatible
- Storage: 4 MB available space
[ 6146 ]
[ 1709 ]