Programmable Magic: How realistic is it?

General questions, debates, and rants about RPGs

Moderator: Moderators

Manxome
Knight-Baron
Posts: 977
Joined: Fri Mar 07, 2008 7:54 pm

Post by Manxome »

Surgo wrote:I don't see why the phrase programming language got invoked. Types, or any equivalent mathematical concept, really shouldn't be necessary at all. What's wrong with just having a regular old context-free language?
A "regular old context-free language" is just a definition of what sentences you're allowed to say and which you aren't. As soon as those sentences actually do something, it is, in point of fact, a programming language (which may still be context-free).

And context-free languages also involve types, just by other names. All that <phrase> and <verb> and <noun> stuff is a series of type definitions, just with a (supposedly) exhaustive list up-front of every possible piece of data that qualifies as that type.

Effectively, I just combined the previous suggestions with some traditional formalizations and made it specific enough that you could actually reach a consistent and objective conclusion about what a given spell actually does.

Because, honestly, "repeatedly create health in me" does not equate to a regeneration spell without some serious handwavium. If your types are really nothing more specific than "noun" and "verb" and such, that implies that "create me in health" is an equally valid spell (interpreted literally, using exactly the same definition of each individual word that you used in the first spell). Already you can see that "health", while a noun, is also an abstract quality, which requires wildly different treatment from other nouns.


In any event, any set of rules that precisely describes actions corresponding to particular combinations of words is, by definition, a programming language. Not necessarily Turing-complete or anything, but a programming language nontheless.
Last edited by Manxome on Fri Oct 29, 2010 5:34 am, edited 1 time in total.
Purple
NPC
Posts: 15
Joined: Sat Aug 29, 2009 6:37 am

Post by Purple »

Wow, these are a lot of really good ideas. Thanks especially to Vebyast for that link to the Backus-Naur Form. That could be really useful.

While it will pretty much have to be a programming language built from scratch, it also needs to be incredibly simple and easy to understand. I don't want the entire table to have to spend hours reading about it and learning the language in order for it to be usable in a game. Certainly the DM is going to have to be briefed on the capabilities and limitations of such a system, and the player using it will have to have a high level of fluency in it, but I don't want it to be too complex for a layman to tell what's going on just from looking at the phrase written.

I think a better analogy than the programming language is the idea of interlocking runes brought up earlier. TavshArtair is totally right about the possibilities of having one noun or verb for different scenarios. One thing that I could imagine is a system where you have a pool of energy points that you put into any phrase you write. And every rune that you write down in the phrase you can put some points into, but it doesn't have to be the same amount for each rune in the phrase. So using the door/portal example from earlier, if you write down the door rune and charge it with one point of energy, maybe it means just a regular door, but if you put in two points then it defines a magical portal instead.

Parthenon also had some really good questions, let me see if I can at least tell you my thoughts on it:

• As far as mana and words go, I think you'd have to have some kind of hard limit on how many points of mana you could put into any one phrase, and even maybe a limit on how many words you can put into any one phrase. So if your mana/phrase limit is equal to your level, then at 1st level maybe you can only charge one rune in the phrase. But at 10th level you could have 10 points of mana to split up between the runes in your phrase, powering them up to various levels.

• For words known or used at the same time: vocabulary is definitely going to be a serious obstacle. As Vebyast mentioned, a character who knows on instead of in is massively different. The basic grammar words should be very valuable, and by selecting which ones they know someone should be making some serious choices about what their character can and can not do. But as far as verbs and nouns and adverbs and conjunctions go, you'd have to make sure nobody gets a level-inappropriate word, but otherwise people should have free reign to pick any language they want. I think there would however have to be a limit on how many they could have ready to write on any one day though, if only to cut down on the reference checks and tables needed for play. If someone has a vague idea what sort of runes they have available on a given day, they roughly know what those runes can do and when it's appropriate to use them.

Talking about level-appropriate words, though, it might not even be necessary to rank them by when you should get them. Because if all the higher level uses of verbs and nouns need more mana in them to unlock, then by definition even if you know the word at a lower level you can't use the powerful version of it until higher level when you can pour more energy points into it.

