Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: A Fantasy Simulator - Discourse Requested  (Read 2267 times)

BoredVirulence

  • Bay Watcher
    • View Profile
A Fantasy Simulator - Discourse Requested
« on: April 28, 2015, 10:40:33 am »

I am, and have been, working on a game. Most of my work has been conceptual, but I'm beginning the technical leap. What I do need help with is a moderation of ideas, though technical advice isn't unwelcome (though be warned I have a strong opinion). If the wall is too much, skip down to current plans. It would help if you also read at least the background and magic sections. The details provided here are by no means complete, and any discussion is helpful and welcome, but know that its possible that suggestions have already been thought out. This has been my brain child for at least 9 years now.

Background

The game would be best described as a DF for a 1st person RPG. Before I fell in love with DF, I too fell in love with how a complex and deep simulation could provide more flexibility, replay-ability, deeper immersion, and more interesting stories. I could try and list all of the features this game is supposed to have, but it would take too long and I would miss something. A better way is to ask, "If a fantasy world were real, would X exist? Could I do Y?" If the answer to that question is yes, its a feature or use case. So there should be an economy, somewhat realistic physics in combat, ability to start and manage an organization, a somewhat realistic health system, etc.




Technical details

I'll be using OGRE3D for graphics, I'm considering Bullet physics, I'll integrate Lua for scripting much of the game. The engine is under development, so there are still decisions to be made here. It is worth noting that I value graphics least, and features first, and so I'm not aiming for the best graphical support, especially not where it would require a sacrifice in other features.

I plan to implement a client - server relationship for possible co-operative play.  Though the game isn't going to be well balanced (Because life isn't balanced!), so be wary about games with strangers. People who are unpleasant, will unpleasantly drive a dagger in your back, just because.

Gameplay details

The RPG mechanics will heavily focus on 2 things, skills and attributes. Skills are malleable, they change over time, and mostly permanent. Skill rust won't exist, its will be modeled in the change in attributes. Skills are governed by different attributes of the character. There is a skill for generally any action you perform, and there is no penalty in using skills outside of your "role." The game has no notion of "class" or "role," instead the player simply is how they play.

Attributes are either physical or mental. Physical attributes are very malleable, they change with the actions the body performs. A sword fighter would become strong and agile, because those are the attributes that his behavior rewards. A sword fighter would be decent with a mace or warhammer because he would have a similar physical build that supports that skill. Complimentary skills that both roles used would also help, such as armor skill, blocking, dodging. Mental attributes are permanent, set up during character creation. I may learn, and I may learn new study techniques and habits, but my propensity for intellect doesn't change, and if it does it is minuscule. There are also some physical attributes that don't change, height, eye color, body build. I have a small build, no matter how much weight I gain, my frame remains the same, nor could I ever have physical prowess in the extreme.

I do intend on supporting different forms of character creation to automatically create a decent set of stats for a particular role. But I also don't intend on allowing permanent attributes to hinder gameplay, a man of average intelligence (as a mental attribute, intelligence is a poor word, cognition?) would make a fine mage. Less than average attributes would require the user to choose them.

There is no gamey "level." The closest thing is an internal device called the attribute queue. In its simplest implementation it, each newly earned attribute goes in the queue, pushing out the oldest attribute. What this means is that you have a maximum number of "attribute points" at any time. The queue can increase, though the exact mechanism isn't known. In reality it will become more complex so that changes in attributes happen smoothly. The idea is that attributes are earned through activity, so being a swordsman will make your body and attributes slowly converge to that of a swordsman. Changing abruptly to an archer or thief, your muscles will suffer from atrophy, your strength will drain over time. Eventually, you will be suited to being an archer or thief, not a swordsman, though you still have the skills. Physical skills, such as swinging a sword or mining a tunnel, draw heavily on physical attributes.

Magic

I've tried to steer away from magic up until now. My definition of the world, a real fantasy world simulator, is pretty tough on magic. If it exists, it must do anything that magic can do. If you can write a story about a wizard that did anything, a player should be able to do it as well. Therefore I either cripple magic, or I make it the most dangerous and overpowered part of the game. Should someone like the underking, the king of worms, lord voldemort or dumbledore exist? Yes. But now I have to figure out how to try and balance it, and also provide the mechanism for magic to exist. Should spellmaking exist? Should new types of spells be possible? Or are all spells just the discovery and manipulation of pre-programmed spell effects? How should magic work?

