Sign in to follow this  

Silly game idea

Recommended Posts

This is a silly game idea ive had for awhile and id like to run it by the community to see what people have to say I think we all know what a wizard is, but what of a battle of programers. in game programers who frag like wizards but instead of pre designed spell casting programers would in game script out attacks and traps. The game would have to come with its own programing language and to be more exact.. the only people who could not would play the game are people with programing skills of various levels. As soon as they enter the game they are prompted to start scripting in order to get the most kill points. They could do such things as script themselves the ability to fly, script in a major fire ball weapon and assign it to weapon slot 1. and so forth The levels im assuming would be Astral in concept. im thinking that levels would be randomly generated by throwing misc brush objects and just objects into a world. various worldy setting like being in different planes of exsistence like D&D has different planes.. like the plane of air, space, water, earthen caves.. ect.. and in these worlds would the levels be generated. I know the game has many down falls.. like spending to much time coding and not enough time playing.. well in my point of view that all depense on how the scripting language is made and what steps players take to make the scripting as light as possible.. like created in fire ball weapon and assingning it to weapon slot 1. and to keep players from programing to high, they have bounderies.. such as if they give themselves to much, they will have a system overload and die loosing all they have programed. but beyond just saying I have a fire ball weapon. there are things ive invisioned that cant be programed so simply. Such as typing a script that creates a wall around you, or a wall of fire. or typing a script that transformes the player model into a space craft, or etc. or typing in a script that casued the player to become invisable. Basicly just creating a "what would be cool" list and figuring out how to implement it into the game Basicly a game where people can hack freely, and hacking is the name of the game. Its a loose idea with alot of quirks but befor I think to seriously about it i would love some feedback thanks [Edited by - Manic_Gamer on June 8, 2006 11:04:22 AM]

Share this post

Link to post
Share on other sites
Sounds like an interesting idea, but actually implementing it may be difficult. Are you considering a turn-based system or is it in real time?

Plus how would you make the limitations known to the player? How does one know if you are giving yourself too much of an ability, or what abilities are actually available at the time?

I think that a more "visual" language may work, instead of it being all text-based. For example, if players used pictures and arrows to depict certain attacks and such.

Share this post

Link to post
Share on other sites
I like the idea, i have had that conversation with my friends about making Hacking all part of the game.

I would agree that the typeing would become more work than fun if not done right, in addition i could see people losing interested after the fith game of codeing flight.

Cut and Paste might become an issue too, but if you could find a way this could be a ton of fun.

Share this post

Link to post
Share on other sites
How about a graphical scripting language?

What if you were able to just rag and drop scripting command onto a window (or whatever) and they appear as little blocks. If each block had a connector that allowed you to attach another script "block" to, you would be avalable to rapidly build a script. Variables could also be added in this way.

Conditional statements (if/then, etc) would have 2 (or more) connectors. Loops would be constructed by connecting a link to a previous block.

You could also have the scripting engine run the scripts at one block per "tick" so that the person with the fastest script has the advanatage (so it is not just you ability to code, but to code efficently that wins).

Share this post

