Ranking
Originally Posted by tripwire View Post
Maybe you can...
If there was a symbolic link in /scripts that pointed to somewhere else, Toribash wouldn't have to go outside of /scripts.

I know windows doesn't have sym links, but theres a version of Toribash for linux right?
I'll just make a ram-disk on linux and have it save files to it using a link from within the /scripts folder

I'm pretty sure hampa restricted that already. If he didn't, he will soon, now that you mentioned it. Lua should only be able to write things to the /scripts folder, regardless of how you do it, because else it's a great security risk.

Originally Posted by tripwire View Post
Jok: these gigantic posts could all be avoided if you read what NEAT is.

It's not a simple feed forward perceptron neural net like what you are thinking; its a system for growing neural nets from individual parts called "genes" and evolving them to be better over time. It's a LOT more advanced than what you are talking about, and its being used to solve much harder problems than what I'm suggesting.

It should be obvious to you why the argument "I tried to do x in toribash and i gave up because it was too hard, therefore x is impossible in toribash" is silly.

Imagine you are building a bridge across a stream, and the builder you are asking for help tells you "Don't waste your time, I tried to build a bridge and it was a lot of work and I never got anywhere, so no one ever will".

Actually, it's more like 'I tried to do x in toribash, but I came to the conclusion that x wouldn't work right regardless of what is done, so anyone who tries it will spend the same time I did to find out what doesn't work, so I should tell them the problems with what won't work from the start, so they can notice them sooner, to either work around them, or simply give up.'

Addressing your other points:

1. Training neural nets is fun. I won't deny that. However, you again underestimate the strength of modern neuroevolution methods. Toribash right now has no single player a.i., so every game will strictly be against yourself. If you don't think people would love the chance to fight a challenging opponent in single player mode you are not being honest with yourself.

There is my botnn.rar which uses a very simple 'neural net', which isn't a neural net at all, but whatever. It's packed with Toribash and can learn quite a bit if given time, however will only be effective against one move.

2. There ARE ways of getting around the frame/tic limiter or any other locks Toribash has in place to control the speed of execution. Like I've explained before, its possible to write a "wrapper" that fools toribash into thinking its drawing, but all the opengl calls don't do anything or waste any computational power. There are probably easier ways than this as well; in other words this is not an unsolvable problem, or even a very hard one. I do NOT want to go to all the effort of writing my own openGL wrapper until I hear back from Hampa on if there is a simpler way.

Yeah, just what I meant. Those other ways may or may not exist, but talking to hampa to get a limit-free version would be an easier way.

3. Your understanding of how good neural nets are is based on your experience with fixed topology networks, which is an entirely different approach than what I'm talking about. With NEAT, the network changes dynamically to become better, so control systems and the like evolve without any special effort on the programmers part.

Like I said, I haven't tried this kind of neural net, so I don't know first-hand what it can or can't do. I am simply speculating up to a point. The problem I still see is that to train, you're basically interfacing Toribash with Java, and unless they're spot on, something's going to happen. But if you work together with hampa to get Lua fixed, that could work. By getting Lua fixed, I mean adding the stuff that's needed, and fixing I/O, which still won't exactly run perfectly. (Slow file-writing, for one. Takes up to a second for it to actually write a small number. Last time I tested was 2.8, however.)

If you wanted to evolve a Toribash AI that could both block, and jump, and dodge, there is no better way to do this than with NEAT; if you don't believe me, ACTUALLY READ WHAT IT IS and check out some of the experiments performed with it. Control systems emerge automatically if you set up the fitness criteria cleverly. For an example of this, check NERO at nerogame.com which actually uses a realtime implementation of NEAT to control little soldiers in an RTS kind of environment. It's quite easy to evolve soldiers that can choose between complex behaviors like fleeing or attacking on the fly based on their environment.

I see you've played NERO too. I have, and have used its source code to study neural nets myself, at start. However, the problem I see is that even in NERO. You can get multiple behaviors, but it won't always work right. Less than 20% of the cases in my case. And I had been training them on walking through a maze for the previous 72 hours straight. And yet, they couldn't travel through one that is simply reversed. As soon as I moved anything 1 unit to the left, everything broke down.

If you are interested, the part I'm stuck on now is trying to reduce I/O use in the communication between Toribash and the other program. Right now, everytime toribash wants to talk to the other program, it has to save a file, and vice versa. I have a feeling its probably good to avoid writing to the hard drive about 10000 times a second for weeks on end, but I can't figure out how to save files outside of /data/scripts.

I believe, but I'm not sure, you could ask hampa to implement either a socket function, or a small memory heap dedicated to Toribash, to/from which other programs can write.




From what i see so far everyone seem to backup Jok and flame Tripwire....
Which shouldnt be the case , judging from the explanations he gave he really knows what he is talkin bout ... unlike Jok...

From what I see, you know nothing about coding nor neural nets, and simply came in, and saw one of the sides, and chose to be on that side. No-one was 'winning' the argument, we were basically going on about two different things in the first half, because I misunderstood what kind of neural net it would use.

Also, I did not ask nor want people 'backing me up'. It's their choice, and they based it off of how well they know me. I've been a member here for close to two years, and have shown them what I can do several times.
Wait, if it's basically trial and error, than woulden't the glute cannon glitch cause issues? Also, what happens if it gets TOO good at playing >.>
Originally Posted by tripwire View Post
Maybe you can...
If there was a symbolic link in /scripts that pointed to somewhere else, Toribash wouldn't have to go outside of /scripts.