• Skill checks kind of suck, so no. I think if you know the vocabulary and you have the class feature and you have the mana to spare, you can just write whatever you want.

That evil genie explanation is actually really good. The effects that this system can cause need to be defined tightly enough that the DM can't pull a dick move and say, "I think it should work more like this." If you write down a certain combination of words, no matter what table you're playing it, it should HAVE to do the same thing in order for the system to work.

I've got a list of ideas of basic ways to use the system written down, so I'm going to see if I can find it. Once I know exactly how I want it to be used in game, hopefully I can figure out how to make a language both simple and comprehensive enough to do what I want.

Thank you all for the great responses! This is the first board I've been to where I haven't been flat-out told that it wouldn't work in game or that it would be impossible to design. That's pretty cool.
Last edited by Purple on Fri Oct 29, 2010 5:40 am, edited 1 time in total.
Username17
Serious Badass
Posts: 29894
Joined: Fri Mar 07, 2008 7:54 pm

Post by Username17 »

This would work way better as a board game, where the things that were around you were as arbitrary as your declarations. "[Rotate 90 Degrees Clockwise] [One Blue Card]" makes complete sense and is easy to mix and match and get shit done. "[Inflict Fire Damage] [1 Enemy]" is about as fucking clear as that kind of shit can get, and it still has weird edge cases (see 4e and how fucking clusterfuckizoft it is on this exact subject).

-Username17
User avatar
Vebyast
Knight-Baron
Posts: 801
Joined: Tue Mar 23, 2010 5:44 am

Post by Vebyast »

First, I apologize for any weird grammar in this post. I've been doing LISP all day, and it's hard for me to even think linearly right now.


The point of the game is to be fun, not to be perfectly mechanically rigorous. Some games are made worse by lack of mechanical rigor (base 3.5e), but I don't think that what's being discussed here is one of them.

I also don't think that making it completely abstract would be a good idea. Players get more creative when they're doing things that they can imagine clearly, and more than a few people have trouble visualizing abstract systems. Using an abstract system alongside the idea of spells as language is also intimidating to new players. Furthermore, making it a full-blown RPG isn't all that difficult; you just need a DM that can handle those edge cases.
Also, mechanical rigor is possible in an RPG version. You can to define the words and their interactions clearly enough to make arguments fun (and we all know that fun is the end goal here) rather than problematic. For example, consider the following definitions and a spell using them:

CREATE
Verb
The sentence causes a noun to come into being or an adjective to be applied to a noun.

BURN
Verb
The sentence causes near-instant nonmechanical damage to the target using a specified noun.

FIRE
Noun
Fire. You know, hot stuff. Being on fire deals (some amount of damage with some conditions).

CREATURE
Noun
Any targetable game entity with hit points.

NEAR
Relation
The sentence affects all nouns within (some short distance) of the specified noun, as well as the noun itself.

I'M POINTING AT
Adjective
The noun in question is being indicated by the speaker of the sentence. This is a matter of intention, not dexterity, so no attack rolls are required.


While the sentence "CREATE FIRE NEAR CREATURE I'M POINTING AT" has a few different interpretations, all of the ones that I can think of end with lots of stuff on fire in a well-defined area that the player has good control over. The results might not be exactly what the player wants, and they'll definitely spiral out of control if you're in the middle of a forest, but they'll be close enough to the original intention be tolerable.

That, by the way, brings me to my next point: while the system would have plenty of arguments, they'd be fun arguments. It would be discussing what happens when you cast "BASH WITH DEMIPLANE CREATURES IN DEMIPLANE I'M IN" or "FIVE TIMES CREATE HEAD ON CREATURE I'M POINTING AT". Those kinds of argument are primarily creative in nature, and therefore fun.
That's another reason to make this a full RPG rather than a board game, by the way. Making this a full RPG with all the trappings would give it a Game Master, and GMs can can stomp on unfun arguments and handle the edge cases that aren't any fun. To use your own example, even though DND4e is full of weird edge cases and wrongness, it's completely playable because the GM can handle it all. Making this a board game would take away the GM, and all of the system's flexibility and fun would vanish with it.
Also been doing some thinking about the rules themselves. I think that it'd probably work as a rules-lite framework with our gigantic spellcasting system dropped into a hole marked "this is where the action resolution system goes.".
Finally, another alternative EBNF I brainstormed up because I was bored.

