Jump to content
Age of History

Leaderboard

Popular Content

Showing content with the highest reputation since 01/14/2026 in Posts

  1. Hello Programmers, Comrades and Modders! For years, we have been creating scenarios and events restricted to static images. We add a picture of a war, and it just sits there. A picture of a nuclear explosion? Static. But not anymore. I have been digging into the source code and I realized something crucial: Age of History 2 runs on LibGDX. Why does this matter? Because LibGDX natively supports complex animations via TextureAtlas and Animation classes. The code was always there, sleeping inside the game engine, just waiting for someone to wake it up. I have successfully implemented fully animated, looping events without breaking the original game compatibility. 🚀 What I Achieved I modified the Menu_InGame_Event.java class. The logic is simple but powerful: When the game tries to load an event picture (e.g., war.png), my code first checks if a .atlas file exists with that name (e.g., war.atlas). If it exists: It ignores the static image and loads the SpriteSheet using the Atlas, creating a smooth loop animation. If it doesn't exist: It falls back to the default code, loading the static .png or .jpg just like the vanilla game. This means you can have animated events and static events in the same scenario without any bugs! // Logic inside Menu_InGame_Event Constructor String sEventRawName = CFG.eventsManager.getEvent(EVENT_ID).getEventPicture(); String sBaseName = sEventRawName; // remove extension logic... // Check if the .atlas exists if (Gdx.files.internal("UI/events/" + sBaseName + ".atlas").exists()) { // Load the Atlas and create the Animation this.modAtlas = new TextureAtlas(Gdx.files.internal("UI/events/" + sBaseName + ".atlas")); Array<AtlasRegion> regions = this.modAtlas.findRegions(sBaseName); this.modAnimation = new Animation(0.15f, regions, Animation.PlayMode.LOOP); this.isAnimatedEvent = true; } The Rendering (The Draw Method): We use stateTime (delta time) to calculate which frame to show: In the draw() method, instead of drawing the static Image object, you use the stateTime (delta time) to get the current frame from your Animation and draw it using the SpriteBatch. // Inside the draw() method if (this.isAnimatedEvent && this.modAnimation != null) { this.stateTime += Gdx.graphics.getDeltaTime(); TextureRegion currentFrame = this.modAnimation.getKeyFrame(this.stateTime, true); // Draw the current frame oSB.draw(currentFrame, x, y, width, height); // Force the game to keep rendering (otherwise it pauses on static screens) CFG.setRender_3(true); } 📂 How to make your own Animations You don't need to be a coder to use this once the code is in the game. You just need: A SpriteSheet: A PNG containing all frames of your animation. An .atlas file: This maps the frames. You can generate this using GDX Texture Packer (Use the Legacy settings/version, this is crucial!). Place both in UI/events/. I am attaching an example (SoldierRunning.atlas and SoldierRunning.png) so you can test it yourselves. 🌟 The Future Imagine the possibilities: Events with soldiers actually marching. Nuclear explosions that animate. Flags waving in the event wind. News tickers scrolling. The engine was always capable of this; we just had to write the lines to let it speak! Although I used it for events, it's more than that and can be used in any other contexts or images! I am not releasing my file, not because I wanna lock knowledge, it's because I think it's simple to people to do, and because my code is full of nonsense (like superevents, etc) I will send a .gif file showing the use of it (what I achieved!) Download the example files below! SoldierRunning.atlas (first and last line are blank.) file: SoldierRunning.png size: 2048, 2048 format: RGBA8888 filter: Nearest, Nearest repeat: none SoldierRunning rotate: false xy: 2, 1478 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 7 SoldierRunning rotate: false xy: 2, 1109 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 14 SoldierRunning rotate: false xy: 502, 1478 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 19 SoldierRunning rotate: false xy: 2, 740 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 4 SoldierRunning rotate: false xy: 502, 1109 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 11 SoldierRunning rotate: false xy: 1002, 1478 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 9 SoldierRunning rotate: false xy: 2, 371 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 16 SoldierRunning rotate: false xy: 502, 740 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 1 SoldierRunning rotate: false xy: 1002, 1109 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 6 SoldierRunning rotate: false xy: 1502, 1478 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 13 SoldierRunning rotate: false xy: 2, 2 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 18 SoldierRunning rotate: false xy: 502, 371 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 3 SoldierRunning rotate: false xy: 1002, 740 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 10 SoldierRunning rotate: false xy: 1502, 1109 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 8 SoldierRunning rotate: false xy: 502, 2 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 15 SoldierRunning rotate: false xy: 1002, 371 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 5 SoldierRunning rotate: false xy: 1502, 740 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 12 SoldierRunning rotate: false xy: 1002, 2 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 17 SoldierRunning rotate: false xy: 1502, 371 size: 498, 367 orig: 498, 367 offset: 0, 0 index: 2 Let's modernize Age of History 2!
    3 points
  2. 2 points
  3. This is a modification I made that I will continue to update. It currently has the First European War and the American Civil War in it. Nations with content: Germany Russia American Constitutional Government 1.0 Event total: 50 Next update: Chinese and Japanese content Images: Game settings: AI Agressiveness: 0% Fog of War: Classic or less Game Speed: 100% Currently NATO can NOT win the First European War (victory content will be added in future updates) Download in Discord Server: https://discord.gg/mBTx43mt8p
    1 point
  4. For real. I am really disappointed, but I guess that's what happens.
    1 point
  5. AOC3, Open Sourced. Take a sledgehammer to those modding restrictions. --- AnalyticalEngine (Project Orion) is a game engine that opens up the core binary code of AOC3 and removes hardcoded features and mechanics by allowing for full NashornJS scripting in mods, as well as providing an API for Event Conditions, Effects, Game Scopes, modded Multiplayer (MP) support, and custom mapmodes and UIs. This allows for full hybrid Java and JavaScript modding support. To get started with modding in AnalyticalEngine, simply add .ds/.js files in your mod folder. These will be automatically detected by the game engine and executed in-game. Consider also reading the attached Documentation or asking for support from our Discord server. Installation: GitHub | Steam Latest Release: 0.6b - Centurion. (Make sure to check GitHub installation instructions before downloading). Install Java SDK 23. Download the current src/AOC3-Source.jar, and drop it into any basegame AOC3 directory. You may now either run it normally as a Java binary or via the command line in the extracted folder if you wish to access AnalyticalEngine's console: java -jar src/AOC3-Source.jar - Documentation: Note: Documentation is currently a work-in-progress and may not necessarily be complete. Custom Mapmodes Deepscript (Event Conditions, Effects, Loops, Scopes, Variables) Map Data Scripting Information Nashorn Scripting Features: Current Feature List. Added Singleplayer support for the Multiplayer build of the game. Custom Event support. Custom Mapmode support. Custom UI support. Fixed various localisation glitches. Fixed various map glitches. Full NashornJS compatibility and scripting. Modded Multiplayer support. Overhauled Editor UIs: Civilisations can now be directly edited by right clicking on a Civilisation in the Scenario Editor. Province Names can be edited directly from in-game editors. Resource Editor overhaul. Scenario Editor overhaul. Terrain Editor overhaul. Overhauled tooltips now allow for inline coloured text changes and images in Events. Reworked Conditions (Triggers) and Scopes. -
    1 point
  6. A mod based on The New Order mod for Hearts of Iron 4. Discord: https://discord.gg/89BpAWjDGM Recommended: AI Aggressiveness: 0 to 50 percent (Prevents extreme border gore) Fog of War: Classic AoH2 TNO 1.1.1 Scars of the Scramble • Huttig flavour events for SAW • Rebellion and devastation states for Huttig's Africa • More outcomes for OFN Mandates decolonisation • West African War • Vietnam War and other Indochina content • Antarctica added to the map • Improved Indonesian War • Updated Moskowien • Reworked Indian subcontinent • Updated subideologies • Probably other miscellaneous changes I'm forgetting due to how long it has been since last time Android: https://drive.google.com/file/d/1QNCzv9r-EDjon5w_PVBncbdUmIVaIefw/view?usp=drivesdk PC: https://drive.google.com/file/d/10B2Yiogz5gyMrV-ikJor9NuxGgjaXXZE/view?usp=drivesdk Credits: This scenario served as the base of my mod so that I didn't have to draw the borders from scratch. It also had events till the German Civil War and South African War. The ui sounds and older map background are taken from Project Imperator, a now discontinued mod. The creator of an Equestria at War mod, Dmitry Bunt told me how to set min ai aggressiveness to 0%.
    1 point
  7. Guess who's back! It's Game of Thrones new mod. Map is made by @yazılımcı, you can check his original mod right here: But what I did, is took his map and remade entire thing. New font, new civilizations, new countries, new stories. So here you can see some screenshots: https://ibb.co/JFz16Qx3 https://ibb.co/d9DrdQZ https://ibb.co/d9DrdQZ https://ibb.co/TMPpqM9Z https://ibb.co/ns2Rp6L7 https://ibb.co/3y62FwMK https://ibb.co/0y9rRmv9 (Again, sorry for the link form, but file size is very limited on this site) Those links are showcase of new additions in new 305 AC scenario So I hope you will enjoy it, and obviously, there is a download link: DOWNLOAD: PC: https://drive.google.com/file/d/13kB5x8SZk9LYg9Z306MCHQL6yETKd3tL/view?usp=sharing ANDROID: under development..... So, if you want to contact me on some topic, free to visit my discord server: https://discord.gg/REKNFsnPm3 It's kinda unactive right now, so it would be really great to add something to it ENJOY
    1 point
  8. Remember when Megamod existed? Do you also remember when there was this era of combining AoH2 mods together to make absolute amalgamations? Well I have been working on a project and it is called: Amalganation! What is the mod about? This mod combines many mods across the AoH2 community (including Russian mods and a couple of Chinese mods) and it shall be one of the largest AoH2 mods of all time. The concept came from my previous combination projects and also how influential Megamod was before that collapsed. This includes NWR, Sieg Redux, World Ablaze, World Crisis, QBAM and many, many others! Are there any issues with the mod? There are a few problems with the mod though and it is that a port of the mod to the smaller screens won't be available due to the file integer limit so it is only exclusively on PCs unless if someone finds a way to port the mod. There are also many bugs in the mod as I'm typing this and because of my personal life piloting when I can mod, it will take quite a long time to get everything to function properly. Will there be any release of the mod? For now, the mod is in private until further notice. Apologies for not getting your hopes up for this huge mod I worked on. PC: [Unavailable until further notice]
    1 point
  9. Northeastern tribes as of 1440. Some of these might not have existed as of then.
    1 point
  10. Just this moment, then let's start. This is the configuration file for the mod. We are planning a big update, fixing several problems and adding a lot of new content. We will list these updates when we release them, or we can go to the game to check them out. This is the new version about the menu. The updated content will be presented in other items in this interface, and I will add other items.
    1 point
  11. 1 point
  12. Disclosure on May 10, 2025
    1 point
  13. Welcome to the easy-to-use Event Generator for Age of History 3! This tool will help you create and customize events for your game, as well as translate them into any language. Generator Features: Choose from a full list of triggers with formatting tips; Choose from a full list of outcomes with formatting tips; Automatic event categorization: global, regular, and siege events; Support for translating the generator into other languages; Localization of events into any language! Download link: https://github.com/Ilya-Sal/AoH_Event_Generator
    1 point
  14. Animation examples: Note: This feature was completed in September 2024.
    1 point
  15. AnalyticalEngine can be used for any mod. You can also fork, redistribute, repackage, or modify the engine however you wish to. Patch Notes (25 February 2025) - Beta 0.2. Regions Editor fixed. Steam Workshop page fixed (English/French/German). Main Menu overhauled so that the Multiplayer build can now load games properly. Added the following functions to Deepscript: getCivilisationFlag(arg0_civ_tag, arg1_flag_key) getGlobalFlag(arg0_flag_key) getProvinceFlag(arg0_province, arg1_flag_key) setCivilisationFlag(arg0_civ_tag, arg1_flag_key) setGlobalFlag(arg0_flag_key) setProvinceFlag(arg0_province, arg1_flag_key) removeCivilisationFlag(arg0_civ_tag, arg1_flag_key) removeGlobalFlag(arg0_flag_key) removeProvinceFlag(arg0_province, arg1_flag_key) getCivilisationVariable(arg0_civ_tag, arg1_variable_key) getGlobalVariable(arg0_variable_key) getProvinceVariable(arg0_province, arg1_variable_key) setCivilisationVariable(arg0_civ_tag, arg1_variable_key, arg2_value) setGlobalVariable(arg0_variable_key, arg1_value) setProvinceVariable(arg0_province, arg1_variable_key, arg2_value) removeCivilisationVariable(arg0_civ_tag, arg1_variable_key) removeGlobalVariable(arg0_variable_key) removeProvinceVariable(arg0_province, arg1_variable_key) Note. Variables do not currently carry between sessions. This can be manually implemented, but we are currently working on implementing that feature. We'll try to implement remaining Effects by the end of the week and move onto proper full-domain feature support and better cross-platform compatibility.
    1 point
  16. DEV UPDATE #1 - Regions And Hours. Since the last update, AnalyticalEngine has added in several new changes, including a revamped in-game Regions Editor, better Event limit optimisation, as well as adding back hours to the MP version of the game. Alongside other Map editors, the Regions Editor allows you to edit Regions from the game without messing with .json files, and allows for adding new regions more easily. It can be seen below: The new Regions Editor in action. There are several missing features between the Singleplayer (SP) and Multiplayer (MP) versions of the game, and we're working currently to bridge the gap. We still haven't really been able to properly confirm MP compatibility with these new changes, so they may be breaking in that regard. Additionally, we plan to wait until Lukasz settles down and much of the MP/SP gap is addressed before updating to newer versions. In this regard, we have also readded vanilla event parsing to Multiplayer games. Normally, MP Events are completely disabled - we have re-enabled them. We have also been working on further Deepscript Effects and laying the groundwork for Deepscript Variables. Once done, Variables will allow you to bind JS variables to specific scopes (i.e. Provinces/Civilisations), where they can be kept track of and displayed in-game. To this end, current Scope OnActions allow you to track players' in-game interactions and hook them to an Event, Custom UI, or even Mapmode. Various event handlers are also available to detect in-game page changes, for instance. Full Deepscript compatibility as outlinedd in documentation should be complete by March. Steam Installation. There has also been some confusion as to how you can download this from Steam. Simply put, you open your game's file folder, go to mods/AnalyticalEngine/, and drag out AOC3-Source.jar into your game folder before running it. Make sure JDK 23 is installed before you do. This is similar to how the Map Editor is installed. Anyway, that'll be it. Hopefully these changes are of use. We do not plan to immediately revamp the Continents editor in the same way since there are less Continents fpr this system to be useful, but we will also be considering it at a later date.
    1 point
  17. I am reworking this mod on AOH3. I posted it on my profile
    1 point
  18. Yokuda suppose to be 4 times larger than Septim empire which is the entire tamriel, can you remake that?
    0 points
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Age of History Games