PDA

View Full Version : New magic system (PEACH)



DanielLC
2009-04-30, 08:59 PM
Whiletruethenprojunthenthermendend

Originally people made spells to do specific things. Levitate, throw fireballs, etc. Someone made a spell that detected potential enemies nearby and signaled you. Someone modified that spell to automatically attack them, with any other spell. Some people started having fun making spells that cast other spells, only on the condition that other spells cast them first. Pretty soon, they talked about Turing-complete spell sets. The use of these spell sets made magic more versatile, but it wasn't that big of a deal. A lot of it was just about theory, for example, making a Turing-complete spell set containing only one spell. Eventually, someone looked at a rune and recognized it. Originally they existed only by trial and error. Now it became possible to make them do anything.

Basically, the spells are programs, and the runes are micro- (well, macro-) chips. They don't actually work together, very well anyway. Unlike most magic systems, the difficulty of magic is for the player, not just the character. If they mess up while reciting a spell or drawing a rune, there character will too.

The magic itself can be generated by most anyone. You must concentrate to make it, and you can't do so for extended periods. It takes training to form it into spells. When you do, it takes about a thaum of magic per round to "remember" (it's stored in the magic itself, not your mind) a syllable or the value of a variable, and a larger amount to execute each syllable. The amount itself varies from syllable to syllable. It takes about one thaum just for being a syllable, one for every variable passed to a function, and a few for the function itself. Syllables that just deal with the structure, such as while, generally take about one thaum. Syllables that are spells themselves, such as therm, take more like five. The spell on the top would take about 2 1/4 thaums to remember, and 20 for each loop around it.

Runes are hard-coded and take no magic to remember. They also take significantly less for their operations, but they are much simpler. It has "gates" that can be opened or closed. It's normally one way, but applying magic makes it switch. Which way it normally is depends on the gate. When the gate is opened, magic goes through. It takes about a tenth of a thaum to keep a gate in its energized state per round, and the changes propagate almost instantly. It takes about twice as much magic for actual spells, though. It's common to place runes on weapons, so that they can bypass the magic-resistance of the opponent's skin, allowing spells to be cast inside of them, and doing extra damage.

There is a naturally-occurring crystal capable of holding about 10 thaums of magic per pound. There is also a much more expensive crystal capable of creating 10 thaums per day per ounce. Since literally anyone can create magic, and the latter is very expensive, it is rarely used. Mainly it's just used to replace magic the former leaks. There is also a variety of magic-conductors, which could, in principle, store it, but not very well. They are used to connect magic items to the crystals holding their magic.

A few important syllables:
var: initializes a variable.
sub<name>vars[<var/sub>then<var/sub>...]end<subroutine>end: initializes a subroutine.
del: deletes a variable or subroutine. This allows you to shorten the spell so that it doesn't take as much magic to "remember".
ra-ti-o: the amount of time between saying ra and ti divided by the amount of time between saying ti and o. This is used if you want to use a number besides zero, one, or anything else you may use.
proj<var>then<sub>end: does <sub> <var> units in front of you.
vrot<var>then<sub>end: rotates <sub> vertically. If it was pointing in front of you, a rotation of zero points it up, one points it forward, and three points it down.
hrot<var>then<sub>end: rotates <sub> horizantally. If it was pointing in front of you, zero keeps it in front, one moves it to your left, two moves it behind you, three moves it to your right, and four moves it in front again.

----
Are there any games that do it this way? The only example on the TV Tropes page Powers as Programs (tvtropes.org/pmwiki/pmwiki.php/Main/PowersAsPrograms) that actually seems to fit the name is the Wizardry series, which isn't a game. This would probably be better as a computer game, as it would be way better at detecting your bugs.

Jack_Simth
2009-04-30, 10:07 PM
Are there any games that do it this way? The only example on the TV Tropes page Powers as Programs (tvtropes.org/pmwiki/pmwiki.php/Main/PowersAsPrograms) that actually seems to fit the name is the Wizardry series, which isn't a game. This would probably be better as a computer game, as it would be way better at detecting your bugs.
Some LARP's do something somewhat similar, but there's a couple of problems with making it a matter of player skill:

1) The DM *must* know the system better than the players (as opposed to it merely being recommended).
2) You'll end up with a *lot* of variation between individual DM's on how worthwhile and how worthless magic is.
3) Time makes a difference with the way you've got it set up - "ra-ti-o" makes for some painful things, because the number is defined by how quickly you say it, and is a matter of syllable to syllable - unless the DM's sitting there with two stopwatches, there will be no consistency at all in the actual "number" that "ra-ti-o" means.
4) It makes magic very difficult for the player - which means only "experienced magic players" get to play "effective magic characters". Not just "optimal" or "powerful" but "effective". If you're starting with what amounts to default D&D (especially 3.5!) you pretty much need to have an effective spellcaster or two to keep up with the expected CR. Further, it produces a barrier to getting caster players.

Pronounceable
2009-05-01, 01:28 AM
I know a number of people who'd rebel at the idea of tying PC abilities to player abilities.

Remove that aspect, and rest of it is workable.

quick_comment
2009-05-01, 01:39 AM
Its a nice idea, that wizards need to actually put care and effort into their spells.

Of course, you would then have the wizard who casts "solve halting problem" and ends up running the world into an infinite loop.

DanielLC
2009-05-01, 01:52 AM
The programming logic isn't free. Quite the opposite. In my prototype, it takes as much magic to cast a while loop as it does to cast therm. If an infinite loop was a problem, woe to the wizard who casts my example spell (it starts with while(TRUE)).