Code: Select all

phrase         = <verb-phrase> <targets-phrase>
verb-phrase    = &#123; <command> &#125; <verb> &#123; <relation> <noun-phrase> &#125;
targets-phrase = <noun-phrase> &#123; <relation> <noun-phrase> &#125;
noun-phrase    = &#123; <adjective> &#125; <noun>

command        = "QUICKLY" | "SLOWLY" | "REPEATEDLY" | ...
verb           = "CREATE" | "IMBUE" | "DEFINE" | "BURN" | ...
relation       = "ON" | "IN" | "NEAR" | ... 
noun           = "DOOR" | "FIRE" | "KOBOLDS" | ...
adjective      = "BIG" | "LIVING" | "I'M POINTING AT" | ...
This one lets you create sentences like BURN WITH FIRE WITH ACID CREATURES IN CIRCLE NEAR OBJECT I POINT AT, which could be useful.
Last edited by Vebyast on Sat Oct 30, 2010 5:09 am, edited 2 times in total.
DSMatticus wrote:There are two things you can learn from the Gaming Den:
1) Good design practices.
2) How to be a zookeeper for hyper-intelligent shit-flinging apes.
User avatar
CatharzGodfoot
King
Posts: 5668
Joined: Fri Mar 07, 2008 7:54 pm
Location: North Carolina

Post by CatharzGodfoot »

"THAT" is probably easier than "I'M POINTING AT". Also, where do you work that you can program in Lisp all day?
The law in its majestic equality forbids the rich as well as the poor from stealing bread, begging and sleeping under bridges.
-Anatole France

Mount Flamethrower on rear
Drive in reverse
Win Game.

-Josh Kablack

User avatar
Vebyast
Knight-Baron
Posts: 801
Joined: Tue Mar 23, 2010 5:44 am

Post by Vebyast »

CatharzGodfoot wrote:"THAT" is probably easier than "I'M POINTING AT".
I thought about doing that, but decided that THAT has enough uses in English that it would be confusing. Worse, it's a demonstrative pronoun, and that's just asking for trouble.

I don't really like I'M POINTING AT, though, since its logic is kind of backward. INDICATED OBJECT, maybe?
CatharzGodfoot wrote:Also, where do you work that you can program in Lisp all day?
Full-time student. :tongue:
Last edited by Vebyast on Sat Oct 30, 2010 1:50 am, edited 2 times in total.
DSMatticus wrote:There are two things you can learn from the Gaming Den:
1) Good design practices.
2) How to be a zookeeper for hyper-intelligent shit-flinging apes.
User avatar
CatharzGodfoot
King
Posts: 5668
Joined: Fri Mar 07, 2008 7:54 pm
Location: North Carolina

Post by CatharzGodfoot »

Vebyast wrote:
CatharzGodfoot wrote:"THAT" is probably easier than "I'M POINTING AT".
I thought about doing that, but decided that THAT has enough uses in English that it would be confusing. Worse, it's a demonstrative pronoun, and that's just asking for trouble.
How about "THIS"?
Vebyast wrote:I don't really like I'M POINTING AT, though, since its logic is kind of backward. INDICATED OBJECT, maybe?
CatharzGodfoot wrote:Also, where do you work that you can program in Lisp all day?
Full-time student. :tongue:
Ah, good times.
The law in its majestic equality forbids the rich as well as the poor from stealing bread, begging and sleeping under bridges.
-Anatole France

Mount Flamethrower on rear
Drive in reverse
Win Game.

-Josh Kablack

Manxome
Knight-Baron
Posts: 977
Joined: Fri Mar 07, 2008 7:54 pm

