Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 2024-10-20 in all areas

  1. News are coming soon. The plan is to get the release out around the new year.
    9 points
  2. A new ScrollPanel GUI component is going to be born with the following capabilities: Scroll Orientation Support: Allows scrolling in horizontal, vertical, or both directions, providing flexibility for different use cases. Partial Object Rendering: Supports partial rendering of objects that are only partially visible within the scroll boundaries, improving visual accuracy and performance. Boundary-Constrained Mouse Interaction: Handles mouse events strictly within the panel's visible boundaries, preventing interaction with objects outside the scrollable area. Minimum Internal Size (min_width, min_height): Introduces support for virtual space management, allowing the panel to maintain a minimum internal size independent of its actual on-screen dimensions. Even when the panel is resized, this ensures that the content respects a defined virtual space (with min_width and min_height), effectively simulating a larger internal canvas. This is particularly useful for large content or scenarios where a more extensive scrollable area is required than the current visible panel. Here is the showcase Pull request: https://gitea.wildfiregames.com/0ad/0ad/pulls/7118 Please give me feedback to keep improving GUI Components.
    8 points
  3. Yeah, like decency and basic courtesy. Call me old and conservative.
    7 points
  4. I'd like to share some updates on the project. Here are some of the features we aim to include: Expandability through mods, without a strict dependency on the "public mod" (though compatibility with it will be maintained). Support for backend devices, both current and future. Independence from wxWidgets—no need for it to function. The project is still in its alpha stage, so a lot of code refactoring, UI polish, and additional features are still needed. Currently, I'm working on integrating the features available in AtlasUI. Some concepts REPO: https://gitea.wildfiregames.com/trompetin17/0ad-atlas-in-game/src/branch/main/source in case you wanna try the workflow
    6 points
  5. Don't be confused because some consider it not cheating. It is very clear cheating. It disables game penalties: In game auto-batching gets disabled when the player don't have the resources. It's not on pause (like proGUI) because the programmers lack the capability to program it otherwise, it is a draw back to use this automated way. Do that in the dedicated place, hand in the patches and wait for the next alpha. The topic here is cheating. You can discuss new features for future versions else where. You disable penalties for yourself while playing with players that have these enabled in their game. I had games recently, after the game I get mocked "lol, ffm only 60 kills". I check the replay and see the opponent was a proGUI user. Other games I get a clear win with a ally over decent players, check the replay and see my ally uses proGUI. Also I happen to play in rounds with known cheaters, because the host tolerates it and the better players are already there. The motivation for the cheaters I assume is because they can join rounds of better players and compete with them. The easiest way to identify cheating with proGUI is the quickstart part. It sends 7 commands in one turn, at about turn 12. cmd 6 {"type":"set-rallypoint","entities":[400],"x":200.843017578125,"z":647.5227661132812,"data":{"command":"gather","resourceType":{"generic":"food","specific":"fruit"},"resourceTemplate":"gaia/fruit/berry_01","target":419},"queued":false} cmd 6 {"type":"unload-template","all":true,"template":"template_unit_support_female_citizen","owner":6,"garrisonHolders":[400]} cmd 6 {"type":"set-rallypoint","entities":[400],"x":208.0706787109375,"z":558.1127319335938,"data":{"command":"gather","resourceType":{"generic":"wood","specific":"tree"},"resourceTemplate":"gaia/tree/oak_hungarian","target":411},"queued":false} cmd 6 {"type":"unload-template","all":true,"template":"units/rome/infantry_swordsman_b","owner":6,"garrisonHolders":[400]} cmd 6 {"type":"unload-template","all":true,"template":"units/rome/infantry_javelineer_b","owner":6,"garrisonHolders":[400]} cmd 6 {"type":"set-rallypoint","entities":[400],"x":168.57574462890625,"z":588.1920776367188,"data":{"command":"gather","resourceType":{"generic":"food","specific":"meat"},"resourceTemplate":"gaia/fauna_chicken","target":425},"queued":false} cmd 6 {"type":"unload-template","all":true,"template":"units/rome/cavalry_spearman_b","owner":6,"garrisonHolders":[400]} A mod that warn users in game about a amount of commands that is beyond the best player (plus a threshold) could be a idea. But I don't know where to start with it at the moment. Hardening the game against abuse is one front to fight. But this is absolutely ridiculous to defend and pretend "is it really a cheat if a 1200 player don't win 10 out of 10 vs a 1800 elo player", "it's just a few commands at the start". It's another thing that the cheats are so easy available, widely used and pretended it wouldn't be a cheat.
    6 points
  6. https://gitea.wildfiregames.com/0ad/0ad/pulls/7153#issuecomment-103686 Ok, so after seeing a few games on naval maps, I realized that many naval maps and hybrid maps (land and sea, like hyrcanian shores, lake, continent) do not have enough fish to justify making fishing ships. Take as an example Aegean Sea: The bottom two players don't have a single fish accessible, and the top few players only have a handful, with some of those fish being close enough to the shore. In this case, players may only be able to gather 3000 food with an investment of not only as much as 500 wood (dock + boats), but also lots construction and walking time. This is not enough fish to justify making fishing ships and it means naval gameplay is only relevant for controlling passage to the other side. It also means there is rarely any fish to kill with ships, and if there were fishing ships, they would have already gathered most of the accessible fish. Also, if you look at lake, you would see a map that should be pretty enjoyable, but because there are such a small number of fish in the lake, the middle lake is basically just an obstruction unless you use it for transport and siege ships. Here is Aegean sea after adding the fish: I didn't apply the same exact change to all maps. For maps where there was a comically small amount of fish, I added plenty, but for maps like continent, I added just enough to make fishing worthwhile, but not mandatory. Thoughts?
    6 points
  7. Capitoline Wolf https://en.wikipedia.org/wiki/Capitoline_Wolf https://open.smk.dk/en/artwork/image/KAS837?q=*&filters=has_3d_file%3Atrue&page=7 Ready to be committed I guess? @wowgetoffyourcellphone capitoline_wolf.dae
    5 points
  8. 5 points
  9. We have seen much activity on the new platform since August That makes me happy, proud of the migration, and grateful for the contributions Now the pull requests have accumulated and we need some common rules to be efficient in reviewing. Of course, new PRs get more attention, and it's natural that some big/involved PRs spend more time in the review queue. The situation on Phabricator ended up unmanageable but I believe it had a lot to do with the UI. On Gitea it is immediately obvious how large the review queue is and what needs to be looked at. The only thing I think is missing is an equivalent of the "Changes Planned" status, i.e., the PR is not going to be abandoned, but the author is going to change things, and thus a final review is not wanted for now. This would allow team members to focus on ready-to-commit work that is sitting at the bottom of the pile. I propose to use the WIP: prefix for that situation. The PR is modified to WIP again when the author is still heavily modifying their proposal, or when a decision cannot be made right now. This doesn't prevent the CI to run, checks to pass, etc. On the other hand, at a glance, developers can see which older PRs need some final review. The community can also see where contributions are needed and what is the load status of the review queue. Would that sound good? Pinging the contributors with open PRs. If I start to set some PRs back to WIP, I wouldn't want contributors to think this is a rebuttal, but just some housekeeping. @paczek@Vantha@abian@real_tabasco_sauce
    5 points
  10. @real_tabasco_sauce I think basically every map with water should have a bunch of fish unless there is some compelling reason not to. Compelling reasons include: (1) the water is extremely easy to defend and cannot be rushed (e.g., marsh rhinelands, which has tiny ponds that can be easily defended with a CC, towers, etc) and (2) a strategic reason why you don't want to encourage fishing (e.g., oasis, which already emphasizes control of the central water). Otherwise, I think fishing should be a compelling option anytime there is water.
    5 points
  11. No, @Atrik is just making up numbers. Wait until you learn about other mods, like "autociv" for example. I believe it'd be very beneficial for mods to focus on a single area of improvement, instead of putting everything the author can think of into a single mod. This way it would be much easier for players to get exactly what they want and publishing the mods on mod.io would be easier and less controversial as well.
    5 points
  12. That's what https://gitea.wildfiregames.com/0ad/0ad/issues/7166 would solve. In my opinion cheating is degrading the user experience way more than giving hosts the option to disable unsigned mods. We're not talking about a single mod here. Such a change would prevent all unreviewed and unsigned mods to be used, if the host of a game decides so. There are for examples instructions on the internet to create mods just meant for blatant cheating. The first post in this thread proves the opposite. You can only enforce something you know about and the use of certain mods is not known to other players.
    5 points
  13. A problem 0ad has faced for a long time is that of overshooting. Since the range of a unit's target is checked after attack completion, as long as the target was in range then, ANY attack afterwards will work. This is not so noticeable in many cases, but for slow attacking units in particular, enemy units can travel a long way in that time, leading to things like this: Untitled video - Made with Clipchamp (3).mp4 Also, this problem is very clear with siege units, which have a slow fire rate, and crossbow units. In @ValihrAnt's recent video, you can see that ram ships are annoyingly able to damage units that are far away, resulting in chaotic and unpredictable gameplay. What I propose to fix this is 2 additional range checks that occur during the unit's repeat time. https://gitea.wildfiregames.com/0ad/0ad/pulls/7178 This doesn't completely solve the problem, but it greatly reduces it to where it is basically unnoticeable for pikemen: 20241103-1845-03.6204650.mp4 The additional range checks do slightly impact performance, but its actually less than I expected: After the recent improvements to performance, I think we can "spend" some performance cost for nice things like this. Players, would you accept a small performance cost like this in order to get more responsive and intuitive gameplay? If not, I could limit this to slow-firing units which are the biggest offenders. However, I do think faster firing units stand to gain from this even if the problems are not as noticeable for these units.
    4 points
  14. "Coast Range" players are placed between a long, crescent shaped mountain range and a long, crescent shaped coastline. The mountain range contains lots of metal and stone while the coastline has plenty of fish. The main body of the map has hunt and some scattered stone and metal, but these are small. The mountain range has lots of metal and stone, but lacks wood. The map also supports three placement options, which provide variety and support a wider range of strategies.
    4 points
  15. But I found one player (sanafur) that is currently active and has this unusual active sniping: Maybe he can provide some insight how this is done. commands.zip Sniping with alt+rightclick gives the command to one unit. Or more precisely to the unit with the lowest entity ID / oldest. In a game one can't know realistically which would be that in a group. So if one would alt-rightclick one couldn't give the command to the nearest unit. This would only make sense with a target in range of everyone in a group. Archers and slingers might use this in bigger groups (30+). Skirmishers might try to reach a target on the other side of the group and would need to run between their own army. Halt command (H-key) makes more sense then to attack the next target near each unit without sniping.
    4 points
  16. https://gitea.wildfiregames.com/0ad/0ad/commit/8c250568e7cb9e422c7cf6799ea586dcb14b4f14 ScrollPanel get on live, If anyone found something let me know please with step to reproduce.
    4 points
  17. Alright, here it is: https://gitea.wildfiregames.com/0ad/0ad/pulls/7189 I decided to place the buttons and text outside of the image to keep a constant brightness difference to the background. Quick showcase:
    4 points
  18. The problem with buildable roads is pathfinding.
    4 points
  19. 2 Player versions (day & night) uploaded to original post
    4 points
  20. All parties in the know = not cheating Using it secretly = cheating Is it that complicated?
    4 points
  21. Maybe should be an opt out option like ranked. This way you can still play with custom maps and whatnot should you want to.
    4 points
  22. I still believe this would be useful and I made a patch for it: https://gitea.wildfiregames.com/0ad/0ad/pulls/7161 As always, any ideas and suggestions are welcomed.
    4 points
  23. Probably the best way to go about it would be not letting foundations be visible to enemies until it starts being built. There are also gameplay reasons to do this that occur much more frequently.
    4 points
  24. Sctructure Tree using ScrollPanel here is the changes made in mod public https://gitea.wildfiregames.com/0ad/0ad/commit/3b4e5d98f4b63a6ad8bea258c88c463de069ce2c
    4 points
  25. Sometimes, I notice cases where I think I can set a rally point somewhere and I frustratingly cannot, because the selection box of some structure is larger that it appears it should be. This is often a problem when trying to set rally points behind structures. It turns out that garrison flags contribute greatly to this frustration: 1) the garrison flag adds a lot of height to the selection box, to the point that ~1/3 of selection box on the left is actually the house. 2) the added height proves doubly problematic as this greatly increases the "inaccessible" area behind the selection box due to the default camera POV. Since nobody is selecting buildings by clicking on the flag, I made a patch to exclude the garrison flags from the selection box: https://gitea.wildfiregames.com/0ad/0ad/issues/7131
    4 points
  26. Another thing worth discussing is the effectiveness of palisades and walls vs cavalry. There are some things that can be done to make walling more playable: walls snapping to buildings, destroying trees upon completion, increase overlap tolerance for better sealing. In addition to this, wall rebalancing can be done to make palisades and walls more effective against cavalry. This would also give infantry a relative improvement. For example melee cav could be given a 0.3x vs palisades.
    3 points
  27. I honestly thought this was just bots talking because the community is never this nice. Then I realized this thread is over 20 years old, and kitegirl's son is already an adult. I stumbled across it by clicking on what a random Guest User was viewing, so I didn’t expect it to be a wormhole into the past, back when I barely even had a computer. I hope some of you are still around and doing fine.
    3 points
  28. I took up the idea of including references to the mythologies again. The idea is to have a basic message ("<PlayerName>'s hero <HeroName> has fallen in battle.") and optionally add a second sentence to it for some historical flavor. And, of course, also offer the possibility to disabled the notifications entirely. This is the list I put together: At first, I thought about adding some descriptive terms to the names since we can't expect all players to understand the references on their own. However, I ended up deciding against it to keep the messages shorter. Instead, I made all sentences start with "His soul" (or similar) to signal that they aren't related to the gameplay. And I think the names alone can also spark interest. Also, I'm aware that some heroes in the game are female -> we need two variants of each sentence, one feminine and one masculine. (I only included the masculine ones above for simplicity) Thoughts? Suggestions? By the way, @Samulis, if you could make another sound effect for the notification, that'd be awesome.
    3 points
  29. Ideally, we need move-attack (not attack-move, a totally different thing). Essentially, units need the ability to attack while moving. Take melee cavalry for example, chasing down a fleeing enemy soldier. But until we have something like that, there needs to be ways to mitigate ugliness and not displaying strange things to the player. @real_tabasco_sauce is attempting to do that very thing.
    3 points
  30. Hello everyone, Today I would like to share a project that's been in the back of my mind for a while. Sharing replays has always been a mess and annoying and I wanted to address that a bit by providing a centralized address so that all replays you want to share can be uploaded there. I made a proof of concept Using Svelte & Fastify and it's now using React instead of Svelte. I'd like to hear your feedbacks about what you'd want the UI to look like, what filters would you like to see etc, details about the match (we don't have the possibility to get all the info) Here are some screenshots (Keep in mind the layout isn't set in stone, just wanted to have a convenient way to test things out) For security reasons there will be no direct upload button there if it gets online. You'll need to be approved by me or another administrator first. One can upload a zip containing a replays or containing multiple folders with replays, or just the commands.txt or the commands.txt and the metadata.json. There is no e-mail confirmation. LIVE AT: https://replay-pallas.wildfiregames.ovh/ Sources at:
    3 points
  31. Congratulations for the replay sharing platform. Regarding the @guerringuerrin spike of 80 ungarrison commands in one turn, that's a bug in 0AD, and should be fixed. During the sniping autoclick trend of last year, some players analized spikes in 'command.txt' files like the one mentioned above, looking for click amplification during sniping on some games, and by chance they found this problem existed. The situation is caused when, during lag spikes in games, the user keeps the ungarrison key pressed for several seconds. 0AD seems to record the key press every frame, so the amount of commands start to accumulate super fast, even if you keep the key pressed for only a few seconds. Of course it makes zero sense to record and send so many commands over the network, when just one command per turn is enough. Keeping the ungarrison key pressed for several seconds is useful when you want to teleport a lot of troops, say through a castle: 1. You set the garrison point of the castle the way you want. 2. You order your army to go into the castle 3. You keep the ungarison key pressed for several seconds until all troops teleported. If you make repeated key-presses instead of holding the key down it will likely not produce this spike. As this behavior is useful in normal gameplay, and players will continue to use it, it would be ideal if 0AD would not spam the replay file and the network with such useless identical commands on one turn.
    3 points
  32. Small update, improved performance a bit using caching (the first call will be slow, but the rest will be fast) Fixed searching for player names breaking the background menu Fixed searching for players in local ratings being case sensitive. Added CPT (commands per turn) chart We now have 643 replays
    3 points
  33. Just for the record I've added @ffm2's idea to replay pallas locally. Wanted to go live today but I forgot to push Still need to tweak some settings as the graphs are quite crowded.
    3 points
  34. you think this could work for proposal 2? Players can check mods by clicking in a new Mods button on the right menu, and it will show all the users set as players and the mods they are using. This text will change dynamically in the same fashion as others game setup stuff. Additionally, there's a gear icon on the left side of every player that opens a window where u can check if mods are signed. If possible, this gear icon could change colour to red (or we can think another kind of notification) so the host can be notified there's some issue to look at. Maybe gear could be the same as the Petra setting and put it in the same place. idk if that makes some conflict
    3 points
  35. Hi everyone. i have no development experience and i admit i can't understand all the technical issues mentioned in the post. I just like to play the game ....but I expect a multiplayer game to be a competitive little "race" where skill and strategy should decide the outcome. Every player imo must have the same basic technical prerequisites to ensure that skill decides .... If ProGUI (... the name is misleading btw as the mod obviously is much more than a GUI - i didnt know that a long time) is adding some considerable advantage, then it is not a fair basis for the competition. It is like you would have some motorcycles taking part at the Tour de France ... If people like motorycles....fine, they can compete with other motorcyclists.... but imo not with the byciclists...(and call it a cycle race) I do understand that things are a bit different in an open source computer game. And some consider the development and use of automation and the "little" extras more as a kind of car tuning in formula1 ... but i think for a multiplayer game this should be absolutely limited and transparent. If all in the game use it it would be fair.... if none in the game use it it is fair... nothing much inbetween imo. (I mean the automation stuff - not the GUI part) Overall, i think solving the issues raised in this topic is very important for the community and the attractivity of 0ad, not only for the experienced players. If new players know that there are cheats which can't be prevented, or efforts to do so are not visible, they might be deterred to start the journey of 0ad. So i am happy that this is beeing discussed here and hopefully be solved somehow. As i said i am not much inside the technical aspects, but i like the suggestions of @Alnur earlier in this post, to synchronize and overwrite mods before gamestart as it seems to guarantee everyone is playing with the same technical prerequisites. And if this is an optional setting ... also fine. So I coud host a game with my kind of "punkbuster" activated and other hosts who don't care could just deactivate it ... (Would be interesting to see how many activate it, btw)
    3 points
  36. I've been playing with the script a bit more. Some user recomended me to check a suspicious game between borg_ and stockfish. Here we see the attack commands (not queued). Stockfish has a time between turn 5300 and 5400 where he reaches over 20 commands in a turn multiple time while borg_ never gets over 4. Looking at these commands in the file one sees: turn 5325 200 cmd 1 {"type":"leave-turret","entities":[]} cmd 1 {"type":"unload-all","garrisonHolders":[150,2374,2740,2883,2923,3057,3140,3229,3351]} cmd 1 {"type":"leave-turret","entities":[]} cmd 1 {"type":"unload-all","garrisonHolders":[150,2374,2740,2883,2923,3057,3140,3229,3351]} cmd 1 {"type":"leave-turret","entities":[]} cmd 1 {"type":"unload-all","garrisonHolders":[150,2374,2740,2883,2923,3057,3140,3229,3351]} cmd 1 {"type":"leave-turret","entities":[]} cmd 1 {"type":"unload-all","garrisonHolders":[150,2374,2740,2883,2923,3057,3140,3229,3351]} cmd 2 {"type":"attack","entities":[2472,2483,2533,2701,2732,2735,2749,2781,2790,2806,2815,2825,2826,2846,2847,2848,2849,2851,2852,2853,2864,2872,2873,2874,2875,2876,2889,2896,2897,2912,2947,2960,2971,2973,2975,2977,2985,2995,2997,3022,3029,3030,3031,3032,3034,3035,3036,3040,3042,3055,3068,3069,3071,3083,3084,3085,3088,3100,3105,3120,3122,3123,3134,3145,3160,3171,3181,3193,3200,3209,3214,3223,3224,3226,3227,3245,3247,3254,3281,3287,3292,3294,3308,3309,3311,3313,3314,3316,3329,3330,3331,3346,3347,3348,3360,3361,3363,3365,3366,3367,3373,3376,3379,3390,3391,3392,3393,3421,3422,3425,3429,3431,3435,3440,3444,3445,3451,3467,3468,3469,3471,3509],"target":2963,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2472],"target":2963,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2483],"target":2963,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2533],"target":2963,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2701],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2732],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2735],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2749],"target":2446,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2781],"target":3050,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2790],"target":3050,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2806],"target":3050,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2815],"target":3050,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2825],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2826],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2846],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2847],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2848],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2849],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2851],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2852],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2853],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2864],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2872],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2873],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2874],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2875],"target":3050,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2876],"target":3050,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2889],"target":2446,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2896],"target":2446,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2897],"target":2446,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2912],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2947],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2960],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2971],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2973],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2975],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2977],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2985],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2995],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2997],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3022],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3029],"target":2963,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack-walk","entities":[3030],"x":535.4337768554688,"z":222.9183349609375,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"} cmd 2 {"type":"attack-walk","entities":[3031],"x":535.2202758789062,"z":222.64129638671875,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"} cmd 2 {"type":"attack-walk","entities":[3032],"x":535.2202758789062,"z":222.64129638671875,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"} cmd 2 {"type":"attack-walk","entities":[3034],"x":535.2202758789062,"z":222.64129638671875,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"} cmd 2 {"type":"attack-walk","entities":[3035],"x":535.2202758789062,"z":222.64129638671875,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"} cmd 2 {"type":"attack-walk","entities":[3036],"x":535.2202758789062,"z":222.64129638671875,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"} cmd 2 {"type":"attack-walk","entities":[3040],"x":535.3624267578125,"z":222.36502075195312,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"} cmd 2 {"type":"attack-walk","entities":[3042],"x":535.3624267578125,"z":222.36502075195312,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3055],"target":3015,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3068],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3069],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3071],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3083],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3084],"target":2446,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3085],"target":3050,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3088],"target":3183,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3100],"target":3183,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3105],"target":2385,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3120],"target":2545,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3122],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3123],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3134],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3145],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3160],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3171],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3181],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[3193],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} end So stockfish gives each unit there a individual command. Not as a group. Each command he would need to select the unit and select the target if I'm not mistaken. And the first 3 attack the same target. He'd rather select 3 units individually and attack one target instead of selecting them to a group. The game is from: https://replay-pallas.wildfiregames.ovh/Replays/ReplayDetails/9E145F4901E161F4 load_replay.py
    3 points
  37. I made some script to load game data in to python to plot it as I'm more familiar with python for plotting and analysis. Also it's much nicer to view all the variables in a variable explorer like the one from spyder. Commands per seconds or turn (0.2 s) have the disadvantage that during lag (or later in the game) a player is able to do a lot of commands in one turn. Here is me doing 10 commands in one turn: turn 5455 200 cmd 2 {"type":"walk","entities":[10472,7963,8997,10619,11200,10735,9713,8881,10288,10455,10152,11198,6126,10820,9851,9287,10734,10641,10289,8975,9333,9008,9220,9281,9355,9356,9451,9453,9471,9561,9562,11199,9706,9712,9734,9838,9852,10620,10745,9926,10016,10151,10153,10575,10576,10291,10454,10574,10703,10775,10819,10830],"x":368.4579772949219,"z":944.2227783203125,"queued":false,"pushFront":false} cmd 2 {"type":"walk","entities":[10472,7963,8997,10619,11200,10735,9713,8881,10288,10455,10152,11198,6126,10820,9851,9287,10734,10641,10289,8975,9333,9008,9220,9281,9355,9356,9451,9453,9471,9561,9562,11199,9706,9712,9734,9838,9852,10620,10745,9926,10016,10151,10153,10575,10576,10291,10454,10574,10703,10775,10819,10830],"x":374.57586669921875,"z":970.2582397460938,"queued":false,"pushFront":false} cmd 2 {"type":"attack","entities":[10472,7963,8997,10619,11200,10735,9713,8881,10288,10455,10152,11198,6126,10820,9851,9287,10734,10641,10289,8975,9333,9008,9220,9281,9355,9356,9451,9453,9471,9561,9562,11199,9706,9712,9734,9838,9852,10620,10745,9926,10016,10151,10153,10575,10576,10291,10454,10574,10703,10775,10819,10830],"target":6368,"allowCapture":true,"queued":true,"pushFront":false,"formation":"special/formations/null"} cmd 6 {"type":"walk","entities":[11159,10853,10854,10963,10965],"x":233.2589111328125,"z":647.6427001953125,"queued":false,"pushFront":false} cmd 6 {"type":"walk","entities":[11159,10853,10854,10963,10965],"x":289.00238037109375,"z":808.5845336914062,"queued":false,"pushFront":false} cmd 6 {"type":"walk","entities":[11159,10853,10854,10963,10965],"x":289.2769470214844,"z":809.2060546875,"queued":false,"pushFront":false} cmd 6 {"type":"walk","entities":[11159,10853,10854,10963,10965],"x":289.27691650390625,"z":809.2093505859375,"queued":false,"pushFront":false} cmd 6 {"type":"walk","entities":[7228,7882,7883,8114,8943,11225,11230],"x":309.6015625,"z":795.3712158203125,"queued":false,"pushFront":false} cmd 6 {"type":"walk","entities":[7228,7882,7883,8114,8943,11225,11230],"x":309.6015625,"z":795.3712158203125,"queued":false,"pushFront":false} cmd 6 {"type":"walk","entities":[7228,7882,7883,8114,8943,11225,11230],"x":309.6001281738281,"z":795.1552734375,"queued":false,"pushFront":false} cmd 6 {"type":"walk","entities":[7228,7882,7883,8114,8943,11225,11230],"x":297.7958984375,"z":817.514892578125,"queued":false,"pushFront":false} cmd 6 {"type":"walk","entities":[7228,7882,7883,8114,8943,11225,11230],"x":297.3807067871094,"z":812.8035278320312,"queued":false,"pushFront":false} cmd 6 {"type":"walk","entities":[7228,7882,7883,8114,8943,11225,11230],"x":297.3807067871094,"z":812.8035278320312,"queued":false,"pushFront":false} end Notice player 6 (me) just does actually do 2 commands with 2 unit groups as these walks are not queued. If your familiar with python / matplotlib go ahead and tinker with the script and analyze some games.
    3 points
  38. It's the bane of being a productive member, lol. Everyone starts to look to you for new things. Yep, "feature rich" doesn't need to mean a bunch of stuff on screen. Sometimes good aesthetics and good user experience can combine into something "simple, yet effective, and pleasing to the eye" all at once.
    3 points
  39. I'm thinking it's easier to just quickly decide on which units should not be TreasureCollectors. e.g. <TreasureCollector disable=""/> I think these make sense: template_unit_catafalque template_unit_dog template_unit_fauna template_unit_ship_fire template_unit_siege
    3 points
  40. Ancient DNA reveals the multiethnic structure of Mongolia’s first nomadic empire https://www.mpg.de/20098860/0403-evan-mongolia-s-first-nomadic-empire-150495-x The Xiongnu built a multiethnic empire on the Mongolian steppe that was connected by trade to Rome, Egypt, and Imperial China. © Artwork by Galmandakh Amarsanaa, courtesy of Christina Warinner and the DairyCultures Project
    3 points
  41. This is my opinion, as well. I agree with this. I don't think that this would solve the problem. WFG isn't signing mods frequently enough to satisfy the userbase, and probably never will. Many users choose to use unsigned mods, even in ranked games. I guess that your proposal is an attempt to minimize the effort for attempting to solve the problem. I think that it would not actually solve the problem, though. I think that it would be better to put the effort in to adding a feature that shows all players the mods in use by all players in the match. It would also be useful to add a feature that allows the hoster to define two lists: a list of required mods, and a list of optional mods, and to enable a setting that blocks users from joining unless they have mods consistent with those lists. I think that this is the most that we can do to resolve this conflict short of using a kernel-level anti-cheat system.
    3 points
  42. @RangerK The idea that the proGUI smart train offers no advantage over the original vanilla autoqueue is false. The vanilla production system stops when there are no resources available. The proGUI system automatically adjusts production based on available resources and houses. And it does this instantly while you can be busy in battle or whatever else. You don't even have to think about batch size based on barracks. The system does everything on its own. You set the ratio you want in your army (ranged/melee, etc.) and the mod produces on its own. You can even set an amount of resources you don't want to be spend. It's fantastic. You only have to worry about houses. If you run out of available houses, as soon as you build a new one the system automatically starts producing units. And calculate the batch size to produce per barrack. Instantly. It gives you freedom to do other tasks without worrying about production in a much more efficient way than the original system. It is not, by any means, a simple aesthetic/GUI improvement. We can argue whether this is cheating or not, whether vanilla gameplay should be like this, whether it is more or less fun, or fair. I consider many of the mod's contributions very valuable but to say that it offers no advantages is ridiculous. Just try it by yourself and you will see.
    3 points
  43. I don't do MP and I don't use any mods. Of course anyone can play the game how they like, but when playing against others I consider it poor sportsmanship if they don't make their use of mods transparent and consider anything but purely GUI cheating. I think ProGUI does this sending off units in three directions simultaneously and automating the batches; if the other players try to hide the use of that mod it's cheating. Don't know if you have any other recourse than just not playing with them anymore.
    3 points
  44. Could I ask for or suggest an extension? It would be nice to be able to have multiple images for a tip. For instance, in a tip about Wonders it would be nice to be able to show nice clear images of a bunch of individual wonders rather than packing a bunch of them into one screenshot. In these minor mockup, you see a little 1/2 or 2/2 with arrows to let you cycle through the images for the tip. We wouldn't do this for every tip, but to have that ability would be very nice. Would could allow this by letting us use underscores at the end of the image file name. So, wonders_1.png, wonders_2.png, etc.
    3 points
  45. "The amentum (or “ankyle” in Greek) was a tool known to the ancient Greeks and Romans used to enhance the performance of a javelin throw." It was also used by the Iberians1 , by the Italic tribes in general2 and by the Gauls3,4. 1 BALLESTER TORMO, I. (1942). El" amentum" en los vasos de San Miguel de Liria. Archivo Español de Arqueología, 15(46), 48. 2 Burns, M. (2006). The cultural and military significance of the South Italic warrior's panoply from the 5th to the 3rd centuries BC. University of London, University College London (United Kingdom). 3 Caesar, Gallic Wars, 5, 45-48. 4 Gardiner, E. N. (1907). Throwing the Javelin. The Journal of Hellenic Studies, 27, 249–273. "It was applied for sports, hunting, as well as warfare." You can also mention it was used on horseback in some occasions. We have an account from Polybios mentioning its use from horseback during a hunt: And we have a few iconographic evidences: - Athens, Acropolis Museum. - Archaeological Museum of Pella "Recreations estimate the gain at above 25% in speed and 50% in distance. Moreover, the amentum also imparted spin on the javelin, improving its flight stability and accuracy." There are two sources, Edward Norman Gardiner and Julius Jüthner, mentioning a better performance for recreations.
    3 points
  46. I can’t say how easy or hard it would be to pass through their curation process, but I think 0 A.D. would be a great fit for GOG, if distributed there as a free game. It would no even need an "early access" label (it is already in a much better state than many *released* commercial games). Many GOG customers are starved for RTS games, and multiplayer games that can be played without going through a store launcher/DRM. Many of them joined the store for "old" games and are still waiting for Age of Empires, so having access to 0 A.D. could scratch their itch. I expect launching the game on GOG would have a bigger effect on 0 A.D. popularity than what itch.io did, if only because of the small catalogue leading to each game getting more (relative) exposure. To get an idea, here is their full list of so-called real-time strategy games (most of these are not even what we would call RTS): https://www.gog.com/en/games?genres=strategy&tags=real-time&hideDLCs=true It would be very easy for 0 A.D. to shine when compared to most of these games. --- On the topic of the alpha version, I too am in the opinion that it does no longer help. I would suggest dropping alpha, beta or whatever and stick to the 0.0.27 naming scheme (0.1.0 would be first beta, 1.0.0 first "complete" release). Alpha/beta could stay in internal discussions, but no longer has an useful meaning for distribution.
    3 points
  47. Two players playing as the same player. E.g. one managing eco, while the other is waging war.
    3 points
×
×
  • Create New...