My thoughts on balance are only to make people prefer other classes. If magic were real, it would be hard. True masters would study for decades. Mages wouldn't be particularly common, and those that are would only know a handful of spells. So, increases in skill associated with magic should take longer than other skills. There isn't muscle memory to help you out, well, that depends on how you believe spells are cast, I subscribe to the belief that the proper series of thoughts do the trick, movement is just to help channel the physical manifestation when its present. Your body also has fewer physical attributes that can change to help you. There may be one, maybe, but the governing attributes would mostly be permanent, no help there. Your friends that chose other "roles" would be progressing faster than you are, struggling to summon a simple fireball, let alone throw it and cause an explosion, while they slay monsters with relative ease. Can you deal with the difficulty, or would you augment your playstyle and hybridize? Would you give it up all together?

So I have a plan on how to balance it, not perfect, but it should help. How does magic work though? And here is what I need help with. Magic has a long history as being a series of arcane words written onto a scroll or in a tome. What if magic was like programming? There are stories (well maybe not many) of mischievous wizards changing a few words of an existing incantation and changing what happens, sometimes with negative results. There are also a number of mages who write their own spells. The words mean something.

So my plan on magic is to create a magical language, which could be translated into raw Lua and run in engine. It would be like providing a framework and providing a translation. Why not go further? There exist different "gods" in different spheres. They could have a dialect of that language that would aid in the construction of spells associated with their sphere. The "gods" in the sphere of order, light, and justice would provide a dialect that makes healing spells easier to produce, while the "gods" in the sphere of death would provide a dialect that makes necromancy possible. Each of these dialects would compile to the original language, which would then compile to Lua.

 
Development plans

I'm planning on producing several small demos focused around a particular feature. Combat and health would be one, magic another, etc. It will aid in a more agile development of the features and engine, and provide feedback. Once the "full version" were complete, or at least mostly complete, I would release a demo that is feature complete. The full game would not be free, but cost something like $5 - $15. It would be DRM free, modding compatible, and after a specified time period, such as 5 years, the game would be released open source. I'm looking at a long time frame, however, and its very well possible I never finish. This game would have so much in common with DF its embarrassing and even appear a little too derivative.

Current plans
I'm focused on engine development, but I want to start building the magic system. It could very well be the most complicated part.
For that I could use feedback on what features an aspiring spell writer would be looking for.

Things that would be useful:
  • Describe a spell you would like to see, an interesting one that isn't blatantly obvious (fireball, magic missile are obvious, give it a twist)
  • Write how you think a spell would look. Make sure it comes with a description, and that it has the elements to fit it to its description
  • Features that you would require if you wanted to make a spell

Writing what a fictional spell would look like without any reference is difficult. Here's a poor example I came up with in about 5 minutes:
Spoiler (click to show/hide)

Logged

High tyrol

  • Bay Watcher
    • View Profile
Re: A Fantasy Simulator - Discourse Requested
« Reply #1 on: April 28, 2015, 03:13:05 pm »

this looks wonderful and i would love to play it.
 but i have a one suggestion(for now)
how about dragons which can't breath fire and can only attack in melee  and the wings would just be for mobility?
Logged

BoredVirulence

  • Bay Watcher
    • View Profile
Re: A Fantasy Simulator - Discourse Requested
« Reply #2 on: April 28, 2015, 03:36:47 pm »

this looks wonderful and i would love to play it.
 but i have a one suggestion(for now)
how about dragons which can't breath fire and can only attack in melee  and the wings would just be for mobility?
I've considered this, and I've considered land-based fire-breathers. I'm not opposed to either. In fact, I like the concept of burrowing creatures that breath fire. Still a major threat, still puts them at odds with dwarves (common theme with dragons, particularly Tolkien-esque ones), a little more unique, and no inability to path to. There could even be dragons that are too large to fly but can still breath fire. I do oppose super-heated fire breath personally. A well insulated, armored soldier should be able to withstand a quick burst of fire-breath without even blocking. Except the helmet, that would need to be shielded, difficult to get enough insulation and still be able to see...