Post by Manxome »

Let's see, Vebyast...

1. You've defined "creature" to be anything that is targetable and has hit points, a category which in D&D (for example) includes doors, walls, rocks, trees, tools, weapons, armor, etc. You sure about that?

2. You've defined "near" to mean a concept that in normal English would probably be written "everything near". As you've written it, "create rock near this creature" does not mean "pick a point near this creature and create a rock there," it means "for every noun that is near this creature, create rock (that noun)", which (A) is wildly different from what your players will expect, and (B) isn't legal within your defined grammar (or normal English grammar), unless the empty string ("") is a valid relation.

3. Any sentence ending with "I point at" isn't valid in your grammar, because you've defined "I point at" as a relation, and therefore it always needs to have a noun-phrase after it.


I think you've got quite a bit of revision to do before your examples are even legal constructions under your grammar. After that, you need to define your parsing rules considerably more rigorously than you have if you seriously expect spells to do "things defined by the rules written here" rather than "whatever the DM thinks is logical based on interpreting the sentence as natural English."


You're not thinking like someone trying to break or exploit the system. Taking a quick look at your grammar, let's construct a few example sentences:

"Slowly define near big big big fire door."
"Create fire I point at I'm pointing at kobolds."
"Burn fire I point at door door."

I'm pretty sure none of those should be legal, but they are by your last posted grammar. I'm also pretty sure that most player groups won't contain anyone willing to even try to interpret them according to the rules you've posted, and that different players wouldn't get even close to the same results if they tried.


Now, if your goal is basically to have some loose flavor-oriented guidelines for a game of magical tea party, with the understanding that players are not trying to exploit the rules or "win" the game, then maybe that's not a problem. But if you want to pretend that someone can actually follow your rules as written, let alone use them to play an entertaining tactical or puzzle game, I think you've got a long way to go. You are still leaning heavily on your intuition for what sentences are legal and what they should mean by pretending that it's English instead of spellspeak.

I suggest that you try defining some nonsense words (with definitions written in English) and assembling some sentences blindly based on your grammar and then trying to interpret them, to see if your system is usable based only on the rules you've actually written and not the assumptions you're bringing in. For example:

Shesrit (relation)
In an spherical formation around.
User avatar
Vebyast
Knight-Baron
Posts: 801
Joined: Tue Mar 23, 2010 5:44 am

Post by Vebyast »

Manxome: I agree with everything there. I'd have to spend more than five minutes writing the rules if I actually decided to make this game. I'd also have to get some other people to look at it, I'd have to hand it to a computer to generate random examples for me to sanity check, I'd have to build a few example sentences and hand them to a computer to see how it parses them, I'd have to add logic for parsing adjectives differently in different places, and so on.

Manxome wrote:1. You've defined "creature" to be anything that is targetable and has hit points, a category which in D&D (for example) includes doors, walls, rocks, trees, tools, weapons, armor, etc. You sure about that?
The objection doesn't really have any meaning, since the rest of the game hasn't been defined yet. It is entirely possible that the only things in the game with hit points are player characters, or that "targetable" has a special meaning that only includes things that can make actions.

However, I see your point.
Manxome wrote:2. You've defined "near" to mean a concept that in normal English would probably be written "everything near". As you've written it, "create rock near this creature" does not mean "pick a point near this creature and create a rock there," it means "for every noun that is near this creature, create rock (that noun)", which (A) is wildly different from what your players will expect, and (B) isn't legal within your defined grammar (or normal English grammar), unless the empty string ("") is a valid relation.
Yes, that's true. It will require tweaking.
Manxome wrote:3. Any sentence ending with "I point at" isn't valid in your grammar, because you've defined "I point at" as a relation, and therefore it always needs to have a noun-phrase after it.
Yes. Fixed in the hypothetical brainstorm grammar.
Manxome wrote:I think you've got quite a bit of revision to do before your examples are even legal constructions under your grammar. After that, you need to define your parsing rules considerably more rigorously than you have if you seriously expect spells to do "things defined by the rules written here" rather than "whatever the DM thinks is logical based on interpreting the sentence as natural English."
Agreed. For example, I'd actually have to write an entire gaming system, rather than a few disjointed examples for use in brainstorming.
Manxome wrote:You're not thinking like someone trying to break or exploit the system. Taking a quick look at your grammar, let's construct a few example sentences:

