Blame it on the beers I had this evening, or the fact I didn't have nearly enough, but I came up with an idea for a comp, or maybe just a community game of sorts, that could be interesting.
Basically the premise behind this 'game' would be to have a battle ground made by one of the judges.
This battleground is pretty much just a game with a couple of levels.
Users can download this game, and their goal is to make the best possible AI they can to defeat an opponent.
As for this opponent, it could be a number of things. It could be a player, it could be an AI made by the judges, or it could be another AI made by another user where a round robin style contest is played amoungst players.
But it doesn't have to end there.
You could have different arenas for different styles of AI's.
You could have an arena for platform AI's.
An arena for top down AI's.
An arena for turn based AI's.
An arena for pathfinding AI's
...and so on...
Of course this does mean there would have to be a number of strict rules as far as programming goes. All depending on how the 'game' operates, what the users AI has to accomplish, and what limitations and restrictions have to be implied on the user's AI.
Also, it would probably mean 'judges' of such a thing would have to be involved in putting these matches together somehow.
Although having the possibility of relaying information to users by some kind of online correspondence would be very cool. But alas, i'm getting ahead of myself a bit there.
Anyway...tell us what you think. And if worst comes to worst, i'll embark on some kind of programming journey myself.
Hell, im quite good at coding some AI like topdown and platformer... Oh did I understand right that the everybody's AIs are put in one game to fight against each other? (my english=average) If you do, well THAT'S AN EXCELLENT IDEA!!!
Beware, be alert, prepare to defend yourself, or just run for your lives(!), because
JarmoNator has entered the building... (see avatar)
that dark human beast is almost unstoppable, invincible and totally gone CRAZY!
I had a few more today, so my thinking is a bit better.
It's a pretty far out idea, but if well moderated and judged, it could be a decent contest. Almost like those shows ya see on TV with the home-made robots and shit. And if it were possible to have viewers...then, oh mate, it would be the only Click 'spectator sport' to date!
As far as keeping things fair and putting it all together goes, I think the best idea would be to have the robots capable of moving, firing line-of-sight detection objects (perhaps a short-range one or a long range one, or else be capable of receiving the distance at which the detector struck something), and performing sime kind of attack, all based on flag triggers and handled in the main body of the frame code to prevent people being a little too creative with the bots' abilities.
This way the critters can have all of their AI contained in MMF's behaviour attached to to them, and the coding would consist of setting triggers and interpreting the detector information, but not concerned with creating objects or manipulating them. It decreases the usefulness somewhat as an AI example, but it's more of a test of bot programming abilities. Plus, it's fair.
And, because behaviour is internal to the object, judging them would just be a case of copy & pasting the bots in and running.
There could be a number of ways to do this. Depending on what exactly you're testing.
The most simple way, and probably the most fair now that I think of it, would be to test an AI in some kind of obstacle course of sorts.
For example; in a top down environment, you could have some kind of maze or path is has to negociate, then it may have to dodge some kind of incoming obstacles otherwise it'll be sent back in the course, and then finally it'll might have to do some kind of target practice range. The key would be to test how fast a users AI could complete this course.
Of course you'd have to have limitations for the AI itself. As far as speed and 'weaponary' go.
Another idea that just came to me would require alot more programming on the 'judges' end. Basically they make an engine for users AI to fight other user AI's, but all of the programming for the user is stored in an external file of sorts...possibly just an INI, and this is fed into the bot itself.
This is a much more complex idea, and i'd probably have to think how exactly it could be done, but it has potential as far as i'm concerned. Depending on how well the engine is made, and depending how and what exactly has to be included in these external AI files.
Anyway, that's my 2 beers, i mean cents worth on my own idea.
I agree with Kramy. That way, the AI would be easier to make.
Click Battlebots would be fun, though there'd have to be a TGF division so I can compete. And having teams like in battlebots would be fun too, but I think working with yourself is better for small proggies.
A multiplayer Battlebots in click fashion would be teh r0x0r. You could select the colors of your robot, what weapons to mount on it, what type of armor, etc. And you have to pay money for all of that, but you win money by winning matches.
Okay, i'm getting a little ahead of myself here. But i'll compete, but the template has to be TGF friendly.
That or make some program that everyone has to download that converts it into whatever format the game uses.(IE a proggie that lets you select actions from lists to make triggers, which then gets saved as MMF array, for the "game" to interpret)
I've had this idea for a long time.
Muggus, I love you.
In any case, it would be best to make this not really
programmed in MMF/TGF, I think. Then again, that is basically
Robocode, or Roboforge then.
We would need some kind of limits...
Ah! There are house projectiles. They can be shot and may not home-in.
They have 2 properties:
Then always reduce ValueA by 1. If ValueA is 0, and conditions
are met, launch projectile and set ValueA to Speed of Projectile.
The more speed, the faster.
I might make an example
Edited by the Author.
-Above post is ancient and probably irrelevant-
An old account of mine, recently cleared out. It's a blast to the past, the age was marked as 14 when I found it. If you know where to look, you can track me. Au revoir.
i like this idea, it got me kinda inspired accually.
therefor i have started maknig an app like this. If it becomes anything of interest i'll show it later on. anyhow, its planned features are:
* AI code thru ccn:s, a wide array of numbers are spewed into this AI attachment from the main game, and a likewise large database of commands are availible for the AI attachment to be sent to the main game, commanding the battletant.
* an AI attachment template with all numbers and functions explained. After that, the AI-coder is free do code the AI however he or she wants, limiting the code to vitalized extentions.
* The main game is set up so that you load two AI attachments and have them battle eachother.
* Game setting is top down action game, Map editor is supplied aswell, (The AI should be able to handle all kinds of maps dont ya think? =D )
* mapeditor will be supplied with a numerous amount of special tokens which can be placed, such as Goal (for obstacle courses), Powerups, important zones, protected area and so on. The positions of these zones are then used by the AI attachment ANY way the ai coder wants to use it. They are not precoded at what they do or anything, just to give AI coder more room for experimentation.
* (forgot one feature) Each bot will have a logo representing it, this logo can be customized into infinity since its a part of the AI attachment, making adding small sprinkles or animated effects easy! (even adding sound comments would be possible!)
stay tuned for updates on the progress.
I've started work on the battle pit engine, I should have it finished tonight. Actually, it should be finished now, but MMF refuses to treat its groups properly, so I'll have to divide the engine in half rather than doing it the right way.
How it works is you write the AI of your bot inside it's behaviour editor (in MMF1.2, I guess TGF entrants are screwed), and the engine handles all the movement and stuff, triggered by setting flags inside the bot. It's actually really a battlebot programming app rather than an AI one, in that there are a limited number of stimuli that you can respond to and actions you can take. For example you cannot use the coordinates of the enemy in your calculations, only a simple line-of-sight detector to seek them out. If that isn't your cup of tea fear not; as far as I know this'll be a challenge of multiple parts. That is of course if anyone makes any more parts.
the idea behind the AI game is that the AI coders have supreme knowledge of the gamesituation. I want to give the bots maximum possible information as far as to the positions of incoming enemy projectiles.
i dont want two bots blindly walknig around trying to find anything, i want two bots furiously killing eachother, in smart ways. Hopefully it will be accomplished =
Well, the engine treats the bots by group, so all entrants have to do is edit the behaviour (from, say, a slimmed-down version of the final product), change the name and animations if they want, then the object can be copied into the battlepit and run without modifying the enigne at all.
The idea is for game to contain all of the competitors' bots, then you can select any two from a list and see them battle, all with minimal effort from me. Originally it would've been possible to have any number of bots involved in a fight, but MMF is refusing to obey its master so I'll have to limit it to two.
I just had a thought, are libraries made in MMF1.5 compatible with 1.2?
How are you going to make sure all bots have the same speed and weapon etc.?
How does the CCN architecture for thewreck's method work? Is it all Global Functions or do you actually get objects to play with?
The bots' movement and weapons are handled externally. All you can do is switch flags and do calculations inside the bot. Weapons also do slight damage to the firer, so you can't just have your bot running around firing fifty shots a second (or you could, but that would screw you if you miss).
Anyway, the (basic) engine is done. I'll finish off the readme and upload it momentarily.
the communication between the AI attachment and the Main Game will be done by Global Functions, The processing of the info gained can be thru any object, so in that sense, there are objects to play with, given you use them to process the info collected, and then later issue the commands suitable.
secondly, you are given objects to play with in another manner. i plan on making commands for more advanced object manipulation thru the global functions, for example, each bot will have a number of objects which can be moved around freely in the game by the AI attachment, this object will return info to the AI attachment, as in, did it collide with anything, is there a powerup there, is that a wall, is that an enemy shot. and so forth. But dont get me wrong here, thats not the only way of gaining info, all shots flying around the map will be listed in a data list sent to the AI attachments so that they can react appropietly, (similar lists will be sent of most aspects of the game)
The AI attachments will also have access to the raw map data, making it easy for the AI coder to know exactly where everything is on the map. This will hopefully also make pathfinding programming easier on the AI coders behalf.
also, in addition to that, the CCN+global function structure makes the whole thing very secure, you cant just move the bots anyway you like, you need to use the commands availible to the bot, altough these will be plenty, and not limited to just bot manipulation.
are we allowed to use the enemies coordinates when within your LOS? And to keep things balanced so people don't make über powerful bots, make it so you have a number of "creation points" (like in sports videogames) and so you can only have so much power and can be distributed to wherever you want, Bot speed, Bot Armor, Attack Power, Attack Speed...etc...
What information in general will be accessable by the bot?
FISI could have helped make this engine so much easier
As a boy, I wanted to be a train. I didn’t realize this was unusual—that other kids played with trains, not as them.
in case anyone is interested (which is unlikely =| ) im gonna post an update:
engine working super, ai attachments communicating well with the main game, information and command flow between the apps is up and running. Bots of same AI can fight eachother, right now two of my 'thewrecks groovy ai' bots are fighting it out behind this forum window.
im quickly approaching the level at which i will need people to try out this thing for themselves, for testing purposes, alpha stage kinda.
RE: bot firing capabilities. I want a submachine gun, but it would suck if you lost like 10% of your health for each shot. Can you have some kind of 'weapon property' system that deals damage in relation to bullet size? (i.e. you die if you use a big tank cannon or something.)