I'm fairly neutral on the detail, this would likely be decided by people who I discuss it with, a sub-community. Your opinion noted.

Also, I do intend to support modding. Its difficult to say where it would be considered official. I don't doubt that my engine would have scripting built in before any first release demo, and some modding would certainly be available then. At any point, if there aren't enough flying dragons, it could be modded in. Having 3D graphics would make it a higher barrier, but I don't intend on good graphics. At this point, I'm actually considering fairly bad graphics for flavor more so than its practicality.
Logged

Pencil_Art

  • Bay Watcher
    • View Profile
Re: A Fantasy Simulator - Discourse Requested
« Reply #3 on: April 29, 2015, 05:02:44 am »

PTW.
Logged

Neonivek

  • Bay Watcher
    • View Profile
Re: A Fantasy Simulator - Discourse Requested
« Reply #4 on: May 03, 2015, 06:58:19 pm »

Very Final Fantasy Tactics approach to magic.

Most settings try to separate magic from what the gods do (arcane and divine... even in settings where they are both secretly arcane they still act differently). Yet in FFT for example even summoners and black mages essentially get their powers from the gods and interestingly enough your belief in them not only determines how much they can affect you but how well you can wield their might, an interesting double edged sword that would very interesting to read about.

Yet you still seem to want a rather arcane approach...

So I guess combining it with a sort of lovecraft-esk idea where the gods themselves sort of bring magic into being and in many ways they are the source of all magic... Yet once they create it they can't necessarily control it... but are quite aware of its use.

But then again this doesn't seem to be what you are looking for exactly... It seems more like you are sort of going "True Rune" route so to speak. Magic words, words of power... but where magic is created through its own language.

Yet each language is easier to speak with certain deities (making them an unnecessary component but a beneficial one)
« Last Edit: May 03, 2015, 08:46:18 pm by Neonivek »
Logged

BoredVirulence

  • Bay Watcher
    • View Profile
Re: A Fantasy Simulator - Discourse Requested
« Reply #5 on: May 05, 2015, 02:10:57 pm »

Very Final Fantasy Tactics approach to magic.

Most settings try to separate magic from what the gods do (arcane and divine... even in settings where they are both secretly arcane they still act differently). Yet in FFT for example even summoners and black mages essentially get their powers from the gods and interestingly enough your belief in them not only determines how much they can affect you but how well you can wield their might, an interesting double edged sword that would very interesting to read about.

Yet you still seem to want a rather arcane approach...

So I guess combining it with a sort of lovecraft-esk idea where the gods themselves sort of bring magic into being and in many ways they are the source of all magic... Yet once they create it they can't necessarily control it... but are quite aware of its use.

But then again this doesn't seem to be what you are looking for exactly... It seems more like you are sort of going "True Rune" route so to speak. Magic words, words of power... but where magic is created through its own language.

Yet each language is easier to speak with certain deities (making them an unnecessary component but a beneficial one)

Magic is separated from the "gods," however I plan on allowing the gods to simply create new "dialects" of the "arcane" language that make certain spells easier to write. Everything eventually compiles into the "arcane" language, the gods are just making magic that is similar to their particular sphere easier to make. A service to followers, but usable by anyone, and no power from that god goes into any of those spells. Eventually there would be a favor system that allows gods to reward good followers, maybe by reducing the cost of spells associated with their sphere (by helping provide some of the mana required), but that isn't related to the "dialect" that any god might provide.

Essentially, for the magic system, there are 3 levels.
  • The raw Lua code that runs in-engine.
  • The "arcane" language that compiles to Lua. This is a framework.
  • The "dialects" provided by gods. Each of these is a separate framework that utilizes the "arcane" language framework

So there is no distinction (at least at the high level) between magic and magic aligned with a sphere of a particular god. The spells might be written differently (if you are using a "dialect") but they function the same.

Lovecraft certainly influenced my idea of the gods, their motives, how they exist, and hopefully appearances. I prefer the term entity over god for 2 reasons. First, there are multiple "gods" that mortals might recognize for any given entity, different aspects if you will, but there is only one consciousness, one "pool" of mana. These separate "gods" could exist as physical avatars, bodies that the entity can control. Secondly, they aren't really gods. They are extremely powerful beings, but they didn't create the world, they are body-less life on a cosmic scale, they are no more special than any mortal, just bigger, more powerful, older, and cooler. They don't create magic, they are beings of magic, great pools of mana with consciousness.

