Page MenuHomeWildfire Games

Mercury (Mercury)
User

Projects

User Details

User Since
May 10 2022, 1:35 AM (82 w, 12 h)

Recent Activity

Jan 31 2023

Mercury added a comment to D4773: Normalize names for ClientId in /network.

I wrote this primarily in order to use it for writing D4775 with sensible member names.

Jan 31 2023, 11:32 AM
Mercury added a comment to D4816: Reschudule GC alternitive patch for single threaded builds.

@phosit I removed the emergency GC because the JS engine already does that when it hits 100%. I don't think there is anything to be gained by running it at 75%. That's just throwing away 25% of the JSContext ram.

Jan 31 2023, 11:26 AM

Jan 9 2023

Mercury added a comment to D4718: Allocator and generator for component data..

@Stan No, i didn't change the logic from what it was before regarding overwriting m_ComponentsByInterface

Jan 9 2023, 12:10 AM

Jan 3 2023

Mercury added a comment to D4718: Allocator and generator for component data..

Seems to me you overwrite m_ComponentDataByInterface with the latest constructed component.

Sorry, my mistake. I should have said that the interfaceId allows the wrapped version to be used seamlessly with the core logic. It does not enable using the compiled version with one entity and a wrapped version for another. It allows wrapping components in general, which then must be used by all entities. I agree that it seems logically suspicious, but I haven't thought of a way around it.

Jan 3 2023, 7:59 AM

Dec 28 2022

Mercury added a comment to D4718: Allocator and generator for component data..

@phosit There are two containers because there are two id numbers per component type: ComponentTypeId and InterfaceId. InterfaceId can be thought of as component type category. If for example a mod provides a custom position component for some unit types that replacement component would have the same InterfaceId as the original position component but a different ComponentTypeId. This allows messages for the position component to be passed to either the original or the custom version.

Dec 28 2022, 8:31 PM

Dec 23 2022

Mercury added a comment to D4718: Allocator and generator for component data..

@phosit
Components are stored in the ComponentDataHolder, which is used in ComponentDataByInterface.

Dec 23 2022, 9:28 AM

Dec 22 2022

Mercury added a comment to D4719: graph2.html and graph2.js.

No, sorry.

Dec 22 2022, 3:14 AM
Mercury added a comment to D4718: Allocator and generator for component data..
  1. I agree but I don't know how to write it that way.
  2. Unless I am misunderstanding you that is already the case.
Dec 22 2022, 3:10 AM

Nov 23 2022

Mercury abandoned D4760: Reduce simulation turns per second from 5 to 4.
Nov 23 2022, 5:49 AM

Nov 4 2022

Mercury updated the summary of D4816: Reschudule GC alternitive patch for single threaded builds.
Nov 4 2022, 10:37 PM
Mercury added reviewers for D4816: Reschudule GC alternitive patch for single threaded builds: Stan, wraitii, Restricted Owners Package.
Nov 4 2022, 8:52 AM

Nov 3 2022

Mercury updated the summary of D4758: Rearrange GC scheduling for reduced lag.
Nov 3 2022, 11:33 PM
Mercury updated the summary of D4816: Reschudule GC alternitive patch for single threaded builds.
Nov 3 2022, 11:30 PM

Nov 1 2022

Mercury updated the summary of D4816: Reschudule GC alternitive patch for single threaded builds.
Nov 1 2022, 9:23 PM
Mercury added a comment to D4775: Prevent echoing simulation commands back to their source client..

@lyv Right, we cannot use player id here, only client id.

Nov 1 2022, 9:10 PM
Mercury updated the diff for D4775: Prevent echoing simulation commands back to their source client..

Change clientId to client in comment.

Nov 1 2022, 9:03 PM

Oct 31 2022

Mercury added a comment to D4775: Prevent echoing simulation commands back to their source client..

@vladislavbelov Ah, right.

Oct 31 2022, 9:16 PM

Oct 30 2022

Mercury updated the summary of D4816: Reschudule GC alternitive patch for single threaded builds.
Oct 30 2022, 8:30 AM
Mercury updated subscribers of D4816: Reschudule GC alternitive patch for single threaded builds.
Oct 30 2022, 2:03 AM
Mercury requested review of D4816: Reschudule GC alternitive patch for single threaded builds.
Oct 30 2022, 2:46 AM

Oct 29 2022

Mercury updated the diff for D4758: Rearrange GC scheduling for reduced lag.

Last commit was a mistake, this one reverts it.

Oct 29 2022, 9:41 PM

Oct 27 2022

Mercury added a comment to D4758: Rearrange GC scheduling for reduced lag.

@Stan Ok. I'm in the pacific time zone and usually available around noon.

