- Posts: 4
- Joined: Wed Aug 20, 2014 11:26 pm
Hello everyone, I'm here to show you all something new, and I hope you enjoy it.
As you can see I'm called DarkLaserXD, in the discord I'm called LLX, and I have the same nick in Gameranger, Urban assault is actually one of my favorite games in the category real-time strategy, War Simulator, and I think it's a shame not to have other games of this type
Anyway, some time ago I've gained a good knowledge regarding Memory Manipulation (Assembly Memory Manipulation), as well as Manipulating Internal Hexadecims among several other things, and out of curiosity I ended up doing things in Urban Assault that I could never do, and I mean Urban Assault's AI, involving its delay in creating vehicles, the energy he spends to do each vehicle and every action (Budget values in .ldf).
first of all, to the CharlotteLabyrinth for indirectly helping me to find Logica for all this (about the system of calculating how much the AI spends of energy to make its units), and to pcsx including others peoples in the discord, for having motivated me to move forward and to make me evolve my knowledge to the point of transferring my OP Internal memory codes to a .exe of a Software
About Urban Assault AI ENHACED CREATION
I'm getting a bit deeper into everything I've got, I used the Cheat engine programs, Ollydbg and CFF Explorer.
As everyone who plays UA should know, the AI is not as good as it should be (at least in my opinion), like 2/3 Seconds to create any Unit, while we humans can create multiple Units continuously, the fact that they have their Energy drained faster than ourselves, and not send an adequate amount of Squad to Attack/Defend/Conquer Sectors how can we do. And I did it with the goal of making gameplay more fun and competitive at the same time.
Now the main focus is what changes I made, affect in the game, The AI Delay of creating your units with delay of 2 seconds was removed with some changes of instructions and Op Codes that I managed to make in the Cheat Engine, now they can create units continuously without problems.
But the question: if with the Delay of 2 seconds throughout the game, the AI has its energy drained almost completely, with the Delay removed will be worse? The answer is no, because it was also possible to change the Energy that he uses to do certain actions, I observed his behavior more deeply, and through an Internal instruction I was able to access the Hexadecimal Address of the energy he uses to do things, for example, right at the beginning of AI's Second DEMO Map, when we are going to fight against Taerkasten, he creates a fleet of 4-6 Leonidas (if I have deceived somebody correct me), and in the first Leonid the value revealed to 96000, right after him create the Second Leonid the value goes down to 74000, and in its 5th Leonid created the value goes to 12000, in the 6th the Value goes to zero, and when creating any other Unit, a value with Multiples of a thousand appears again, simplifying, I was able to change the Initial Value whenever it is to create a new Unit, for example: with Leonid the initial value was 96000, and with my changes now this is 140000, resulting in almost 10 Leonids or more. and with that the drained energy problem is finished.
This is the main reason AI did not send such a large number of Squad throughout the game, this value was decreasing more and more, so as not to hamper the Human Player at the time of combat/defense.
Having done all this, I made several changes in the .exe of the Game, and my first changes left the Game impossible to win in the first Levels, because the AI create Units even faster than us humans without losing so much energy, so I had to reduce this value considerably
if the need to create a map with several host stations Enemies to make the game more difficult was in a way, a problem, with this new .exe that is solved, now you can have a Battle 1X1 totally fair, I think xD, and after many tests, I believe that more than two equal Enemy stations make the game impossible (depending on the Budget Values of the .ldf files)
It's been a long time since I've completed this project, but I only thought it appropriate to divulge it in the Forum now, I must thank the people at Discord a lot, who tested my files and ended up motivating me to go on and on. my Project is currently in BETA phase (I still have things to change if the game becomes impossible to win)
I will leave the Archive here for you to test, and please, if you have any doubts, feel free to ask me: DD and give your reports of how they were your experiences with the new .exe, for more details I left a Readme next to .rar, Thank you all ^^
- Turantul 1 (Veteran)
- Posts: 419
- Joined: Thu Mar 01, 2012 3:00 pm
- Location: Schloss Charlottenburg..?
It looks like a very interesting project and so hopefully we could see its continued development. Incidentally, I'm pleasantly surprised to know that my works were indirectly helpful for your own personal research; I wasn't expecting it at all!
It is very much possible to precisely hex-edit memory addresses in UA executables to eliminate the 2 seconds AI construction delay interval, or modify addresses of integer constants that AI evaluates to calculate requisite energy allocations for each type of activity.
By increasing the sizes of these memory offsets, you are effectively increasing the amounts of total abstract energy that AI assigns into a certain task objective, which results in a deployment of extra units per squad from AI for each action parameter.
Perhaps at some point in the future, I may write a comprehensive post about hex-editing some of these known locations...
; Vielleicht der niedlichste Hubi, Knuddel.
„ Helfen - Wehren - Heilen “
Personal Declaration: I always use different usernames across different websites. Hence if you ever see my username is being used outside of Stoudson Corporation, I absolutely have no affiliation whatsoever with that!
- Posts: 4
- Joined: Wed Aug 20, 2014 11:26 pm
I really must admit that to do so took a few weeks, it was not easy at all because I only know the Basics of Assembly Language and Internal Memory manipulation, but I must admit that the experience was very stressful and fun at the same time lol.
I even make a point of explaining how I address the value, and then find the Base Instruction. Your post said that the AI reduced its energy to produce vehicles, the measure of the progress of the game, to not difficult more the life of the player (I think that was what was said in the Post), and then I sent a Scout to the base of the Enemy , and with each vehicle it produced, I looked at its green energy bar and at the same time, in the Cheat engine I was looking for an unknown value, and with each Vehicle created, I decreased this searching value, until there were 3 addresses left, each of them containing a different value, the first one was the energy, this value is easy to find, but it did not interest me, and the second value was a fixed Value, in the first vehicle created at the beginning of the game, the value was absurdly high, higher even than its Energy, so I imagined that it was this Value that I wanted, after the Enemy created 20 Ghargoils 3, which is at the beginning of the game, the AI tends to send a mass of vehicles to attack, the value is again zero.
And that same address, when AI started to pr to get a squad of Ghargoil 3 to make an attack, another value appeared in the address, but smaller than the absurd value that appeared at the beginning of the game, so I deduced, this address I want ! .
To do a test, I I managed to access which Instructions this address accessed, and I saved this instruction in my Advanced List, I started a map just out of curiosity, and got the same address easily through the instruction I had saved (the instruction contained the SUB and MOV commands), and again from curiosity I decided to freeze this value, and in doing so, I was greatly surprised, because in the game, the Enemy had created 40 Ghargoils 2 without any interval xD (this was confirmed when I froze the AI energy value, and later , he produced a mass of 60 Speedys), I was so happy when I saw it, and all thanks to your explanation, through this instruction, I was able to reduce both the energy expenditure of the AIs to make vehicles and make their the amount of energy that it automatically stores to produce its vehicles, and this resulted in a mass production of Vehicles, without spending a lot of energy, and much faster after that I made a combination like removing the Delay from 2 seconds altering a base game instruction too.
thus making the AI so strong, or even stronger, than we humans within the game, now the Enemy can produce even 30 Ghargoils 3 or 20 Leonids without problems, and much faster that before: D: D, done that I only did temporary Trainers that would only work if opened after opening the games, but thanks to the Discord people, who motivated me a lot, I even learned to use CFF EXPLORER to add empty sections of Memories and Hexadecimal inserts, to put my change codes inside the .exe of the Game, so that it becomes a kind of Patch, and it works without any kind of Trainer
this is still in BETA as I had said yesterday, because it might be that the values are making game impossible to be played, like maps that have 2 equal Enemy Stations, and depending on the people who might see this Post, give their reports, I I'll make modifications to .exe and launch new versions, until I reach an ideal, anyway Thanks for everything
Users browsing this forum: No registered users and 1 guest