I know windows doesn't have sym links, but theres a version of Toribash for linux right?
I'll just make a ram-disk on linux and have it save files to it using a link from within the /scripts folder

I don't know why you'd want to do anything that complicated. All that's stopping you from going outside of your data/scripts directory on your own machine is startup.lua. Just comment out the bits that overwrite the normal io functions.
Radioactive torso's description should be, "You have cancer like wow."
Originally Posted by Skillz View Post
And you would know that , wouldnt you noobie?!...
as far as i can see , for now the only right statements that Jok made are:

1:We the casual players wouldnt be able to teach the A.I , because it would be time consuming.

What i would suggest is making a second script called A.I Trainer , which will load starting moves from replays collected in a database...
This way , when i am going out ill simply load the A.I and A.I trainer and leave toribash open , so the fights are being simulated...

However there is a small flaw , since u have to press space to start a new fight , but i believe this could be bypassed...

2:Second thing Jok's right about is that At the moment Toribash cant run faster than that , unless u had a modified version...which shouldnt be hard to get , just ask hampus bout it....

From what i see so far everyone seem to backup Jok and flame Tripwire....
Which shouldnt be the case , judging from the explanations he gave he really knows what he is talkin bout ... unlike Jok...

Whateva , i wish you good luck with this Tripwire and ill be watchin the progress...And dot get mad over most of the kids here...half of em seem to be asslickers ;]

Fine then, if hampa comes in here.
I'm Back!
Originally Posted by Jok View Post
I'm pretty sure hampa restricted that already. If he didn't, he will soon, now that you mentioned it. Lua should only be able to write things to the /scripts folder, regardless of how you do it, because else it's a great security risk.



Actually, it's more like 'I tried to do x in toribash, but I came to the conclusion that x wouldn't work right regardless of what is done, so anyone who tries it will spend the same time I did to find out what doesn't work, so I should tell them the problems with what won't work from the start, so they can notice them sooner, to either work around them, or simply give up.'



There is my botnn.rar which uses a very simple 'neural net', which isn't a neural net at all, but whatever. It's packed with Toribash and can learn quite a bit if given time, however will only be effective against one move.



Yeah, just what I meant. Those other ways may or may not exist, but talking to hampa to get a limit-free version would be an easier way.



Like I said, I haven't tried this kind of neural net, so I don't know first-hand what it can or can't do. I am simply speculating up to a point. The problem I still see is that to train, you're basically interfacing Toribash with Java, and unless they're spot on, something's going to happen. But if you work together with hampa to get Lua fixed, that could work. By getting Lua fixed, I mean adding the stuff that's needed, and fixing I/O, which still won't exactly run perfectly. (Slow file-writing, for one. Takes up to a second for it to actually write a small number. Last time I tested was 2.8, however.)



I see you've played NERO too. I have, and have used its source code to study neural nets myself, at start. However, the problem I see is that even in NERO. You can get multiple behaviors, but it won't always work right. Less than 20% of the cases in my case. And I had been training them on walking through a maze for the previous 72 hours straight. And yet, they couldn't travel through one that is simply reversed. As soon as I moved anything 1 unit to the left, everything broke down.



I believe, but I'm not sure, you could ask hampa to implement either a socket function, or a small memory heap dedicated to Toribash, to/from which other programs can write.






From what I see, you know nothing about coding nor neural nets, and simply came in, and saw one of the sides, and chose to be on that side. No-one was 'winning' the argument, we were basically going on about two different things in the first half, because I misunderstood what kind of neural net it would use.

Also, I did not ask nor want people 'backing me up'. It's their choice, and they based it off of how well they know me. I've been a member here for close to two years, and have shown them what I can do several times.

too long; didn't read
If you want help you would be smart to read it.
"When the pin is pulled, Mr. Grenade is not our friend."
-U.S. Army Training Notice
*breaks door*
yes not reading it is pretty stupid... it seems to everyone that you couldn't think of a comeback and just said "I didn't read it" instead.
Ok, I certainly hope tripwire hasn't given up on this, since it would be awesome if implemented right, but there's one thing that seems to be getting no mention.

Game modes.

Kickbox, Judo, Wushu, etc are all played quite differently. They have different turnframes, match frames and distances. Correct me if I'm wrong, since I don't know jack shit about NEAT or neural networks in general, but won't each mode require a different AI, trained to fight with moves specific to that mode?

Yet another thing. I may have forgotten if it's mentioned already, but would these bots be able to adapt to each situation in-game? As in, both players do their openers in wushu. Would the bot then act in a predetermined manner, or would it be able to dynamically adapt to the situation and balance itself/strike differently/etc?

Bear in mind that by this I don't mean I would like the AI to come equipped with knowledge of every mode right from the start, and be able to sense settings and change it's moveset accordingly, yadda yadda yadda. I would rather see this getting done in a very basic way first, ready for only one mode. It wouldn't even have to be a perfectly trained AI (since players make plenty of mistakes too).

Like Jok said, training the AI would be rather fun, probably. Thing is, until Lua is better implemented, that might not happen. If it does, however, it MIGHT (bear in mind I don't know shit about NNs) be possible (or even simple) to release an AI capable of training itself without too much effort, or even train passively by examining online replays, or something. This is all highly hypothetical, mind you.

As you may have seen numerous times throughout this thread, if you need anything to help with your project, talk to hampa. He'll probably be happy to help. If this project does get completed, you will have made many a Toribasher's dreams come true.
<stonewall> spiritBot: choke on a dick
<&spiritBot> That's not a floating planet.
<stonewall> MINE IS BIG ENOUGH TO BE