"Slowly define near big big big fire door."
"Create fire I point at I'm pointing at kobolds."
"Burn fire I point at door door."

I'm pretty sure none of those should be legal, but they are by your last posted grammar. I'm also pretty sure that most player groups won't contain anyone willing to even try to interpret them according to the rules you've posted, and that different players wouldn't get even close to the same results if they tried.
Yes. The grammar requires more work, which I would obviously do if I were actually building a game instead of just brainstorming. What I posted is fit to create 4e Mark II, not a real game. A real game takes more than five minutes to write.
Manxome wrote:Now, if your goal is basically to have some loose flavor-oriented guidelines for a game of magical tea party, with the understanding that players are not trying to exploit the rules or "win" the game, then maybe that's not a problem. But if you want to pretend that someone can actually follow your rules as written, let alone use them to play an entertaining tactical or puzzle game, I think you've got a long way to go. You are still leaning heavily on your intuition for what sentences are legal and what they should mean by pretending that it's English instead of spellspeak.

I suggest that you try defining some nonsense words (with definitions written in English) and assembling some sentences blindly based on your grammar and then trying to interpret them, to see if your system is usable based only on the rules you've actually written and not the assumptions you're bringing in.
Yes. As I said above, if I were going to spend a few days or weeks actually writing this, I'd grab some tools for working with CFLs and I'd have them hammer on things until everything made sense. I would also have at least one other person working with me on it (preferably someone who reflexively hates everybody and everything, like you or Frank) to make sure I'm not making any mistakes, stupid or otherwise. For example, I'd have the computer generate and parse a few dozen completely random long sentences, which I'd then have someone else sanity check. They'd say "That's stupid, it should do X", and I figure out a way to fix it.

Finally, I admit that, no matter what you do, what you do things will be fuzzy. I expect the system to generate arguments and "what would X do?" constantly. The goal would be to make those arguments interesting. That's why I'm arguing for an RPG instead of a board game or a video game. A perfectly-defined board game would be too restricted to be much fun as a game, while a video game would turn edge cases into wall bangers rather than rewarding, creative group discussions.
Last edited by Vebyast on Sat Oct 30, 2010 5:48 am, edited 4 times in total.
DSMatticus wrote:There are two things you can learn from the Gaming Den:
1) Good design practices.
2) How to be a zookeeper for hyper-intelligent shit-flinging apes.
Username17
Serious Badass
Posts: 29894
Joined: Fri Mar 07, 2008 7:54 pm

Post by Username17 »

Finally, I admit that, no matter what you do, what you do things will be fuzzy.
They don't necessarily have to be. If you drop the ability to have long sentences, the parsing could be very simple. Let's say you did it just like the boardgame example, and every sentence had precisely four pieces that came in the same order every time:
  • Target
  • Scope
  • Action
  • Effect
And then each has a specific list of possibilities within it. And each does its little dance in exactly the same way every time.

Target
Each Target Rune changes where a power goes off in. There's a Rune for yourself, there's a rune for something you are touching, there is a rune for something you are pointing at, there is a rune something you can see. And so on.

Scope
Each Scope Rune changes how much a power happens where it is targeted. So there's a rune for a single creature, there's a rune for a single enemy, there's a rune for a 6 meter explosion, and so on.

Action
Action Runes are limited to things like "create" and "destroy". People always want to have "transform" runes, but that shit doesn't work.

Effect
Effect Runes can be things like fire or stone, but they can also be shit like hit points and speed. Indeed, you do transmutations by targeting things and creating or destroying attributes. You animate a table not by "moving" the table or some shit, but by creating life targeted at the table.

And so on. And you could imagine someone playing a Final Fantasy Tactics style Illusionist, where you had the whole battlefield targeting rune and the "enemy creature" scope rune and then you created fire on them, so that all your enemies caught on fire and everything else was spared.