cnsvnc:
But that would be half the fun. Imagine the look on a players face when you tell him he said "whiletruethenprojnullthenthermendend". In any case, you could take out the PCs bugs, but there's still the limit to how well they can program. Of course, they can still buy scrolls or runes and just be less versatile.

Jack:
I suppose I can take out the ra-ti-o part. After all, no matter what weird numeral system the caster is saying, they're still thinking it in the same analog way.

I don't see why anyone would play this if they weren't going to be a caster.

cha0s4a11
2009-05-01, 03:19 AM
So, if it costs magic to run a given program, then what happens when you have an infinite loop? Does the loop just shut off when you are out of magic?

Also what is the break-even point for having a while loop be a better spending of magic then just saying the given magic words x times?

Where does the magical programming language stand on having variable subroutines (or subroutines as variables)? How about recursion?

What are the actual base spells that actually affect the universe and not just other spells? I assume therm is one, but what does it do?

Drolyt
2009-05-01, 03:32 AM
I like the idea of spells that are more modular, but I definitely don't think it should be difficult for the player. People play DnD largely to become someone they never could in real life, and the fact is most players who play int 18 wizards don't even have a 12. I like the programming flavor, but definitely don't make it so complicated you have to be a software engineer with an IQ of 140 to play optimally. D20 Rebirth had something like this for Sorcerers called "Spellweave" but that was actually pretty restrictive. If you could do something like that but completely free and still balanced it would be awesome.

DanielLC
2009-05-01, 01:15 PM
Software (and hardware) engineers are the target demographic for this. You probably only should have one of the players and the GM be very good at that, though.

I'm actually worried that programming skill wouldn't matter enough. I wonder if the most complex spell you would actually say would be a rudimentary target following system. Runes might be more complex, but you could simply buy a rune from someone good at making them.


So, if it costs magic to run a given program, then what happens when you have an infinite loop? Does the loop just shut off when you are out of magic?
You produce magic as long as you concentrate. If you make an infinite loop, it stays as long as you concentrate. The fact that you can theoretically do as much magic as you want will be countered by magic being about as powerful as doing it physically.


Also what is the break-even point for having a while loop be a better spending of magic then just saying the given magic words x times?
It depends on what I actually settle the costs on. Hopefully, the savings from that will be small. Also, remember you have to actually say it. If you see a guy running at you, you can't spend two rounds saying projuntherm over and over again.


Where does the magical programming language stand on having variable subroutines (or subroutines as variables)? How about recursion?
What do you mean by variable subroutines? I'm already passing them to functions as if they were variables. Do you mean making it so they change? If I think of a good way to change syllables with later syllables, I will. I figure each time it recurses it would have to spend extra magic storing the variables it just passed to itself.


What are the actual base spells that actually affect the universe and not just other spells? I assume therm is one, but what does it do?
therm: Burns a spot.
force: Puts pressure on a spot. You can force an object in any direction. For example, "proj un then vrot null then force end end" would push something in front of you up. I think I'll make these normally focused, in which case force would normally deal piercing damage. When unfocused, it moves objects.
vibe: Causes things to vibrate. Generally useful for disarming complex mechanical traps.
lum: Lights things up.
maj: Sends magic. Useful for setting off unprotected magical traps. You could also use it to recharge the fighter's magic sword from a distance.
sense: Returns the distance to the nearest magic-blocking object in that direction.

I suppose I might make more powerful versions of vibe and lum that can record and play stuff back, or even just play whatever the caster is thinking. I might add something to stretch space and time.

Drolyt
2009-05-03, 12:50 PM
Software (and hardware) engineers are the target demographic for this. You probably only should have one of the players and the GM be very good at that, though.

Uh, guess I didn't get that. Oh well. Personally I think your crazy if you think the average hardware engineer can write a hello world program though. Are you planning on making it like an iterative language? I think magic systems would make much more sense in a more math oriented functional language, no loops or other shortcuts for lazy programmers.

DanielLC
2009-05-03, 03:59 PM
You'd need a hardware engineer to write the runes.

Unless I get around to fleshing it out more, I won't make the programming language anything.

I figured this would have whatever spells the wizards make. As such, they could make a loop spell. I'm not really sure about that. When I first considered this I was thinking about making loops require quines (en.wikipedia.org/wiki/Quine_(computing)). Mainly I did loops because I didn't care much for the alternatives. I just don't like labels, and the BASIC way wouldn't work for analogue numbers. Labels wouldn't actually be much of a problem, though.

Let me try making a target-following spell:


var ang then null end
var del then ra.ti.....o end
var dist then sense end
lab start
if less abs dist nus hrot ang plus del then sense end end then null end
then
set ang then ang plus del end
then
set ang then ang nus del end
end
set dist then hrot ang then sense end end
hrot ang then
proj dist then therm end
end
go start
Okay, 90 syllables is way too long. I guess you wouldn't really be able to do much with programmable spells. You might be able to make it work if you just had people prepare spells before hand, but I think I'll just abandon this.

That's not even a very good target following program.

Stormthorn
2009-05-06, 12:47 AM
var ang then null end
var del then ra.ti.....o end
var dist then sense end
lab start
if less abs dist nus hrot ang plus del then sense end end then null end
then
set ang then ang plus del end
then
set ang then ang nus del end
end
set dist then hrot ang then sense end end
hrot ang then
proj dist then therm end
end
go start

Its like the magic in Snow Crash but longer and not in an ancient language!