I'll reply to your arguments and ignore the inane flaming.
Originally Posted by
tripwire
Uh huh. Please pretend youre not a retard and just stop posting
The only way you can say something so baffling and stupid is if you completely fail to understand at all how neural nets work.
You seem to have misunderstood me, or how neural nets work. After training a specific neural net, you will get a 'pattern' of sorts, based on the weights that have been set. I meant that if only YOU could train new neural nets, because only YOU have access to the massive CPU power needed for it, people would likely ignore it.
90% of the coolness in neural nets is being able to train one yourself and to teach it. Not simply as a bot.
REALLY?? So tell me how much cpu power you think physics simulations do need! I'm curious since I've implemented simple physics engines before but surely you know more about it than me!! Apparently its more than is available with a gigantic computer lab or something??
You massively misunderstood. I meant, the way Toribash is coded now, you can't simulate it FASTER. It goes at a predefined pace, which CAN'T be as fast as you need. You'd need a special TB version from hampa.
Cool, your condescending while actually knowing less about what you are talking about than me. No wonder no one posts in this forum.
Let's let the actual java programmers worry about that, ok!
I am a professional Java programmer, and have been for two years, on and off. I know much more than you, and I'm willing to prove it if you want to.
That's fine, since we can use standard lua IO functions theres no need to even use external libraries.
That comment I made was in reply to you asking why external libraries can't be used.
It's obvious really have no idea what the hell you are talking about here. If you don't think graphical output bottlenecks toribash in any way are a complete fucking mental case.
There is a built in frame or "tic" limiter that prevents toribash from running at more than standard pace. You can even enable some form of frame skipping from the options.
I know way more than you about how games are coded, having coded several already.
The "tic" limiter is HARDCODED into the game. I meant that you would have to get HAMPA, or a DEV, to give you a version of Toribash which has that limiter REMOVED or MODIFIED. I was talking about the CURRENT version of Toribash if you didn't notice. Not a 'what if hampa was willing to modify the code and give you a copy to use it' scenario. That scenario is possible, but I wasn't talking about it. Asking hampa would be the way to go, since it's likely he'll agree to help.
Since you know so much about what Toribash CANT do I'll let you go ahead and do nothing. Just don't respond to me if you don't understand what I'm asking!
I know enough about what Toribash CAN'T do, because I have tried it already. Having tried and failed at doing x, y, or z means I know Toribash currently isn't fully capable of doing said x, y, or z things.
Originally Posted by
tripwire
I agree, lets have no more silliness in this thread, its not conducive to getting anything done. I'll agree to be civil if everyone else does.
As I stated earlier, I will ignore above flaming, to keep things civil. However I will not simply end an argument without coming to a conclusion.
Jok, I think we are talking past each other. I haven't explained myself clearly enough, so I will elaborate on what I am asking.
I am making a lot of progress with my script; I just haven't posted what I've got working yet. It will probably reduce everyone's confusion if I better explain what I'm making:
I am going to be doing 2 things.
First: I am making A.I.s for Toribash. I will be releasing these A.I.s as LUA scripts that you will be able to download, and load up, similar to how Ukebot works. I am not "hand coding" these lua scripts, I will be generating them with a program.
My goal is that you will be able to load a LUA script for a specially evolved A.I. and have fun practicing against it in single player (for example, there might be an AI thats trained for jumping attacks, or for grabs, or for blocking, or whatever).
Just to let you know, no-one's going to particularly enjoy them. All the fun in neural nets is training them yourself, not simply using premade ones.
A solution to this is talking to the devs, and figuring out a way to be able to give the training capability to the players too. hampa and the lot are particularly supportive of things like these and will really help. Getting in IRC and talking to them is a good idea.
Second: In addition to making these A.I.'s, I will eventually be releasing a third party application that people will be able to use, to train their OWN A.I.s
This is a more long term goal though, and I have to make sure my system for evolving AI works flawlessly before I let other people go nuts with it.
Yeah, however, unless you manage to remove the limits I mentioned, it will be too much work for the casual gamer and only the hardcore enthusiasts will be interested.
My progress on goal one is this:
-I have designed the system that will evolve these A.I.s:
The system is composed of 2 programs, Toribash and JNEAT; I have written scripts in each to make them play well with each other.
JNEAT will generate a population of "controllers", and then it will request a score for how well each controller does in Toribash. It will do this by writing the neural net to a file and signalling Toribash to take over. Using my script, Toribash will read the neural net from the file, and "play back" whichever moves the neural net wants. After the round ends in Toribash, my lua script writes the "score" for that controller to a file, and signals JNEAT to take over.
After JNEAT has finished testing the entire population of neural nets, it makes a new generation of neural nets that are better than the old generation, and it starts testing again.
After doing this many many times, the neural nets will automatically get better and better at doing what they are being trained to.
I'm a tad rusty in terms of terminology, but I'm fairly certain this isn't exactly only a neural net. It's a progressively evolving
system, as it's based on generations, and fitness ranks. The terms I learned aren't in english, so I wouldn't be able to tell exactly which you're discussing.
The neural nets I know as 'progressively evolving neural nets' are the ones that are formed of 3 layers of simple neurons, input, hidden and output, which are formed of 'neurons', which, based on the input and a
weight value, output either 1 or 0, or any number of values in more complex nets. The weight value is what changes after a training session. Basically it adds a fraction of the error mark from the last 'generation', and tests to see if it's better. If it works better, it becomes the new generation, else it's scrapped, and a different error mark is added, other weights are changed, etc. As such, it always evolves. However this type of neural net isn't particularly effective in complex situations such as fighting. My experiments with neural nets in TB showed that at most, I could get one neural net, consisting of ~500 inputs (positions, former positions, speeds, former speeds, delta, etc), ~2500 hidden neurons, and 21 outputs, to 'try' to balance itself to keep from falling down. After about 5000 iterations, it manages to stay up, while occasionally somersaulting backwards because it misjudged something.
My idea would be using several neural net, one for each limb, or one for each task (balancing, positioning for attacks, etc), and one main one that judges the outputs of the others AND the current status, and chooses which one would work best, and uses that one. However that would be way too CPU-intensive according to my tests, if you were to get it to learn constantly. I never tried making it without learning capabilities once it's been trained, so that might be plausible.
All that stuff works so far, I've written and tested it; there is no I/O problem or difficulty getting TB and this java program to communicate.
The problem is that these tests in Toribash are too slow; this is because right now it takes about 30 seconds to a minute for a match to play out.
What I'm doing to work around this is using virtualization to have Toribash run many times at once; this way I get about 350 tests done in an hour, instead of about 60.
Now, if there is some way to stop Toribash from wasting time on OpenGL calls I could get that number up to maybe 100,000 tests per hour. Despite what Jokker thinks, this IS POSSIBLE!
As I said, it is possible if said limit is removed. Talk to the devs and have them help.
See post #2. Character limit is too short.