The problem that you are looking at here is that there is basically no way to keep people from using this kind of casting to do "fill giant area with rock" - which is a ridiculously powerful spell.

-Username17
User avatar
Murtak
Duke
Posts: 1577
Joined: Fri Mar 07, 2008 7:54 pm

Post by Murtak »

I imagined a system different in style but similar in result.

You do not form sentences, you form rune constructs. A rune construct always has a base effect. This base effect can be modified by other runes. Each rune is a hexagonal tile with a sqiggly line on it. That line touches the edge of the tile at one or more points. Multiple runes are connected by joining them at these points. If you manage to leave no open ends you get a permanent effect.

Example:
So to make a fireball you start with the fire rune. The fire rune has a joint at the middle of edge 1 and at the left of edge 3. To create a fireball you need the explosion and hurl runes, which fit onto these two joints. Both of them have another joint though. If you want a permanent effect you could attach the one-joint impact trigger rune to the hurl rune and the one-joint diminish rune to the explosion rune.

Then you look up the rune effects and apply them to the main rune. Starting with [Fire damage, one die per power] you add [spread primary effect in radius, add one die blast damage], [reduce primary effect by 50%], [contain primary effect in throwable sphere] and [delay effect indefinitely until impact].

You can adjust the power level of characters by modifying effects, by adjusting runes known, by setting a limit on how many runes the can join or by limiting how much power they can invest in a given rune. And you end up with a system much more flexible than "join 4 effects". On the other hand you have to distribute all effects into, at best, 18 categories (6 edges per tile, times three locations per edge) and prevent both abuse and gibberish while doing so. I am not sure if that is feasible.
Murtak
Manxome
Knight-Baron
Posts: 977
Joined: Fri Mar 07, 2008 7:54 pm

Post by Manxome »

My major point, Vebyast - which, perhaps, did not actually make it into my post - is that you seem to be approaching the system construction by starting with natural English, and then applying some restrictions. Those restrictions will be gradually refined, of course, but your goal seems to be to have a system that can generate every effect you can imagine at all points during its development, while gradually progressing towards greater rigor and detail.

That could maybe work. Eventually. But I suspect you are vastly underestimating the distance remaining before you generate rules that could actually be "followed" rather than used as guidelines for magic tea party.