Oct 27 2022, 10:23 PM

Oct 26 2022

Mercury added a comment to D4758: Rearrange GC scheduling for reduced lag.

This is where the tradeoff between animation lag and simulation lag is: under high load we must allow frame rate to drop in order to maintain simulation speed. I have a plan in mind for running dynamically budgeted slices between animation frames to keep frame rate up under less stressful situations but haven't prioritized it because if we can thread simulation there is no need for it.

Oct 26 2022, 10:29 PM

Oct 24 2022

Mercury added a comment to D4758: Rearrange GC scheduling for reduced lag.

I'm still fairly confused.

Oct 24 2022, 9:18 PM
Mercury updated the summary of D4758: Rearrange GC scheduling for reduced lag.
Oct 24 2022, 1:15 AM
Mercury added a comment to D4775: Prevent echoing simulation commands back to their source client..

I'm now confident that my previous speculation was correct and that we don't have a problem here. @elexis thought that clientId isn't being sent with each command message but it is, it's just unlabeled.

Oct 24 2022, 1:03 AM
Mercury added a comment to D4758: Rearrange GC scheduling for reduced lag.

I'm not entirely sure what you're referring to here

Oct 24 2022, 12:13 AM

Oct 23 2022

Mercury added a comment to D4775: Prevent echoing simulation commands back to their source client..

Tested by running two instances. Seemed to work fine, but I can't test a situation where multiple players are issuing commands on the same turn that way.

Oct 23 2022, 12:06 AM

Oct 22 2022

Mercury added a comment to D4775: Prevent echoing simulation commands back to their source client..

Elexus pointed out to me that this could break determinism via order of command processing. A deterministic sort of all commands each turn would be required to resolve it. I'm currently thinking the best option is to sort by the raw text of the commands by storing them in a priority queue.

Oct 22 2022, 8:34 AM
Mercury updated the diff for D4773: Normalize names for ClientId in /network.

Wrong diff command.

Oct 22 2022, 12:36 AM
Mercury updated the diff for D4775: Prevent echoing simulation commands back to their source client..

wrong diff command.

Oct 22 2022, 12:31 AM

Oct 21 2022

Mercury updated the diff for D4758: Rearrange GC scheduling for reduced lag.

wrong diff command again.

Oct 21 2022, 11:53 PM
Mercury updated the diff for D4758: Rearrange GC scheduling for reduced lag.

wrong diff command?

Oct 21 2022, 11:33 PM
Mercury updated the diff for D4775: Prevent echoing simulation commands back to their source client..

Wrong diff command?

Oct 21 2022, 2:01 AM
Mercury added a comment to D4775: Prevent echoing simulation commands back to their source client..

Don't know what the problem is here, I'm generating the diff the same way I always have...

Oct 21 2022, 1:57 AM
Mercury updated the diff for D4775: Prevent echoing simulation commands back to their source client..

Change host to clientId in log in NetClient.cpp.

Oct 21 2022, 1:36 AM
Mercury updated the diff for D4773: Normalize names for ClientId in /network.

Change host to clientId in log in NetClient.cpp.

Oct 21 2022, 1:25 AM
Mercury updated the diff for D4758: Rearrange GC scheduling for reduced lag.

Moved slice call to turn manager.

Oct 21 2022, 1:08 AM

Oct 20 2022

Mercury updated subscribers of D4758: Rearrange GC scheduling for reduced lag.

Hey all, sorry to take so long to get back to you.

Oct 20 2022, 10:16 PM

Sep 15 2022

Mercury added a comment to D4758: Rearrange GC scheduling for reduced lag.

No worries, do you need me to upload again?

Sep 15 2022, 2:19 AM

Sep 13 2022

Mercury added inline comments to D4758: Rearrange GC scheduling for reduced lag.
Sep 13 2022, 10:46 PM
Mercury updated the diff for D4758: Rearrange GC scheduling for reduced lag.

Added time units (seconds, milliseconds) to variable names.

Sep 13 2022, 10:39 PM

Aug 27 2022

Mercury updated the diff for D4775: Prevent echoing simulation commands back to their source client..

Space after if.

Aug 27 2022, 11:13 PM
Mercury requested review of D4775: Prevent echoing simulation commands back to their source client..
Aug 27 2022, 1:19 AM

Aug 26 2022