Link to post
Share on other sites
Guest Anonymous Poster
One game that springs to mind is RoboForge (I think that's the name).
In Roboforge you have to build a robot using blocks (which is something different all together), then you have to program it.

Programming can be simple or very complex. You have to create the program before hand, and once all done, you send your bot into a fight. Two robots fight by themselves, who ever built the best bot and wrote the best AI usually wins.

But there's not really any interaction from the player during the fight. It makes sense with robots, but I don't know how well this would convert to Wizards and magic.


I've thought a lot about games like these in the past (using scripting as the game, and or games about hacking the game itself), but they are too full of holes and extremely complex. The only way it would work is to put massive contraints on what you can and can't do, which is sure to annoy the players.
Hope this threads stays active, as I'm hoping to hear ideas from others aswell.

Share this post

Link to post
Share on other sites
Definately makes for some good thinking.

The main areas would be boundaries for the players to stop them from being too powerful through scripting, but also a way to make it fun.

As for the block scripting idea, it could be easily developed into a game, perhaps one that compiles your active "script" every so many seconds .. so it's up to each person to make the best "script" out of the blocks they have access to in that turn. How the blocks would work with each other could be simple or complex, definately a lot of room for additions and improvements.

Hmmm .. writing a combat script for a pvp game could be fun actually .. especially if you limited their access to the systems, or they had only a certain amount of "lines" to do what they wanted and hacking the system became a list of functions they could perform to do certain things, like attack, powerup, heal, just about anything.

Hehe .. the more I think about it the more doable it is. :D

Good idea btw.

Share this post

Link to post
Share on other sites
Some ideas:

Programmers aren't sexy (sadly), wizards are... what you CAN do is make the act of wizardry more base itself on coding (in the same way that Faust makes Daemonology work like a legal document).

Make the 'creation of spells' a metagame (i.e. stuff you do OUTSIDE of the game). At runtime you use the spells in your book.

Other ideas:

- Spells are grouped by libraries, modules and functions. So for example:
Air Library contains
Wind Module contains
Air Dart spell-component

Every time someone uses the air-dart function (for example in the "death of a thousand cuts" function), they deplete the function (gets less powerfull), the module (all functions from that module loose a LITTLE bit of power) and the Library (TINY reduction to all air functions).

So you personally have a stake in finding 'unusual' methods to do things, which stop people from just copying and pasting functions of the net.

Energy regenerates over time, and can grow beyond the orginal levels. So if noone has used the Necromancery library for a while, all functions there will be unreasonably powerfull..

- Spell type ideas:
- Search (like "tendrils of darkness"),
can be used to spot a target. Essentially stab or area queries, which are then used to tag the next stage of the spell.
- Deflect (like "circle of invisibility")
can be used to deflect queries or attacks. Should be designed so that spells can 'spar' against each other ( so that with clever coding, you can break down another shield)
- Damage
- Boosts/curses
- others?

- Spells take cycles, and your cycles are dependent on (level/lands controlled/phase of moon). So you can't just do a

for (1 to lots) do BigAssFireBall(AtTarget)

Since you probably don't have enough cycles at any time to fully utilize it. Cycles recharge (every turn? Every 10 seconds?) so the battle stays fast-paced.

- To use a given spell you need ingredients and/or talents. Talents are essentially skill points (so you gain talents when you level up) and ingredients are found or bought in the game world. Gives you a grind, if that's what you want.

Share this post

Link to post
Share on other sites
Have you read the Wizardry Compiled series? Its about a programmer who manages to create a programming language for magic in some fantasy environment that he is transported to.
Anyways, if you thought about this game as a strictly single-player thing, you could make some cool levels.

Consider this: as you advance through the game you gain access to more advanced programming techniques. Maybe in the first level you only have access to a few damage functions (you know, fireball(crosshair); shockwave(); assumedly these functions would cost some sort of energy or mana ) and you are restricted to just putting them in sequence with no conditionals or loops or anything. As you advance through the game, you first get access to conditionals, so you could make a spell that would check if the enemy is weak to fire then use fireball, otherwise it would use lightning bolt. You get the idea.

The other model I'm considering is the one where you have "components" and the wands you get have different ones. So maybe you could find a water wand that would include the damage spells IceSpear(); and TidalWave(); that each have their own static recharge times, mana costs etc. The only programming you do is the logic that connects different inputs to different outputs. You can't do a while loop fireball because the fireball has a set recharge anyway. Maybe you'd find a wand with no crosshair, but incredibly powerful spells. Or maybe one of your wands would have a getEnemyLocation() function. With this model, you can balance the game just as you'd balance any fantasy RPG. And it would also allow for PvP balance in an easier way than the first model.

By the way, has anyone played Mindrover? Thats the kind of model I'm talking about in the second example.

Edit: Just a further example of my second idea...

Okay, you're running along in the game, you see a wand on the ground. You pick it up and now its in you inventory. You right-click it and a list of all its functions comes up; you notice a certain one, FindClosestEnemy(), that you haven't seen before. You also see that the spells it contains are lightning-based ones. You equip the wand, then type Wand.FindClosestEnemy() into your console. It returns imp[0], and the imp in front of you glows for a second. Now you write the following program into your console:

function LStrike(){

You bind the left click mouse to LStrike() and test your function. Sure enough, you can aim anywhere you want and the imp will be hit by the lightning skill. You also notice that the function costs you more energy and takes more time because you have to use two extra functions to find and get the location of the nearest enemy.

Anyway theres my stupid little example of how the game would work, roughly.
Have a nice day :)

[Edited by - Kriuq on June 9, 2006 10:45:00 AM]

Share this post

Link to post
Share on other sites
I have been designing something like this for a long time. Interestingly my magic programming language has turned into noncommunitive operator algebra. Maybe it's because I'm a math major.

Anyway a spell is like an equation where multipling two spells A & B together like AB means do A, which then does B, or you can flip the order for a different effect. Addition is casting both spells similtaniously whith no relation between them so, A+B cast both A and B, AC+B^3C^4 would cast A which casts C and would also cast B which casts B which casts B which casts C... .
Things get really interesting once I allow parantheses, A(B+C) means A which casts the spell (A+C) which is A and C both being cast. Interestingly (A+B)^n gives me the same result as the noncommunitive binomial theorem (No suprise when you think about it). I even incorporated sigma and pi notation for sums and products with indices.

Example: A, move forward spell: B: cause fire spell

A^10 * 5B
Moves forward 10 spaces, then casts 5 fire spells on target.

By adding in rotation spells, conditionals(behaves like a 0 if false, else 1)
and effects I have a preety neat system. I just need to make a game off of it.

Share this post

Link to post
Share on other sites
I can't remember the name, but I once downloaded a game where you could program little 'tanks' to do battle in a virtual arena. The tanks had their own instruction set and set of interupts which were used to control functions like movement, radar, communication with friendlies, aiming the turret and firing. It was really quite neat to watch the simulated battles played out, although you could simply run the simulation sans graphics to just get the results of the as well. There were even some organized competitions where the tanks were divided into weight-classes based upon the number of instructions. < 1k was light, < 2k was medium and up to 4k was allowed for the 'heavyweights.'

Personally, I think the truest way to test a programmer's skill is to give them a common set of limited resources and see who can develop the most efficient/intelligent/deadly/whatever code... I can really only see your grand idea deteriorating into who can type in their memorized uber-weapon code fastest and whether or not anyone had managed to squeeze their memorized shield-of-invincibility code in before the blast.

Share this post

Link to post
Share on other sites
Wow I got into this discusion late . . . but anyway:

I'd like a conversion of many of the prestated ideas, as well as a few I'm adding.
I think the black system is a really neat idea. You could have solid blocks, gel blocks, and liquid blocks, all reffering to costumability of them. Solid being unconstomizable and the code is hidden too. Gel blocks could by costomised, but only with the words it came with, and certain parts would be completely unmovable. Lastly liquid blocks could have costomability up to either a certain number of lines, variables, etc.

Then you could have component pieces, which would come in either solid or gel, which have peices of code that could be added toa normal block. For example, earlier it was mentioned that you couldn't put a spell in a while loop as it would need recharging time. But what about an if statement where:
if MP > neededMP:
-----> cast fire_spell()
That would automate combat to some degree, but more importantly costomize it.

And apart from component peices, you could have elementals which would add an elemental property to a block of your choice. Otherwise it should be impossible to create a fire bolt, but rather just a bolt.

And further developing on the blocks idea:
Blocks could be literally everything! You could start off with a noob set: one block for armor, one for attacking (both solid of coarse) and maybe a few item blocks (at least one of them being a identifying glass for reading solid blocks) all of these solid of coarse. Later in the game you could pic up elementals, armors, liquids which can be anything, etc. etc.

I think your idea is more than a game, it's a genre.
Wouldn't it be cool to play an FF game, only when you press attack you have to quickly write an attack code before your opponent? A short code could inflict small damage, but a large code could give lots of damage, but the problem being risking that your opponent went for the small code, attacks you, and your code disapears for the next round to start.

Share this post

Link to post
Share on other sites
Ive thought about this kind of thing before, and I think it would work well in a pre-programmed environment as stated earlier. A world similar to The Matrix, where the universe is a peice of software, would be fitting. Perhaps in an FPS, you could build programs before playing, but to upload them they must fit certain criteria (since the world you would be uploading to would reject/block code not fitting).

For example, code would come in 2 varieties. Objects and mods. An object would have 'physical properties' within the code world. This would include things like weapons, vehicles and items. Object code would have to be 'contained' by an object. Greater object code size would result in greater object weight and size. So a pistol could not contain code relating to a bazooka, as a bazooka. Code size would be determined by the effects and properties it contained. Flame based effects, for exmaple, would dramatically add to 'code size' which would be shown onscreen in the programming mode. You could, for example, add the following property to an object

EXPLODE(radius = 35, fuel = 6, damage = 25);

which would cause the weapons projectile to explode when the code is called with a radius of 35 metres, causing 25 damage per second, and lasting for 6 seconds. Greater radius, fuel and damage would add to code size. This would happen exponentially to discourage super weapons.

This means more damaging weapons would slow your character and may take both hands or a mounting beyond specific weights. Code would also have to upload in bandwidths, so the larger your code the longer to upload it for potential use.

Vehicles would obviously require much more code and hence much longer bandwidth requirements. Perhaps in games you could get access points by overtaking an important building or location. This add to your bandwidth.

ALso, mods would be different. They are executables, therefore have no pysical state. They could be executed once per upload. They would access variables either within your own code (heal mods, armour mods, ext), or within world code (remove/add walls, objects, ect.) World code would have to be within your influence (neighboring vacinity to you, or within/about a building you control that you upload to). You could also compile mod code to an object, this would increase its code size, but could be benefitial, by either modifying enemy code (draining health, remote controlling, disconecting uplink [break current upload], emptying cash [delete uploaded code] ect.) or by modifying area code from a distance (image a grenade which suddenly spawns a building or vehicle!)

Share this post

Link to post
Share on other sites
Guest Anonymous Poster

The complexity of the game world -- all the situational factors and data that would be made available to the 'spell' scripts .....

I thought about it and the idea of having runes that make up the primitives would be combined (though I doubt it could get as complex as you would want -- ever try to figure out what a graphically presented programming language should look like...)

The idea might be to have higher level spell components be designed by the players
(runes that represent script fragments) which would be combined in real time in the game (thus versatility being important).

Things like defining area of effect (with some runes being size parameters) - effecting the density when only so much energy is avaiable (smaller area+ energy = high damage (to few targets) etc...

Targeting mechanism (casting atound corners, filtering to selected target types)

Effect attributes (fire attack, sonic, etc... patterns)

Sequencer for combination spells (petrification then shatter...)

Duration, range, energy, fragment count, cone shape, area, assurance of result, permanence, multipliers, caster immunity, casting accelerators, boosters, inverters, component substitutions, etc....

The player would be able to prebuild entire spells (for quick reaction) or leav them as building blocks for versatility.

With experience additional building blocks become available (and competancy in them??)

Graphicly building the spell would be part of the gimmick.
(probably enchanted objects would have the spell 'runes' on them)

'Runes' might be real objects,components that wear out and either need to be stockpiled/restored (forcing use of alternatives). Rare 'runes' might be hard to come by, etc etc etc.......

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this