I suggest building from the opposite direction: start with tiny, precisely-defined building blocks that are simple enough that you can understand exactly what they do, and add on to your library until you have defined all the effects you want. This results in a system that is actually usable at any point in its development (which is great if you decide half-way through that it's becoming too unwieldy or taking too much work), and gradually grows in power and breadth as you develop it.


You also seem to believe that your system will become rigorous enough to have reasonable agreement about how most stuff works and non-bullshit arguments for how other stuff should work significantly before it becomes precise enough that you can "calculate" what a spell does in some objective fashion.

I think you're deluding yourself on that count. When (and if) your current approach bears fruit, I strongly suspect it will look more similar to my examples (from this post) than to your current examples. (Notation notwithstanding.)

It is possible that this is simply a failure of my imagination, but it is very easy to define a simple system with a limited scope that can, nontheless, precisely define the workings of spells within that scope. In fact, I'd argue I've already provided a rough of example of that. On the other hand, so far, you've only provided hand-waving examples and the promise that they could become coherent and reasonably rigorous, some day, with a lot of work.

If you can't whip up a small example that demonstrates the concept of your proposal (with an acceptable level of rigor) quickly enough to use it in a forum conversation, then it is at least possible that you can't create an example at all, and so devoting a bunch of resources to creating a grand, game-spanning system with no proof-of-concept is a very risky proposition (any work you invest in it may end up being 100% wasted). I'd strongly urge you to try building a small-scale example that just handles a few effects.
Last edited by Manxome on Sat Oct 30, 2010 8:33 am, edited 1 time in total.
User avatar
Vebyast
Knight-Baron
Posts: 801
Joined: Tue Mar 23, 2010 5:44 am

Post by Vebyast »

Ok, I see what you're saying, and I've been thinking about this wrong the entire time. This is a software project, not a writing project. Got it.
I agree that trying to build either English or a complete gaming system all at once is ludicrous. You'd either get something that's too simple or you'd get something that's too fuzzy (like what I wrote earlier). So, as you say, we start with a list of goals and another list of features we want. Then we build prototypes and merge them until we have something that fills all our feature requests. Start with a small codebase and build on it until it works.

Goals:
  • I would consider it a solid success if we could duplicate most of 4e's maneuvers, especially if the language can also do things that 4e could do if it were extended in ways that make sense.
  • Further goals would include DND3.5e martial classes, DND3.5e casting classes, and GURPS (selected because it's a system that I have experience with and it's more flexible than 3.5e).
  • Milestones on the way to DND4 might include a system that can handle a board game (like Frank is suggesting) or any of the rules-lite systems I've seen in the den.
Desired Features:
  • Low-level features:
    • Testing game parameters, such as the number of hit points, the presence or absence of status conditions, filtering by name, type, subtype, race, stats, etcetera.
    • Changing game parameters, such as the number of hit points or the presence or absence of status conditions. (note that this could accomplish every effect in the game with this except for object creation and destruction.) (thought: we could get rid of the movement system by using a version of the Really Abstract Locations and making players do movement by setting their location to another node.)
    • Basic physical logic, such as "is inside a given area" or "that I point at". This is probably the most complex feature to implement, and it's not totally required. The game would still be interesting if every single effect in the game were single-target auto-hit. (again, Really Abstract Locations would help with this).
    • Basic boolean algebra. Seriously basic. We're talking "get familiar with De Morgan and conjunctive normal form" basic.
    • Variables would be nice at some point. Those let us set up persistent effects without making any difficult assumptions.
  • Form:
    • It would be good if our system looks remotely like English, if only so that it's not intimidating for new players. However, we can easily mess with it to make it easier to do. Getting most of English's special cases wrong is expected. We can also do things like compress articles into nouns and verbs so we don't have to do those relations: "is-stunned" and "not has-magicitems" is much, much easier to deal with than "is stunned" and "does not have magic items", but it's still recognizable as English.
    • It should probably have subject-verb-object or subject-object-verb sentence construction, because that's literally how people think. We could probably set "Subject" to "I" for all spells to make things easier.
    • It should probably use words from English and the definitions should be at least remotely related to the correct definitions.
    • It should try to use a subset of English's rules for adjectives (we probably only need to support the attributive form to start with, and we might do post-positive if we want targeting to be easier to do intuitively).
    • Pronouns are bad. We don't want to use pronouns. We might have to implement some form of backreference later on, but we need to avoid pronouns at all cost.

It's still probable that I'm completely underestimating the difficulty of the problem. I've been guilty of that before.
Prototypes are good, I agree. The first order of business after planning would be to write a crapton of prototypes with just one or two of our features. It doesn't matter if these work or not, because this is just to figure out what how we can accomplish our objectives and what would prevent us from doing so.

For example, here's a grammar that (I hope) represents a spell that does an if-then on a single target. It can handle if-then-elseif, logical and, and logical not for targeting, which I believe makes it capable of expressing every formula in propositional logic (though it's a bit clunky). It can't test hit points, but it can test for status effects and a few metagame parameters. It can then have any number of effects, where an effect is "modifying the target's hit point value" or "giving a condition to the target or removing one from the target". It's definitely not English, but it's still understandable and usable ("if can-takeactions is false and is-stunned is true then set is-stunned to false" is about the worst I can come up with, but I'm not trying very hard. Take a shot at it.). It's kind of complex, but could still be learned faster than how casting spells works in DND3.5e, so I'm happy. The <parameter-phrase> production rules could also be improved, but I really need sleep now.

Code: Select all

