Leaderboard
Popular Content
Showing content with the highest reputation on 2023-05-25 in all areas
-
Good news and bad news about the future. As of Firefox 115, which will be the latest ESR soon, I can finally properly profile the game including JIT code. The only thing to do is compile spidermonkey with `enable-perf` and `--enable-jitspew` (I think), then run it form within https://github.com/mstange/samply like so: `IONPERF=func PERF_SPEW_DIR=. samply record -n --rate 10000 binaries/system/pyrogenesis -mod=public -autostart="random/continent" --autostart-ai="1:petra" -autostart-ai="2:petra" -autostart-nonvisual -autostart-seed=150` This gives you a full profile that you can then access on the firefox profiler, like so: https://share.firefox.dev/3IHH7ho (AI 1v1) There are some interesting overall insights: In this AI 1v1 75-80% of the time is spent in C++ code. But a lot of that time is calls from JS. As I have reported in the staff forums in the past, the main cost in the SimUpdate is `Timer Update` (about 15% of total time), split between ResourceGatherer, ProductionQueue, Builder, Attack, DelayedDamage. Most of the code appears to end up properly jitted. But the GCs 'dump' the JIT code regularly, which means we spend more time in baseline than we probably should. I have reported a bug about this, we'll see what happens: https://bugzilla.mozilla.org/show_bug.cgi?id=1834848 There is a fair amount of Spidermonkey overhead, though there are things we could improve. To take the Example of calling `Engine.QueryInterface`, the costs breakdown as follow: ToJSVal<IComponent*> is about 40-45%. This is largely because of D5004. The actual C++ QueryInterface is only 20%, which is slow because of std::map. But it's not the most major cost. Getting the ComponentManager pointer is 7% ScriptRequest enters the realm (for no reason), which accounts for about 10% total So as you can see there are a lot of things we could do to skip some time, but it's also going to be kinda hard. Some obvious things that show up and could probably be improved: Having a `Engine.QueryInterfaces()` function is probably interesting. Identity:Init() is slow because of splitting the identity classes. We can cache that in ParamNode directly I think. There are some regex constructions in loop which are slow, such as in MatchesClassList AI Interface and AI Proxy are fairly slow. The AI in general also seems poorly jitted, and that might have to do with how the objects are structured, hard to say. Modifiers are kinda costly, but we knew that. Now, right now we are still on ESR92, so this is some ways off, but I have compiled it on a local branch, and I think the results are rather interesting, and encouraging for the future.5 points
-
3 points
-
0AD's initiative to give a historical and educational context to the game, the AoE saga also brings this feature, where AoM stands out the most. It explains every detail, technology, building and unit. The encyclopedia is included in the game. It gives a simple and short summary of the topics covered. ----- @ShadowOfHassen here is.1 point
-
I came across 0 A.D. several years ago and, as an Age of Empires fan, figured it would be neat to try. I saw that it was an "Alpha" though and so I didn't download it, figuring it would be buggy and incomplete. I decided that I would wait until it was at least a Beta version when I tried it. A few years later I came back to it, only to discover it was still Alpha. I was confused about there being so much progress though. I decided to download it and it looked playable. There were still rough edges, but about what I would expect for a Beta version. I talked to another person who said they too had heard about the game, but never tried it because they too were "waiting for the game to not be buggy". When I asked when they would know that would be, they said "1.0, or at least a beta". So the "Alpha" label scared me off from trying 0 A.D. for years and scared off another person I know from trying it at all. Now that there have been Alphas for all 26 letters of the English alphabet, maybe it's time to start releasing Betas? That would prevent new users like me from thinking that the game is still a buggy mess not ready for prime time.1 point
-
I got a working mod up for a 27 for starters (I know A 27 is an alpha- alpha but I took the data from a27 to make the mod)1 point
-
It would be nice if related biomes could overlap on the same map. It will be much more interesting to see part of the map as Nubia and part as Sahara.1 point
-
1 point
-
https://trac.wildfiregames.com/log/ps?action=stop_on_copy&mode=stop_on_copy&rev=27652&stop_rev=&limit=100&verbose=on&sfp_email=&sfph_mail=# Well, there is a changelog in the other discussion: But I think the link I first shared is more complete. I am pretty sure the log messages typically say that a given change is from the community mod. One thing I didn't see in the changelog was decreasing catapult range to 85, but also decreasing the minimum range.1 point
-
Maybe with vulkan working as expected we can have a new standard for a27, pop 250 maybe?1 point
-
Just add a blacklist, where you can't be paired against anyone on your list. This has been around for at least 15 years in other games.1 point
-
Nice, very useful But isn't 200 pop max default for TGs?1 point
-
I don't, that's why I spent countless hours fixing mods. I suppose just like feature creep, open source projects can suffer from technically correct nitpicking. But A24 was a terrible release in lots of ways, but mostly because of the amount of changes in it.1 point
-
Individually, they're nice. But in a team match is where issues might crop up.1 point
-
Please test the player colors and respectfully suggest any desired changes.1 point
-
This grieved me. I did not agree with it, but at that time I was pretty exhausted by arguing against stuff. And... I'd like to change it back from rock to stone and ore to metal... ducks.1 point
-
Any automatic matchmaking should avoid matching players with strong differences in rating. Also, new players should be matched against new players when possible. By the way, there is a flaw, I believe, in the way the current rating algorithm computes the updates to the ratings of players losing or winning against new players. The fact that that player is new is not taken into consideration (compare this to how the new player rating receives stronger updates instead). The opponent to the new player should receive finer updates, because the new player true ability is not known.1 point
-
Well that's what we've been doing since then => https://code.wildfiregames.com/paste/ And hopefully someday here => https://git.wildfiregames.com/wildfire-games/pyrogenesis-migration-scripts1 point
-
@wowgetoffyourcellphone said he would look into an alternative in the coming days.1 point
-
1 point
-
Well IMHO the whole (Spamming, Cheating, DDOSing) lobby debacle, and the lagging kinda proves the point. If 5 people can tank the multiplayer game are we really allowed to be called a beta? Or should we just target single player folks, in which case not having a campaign is kind of a no no ?1 point
-
I have lobbied a while ago for Spartans to simply be free yet cost 2 population and available to train at a slow pace at the appropriate building from the first phase. On the flip side, there would be technologies that could significantly alter them, making them either powerful support units or more spammable mainline infantry. This isn't necessarily a good idea, but it does push a faction to be much more asymmetrical from its counterparts, which I think could make it in theory more flavourful and fun.1 point
-
It still crashes with TLS for multiplayer selected. TLS disabled has no crash. See below:0 points