MASSIVE like AI program
Moderators: jesterKing, stiv
MASSIVE like AI program
After watching the Lord of the Rings "Inside the Effects" videos, I was filled with an urge to make a MASSIVE like AI program. For those that did not watch the videos, MASSIVE is a program written for LOTR to simulate large armies in battle. The warriors decided what to do off of sets of "brains". These brains had decision nodes to calculate what to do.
Now of course this program I've begun writing is no where near the level of quality of MASSIVE (it had 80,000 digital warriors in the prologue scene in FOTR). But with the support of the community I believe it can become at least a good and/or fun project.
How does this relate to Blender? Blender is the renderer that will render the scenes that are generated by ARtificial Life Simulator (or ARLS).
I'm am not a beginner level C++ coder. I have programmed in C++ for 3 years and have experience in OpenGL and Windows programming. But I've never tried artificial life simulation. That's why I ask for community support.
If you are interested, please email me (my gaming email):
ARLS_Programmer@yahoo.com
Also here is a link to the LOTR "Inside the Effects" videos:
http://lordoftherings.net/effects/index.html
Thank you for your time,
J. Pennington
Now of course this program I've begun writing is no where near the level of quality of MASSIVE (it had 80,000 digital warriors in the prologue scene in FOTR). But with the support of the community I believe it can become at least a good and/or fun project.
How does this relate to Blender? Blender is the renderer that will render the scenes that are generated by ARtificial Life Simulator (or ARLS).
I'm am not a beginner level C++ coder. I have programmed in C++ for 3 years and have experience in OpenGL and Windows programming. But I've never tried artificial life simulation. That's why I ask for community support.
If you are interested, please email me (my gaming email):
ARLS_Programmer@yahoo.com
Also here is a link to the LOTR "Inside the Effects" videos:
http://lordoftherings.net/effects/index.html
Thank you for your time,
J. Pennington
Last edited by mr_rob on Thu Jan 08, 2004 10:55 pm, edited 1 time in total.
The ARLS website is up but it's a little lacking in features. Once ARLS matures more content will be added. Also, it's on my ISP webspace so the name is somewhat cryptic.
http://sje.home.mchsi.com
Edit:
I just finished my SourceForge project registration request for ARLS. Sometime within 2 business days I'll have their reply.
http://sje.home.mchsi.com
Edit:
I just finished my SourceForge project registration request for ARLS. Sometime within 2 business days I'll have their reply.
hello,
I have just wrote to you to express my happiness to see an AI related project starting in blender.
I proposed quite the same approach in a thread on www.kino3d.com forum...
http://www.kino3d.com/forum/viewtopic.php?p=14533#14533
so ... consider this as a proposal to join the effort!
Andrea aka tredee
I have just wrote to you to express my happiness to see an AI related project starting in blender.
I proposed quite the same approach in a thread on www.kino3d.com forum...
http://www.kino3d.com/forum/viewtopic.php?p=14533#14533
so ... consider this as a proposal to join the effort!
Andrea aka tredee
-
- Posts: 442
- Joined: Wed Oct 23, 2002 2:47 pm
mr_rob. All that I ask is that you build a better web site or have somebody do it for you. As a clean work surface will attract far more atraction.
The dynamic rig is great, I sugest that you cheack out the current Wired magazine, it has the exact animation system that was your insperation detailed on how the inner working of it work. It uses life form cell data to create a different sceen everytime, and to tell it's self where and how to respond to punch and whatnot. It is the Wired magazine with the red cover near the back.
^v^
The dynamic rig is great, I sugest that you cheack out the current Wired magazine, it has the exact animation system that was your insperation detailed on how the inner working of it work. It uses life form cell data to create a different sceen everytime, and to tell it's self where and how to respond to punch and whatnot. It is the Wired magazine with the red cover near the back.
^v^
hi mr_robmr_rob wrote: I appreciate all support, I'm hopefully going to get a sourceforge site for ARLS.
if you want you have all my support, i have php and html know-how
i cannot help in development i know just some python and blender

a good place is to open a new project here at projects.blender.org

