Don't know what Nth Society is? Check out this post first.
Modular design in software is borrowed from mass production design. If you want to make a lot of something complex the best way we know of is to create it in smaller parts. These parts can be individually tested, have their own specialist machines and designers.
When we create software we're similarly making something to be mass produced. The replication process is a lot easier, as it's information. But in today's world of seamless technological integration it's important to remember that there's a lot going on under the hood. We still need to be wise in our designs and strive for maximum interoperability.
Modulular design in Nth Society game
For ultimate flexibility, I am working on the idea that every attribute, ability and feature will be implemented as a module.
Example, player modules
Here is a short list I created off the top of my head to give you an idea, in no particular order:
- childhood
- old age
- hunger
- thirst
- race
- sex (male / female)
- sexuality (activity)
- disease
You can see how already this could get quite contentious. Will everyone want to play in world where there is sexuality? Is it important to gameplay, or just a distraction? What about disease?
Some of the modules I see as fundamental to the idea, such as childhood, old age, hunger, thirst. Others might be important, like race and sex. Possible disease too.
And sexuality would certainly add a level of realism some players may think is essential. However it wouldn't be considered by most to be suitable for children to play, so it makes sense to have some modules optional.
The best idea so far in my opinion is to have these modules optional only at the time a world is generated. They are then locked to be on or off.
Maybe people will want to add more crazy modules, stuff to do with aliens, hobbits, or whatever to expand the world. That is not in my initial interest but by using modular design the game is infinitely extensible.
Pitfalls of modular design
Just making everything a module doesn't solve all your problems. In fact it can create a difficult system to manage.
As I see there are two contrasting pulls in software design: generalisation and simplicity.
For example some people thing that you should never copy/paste a bit of code from one part of a program to another. That means that there should be maximal reuse and generality. This is a sound approach, but being dogmatic with it can lead you to have to encompass too many edge cases and conditions.
Case in point: Project Ara
About a year and a half ago Google shelved it's much hyped modular smartphone product, codenamed Project Ara. Imagine you could switch out the camera for a higher power one if you needed it without replacing your phone? Only buying the parts you need for your own requirements, upgrading any time you want.
Fortune magazine had the best quote I could find summarizing why they shut it down:
[...] separating a phone into components threatened to slow communication between them, while also sapping battery life and making phones more expensive.
This boils down to a loss of efficiency due to over-generality. Critically also, the last point indicates cost. There's always and additional cost to generalization. In software this comes down to development time. It usually takes longer to make modules general, and even longer to make a general modules framework, but you do if you expect it to pay off in the long run. If there is no long run, if the project scope is small, hyper-generalization may not be needed.
The product itself looks so cool, and anyone who played with Lego as a child (or older... 😅) would have been attracted to high end build your own aesthetics.
The project was not only axed for direct reasons, there was also a restructuring of "out there" projects and moonshots at the time, with some top teir personale leaving also. This also shows us that more difficult projects are more stressful on teams and the most attractive to quit.
TLDR; I take the lesson here to be - stay realistic. Do no more than is necessary.
The argument for modularity in Nth Society
I've already stated this, but a top reason is customization. You have to ask, is this kind of customization going to be needed. I think think the answer is yes. Why?
Well because Nth Society is not just any game but an active experiment. Remember the founding objective:
To design, develop and play a game which explores life in a voluntary society.
The key word here is "explores". One explorative idea put forward is experimenting with which modules to use. Do we want players to have a race for example? What are we testing by including it? Will it be a positive or negative experience?
We can only know by trail and error. And if I were to guess I still think that peoples' preference will also have a role to play in this. I do not presume that every Nth Society world will test and enjoy the same things.
Finally
We are going to need game designers to detail the specs for these modules, first coming up with what can and should be separated into modules.
If you're interested in joining in the live conversation on this and other topics, hit me up on the comments and / or join the Discord server.
Thanks for reading! 😎
The opposite of modularity would probably be fluidity, and I can see a couple of concepts/modules that you mentioned in the post as being more fluid than modular in nature.
For example, age is an increasing number that indicates a person's accumulated experiences in life, but putting a bracket on an age makes sense when it is marked by physical changes (e.g. puberty for teenagers) but doesn't really make sense when it is an arbitrary decision not related to a definable quality (e.g. age of consent, voting age, etc.).
This might also change as society changes, such as the example of gender traditionally seen as male/female while the modern day interpretation is seen as a more fluid spectrum spanning many categories (LGBTI or something like that).
However, what I think is important with theses 'characteristics' or traits is that they are the basis by which groups or categories can be created because human interactions are largely based on group dynamics/behaviour and if it was a homogeneous mixture of people without these categories then we would probably behave in a very different way compared to how we normally would in the real world.
There are definitely some very interesting ideas coming out of this project, and I look forward to further developments.
I see what you mean here from the context from the rest of your comment, but from a software engineering perspective the opposite of modularity is monolithicness. That is the difference between a lot of components you plug together to make the thing (like Project Ara) vs one thing that's just the thing (every other normal phone).
Within a module the values can be fluid, so there's no reason they need to be in opposition. For example, you can think of age as a whole number (integer, or natural number) value, i.e. 1, 2, 3, etc., or you can think of it as a decimal (rational number) like 1.1, 1.15, 5.367, etc. There is fluidity there.
Similarly with sex. While gender is how we often think about sex, it is distinct from biological sex. That's not to say they are independent, on the contrary, gender is highly correlated with sex, but I make the difference between the two. It depends on the level of the simulation, and the biological understand, of whether or not to go into any detail in the male / female dichotomy. There is such as think as "intersexed" people, but I haven't had any discussions about that yet.
This I agree with, and it's the rationale for having any of these differences at all.
I did study software engineering but my interpretation of modularity in design tends to focus on the interoperability or reusability (e.g. the plug & play concept) rather than comparing it to the concept of monolithicness. I say this because even a phone is made up of different components, and the manufacturer can design the phone so that parts are replaceable (e.g. upgrade a camera), but I think that's getting too much into semantics and perspectives rather than trying to help define the design strategy.
I wrote an article a while back about the concept of identity, and I am curious as to if we might be able to explore this in some way as well on n-th society. I talked about there being different components to a person's identity, and what happens when someone loses their memory so that their identity is now made up of what is distributed through their interaction with a community:
https://steemit.com/makesteemitgreat-again/@plushzilla/the-steemian-identity-crisis-what-a-picture-of-you-holding-up-a-card-really-means
It made me wonder whether it would be an interesting game concept to have everyone interact with each other in this simulation, then for everyone to lose their memory of themselves and try to discover it through interaction with other people to piece it back together.
Then you know where I'm coming from with those distinctions even if you want to extend the idea of modularity to concepts of fluidity. Btw I'd like to hear more on that if you want to write about it.
That's an interesting idea about memory loss in the game, though not one I would consider core. How would you imagine it working?
I haven't thought about how the concepts of modules within the game can create the fluidity that creates the variations and complexity of the characters and group dynamics... those were just thoughts triggered by your post actually. I suppose in the process of designing and playing the game these ideas will probably become clearer but I am still trying to get my head around it :p
And the point about memory loss, it was just an extension of the idea of how identity is used and maintained within an online/digital community. The idea of a memory loss event is a potential way to explore what our identities means. It was something I thought deeply about after watching a documentary about a man who lost his memory and had to reinvent an identity for himself (which was somewhat different from his former identity). The documentary is titled "Unknow White Male": http://www.imdb.com/title/tt0436864/
I think we will probably have the opposite problem than memory loss - memory which spans lifetimes, kind of like being able to remember your past lives. I do see that as a genuine problem and I wonder what potential tools there are to offset this.
I think if a person immerses themselves into the character (e.g. RPG games or The Sims) then they tend to only use the information and environment that is available to them to 'play' the character. I guess it depends on how the lifecycle ends (since you have hinted at different stages of life and disease) and how the game resets or starts over again (i.e. if you can 'continue' or have to restart). These are interesting questions to consider but hopefully we get more discussions and ideas about it :)
You're hitting the nail on the head with this.
The first thought I had was crime. Raiders, ruffians, home invasions, courts, armies, etc...
Extensibility and modularity would be essential to fully consider how such matters would play out.
I think failing to make plug ins for such matters would cripple the ability of the game to test social mechanisms.
Yes, absolutely, extensibility also means we don't need to know everything up front, which we don't 😅
You know I don't mean to sound just contrary here, but these are good example of the exact kinds of things that modules are not needed for!
All of those things are a product of human organization, all of which can happen without any specific support, bar the ability to write and keep records, build buildings, make weapons etc.
However it does touch on an idea that I want to share with the community and will do in more detail soon, but here's the gist: complex starting conditions for a new world. So instead of the usual thing of people just spawning in a random location, or a very simple location like a little three shack village, that people spend time to develop a scenario before gameplay actually starts.
I can't discuss this idea with you more on Discord, I don't want to think outloud to might right now, but what do you think?
Well, to take the last first, I reckon that's perhaps something that some players will deeply enjoy. One of the things folks like most about the MMOs is collecting a suite of gear that are individualized, from their boots of sorrow to their weeping cap. Designing initial conditions would maximize such individualization.
As to modularity of the level and degree of brigandry, I suppose it is an example of how your idea for a brief essay regarding how gameplay worked would have better informed me. This worked just fine, I guess =p
Indeed, there's since things that are unclear, but a primary concept is game support for the material only, as far as that's possible. Extrapolate everything else from there.
Thanks 😄
excellent gamedev post. shared 😇
Thanks!