Mercury added inline comments to D4773: Normalize names for ClientId in /network.
Aug 26 2022, 11:45 PM
Mercury added inline comments to D4773: Normalize names for ClientId in /network.
Aug 26 2022, 11:11 PM
Mercury added inline comments to D4773: Normalize names for ClientId in /network.
Aug 26 2022, 11:02 PM
Mercury added inline comments to D4773: Normalize names for ClientId in /network.
Aug 26 2022, 10:40 PM
Mercury updated the summary of D4773: Normalize names for ClientId in /network.
Aug 26 2022, 10:32 PM
Mercury added inline comments to D4773: Normalize names for ClientId in /network.
Aug 26 2022, 9:24 PM
Mercury updated the diff for D4773: Normalize names for ClientId in /network.

changed 1 to 1u, updated copyright year.

Aug 26 2022, 9:24 PM
Mercury requested review of D4773: Normalize names for ClientId in /network.
Aug 26 2022, 11:15 AM

Aug 21 2022

Mercury added inline comments to D4758: Rearrange GC scheduling for reduced lag.
Aug 21 2022, 1:16 AM
Mercury updated the diff for D4758: Rearrange GC scheduling for reduced lag.

Removed m_LastGCTime, changed a comment, added gcInProgress.

Aug 21 2022, 1:16 AM
Mercury updated the summary of D4758: Rearrange GC scheduling for reduced lag.
Aug 21 2022, 12:57 AM

Aug 18 2022

Mercury updated the summary of D4758: Rearrange GC scheduling for reduced lag.
Aug 18 2022, 12:21 AM
Mercury added a comment to D4758: Rearrange GC scheduling for reduced lag.

What about the comment on timer_Time?

Aug 18 2022, 12:17 AM
Mercury updated the diff for D4758: Rearrange GC scheduling for reduced lag.

changed some int to u32

Aug 18 2022, 12:15 AM
Mercury added a comment to D4758: Rearrange GC scheduling for reduced lag.

Didn't mean to submit yet, diff isn't ready, sorry.

Aug 18 2022, 12:11 AM
Mercury added a comment to D4758: Rearrange GC scheduling for reduced lag.

Not a problem at all, I appreciate the time you put in to get it right :)

Aug 18 2022, 12:09 AM

Aug 15 2022

Mercury updated the diff for D4758: Rearrange GC scheduling for reduced lag.

uint32_t changed to u32.

Aug 15 2022, 11:58 PM
Mercury added a comment to D4758: Rearrange GC scheduling for reduced lag.

Ok, that's another task to add to the to-do list then. It should give a significant result in terms of graphics smoothness as well as freeing up some more time for simulation to run.

Aug 15 2022, 11:07 PM
Mercury added a comment to D4758: Rearrange GC scheduling for reduced lag.

Since the patch is about timing i don't see how to test it without introducing a race condition.

Aug 15 2022, 2:03 AM
Mercury updated the diff for D4758: Rearrange GC scheduling for reduced lag.

uint32_t changed to u32

Aug 15 2022, 2:01 AM

Aug 14 2022

Mercury added inline comments to D4758: Rearrange GC scheduling for reduced lag.
Aug 14 2022, 11:00 PM
Mercury updated the diff for D4758: Rearrange GC scheduling for reduced lag.

Add some includes, use timer_Time.

Aug 14 2022, 10:59 PM
Mercury updated the summary of D4760: Reduce simulation turns per second from 5 to 4.
Aug 14 2022, 9:08 PM
Mercury added a comment to D4760: Reduce simulation turns per second from 5 to 4.