Each entity has a sphere that they operate in, its less that they can't do anything else, and more that it describes their personality and behavior. In the past there may have been many entities of the same sphere, but over time they absorbed each-other (and absorbed other entities of different spheres, and were absorbed by entities of different spheres). The fact that spheres don't overlap in the present is really coincidence, and it is possible that there does exist entities who overlap spheres. If entities did overlap spheres, they would share a dialect (think of dialects like open source frameworks, they can both contribute, and the only reason why other entities don't contribute is that they have no interest in that sphere).

As far as how the languages would work, the goal is for it to behave like a scripting language, but with grammar, and syntax that feels like a spoken language. The "dialects" act like libraries, providing functionality you could make yourself, but that is much easier to simply the right library. Currently I'm using English as the base of the language, but I plan on eventually translating it into another, more esoteric, real world language. The idea is that you don't need to understand the words and phrases that make up the keywords and functions provided, you just need to know what they do. Documentation and tutorials would be provided through in-game books that can be found in libraries (or loot, or dungeons).

From a concept, I think its sound. I don't see many questions left unanswered. Of course, the high-level "entity vs god" debate is something I hope users never see, they are mortal and have the same perception a mortal has, and wouldn't be privy to the distinction. So there would hopefully be questions for the users themselves.

As far as what I'm working on now. I have 4 pieces I'm working on simultaneously.
  • The game engine
  • The API the game engine provides for Lua to perform magic
  • The "arcane" language that compiles to Lua
  • The "dialects" or libraries that make magic easier, and compile to the "arcane" language

The engine I don't really need help with. I'm a competent programmer, and anyone that really wants to help is certainly welcome, but I'm happy on my own. The API is something I hope to derive from working on the "arcane" language. And the "dialects" are something I'm hoping to get insight by spell examples.
Logged

Gergow44

  • Escaped Lunatic
    • View Profile
Re: A Fantasy Simulator - Discourse Requested
« Reply #6 on: May 05, 2015, 05:53:44 pm »

I have been trying to write up magic systems on paper lately, and I believe it is important to meditate on what do you want the system to do and be capable of, and based on that, try to figure out what do you need your program to keep track of and how( for example attach values to a coordinate field or an entity, and what sub-values make up a property you need to keep track of).

In my case I want to create many "layers" that can have spots of different strength and react in a certain way to other select layers. The thinking entities would generate waves with their thoughts, and could create chain reactions that could effect the physical layers.
So things like ionizing a path to redirect lightning or a spell backfiring because the unit the entity uses to manipulate the layers( its brain) was affected in a certain way( distraction\shock), but I do not think I will be able to make much progress due to the mathematical complexity of the thing, so if you want to finish your project, simplification is a must.
On the other hand the discover pre-written script sounds like a "lesser experience". I find custom made magic much more enjoyable like in The Elder Scrolls series before Skyrim and in Magicka, just as I find fighting in Dwarf Fortress a lot better than in Fable, or exploring a procedurally created dungeon.
So +1 on spellmaking.

It would be nice if you could create magical auto-casters that search for something and behave based on that, like rune traps or healing missiles that adapt their effects based on target hit. Basically create a new object out of magic rather than an instant interaction. The more complex the spell, the more awkward could casting be, so some shortcuts on the dialect level might be useful like adjectives to modify effects or projectile behavior or call additional spells that would otherwise take up a lot more individual commands.

Good luck with your project.
Logged

KingofstarrySkies

  • Bay Watcher
  • It's been a long time...
    • View Profile
Re: A Fantasy Simulator - Discourse Requested
« Reply #7 on: May 05, 2015, 06:07:49 pm »

This sounds friggin' lovely. I love the idea of the magic system! :D
Logged
Sigtextastic
Vereor Nox.
There'll be another King, another sky, and a billion more stars...

BoredVirulence

  • Bay Watcher
    • View Profile
Re: A Fantasy Simulator - Discourse Requested
« Reply #8 on: May 06, 2015, 09:14:47 am »

... In my case I want to create many "layers" that can have spots of different strength and react in a certain way to other select layers. The thinking entities would generate waves with their thoughts, and could create chain reactions that could effect the physical layers.

Thats the idea, in a very general sense. Reading the spell causes a specific set of brainwaves, which manifest in the physical world. I'm abstracting the details away though. So the detail is more lore than gameplay. I was thinking about backfire's happening by your character running out of mana while casting the spell. Each line of code would cost a certain amount of mana (based on its affect of course), and if you run out halfway through a spell, you get a half baked spell.
For instance, with a fireball (in the "arcane" language, its more detailed than the "dialects"), you might create fire, then create a containment field. If you run out of mana, you might create the fire, but not the containment field, and set yourself on fire.

... so if you want to finish your project, simplification is a must.

I've thought about trying to simplify it, but the scope of my fantasy simulator is, "Would this be possible in a fantasy universe?" So I ask the same question with magic. It just so happens that magic is complicated, if its not terribly crippled. My goal for simplification is to focus on discrete features, and work towards small demo's of those features. If I were to simplify a system in a way opposed to my goal, the project is no longer worthwhile.

On the other hand the discover pre-written script sounds like a "lesser experience". I find custom made magic much more enjoyable like in The Elder Scrolls series before Skyrim and in Magicka, just as I find fighting in Dwarf Fortress a lot better than in Fable, or exploring a procedurally created dungeon.
So +1 on spellmaking.

Yeah, TES was actually what I was thinking of when I wrote that. While a good start, it simply isn't expansive enough.

It would be nice if you could create magical auto-casters that search for something and behave based on that, like rune traps or healing missiles that adapt their effects based on target hit. Basically create a new object out of magic rather than an instant interaction. The more complex the spell, the more awkward could casting be, so some shortcuts on the dialect level might be useful like adjectives to modify effects or projectile behavior or call additional spells that would otherwise take up a lot more individual commands.

Homing projectiles are a goal, and its spells like that which make me want to provide "dialects" to simplify magic to some degree. Spells that are complicated and provide a cool effect should be within reach of the spellwriter. I'm not a fan of spells that have a different effect based on who it hits. Different effects based on creature type maybe, a healing spell that damages undead is fine. A magic missle that damages hostile units and heals friendlies is poor design. Now, a spell that spawns healing missles and launches them towards allies, and magic missles and launches them towards enemies is fine. But if a magic missle goes astray and hits a friendly, thats just a side effect you have to deal with.

Rune traps are definitely a goal. Creating a portal is a goal. So creating persistent objects is a goal, for some things. Other uses, such as creating a golem or fire elemental, would fall in line with enchanting, but probably use custom spells to some degree. Not at a point where I can really define enchanting, but the goal is to create objects that essentially cast spells, imbuing objects with souls (allows for thought and consciousness). So creating a flame elemental is all about summoning and maintaining magical fire, maintaining a containment field, modifying it, and allowing an imbued soul to control these functions for movement, attacking, etc. So there is a relationship, but adding AI generally will require enchanting. Some decisions though can be made directly by the spell. And it should be possible to create quick, simple, disposable mana "batteries." Such as the rune trap, you create the rune, imbue it with a trigger function, and supply it with some mana. When its triggered, it does whatever you tell it, using the mana it has stored for the purpose. So a similar effect could, in theory, be applied to other objects. Healing orbs that slowly crawl across the battlefield, casting healing bolts down towards allies. That wouldn't be too difficult to program, create an orb, go that way, hold some mana, when a friendly unit is detected cast INSERT_SPELL_HERE in their direction. In fact, the "mana battery" might make for a good way to limit homing missles, each correction they make requires some mana, when they run out they stop homing.

Thanks for something to think about.
Anyone else have any potential spell ideas?
Logged

KingofstarrySkies

  • Bay Watcher
  • It's been a long time...
    • View Profile
Re: A Fantasy Simulator - Discourse Requested
« Reply #9 on: May 06, 2015, 02:34:18 pm »

Hrmmm. Maybe one that can transmute items into others? I dunno. Just a random thought.
Logged
Sigtextastic
Vereor Nox.
There'll be another King, another sky, and a billion more stars...

BoredVirulence

  • Bay Watcher
    • View Profile
Re: A Fantasy Simulator - Discourse Requested
« Reply #10 on: May 06, 2015, 03:24:13 pm »

Hrmmm. Maybe one that can transmute items into others? I dunno. Just a random thought.

This should exist, but would likely have a mana cost that is very prohibitive. I can't imagine anything but the best mages / wizards in the world being capable of transmuting iron (or lead) into gold, in small amounts. But entities could do it. In fact, the basis for the existence of exotic metals comes from different god-like entities attention and energy drain towards one another, which as a by-product creates a separate realm, and causes ore-grade viens of exotic metals in that realm.

I could see accomplished mages producing iron ore from rock in small quantities, but not enough to supply an income. Even the best mages / wizards transmutation's to gold should generally be capable of producing very little income.

I imagine the syntax of such a spell as listing the desired material, and the source material. Mana cost would be associated scale exponentially with more exotic materials, but also affected by the "distance" between materials (atomic number being a good one). For instance, silver to gold is easier than iron to gold, but both are very difficult because gold is moderately exotic. The source material also wouldn't be explicit in the written spell, it could infer the change in mana cost based on whatever material is actually sourced. So a "to gold spell" wouldn't specify silver to gold, or lead to gold, or iron to gold, but instead cost less based on the material sourced.

I don't plan on allowing magic to create actual items though. Change material yes, but I think transmuting into another item may be too complex. Maybe I shouldn't completely say no, but I do worry about syntax, and potential implications. Maybe I should say, don't currently plan.
Logged

Spiderking50

  • Bay Watcher
  • Lumberjack of Hearts
    • View Profile
    • Pik-Pik Fortress: A Pikmin Mod
Re: A Fantasy Simulator - Discourse Requested
« Reply #11 on: June 15, 2015, 11:44:45 pm »

On the issue of transmuting, what about transformations? Could you use magic to change yourself into a powerful beast or your enemy into a weak animal? Or even mutate one animal into another to make a powerful pet ally?
Logged
Currently on vacation. I have internet, but will update sporadically due to vacation.

BoredVirulence

  • Bay Watcher
    • View Profile
Re: A Fantasy Simulator - Discourse Requested
« Reply #12 on: June 22, 2015, 08:35:27 am »

On the issue of transmuting, what about transformations? Could you use magic to change yourself into a powerful beast or your enemy into a weak animal? Or even mutate one animal into another to make a powerful pet ally?

I think this kind of functionality is important, but I don't really like the semantics of it. Do we make it so that only animal shapes are allowed, and provide some modifiers? Do we create a notation to describe, generally, any shape? Its clear that we need this functionality, such as werewolf type transformations and maybe weird demonic possession mutating limbs beyond recognition, etc.

"Hardcoding" the possible shapes removes the utility of it, and weakens magic. Creating a language notation that can describe the changes is hard though. What if there is a curse that turns an entire leg into a log? That fuses the knee. It might effect movement speed. But what about turning an arm into a sword? You lose the ability to grasp things. But not if you just mutate the fingers into blades.

There is a line to be drawn somewhere, a lot of complexity involved, but it should exist.

After some brief thought, the logical thing seems to be a notation for "mutating" body parts. There needs to be the ability to mutate two adjacent body parts into the "same" object, and fusing them together. That could be detected to remove appropriate abilities, such as grasping, or modifying movement speed. That seems like a good starting point. It doesn't catch everything, like mutating fingers into blades and still climbing up rope. It certainly doesn't define everything, but it seems a good direction to go in.

There could exist shortcuts. Maybe a particular dialect of magic allows for quick transformation into some animal shapes, because it defines the nity-grity details for you.

Good question. Things like this force me to think about the implementation. This in particular asks questions about how bodies are defined. I always planned using something similar to DF's raws, but this asks questions about how it should work, not just the concept. And thats a good thing to do, ask questions that makes me think. This opens the door to the possibility of simple item "transmutation." Moving parts are probably out of the picture, but if we can define basic shapes to modify body parts into, I see no reason why we couldn't modify items in some basic ways. It might still be very expensive mana-wise. But it should exist as possible magic, at least for "gods" to use as curses.
Logged