and a presentation site where you want, but i can host it.
ciao
kino
kino3d.com italian site
Yes, sure ... I am mainly a C++ programmer... even if I like all object oriented languages (python, ruby, C# etc..) ... I am not a fan of "only one language for me" man concept.Andrea, are you a C/C++ programmer? I tried to read that thread using the Babel Fish translator, but it couldnt translate all of the words.

what I like in the approach of beyond http://www.asbahr.com/beyond.html is that developers have developed some design patterns on it (their papers worth a read).
btw ... I am actually involved as a researcher in AI on embodied agents (robotics) so I see this as an opportunity to contribute to blender while studying/working, and not only in my spare time ... see http://www.aalcor.org (not well mantained at now).
My first interest is in behaviours constructed upon fuzzy logic ... It is a great tool/tecnique to model behaviours of an expert agent.
kind regards...
There was a discussion about this on elYsiun over a year ago. You can read it here:
http://www.elysiun.com/forum/viewtopic. ... ht=massive
For your convenience, I'll reproduce my comments here, which pretty much stand as is. I've added some things to the algorithm since then to make it more comprehensive:
...What you need to figure out is the battle dynamics of a crowd. What you need is a sort of cellular automaton system, like this...
Each actor (warrior, whatever) follows this set of rules, reevaluated each frame:
Each actor can have different strategic capabilities, different weights and tolerance values to any of these (and more) parameters, giving you the ability to create armies with varying fighting styles, skills and strategies. A few simple rulesets can generate some awesomely complex behavior.
Once you can make two groups of dots swarm across the screen and engage each other in realistic battle formations, then you start putting in the mocap, the hand-to-hand combat simulation, etc. Just the other day I was wondering if WETA could be persuaded to release Massive as open source. Ha! This is a huge project, and I wish you luck.
=====End Quote
Things I've thought of since then:
1. Blender's NLA and Action Blending would work well with a combat system like this. Although my intial thought was that each hand-to-hand encounter should be precalculated, I've changed my thoughts on it. The special feature exposition of Massive shows what they call "mugging" behavior, which is a third or fourth party interceding into an ongoing encounter. With precalced encounters, this is not possible. Dynamically generating encounters allows this, as well as other interuptive behaviors (c&c retreat, charge, etc.)
2. The nice thing about an algorithm like this is that you can tackle it piecemeal, extending functionality once you have each stage working. One team member can work on the code for moveweight(), having their math push around dots on a screen. Someone else can simultaneously work on personalstrategy(), building that trickier logic on it's own with single actors. Another coder can be working on pathfinding/object avoidance. Or a single person could tackle each one as a discreet project.
I think that this is a superb idea, and doable, too. The easiest part, I think, is the logic of the individual behaviors. Next hardest is the pathfinding/terrain following/object avoidance, but there are resources and much stuff on the net about these. The toughest part is the combat logic, which would include the actual character animation. To get it right, it would have to be mo-capped, with a set of different moves for each combination of opponent and weapon types.
I'll be watching this thread to see what develops.
http://www.elysiun.com/forum/viewtopic. ... ht=massive
For your convenience, I'll reproduce my comments here, which pretty much stand as is. I've added some things to the algorithm since then to make it more comprehensive:
...What you need to figure out is the battle dynamics of a crowd. What you need is a sort of cellular automaton system, like this...
Each actor (warrior, whatever) follows this set of rules, reevaluated each frame:
Code: Select all
Are you engaged with an opponent (within attack range)
yes { Are you currently in the middle of a combat technique?
yes { continue that technique }
no { combat logic and begin next technique }
}
no { move(moveweight()) }
}
moveweight { //determine which direction to move
take into account {
command and control instructions //retreat, rally, etc.
the nearest unengaged opponent
the average location of all opponents
formation restrictions //unit coherence rules
waypoints/goal locations
personalstrategy()
physicalconstraints()
}
return direction
}
personalstrategy {
seek out the following conditions {
high ground
physcial cover
proximity to allies
courage/cowardice
}
return strategydirection
}
physicalconstraints {
take into account {
terrain following
pathfinding
object avoidance
}
return phsycialconstraints
}
Each actor can have different strategic capabilities, different weights and tolerance values to any of these (and more) parameters, giving you the ability to create armies with varying fighting styles, skills and strategies. A few simple rulesets can generate some awesomely complex behavior.
Once you can make two groups of dots swarm across the screen and engage each other in realistic battle formations, then you start putting in the mocap, the hand-to-hand combat simulation, etc. Just the other day I was wondering if WETA could be persuaded to release Massive as open source. Ha! This is a huge project, and I wish you luck.
=====End Quote
Things I've thought of since then:
1. Blender's NLA and Action Blending would work well with a combat system like this. Although my intial thought was that each hand-to-hand encounter should be precalculated, I've changed my thoughts on it. The special feature exposition of Massive shows what they call "mugging" behavior, which is a third or fourth party interceding into an ongoing encounter. With precalced encounters, this is not possible. Dynamically generating encounters allows this, as well as other interuptive behaviors (c&c retreat, charge, etc.)
2. The nice thing about an algorithm like this is that you can tackle it piecemeal, extending functionality once you have each stage working. One team member can work on the code for moveweight(), having their math push around dots on a screen. Someone else can simultaneously work on personalstrategy(), building that trickier logic on it's own with single actors. Another coder can be working on pathfinding/object avoidance. Or a single person could tackle each one as a discreet project.
I think that this is a superb idea, and doable, too. The easiest part, I think, is the logic of the individual behaviors. Next hardest is the pathfinding/terrain following/object avoidance, but there are resources and much stuff on the net about these. The toughest part is the combat logic, which would include the actual character animation. To get it right, it would have to be mo-capped, with a set of different moves for each combination of opponent and weapon types.
I'll be watching this thread to see what develops.
Links to read
mr_rob, kudos for taking this on. I hope you're prepared for what a massive (npi) task it's going to be. That said, it's very do-able. The makehuman project is also a huge undertaking, and they've just got to 1.6.
Anyway, enough fuzzy stuff. The first thing to do here is some research, so as not to reinvent the wheel. AI is a popular subject, as is games and game theory. So I figure the first place to look would be at the AI in some games.
Liquid War is as good a place as any to start. It uses a large "army" algorithm for its basic behaviour, and there's a good section on how it works.
Next, FreeCiv is a fairly mature project with well commented code.
AI itself is a pretty popular CS subject. Here's some AI libraries, and a large scale neural net (I think) called OpenCyc. There's also Narval and the Robocup Soccer Simulator for perusal.
As far as moving the AIs around in their environment, the Hola particle simulation may be of some use.
Other links that look interesting: Cyphesis on Worldforge, Realmlifes and a basketball game.
Finally, I found a sourceforge project that sounds like a scaled down version of what you're planning. You may wish to get in touch...
Happy reading!
Anyway, enough fuzzy stuff. The first thing to do here is some research, so as not to reinvent the wheel. AI is a popular subject, as is games and game theory. So I figure the first place to look would be at the AI in some games.
Liquid War is as good a place as any to start. It uses a large "army" algorithm for its basic behaviour, and there's a good section on how it works.
Next, FreeCiv is a fairly mature project with well commented code.
AI itself is a pretty popular CS subject. Here's some AI libraries, and a large scale neural net (I think) called OpenCyc. There's also Narval and the Robocup Soccer Simulator for perusal.
As far as moving the AIs around in their environment, the Hola particle simulation may be of some use.
Other links that look interesting: Cyphesis on Worldforge, Realmlifes and a basketball game.
Finally, I found a sourceforge project that sounds like a scaled down version of what you're planning. You may wish to get in touch...
Happy reading!
...because I can!
Thank you for everything guys! I have now received approval for my SourceForge site so I can now post files on the CVS. Also, it has 100 MB of webspace! With PHP support which is something I really need.
Once again, thank you for all of your help!
The site (might be empty depending on how quick you view this):
http://arls.sourceforge.net
Once again, thank you for all of your help!
The site (might be empty depending on how quick you view this):
http://arls.sourceforge.net
mr_rob - If you need help setting up PHPNuke, let me know - I have run it a number of times. I havent got time to hack a PHP site together for you, but I can certainly get nuke installed for you.
Mail me at jono@jonobacon.org if you are interested.
Jono
Mail me at jono@jonobacon.org if you are interested.
Jono