You must be logged in to post messages.
Please login or register

AI, RMS Scripting, and Modding
Moderated by Yeebaagooon, TAG

Hop to:    
Welcome! You are not logged in. Please Login or Register.48 replies
Age of Mythology Heaven » Forums » AI, RMS Scripting, and Modding » Age of Mythology: Reverse Engineered
Bottom
Topic Subject:Age of Mythology: Reverse Engineered
« Previous Page  1 2  Next Page »
WarriorMario
Citizen
posted 08 April 2018 03:53 PM EDT (US)         




Age of Mythology: Reverse Engineered




This is a school project which I started last December to learn more about assembly programming and reverse engineering.
I thought it would be a good idea to look at Age of Mythology and see what I could learn from it while also trying to break the hardcoded limits of AoM modding.
My initial focus was on the limitation of not being able to add new cultures and civilizations which many modders (including me) have tried to overcome with several workarounds but have never really managed.

Now this is still a work in progress but it already has the features required to add cultures and civilizations!



  • Custom Cultures & Civilizations
    It is now possible to add new cultures and civilizations through editing the new cultures.xml! This will add new tags to the proto, techtree, anim, sounds and adds new keywords to xs.
  • Progression Techs
    Age up progession bar can now be linked to any technology added to the progressiontechs.xml
  • Godpicker Page System
    Clicking on the random button will switch out the old options with the new custom gods which can be selected:


  • ImGui
    Hooked into the graphics of the game which made drawing ImGui development UI possible! Here is an example of development UI displaying a list of all world objects:




    Download Here



    My time is somewhat limited (~8 hours per week) but I want to continue working on adding new features and improve modding support so make sure to drop some suggestions in the comments below!
  • Bug Fixing & Cleanup
    Culture support is a bit hacked together atm and probably some other features have bugs as well.
  • Text Language File
    Currently I just quickly hacked this for some of the culture and civilization names but it should be possible to trick the game into using a text file instead of the DLL which makes things a lot easier to modify.
  • Recorded Game Observer Bug
    Recorded games with more than one observer are currently broken.
  • Increasing Pop limits
  • Adding new ages
  • Adding new cheats



    Lecio
    For helping me learn assembly, some awesome ideas on how to approach certain issues and being a great rubber duck.

    People that helped testing:
  • Venlesh
  • Callistonian
  • XLightningStormL
  • WollieWoltaz

    We cannot rely on luck to be successful.

    [This message has been edited by WarriorMario (edited 05-16-2018 @ 04:29 PM).]

  • AuthorReplies:
    WollieWoltaz
    Citizen
    posted 08 April 2018 04:59 PM EDT (US)     1 / 48       
    Great job Warrior, this is epic. Finally people can add new civs instead of replacing existing ones. This should definitely get a place in the downloads spotlights!

    I do have a question and some suggestions...
    What are the new tags that will be added to the proto/techtree/anim?

    And have you thought about adding the amphibiouslogic and maybe the <param name="ShockAction" value1="2"></param> parameter so you will be able to stun enemies with a special attack?

    Just some thoughs,

    Again great job!

    All of my Modpacks:
    Download here at AomHeaven.
    Subscribe in the workshop for the Extended Edition version.

    [This message has been edited by WollieWoltaz (edited 04-08-2018 @ 05:01 PM).]

    Izalith
    Citizen
    (id: Lilitu)
    posted 08 April 2018 10:30 PM EDT (US)     2 / 48       
    This is great news, tank you!

    On the text language file I'd wish to see a standalone version. Voobly has a Mod-Manager so that you can choose on which Mod you play when starting the game, and if players don't have the Mod they automatically download it. However they don't ship the .dll and didn't figure out how to put it into a text file.

    What happens if two progression techs are being researched at the same time? Will the last clicked or the first clicked stay up there?

    Azarath Metrion Zinthos

    Steam: Order of Azarath
    WarriorMario
    Citizen
    posted 09 April 2018 04:53 AM EDT (US)     3 / 48       
    @WollieWoltaz
    In the example that comes along with the tool the new tags that are added are defined as 'dataname' in the cultures.xml

    Adding other tags is possible in the future but amphibious logic and adding new actions will take some time as they're likely to be more complex but eventually it will be possible. There might be however some easier modifications to do first.


    @Izalith
    Creating standalone versions for Voobly will have to be discussed with the Voobly moderators as it changes the executable and they likely check if someone tried to modify the executable to cheat. It is not implemented yet though but it is on the list.

    No idea what will happen if you research two progression techs at the same time.

    We cannot rely on luck to be successful.
    Izalith
    Citizen
    (id: Lilitu)
    posted 09 April 2018 05:07 AM EDT (US)     4 / 48       
    mh, Voobly uses the same nocd.exe as Gameranger, so that people can play on both. Thus the best case for the language.txt would be if both accepted the new file. But I'm not sure how fast their administrations react to such proposals. :/

    Azarath Metrion Zinthos

    Steam: Order of Azarath
    MrEmjeR
    Citizen
    (id: EmjeR)
    posted 09 April 2018 07:22 AM EDT (US)     5 / 48       
    Nice man, this is super awesome! This is what real modding is about!

    >> www.EmjeR.com <<

    Mods - EmjeR's eyecandy pack :: Improved Greeks look :: Ghengis Khan - Mods
    Programs - BCTool Attachpoint Editor :: BCTool :: Words - Programs
    Games - 0 AD :: Stronhold 2 :: BfME 2 - Games
    !! Proud member of WildFire Games !!
    Callistonian
    Citizen
    posted 10 April 2018 09:06 PM EDT (US)     6 / 48       
    This is easily the most exciting modding development in years. Finally, we have someone who has used their skills for good instead of map hacks.

    I made a suggestively titled menu UI in anticipation of this making its way to EE

    To the downloads spotlight with this!!
    Bala Arizalu
    Citizen
    posted 14 April 2018 01:26 PM EDT (US)     7 / 48       
    Finally, AoM get a modding patch, I'm happy to know that. SWGB Heaven have Expanding Front, AOE Heaven have Beyond the Indus, AOE3 Heaven have War of Liberty. And someday AoM Heaven will have his/her own expansion, good luck Warrior Mario.

    TAG
    That AoM Guy
    (id: aom expert)
    posted 14 April 2018 01:46 PM EDT (US)     8 / 48       
    Makes me think of The Natives...

    Check out my YouTube
    For live help with me, enter this chatroom. If I'm not on you can leave a message.
    WarriorMario
    Citizen
    posted 15 April 2018 07:00 AM EDT (US)     9 / 48       
    Updated the thread and added the source code link.

    Yeah I wish I had more time to also work on the natives but that's unlikely.

    We cannot rely on luck to be successful.
    XLightningStormL
    Citizen
    (id: TheBronyKing11)
    posted 15 April 2018 12:24 PM EDT (US)     10 / 48       
    Are adding basic TotD data-stuffs (i.e Stun Attacks for Units, fighting autogathers, switchable resource generation, etc) aswell as increasing the uimain row + column limit (beyond 3 rows, and 8 columns to preferably unlimited) or heck even re-adding command pages (de la AoE2 Build Menus) on the table as future plans, and additions?

    Also if possible to be able to make technologies increase population limit, and another BIG major game-changer (that even AoE2, and AoE3 things of a similar calibre) would be the addition of new resource types? The last two in the extreme longrun

    Lead Designer and Producer of Age of Mythology's biggest mod compilation: http://aom.heavengames.com/downloads/showfile.php?fileid=11038
    Milkman Matty
    Citizen
    (id: Khan And Steak)
    posted 26 April 2018 07:10 AM EDT (US)     11 / 48       
    This is phenomenal. I can't wait to have a look at the GitHub!

    Also the time it would have taken! Assembly is rough stuff, I've only ever touched it when creating CheatEngine scripts. Always choose pure C over Assembly for obvious reasons.

    I wish I could help with this but I think that the complexity would be too dense for me to make sense of. I'll look at the Git anyway and see what I can make sense of.

    This is true progress, something that would have taken a lot of effort to pull off. Exciting times!

    <||=================================||>
    Proud Member of Forgotten Empires
    96Reviews KaS Dota2 Halo 5 Reach
    { "Work until your idols become your rivals" }
    ༼ つ ◕_◕ ༽つ trGetUnitScenarioName(); ༼ つ ◕_◕ ༽つ
    American Spartan
    Citizen
    posted 26 April 2018 05:37 PM EDT (US)     12 / 48       
    Hey dude, nice to see you're still at work trying to figure this stuff out. I know how you feel since both work and college are pushing down on me hard as well but don't give up.

    Good luck and I really hope you can find out a way to overcome the hardcoded pop cap which is complete bullshit.

    Cheers.
    Izalith
    Citizen
    (id: Lilitu)
    posted 01 May 2018 02:28 AM EDT (US)     13 / 48       
    As soon as the "Text Language File" feature is included I'd like to start a little mod on that.

    Might there be problems with a lot of changes, so that it's not backward compatible anymore?

    Azarath Metrion Zinthos

    Steam: Order of Azarath

    [This message has been edited by Izalith (edited 05-01-2018 @ 02:42 AM).]

    JeHathor2
    Citizen
    posted 01 May 2018 08:50 AM EDT (US)     14 / 48       
    Good job!!!
    King DiNido
    Citizen
    posted 02 May 2018 04:23 AM EDT (US)     15 / 48       
    Holy f. dude, this turns out to be the biggest mod breaktrough someone ever attempted at since the game's 2002 launch. New civs and at last a proper pop cap removal/enhancing? I am gonna be so delighted to see that, for sure to bring back zillion players.
    Milkman Matty
    Citizen
    (id: Khan And Steak)
    posted 03 May 2018 05:12 PM EDT (US)     16 / 48       
    Hey WarriorMario, it looks like Debug folder is gitignored which makes the program error upon trying to Run Locally within VS. It compiles fine and I can run the exe created in the bin/Debug folder, but if I am to try and contribute I am going to need to be able to see what changes get made as I step through the code.

    It complains about not having \Debug\proxydll.dd
    If I'm missing something please let me know

    <||=================================||>
    Proud Member of Forgotten Empires
    96Reviews KaS Dota2 Halo 5 Reach
    { "Work until your idols become your rivals" }
    ༼ つ ◕_◕ ༽つ trGetUnitScenarioName(); ༼ つ ◕_◕ ༽つ
    WarriorMario
    Citizen
    posted 04 May 2018 10:14 AM EDT (US)     17 / 48       
    @XLightningStormL Adding new actions is difficult I think but who knows, maybe it is trivial? The other things that you mentioned shouldn't be too hard but just quite a bit of work.

    @Milkman Matty Sounds like some configuration/setup issues. Make sure to build AoMData in debug and if that does not work PM me on Steam and we'll figure it out.

    As soon as your issue is resolved I'll update the source with the progress that I've been making. Not really new features but a lot of ground work for new features as I've figured out some important bits of the engine.

    We cannot rely on luck to be successful.
    Milkman Matty
    Citizen
    (id: Khan And Steak)
    posted 04 May 2018 08:02 PM EDT (US)     18 / 48       
    @WarriorMario - I got it figured out. You must be using VS2017 because it was using buildtools v141 and my home computer only has VS2015. What's interesting was that there was no errors in the Error List window, I only realized something was up from the Output window saying the build failed when trying to build AoMData.

    Anyway I changed the buildtools in the AoMData->General->Platform Toolset to v140 and it worked. But if there was ever a sign telling me that I should (stop putting it off and) upgrade to 2017 this is it. I've let my home dev environment get well behind the times - it's well due an update. I'll install VS2017 today and then there won't be any other hidden nasty surprises.

    <||=================================||>
    Proud Member of Forgotten Empires
    96Reviews KaS Dota2 Halo 5 Reach
    { "Work until your idols become your rivals" }
    ༼ つ ◕_◕ ༽つ trGetUnitScenarioName(); ༼ つ ◕_◕ ༽つ
    Yiome
    Citizen
    posted 14 May 2018 06:29 PM EDT (US)     19 / 48       
    WarriorMario
    Citizen
    posted 16 May 2018 04:39 PM EDT (US)     20 / 48       
    *Progress Update*
    Discovered quite a bit of the engine's architecture and managed to hook into the renderer. I added an image to the thread showcasing an example that I quickly made. From here it would be very simple to change stats of units through the UI.
    This however also means that it is trivial for people to create programs that OoS games, so from now on the project is not open source anymore and will only be shared with people that I trust enough and probably won't create those tools :P

    We cannot rely on luck to be successful.
    Callistonian
    Citizen
    posted 17 May 2018 04:00 PM EDT (US)     21 / 48       
    The imgui is exciting news. Is there a way you can make the patch inherently desync-sensitive, i.e. so that it can still be used online with others who have it but not with people who don't? And without just throwing in some desync-sensitive files?
    XLightningStormL
    Citizen
    (id: TheBronyKing11)
    posted 18 May 2018 00:13 AM EDT (US)     22 / 48       

    Lead Designer and Producer of Age of Mythology's biggest mod compilation: http://aom.heavengames.com/downloads/showfile.php?fileid=11038

    [This message has been edited by XLightningStormL (edited 05-18-2018 @ 00:15 AM).]

    Izalith
    Citizen
    (id: Lilitu)
    posted 18 May 2018 10:12 AM EDT (US)     23 / 48       
    What is this with the graphical wtf memes recently?

    Just explain your train of thought, cause this way I cannot follow & you just communicate arrogance.

    Azarath Metrion Zinthos

    Steam: Order of Azarath

    [This message has been edited by Izalith (edited 05-18-2018 @ 10:19 AM).]

    WarriorMario
    Citizen
    posted 20 May 2018 03:23 AM EDT (US)     24 / 48       
    @Yiome Not sure what you mean? Did that work in the past? If not then it would probably still be possible to do but not anytime soon.

    @Callistonian It should be possible, but I'm not sure if people can do that right now as I have not tested it. I also have not found exactly where the game checks for compatability but I don't think it would be too hard to find. However, for this I would need some testers eventually. For now I could also just force a data change which would not allow people playing on the RE patch with others.

    We cannot rely on luck to be successful.
    nottud
    Citizen
    posted 20 May 2018 12:15 PM EDT (US)     25 / 48       
    « Previous Page  1 2  Next Page »
    You must be logged in to post messages.
    Please login or register

    Hop to:    

    Age of Mythology Heaven | HeavenGames