Reduce simulation thread load by ~10% (maybe a bit less, can't think of a way to test) and network traffic by 10-18%, depending on player APM. 500ms indeed sounds like too much. But 200 might have been an over-correction. The difference from 2 turns per second to 5 turns per second is ~1/3 second, but the difference between 5 and 4 is 1/20 second. I think this is small enough to not make a big difference.

Aug 14 2022, 9:07 PM
Mercury updated the summary of D4760: Reduce simulation turns per second from 5 to 4.
Aug 14 2022, 8:35 PM
Mercury requested review of D4760: Reduce simulation turns per second from 5 to 4.
Aug 14 2022, 4:25 AM

Aug 13 2022

Mercury updated the diff for D4758: Rearrange GC scheduling for reduced lag.

Changed type of gcPressure to double, changed type of gcBytes and gcMaxBytes to uint32_t, as well as m_HeapGrowthBytesGCTrigger and m_LastGCBytes. Added some const. Edited some comments.

Aug 13 2022, 10:00 PM
Mercury added a comment to D4758: Rearrange GC scheduling for reduced lag.

Slice runs fewer times because it's time budget is typically higher. The total amount of RAM consumed should remain the same.

Aug 13 2022, 9:39 PM
marder awarded D4758: Rearrange GC scheduling for reduced lag a Party Time token.
Aug 13 2022, 11:01 AM
Mercury added a reviewer for D4758: Rearrange GC scheduling for reduced lag: Stan.
Aug 13 2022, 8:38 AM
Mercury updated the summary of D4758: Rearrange GC scheduling for reduced lag.
Aug 13 2022, 7:33 AM
Mercury updated the summary of D4758: Rearrange GC scheduling for reduced lag.
Aug 13 2022, 7:23 AM
Mercury updated the summary of D4758: Rearrange GC scheduling for reduced lag.
Aug 13 2022, 7:20 AM
Mercury updated the summary of D4758: Rearrange GC scheduling for reduced lag.
Aug 13 2022, 7:17 AM
Mercury updated the summary of D4758: Rearrange GC scheduling for reduced lag.
Aug 13 2022, 7:12 AM
Mercury updated the summary of D4758: Rearrange GC scheduling for reduced lag.
Aug 13 2022, 7:12 AM
Mercury updated the diff for D4758: Rearrange GC scheduling for reduced lag.

Replaced the constant 200 with the variable turnLength in Simulation2.cpp. Edited comment.

Aug 13 2022, 6:55 AM
Mercury updated the summary of D4758: Rearrange GC scheduling for reduced lag.
Aug 13 2022, 6:37 AM
Mercury retitled D4758: Rearrange GC scheduling for reduced lag from Rearrange GC scheduling for reduced latency to Rearrange GC scheduling for reduced lag.
Aug 13 2022, 6:36 AM
Mercury updated the summary of D4758: Rearrange GC scheduling for reduced lag.
Aug 13 2022, 6:31 AM
Mercury updated the summary of D4758: Rearrange GC scheduling for reduced lag.
Aug 13 2022, 6:28 AM
Mercury updated the diff for D4758: Rearrange GC scheduling for reduced lag.

Space after if.

Aug 13 2022, 6:23 AM
Mercury updated the diff for D4758: Rearrange GC scheduling for reduced lag.

Copyright year, trailing white space, comment format.

Aug 13 2022, 4:39 AM
Mercury requested review of D4758: Rearrange GC scheduling for reduced lag.
Aug 13 2022, 4:10 AM

Aug 12 2022

Mercury added inline comments to D4718: Allocator and generator for component data..
Aug 12 2022, 7:21 AM
Mercury updated the diff for D4718: Allocator and generator for component data..

Use range based loop in graphics/mapWriter.cpp

Aug 12 2022, 7:21 AM

Aug 10 2022

Mercury added a comment to D4718: Allocator and generator for component data..

No I haven't tested multiplayer.

Aug 10 2022, 12:31 AM
Mercury updated the diff for D4718: Allocator and generator for component data..

Formatting, range based looping, avoid stack allocation in Game::IsFinished.

Aug 10 2022, 12:27 AM

Aug 9 2022

Mercury added a comment to D4718: Allocator and generator for component data..

I haven't deeply read the code for source/lib/allocators/* or the code which uses them so I don't know.

Aug 9 2022, 3:03 AM
Mercury updated the diff for D4718: Allocator and generator for component data..

changed range based loop to std::for_each in destructor.

Aug 9 2022, 2:57 AM

Aug 8 2022

Mercury added a comment to D4718: Allocator and generator for component data..

@Stan some of it will be coming from avoiding unnecessary copying, passing by reference. The theoretical complexity cost of removing the capacity limit is negligible. I would want to do more runs and average them together before I trusted that number to mean anything beyond that it hasn't gotten any worse. But I'm too tired to do that right now.

Aug 8 2022, 11:18 AM
Mercury added a comment to D4718: Allocator and generator for component data..

@Stan %12.7 ๐Ÿ‘ (based off one run)

Aug 8 2022, 10:36 AM
Mercury added a comment to D4718: Allocator and generator for component data..

Hello @jprahman, thank you for your help! I think there is more performance to be found, some in network and some in SpiderMonkey GC. Hopefully some more in territory calculations. After those we may want to try multi-threading. A lagless TG might be possible :)

Aug 8 2022, 10:10 AM
Mercury updated the diff for D4718: Allocator and generator for component data..

Added more tests, made ComponentDataHolder::Pools return a reference, renamed AllocFunc to ConstructFunc, use for_each in ComponentDataHolder::Destruct, use range based loop in ComponentManager::ResetState.

Aug 8 2022, 9:33 AM

Jul 28 2022

Mercury updated the diff for D4718: Allocator and generator for component data..

version control fail.

Jul 28 2022, 3:39 AM
Mercury added a comment to D4718: Allocator and generator for component data..

Changed uint_32 types for vector indices to size_t. Supposedly the type should be std::vector<std::byte*>>::size_type, but I haven't been able to get that to work.

Jul 28 2022, 3:21 AM