- User Since
- Jan 31 2018, 11:59 AM (236 w, 1 d)
Tue, Aug 9
Those were not forgotten, and there are more than two team cases as well. See the comment on the diff.
Mon, Aug 8
What should be the outcome when there are 2v2v2 and other related configurations?
The current code would place three slots on either side and divide one team. Which might be acceptable. But 2 slots on one side, and 4 slots on the other side with no divided teams is also an option. I would actually prefer the current behavior because asymmetrical placement would get quite messy with extreme configurations.
Tue, Aug 2
General high level observations. Maybe wrong, I have not dabbled in this code enough to say with certainty.
- Is the gaia animal UnitAI supposed to handle the behavior of the player entities being attacked?
- Should cmpAttack actually care for this at all?
- Perhaps UnitAI should instead do this in INDIVIDUAL.ATTACKED state transition if the attacking entity is a dangerous animal and call nearby entities with the same owner.
I don't understand the purpose of the standalone="no" tag, below some related IRC conversations about it. Can I remove them?
Yes you can remove it, its only relevant when DTD is used to make sure its only used for validation. standalone is by default considered as no, so its doubly unnecessary.
Sun, Jul 24
Sat, Jul 23
pull0ad is convenient and probably enough for me as I rarely have to patch binary files.
I download the raw diff and apply it with patch. For most cases, it works good enough. I simply don't have arcanist installed is the main reason. It's by no means a better workflow.
Fri, Jul 22
the files are always empty and not deleted
If you are applying with patch, you can use the -E flag. I generate patches using git diff which has a slightly different format (even phab shows those files as just deleted while this revision shows the files cleared). If you are using arc patch I have no idea what to do.
Forests might be some trouble though as they should preferably have same style as the rest of the map, and to balance them is not an easy task in my (now blurry) experience. The amount of trees can vary quite a bit for fixed parameters, and hard constraints can make them look unnatural.
Is it okay if they are roughly the same. Being visually similar in size might actually be enough.
Thu, Jul 21
Wed, Jul 13
So it seems there would be now two distinct groups of resources. The primary group directly adjacent to the CC, starting animals, small forest, berries and two mines. And a secondary group somewhat far away but still part of the greater player base. Neutral resources would be outside of the greater area I suppose.
Jun 28 2022
I believe simplifying it rather than allowing for tile by tile priorities is actually the way to go. Which can then fit in nicely with D4680.
Superseded in rP25816
Jun 25 2022
Jun 24 2022
Following an IRC discussion, a former undertaker of GUI unspaghettifying recommended switching over to an OOP approach.
Jun 23 2022
Superseded by D2710 and retrospectively speaking, unsure if getPointsInBB with filter callback was actually the right call over a simple for loop.
Overlapping logic is present in the tileclasses currently. If a generic bit array structure is desired, it could be placed into globalscripts and TileClass could be updated to use that for the underlying storage.
Jun 22 2022
I am not sure if this is actually going to be that usable unless the map scripts are explicitly designed to be balanced. And having the overall balance of it tweaked via Gamesettings seems somewhat ineffective. Having the option doesn't really matter if the underlying generation isn't updated too.
Jun 13 2022
I will leave the biome thing to your judgement. However, generic biomes tend to go together. They are meant to be interchangeable. And the grass issue sounds like something all maps using the biome have, i.e, the biome needs to be fixed then.
The weird formatting led to fish being missed in actorHS.
Relevant history for the archaeologists among us.
- The ai could potentially use it to build a wall I guess. But it requires significant code from the ai to calculate the actual wall vertices. Maps could do it quite easily since the number of tiles are 16 times less.
- And then there is the whole tile vs navcell grids. Every tile would be 16 navcells to check against the pathfinder grid when used in sim as mentioned above. This could be abstracted away, but the performance when scaled up is a concern.
- Walls already allow overlap, so I would assume that wall builder returned walls would be buildable as well. It needs to be checked though.
- If this is something we want, the wall builder needs to be designed to be agnostic of internal rmgen details. So no direct references to constraints (the core functions could take an allows callback instead). ***
Unless there is a need, I find no reason to do so.
Jun 12 2022
The wall builder changes are out of scope and somewhat extensive, so it could be refactored later.
I would rather just remove all the houses and possibly replace them by e.g. one temple or a market.
Texture and metal placement changes are good.
Go right ahead.
Jun 9 2022
Some leftovers from the previous iteration.
Jun 8 2022
I personally like lower sun angles as it creates better shadows and afternoon-ish sun colors, but we need variance.
Jun 7 2022
rmgen2 is a convenience library over rmgen which handles more details implicitly and generalizes parameters. At the time it was introduced, it also contained some other generation code such as bluffs and whatnot. However, libraries of libraries usually suggest an anti pattern. #4947 and several commits later, most additions brought by rmgen2 has been ported over to rmgen1, and by now, its mostly just proxies. Maps written without those proxies ought to not have a dependency on it, and maps written with those are preferred to be without them. rmgen itself should have a usable enough interface that could be used without a wrapper around it.
Jun 6 2022
The placement function and the map changes need to be split.
8a3068b3 Fix pyrenean_sierra map following a332ffe6 and 2988b811 a941a25c Remove now unused TILE_CENTERED_HEIGHT_MAP flag and replace getTileCenteredHeightmap with getTileHeight 2988b811 Use tile height for constraints and placers a8c6755d Explicitly differentiate tile and vertices count bd3947e1 Fix random map scripts following a332ffe6 a332ffe6 Rename heightmap functions and introduce a function to get tile centric height
It seems there are somewhat distinct changes in this that could be split out to another revision. But its not a large patch anyhow, so meh.
Fix tests and minor reverts.
The lobby ratings bot suggests that its available at least for rated games. But that's hardly useful. Significantly biased towards a few maps (read mainland).
Jun 5 2022
Jun 4 2022
The name biomes need to be changed to variant or something. Biomes has already outgrown the name. It's used to set day/night, and seasons. And with this, it would just get more divergent with the name. For instance what if we have maps that have mixed biomes under two variants? Refs, P275.
Jun 3 2022
Seemed interesting from an old branch although I don't think this was a good idea, just an experiment that didn't work out.
Jun 2 2022
Something fancy like capture/attack resistance being scaled with number of units within the vicinity is also an option. But that is a whole lot of range queries.
Jun 1 2022
A terrain refactoring needs to happen at some point and might as well put the requirements here.
May 31 2022
Return a map of team ids and player ids.
May 30 2022
That might make it needlessly complex.
May 27 2022
Replace with SDL functions
This is the desired positions for this placement right?
It seems like team placement patterns is purely an rmgen2 construct currently. However, the consensus at the time was to rewrite the maps using the rmgen2 proxies to instead just directly use rmgen. However, that is not an easy effort so this wrapper around rmgen is here to stay I guess. _kali had made several interesting maps and deleting them is not an option without rewriting them, and rewriting them is going to take ages (the effort was started with D1577). Refs #4947
May 26 2022
SDL_GetCPUCount (IIRC it uses sysconf(_SC_NPROCESSORS_ONLN)
The smart thing to do would be to let SDL handle as much sysdep stuff as possible. The actual usage of these code is really not worth the effort of maintenance.
May 24 2022
May 23 2022
Could have a filter that darkens the background perhaps? The gold on yellowish terrain wouldn't be an issue then. As done for the paused overly currently.
May 22 2022
Okay, that sounds about right.
But why should the timer be reset when an ally dies trying to protect the team wonder?
Doesn't it seem unfair that you get punished for doing so?
I would say in this case the timer should actually be reset because the team holding the wonder got stronger with the addition of a new ally. Moreover, it also implies different timers for different players depending on when they allied.
May 19 2022
Apparently Han Chinese is the demonym. In which case this isn't exactly right either. I would imagine this is equivalent to calling Roman fortresses, Rome fortresses.
May 18 2022
Yet another option is to just have named exports on the module entry file for onInit and onTick. Both of these methods would work the same way (other method being explicit registering via Engine) under the hood, but this might be more natural JS code.
May 14 2022
Thinking some more about this, maybe we'll want the Engine to pass a writable Engine.entryPoint attribute that we set the init() functions to, as a way of expliciting the hardcoding?
I have non-exhaustively tested this and LGTM.
May 11 2022
Nothing obvious remains as far as I can see.
(This adds a proxy to cmpTemplateManager, it doesn't keep a static local template loader. But I do agree with the sentiment that globalscripts shouldn't have to rely on such details. Passing around a function not guaranteed to return the same output is also somewhat meh to be honest, cmpTemplateManager.GetTemplate shouldn't have to mirror TemplateLoader.GetTemplate for things to work.)
Won't be possible to resolve files outside of the VFS, when you meant Won't be possible to resolve files like 'gui/something.js'
Its usually unlikely that modules would have to resolve anything outside of their root. However, that doesn't seem to hold true with the structure in gui/ though. Then there is the case of trying to import code from globalscripts. Which would be somewhat messy without absolute paths.
Fix filename going out of scope as JS::CompileOptions::setFilenameAndLine does not copy
May 10 2022
Assertion failure: aDst + aNElem <= aSrc || aSrc + aNElem <= aDst (destination and source must not overlap)
AutoCheckCannotGC needs a scope