<if-then>          = if <parameter-phrase> then <effect-phrase> &#123; else <if-then> &#125;
<parameter-phrase> = <test-parameter> is <value> | <test-parameter> is <value> and <parameter-phrase>
<parameter-phrase> = <test-parameter> is not <value> | <test-parameter> is not <value> and <parameter-phrase>
<effect-phrase>    = <effect> &#123; and <effect> &#125;
<effect>           = <set-parameter> | <modify-hitpoints>
<set-parameter>    = set <parameter> to <value>
<modify-hitpoints> = set hit points to &#91;number&#93; | add or subtract &#91;number&#93; hit points
<test-parameter>   = <parameter> | is-undead | has-hitpoints | can-takeactions | ...
<parameter>        = is-poisoned | is-alive | is-stunned | ...
<value>            = true | false

Manxome wrote:You also seem to believe that your system will become rigorous enough to have reasonable agreement about how most stuff works and non-bullshit arguments for how other stuff should work significantly before it becomes precise enough that you can "calculate" what a spell does in some objective fashion.
I do believe that to be the case, but not in the way you phrase it. As you stated before, humans can intuit like crazy. We could literally have people pick words out of a bin and they'd be able to come up with a way to build on spells. Humans can create order out of nothing. So we use that ability to refine the system when the system isn't rigorous enough to be refined objectively. If people expect an ambiguous sentence to behave in a particular way, then we formalize that expectation in the system, and the system has magically become more objective.

Frank -

I've played systems sort of like that. For board games, that system is pretty fun and very interesting tactically, especially if rune availability is randomized somehow. You get something with comparable tactical complexity to Magic with about 1% as many unique cards.

Methods of power restriction that I've seen: randomized rune availability, especially if weighted by power; resource costs for more powerful runes, either in the form of spending money or in the form of powerful runes taking up more space somehow; powerful runes have drawbacks, so the "giant area" rune that's causing problems is difficult for the player to use safely.
DSMatticus wrote:There are two things you can learn from the Gaming Den:
1) Good design practices.
2) How to be a zookeeper for hyper-intelligent shit-flinging apes.
User avatar
Ice9
Duke
Posts: 1568
Joined: Fri Mar 07, 2008 7:54 pm

Post by Ice9 »

One thing I would recommend, if you're trying to create a system that can do more than Fireball: Don't start with Fireball.

From having tried it, I can tell you that simple evocations like Fireball are a blind alley (or at best, a self-contained island) that will make a given system seem workable and simple to expand. Then you actually try it, and you find that the parameters that work for simple evocations don't really handle anything more complex or indirect.

So when designing a system, consider how it would create a variety of effects (or decide that those effects are not necessary in your system). For instance - one spell from each school, 3rd level:

* Dispel Magic
* Summon Monster III
* Clairvoyance
* Suggestion
* Fireball
* Major Image
* Halt Undead
* Haste
Last edited by Ice9 on Mon Nov 01, 2010 12:08 am, edited 2 times in total.
TavishArtair
Knight-Baron
Posts: 593
Joined: Fri Mar 07, 2008 7:54 pm

Post by TavishArtair »

Ice9 wrote:So when designing a system, consider how it would create a variety of effects (or decide that those effects are not necessary in your system). For instance - one spell from each school, 3rd level:

* Dispel Magic
* Summon Monster III
* Clairvoyance
* Suggestion
* Fireball
* Major Image
* Halt Undead
* Haste
This can also be a red herring, though, based on whether or not you actually WANT certain spells... for instance, timespace itself may be inviolable, preventing teleportation or time magic, or dispel magic may be impossible and only reversing an effect can undo magic, making it difficult if not impossible to create an automatic "dispel."

Best to first define the kind of magic you want to have happen, then look at examples.
User avatar
Ice9
Duke
Posts: 1568
Joined: Fri Mar 07, 2008 7:54 pm

Post by Ice9 »

Well ...
Ice9 wrote:consider how it would create a variety of effects (or decide that those effects are not necessary in your system).
You can certainly have a different range of effects from D&D. But whatever range you do pick, you should be considering it from the start. If you try to start with Fireball and expand outward, you'll find that "you can't get there from here".
Post Reply