August 22nd, 2012, 17:20
(This post was last modified: August 22nd, 2012, 17:41 by FrancoK.)
Posts: 401
Threads: 31
Joined: May 2012
Jtm Wrote:No because this exmomai has nothing to do with Insecticide Patch and 1.40 would indicate otherwise. We need something more general  Did I mention the (excellent) Insecticide Patch somewhere? 
Should I've done that I'd use 1.40n, but I didn't because I agree with you: this new is different from Insecticide.
However the AI of the vanilla game is version 1.31, to show it is improved we can use 1.32, if you like.
Anthony Wrote:Only if the AI version is 1.40. Agree. We can use 1.32 and upgrade to 1.33 and so, reserving 1.40 for the final (working) release. 
Than we can go to 1.41 when we put in new features.
Only the people crazy enough to think they can change the world of Arcanus and Myrror can do it.
Posts: 104
Threads: 0
Joined: Oct 2010
My apologies I misunderstood you  What I meant the AI should be designed so that it can be used with any mod or version. But now that I think of it 1.40x policy may be acceptable because this only improves the game.
Anyway, my observation of the battle code: it is not optimized in bytelength manner. Almost 30% of code length can be nopped. For instance number of 64h multiplyings can be reduced.
Posts: 525
Threads: 6
Joined: Dec 2010
I have no time for work for robust code now.month later.
You have good progress.and other work.
About name: 'mombrain'.
Posts: 973
Threads: 20
Joined: Oct 2010
Asfex Wrote:It can be done via int 3f. If you look at interrupt vector 3f,then add 17 ofsett, you got DS (word). The table at DS:1A0 is the mom relocation table,8 bytes for each segment.
This 8 bytes contain:type of segment,cs in memory when it was loaded,and status,if loaded.
This information is enough to patch mom in memory only.(if you see call b0: d8 ,use DS:1a0+B0 to get cs. Then your call goes to cs: d8,if segment has been loaded into memory already)
Interesting.
I did not know this yet.
I expect I will use this information soon enough, to debug or to tweak.
However, I do not see yet how we can trigger an external program from this interrupt.
The best I think we can do, is to change the interrupt routine, so it waits for the external program, just like Jtm has just done.
I do know that to change the code while MoM is running, we can simply change the wizards.exe file on disk.
The various code segments are continuously being swapped in and out.
So any change normally takes effect immediately.
Alternatively, when we have a lock as Jtm just provided, the code segment is frozen in memory, and we can change it there.
At that time we can also use the tweaker to inspect or change the battle plans of enemy's units (numbers 100-109).
After a unit's turn, its battle plan is always 4, which means that the unit is done.
What about 'The MoM Mind', making 'Mindy' for short?
--I like ILSe
Posts: 591
Threads: 30
Joined: Jul 2012
I like Serena Wrote:However, I do not see yet how we can trigger an external program from this interrupt. Given the limits of DOS IPC, you would probably have to make the external AI look like a device (so it sends a message to a device and waits for a response). That's not anywhere near my top ten list of things I'm interested in doing.
Posts: 973
Threads: 20
Joined: Oct 2010
Anthony Wrote:Given the limits of DOS IPC, you would probably have to make the external AI look like a device (so it sends a message to a device and waits for a response). That's not anywhere near my top ten list of things I'm interested in doing.
Ah! Now I get it!
It's the way to go if you want to build the external AI inside MoM itself, or as a resident dos program.
--I like ILSe
Posts: 525
Threads: 6
Joined: Dec 2010
I like Serena Wrote:Interesting.
I did not know this yet.
I expect I will use this information soon enough, to debug or to tweak.
However, I do not see yet how we can trigger an external program from this interrupt.
What about 'The MoM Mind', making 'Mindy' for short? The code segments swap in memory via int 3f. So,you can patch procedures JUST before it will run.so,just inspect caller cs:ip,calculate segment (the way described above),and patch subroutine.then quit from int 3f.
This is a way to patch inside mom- its all you need to implement own ai.(i spend much time to get this information,its very powerful,fast and correct).i even hope i can master resident.com with length<200h bytes.but later.
'Mindy' is good name.
Posts: 401
Threads: 31
Joined: May 2012
I like Mindy too. 
So, let's start Mindy 1.32
Only the people crazy enough to think they can change the world of Arcanus and Myrror can do it.
August 27th, 2012, 12:00
(This post was last modified: August 27th, 2012, 17:25 by I like Serena.)
Posts: 973
Threads: 20
Joined: Oct 2010
I've been so free to create the new threads that contain the name Mindy.
Perhaps I was a bit quick with that, but I thought we could always change them later, and I wanted to keep a bit of speed in the project.
We'll probably will want to reorganize them into a new sub forum anyway.
To be clear, I have no wish to be team lead, architect, investigator, rule creator, disassembler, coder, and tester all at the same time.
For myself I'd like to focus on a kind of architect role.
That fits with my career path.
I'm hoping other people will pick up other roles.....
--I like ILSe
Posts: 634
Threads: 13
Joined: Nov 2010
In my view there are 3 levels of AI. One of those is combat AI. Let's focus on that for now. Before serious coding can begin, we need stability of code, a well understood link with core program, and a debugging/testing environment. AI-AI combat is highly desirable for both game play and AI testing. Once this is done, a primitive example should be created on exactly what changes make what effects. Then the actual AI coding can begin. Rule based AI is a good start but will not be too intelligent given the complexity of the game, the multi level AI complexity, and the desired multi objective optimization decisions with probabilistic outcomes under incomplete game knowledge. I will be happy to create a rule set, but will also need an engine on how to choose rules by the AI, much like an expert system. We may try to hard code all of this without an actual expert system. What language can we use to code? Needless to say that rules are very sensitive to game versions. As soon as the game rules change, so should the AI rules. So I recommend toying around with AI first, rather than making it too deep. We also need a whole population of AIs, not just 1 current AI. A new thread is recommended in which you briefly and objectively introduce how to setup and test a sample (given) AI and then how to further improve it. Many people may want to try, but are not technologically savvy.
Oh and for Kyrub, making AI cheat a bad memory of the past is highly desired once AI development is on the way. AI and human must play by the same rules. Handicapping any side is still OK.
|