badosu
Balancing Advisors-
Posts
859 -
Joined
-
Last visited
-
Days Won
16
Everything posted by badosu
-
question Random player position with already existing CC
badosu replied to Grapjas's topic in Tutorials & Guides
Wait, if you are doing this on a skirmish map players will start already with cc. Otherwise you will duplicate ccs, unless u delete autogenerated by map ones like @Stan` said, I'm not sure how to do that. It would be nice to be able to load a skirmish map on rmgen and scripting player positions and other stuff there. Maybe it's possible dunno, but would be the correct approach for your situation. -
https://github.com/0ad/0ad/blob/2ff3584f5b8a03adbf7369133ad6dda83ea328c5/binaries/data/mods/public/gui/common/tooltips.js https://github.com/0ad/0ad/blob/761b4692f947c8ae6fd7ddc74827a77d283ad2d3/binaries/data/mods/public/gui/session/PanelEntity.js
-
question Random player position with already existing CC
badosu replied to Grapjas's topic in Tutorials & Guides
The syntax is wrong, just pass the x and y numbers. If it's not rmgen u need to import the libraries. See how on the map codes, you can also check balanced-maps on github -
metadata.json commands.txt oos_dump.dat oos_dump.txt
-
Trying to play SVN with @ValihrAnt on https://github.com/0ad/0ad/commit/e1a3a302f165ff0bd4a869f46c2badbf23e22dc8 Got OOS for some reason, I'm pretty confident I got only that revision, cloned fresh repo on that revision made fresh build. Didn't compile Atlas with `--without-editor` oos_dump.txt: https://gist.github.com/badosu/22aa26d791912451aa44f17e7a9483a8
-
question Random player position with already existing CC
badosu replied to Grapjas's topic in Tutorials & Guides
Array of Vector2D with the coordinates u want. e.g. let fixedPositions = [ new Vector2D(x1, y1), new Vector2D(x2, y2), //... ]; For a programmatic approach see distributePointsonCircularSegment, e.g. for a circle: let points = []; let angle = []; let startAngle = 0; let maxAngle = 2 * Math.PI; let center = g_Map.getCenter(); let radius = fractionToTiles(0.35); pointCount = Math.round(pointCount); for (let i = 0; i < pointCount; ++i) { angle = startAngle + maxAngle * i / Math.max(1, pointCount - 1); points[i] = Vector2D.add(center, new Vector2D(radius, 0).rotate(-angle)); } -
That's why it's important to learn how to build economy and defend efficiently. At the early game the better structures to expand territory are barracks and houses (for some cases, like taking berries or woodline). After you reach about 100 population you should be able to phase 2 safely, which will bring more territory. You will still have enough resources in your territory to keep building your economy, it's mostly wood and food at this stage. You can then choose to either make a new civic center or go to phase 3. Going to phase 3 is almost always better, with some exceptions like a mineral intensive civilization or a particular strategy dependent on map control. Remember your objective is to kill your opponents, not necessarily expand to the whole map (though that might be necessary to achieve the goal)
-
The best way to do that is to scout, watch your closest neighbors territory, if they are ally or not (you can click the ring button on top right to see which colors are allies or enemies). If you have a close enemy, try to concentrate men near the border, taking resources nearby with men, for example a woodline. You will have both vision and men to defend on that position. You can also build an outpost (dont forget to upgrade vision technology for outposts). If you are playing a team game, take vision technology from market earlier. Palisades and stone walls have their place in the game, but it depends on the circumstance. For example a few palisades can help close a gap in your base and avoid your farms being harassed by cav, especially melee cav. You can also wall off using other structures, like houses, you will gain more benefit from this approach since you can both protect women by garrisoning them and save build time by investing in structures you would have to build anyway. See the rush defense guide from valihrant. Palisades most utility comes from delaying a siege push from opponent at phase 3 or forcing opponent through a chokepoint. At the early game you can't really spend resources or build time with palisades, with the exceptions I mentioned before.
-
question Random player position with already existing CC
badosu replied to Grapjas's topic in Tutorials & Guides
@Grapjas Implementation is simple, store an array of n positions of the coordinates of the starting locations you want (or whatever is the number of max players you want for map). The algorithm below randomizes position assignments: let fixedPositions = [...]; // your fixed set of positions let playerPositions = []; for (int i=0; i<playerIDs.length; i++) { fixedPositions = shuffleArray(fixedPositions); // shuffle available positions to take random spot or do whatever you want to assign player positioning playerPositions.push(fixedPositions.pop()); // add position to players, pop to take one available position out of the array } let playerPlacements = [playerIDs, playerPositions]; // Pass to placePlayerBases To make it respect adjacency you'd have to make it a bit more complicated, sorting playerIds as I mentioned on post above and sorting fixedPositions with assignment respecting that could work, though I'd require a bit more work to handle edge cases. -
question Random player position with already existing CC
badosu replied to Grapjas's topic in Tutorials & Guides
Ah, that's super straightforward to do. Just assign playerids and playerpositions to your liking as I mentioned on my previous post. For randomizing playerids grouping by team look for `sortPlayers(playerIDs)` in player.js. Which feature? Player positioning is map dependent. With A24 would be nice to have specific 1v1, 2v2, 3v3, 4v4 maps with fixed positions but unequal distribution. You could then enable the flag for unequal distribution and you'd be assigned to one spot of the map. Could be diagonally opposed, vertical or horizontal, the opponent wouldn't know your position ahead of time. Biggest issue with that is that harassment capability is greatly impaired with bigger map size, so for a 1v1 I think at most 4 to (arguably) 6 positions can be feasibly done (medium to normal size). If the feature is enabling this random distribution then it would require a revamp of all maps, which is not a terrible idea but unfeasible in the short time. Map balance is in a worse state than that for example. This is something from Starcraft 2 that would definitely be super great to have. I thought about putting it into balanced-maps but I'd rather wait for A24 flags (whenever it happens, if I'm still around) -
If you want to play casually, then feel free to be imaginative with your builds, I'd just say that you'd never build palisades on the early game if you want to play against other players in a competitive fashion. If you are still reluctant to watch the video above, then I feel obligated to share at least borg's tips: Also search the forum, every month or so someone asks the same questions, this should help.
-
question Random player position with already existing CC
badosu replied to Grapjas's topic in Tutorials & Guides
Also, can you describe what you mean here? The player is literally the CC and the entities they start with, I'm not sure what you want. -
question Random player position with already existing CC
badosu replied to Grapjas's topic in Tutorials & Guides
If you don't need full control: Just assign a variable to the result of the placer function, usually that's `playerPlacementCircle` for typical maps e.g. nobland, get the playerPositions which is the second return argument, add some randomization to the positions and give it back on `placePlayerBases`, e.g.: let playerPlacements = playerPlacementCircle( // ... or whatever is being used as the player placer function let [playerIDs, playerPositions] = playerPlacements; // iterate and modify playerPositions e.g. playerPlacements = [playerIds, playerPositions.map((pos) => _modify_pos_)]; placePlayerBases({ "PlayerPlacement": playerPlacements, // give it back to 0ad The root of the territory is the cc location itself, so you can't do much better than this. That's what will be positioned on what you specify there, you can only change the distribution of entities around it via heavy patching or some other clever way of the functions I mentioned on the previous post. -
question Random player position with already existing CC
badosu replied to Grapjas's topic in Tutorials & Guides
Grapjas, that's possible but not too straightforward to implement. You'll basically need to redefine one of:`placePlayerBase`, `placeCivDefaultStartingEntities` functions or any other function that starts with `placePlayerBase*`. -
Se vc é brazuca tem o canal do Ágora 0ad tbm, não é tão detalhado quanto o valihrant, mas se vc tem dificuldade de entender ele é uma boa alternativa.
-
@jpsouzamatos I recommend to watch Valihrants basic economy guide to get started on how to build your economy first. After you have a strong economy you can then learn how to defend/rush or boom. I also recommend watching replays from learn from them. There's also rush defense guide and a lot of 1v1s and tgs played from the player perspective there, you'll learn a lot. Search through his vids, good luck!
-
The Problem with Sword/Spear Units
badosu replied to Thorfinn the Shallow Minded's topic in General Discussion
Granted, not in the battlefield, but should give some idea. The biggest difference should not be in the rate of fire, but in ammunition. Javelins should have 3-4 shots and take a downtime while slingers could shot non stop (but with lower damage and atrocious accuracy). -
Idea of technology for teams sharing resources
badosu replied to gui456wSERTDYF's topic in Gameplay Discussion
I think the overflowing resources are shared with the team idea is great, makes a lot of sense. I've been playing an RTS that has that and I think it really makes the team game more balanced. -
As a note for those seeing errors when playing with spec mod, as opposed to specing. This is caused by fgod redefining a function used by monitor mod, not loading fgod fixes it. You can also try loading fgod after monitor mod, but havent tested that. The issue happens as soon as when you get vision on a team game.
-
Weird pixel colors with postprocessing and amdgpu on RX 580
badosu replied to badosu's topic in Bug reports
Works with latest autociv, works great, thanks!! -
Weird pixel colors with postprocessing and amdgpu on RX 580
badosu replied to badosu's topic in Bug reports
Tested without autociv, works! @naniIs there something I can do to still be able to play with autociv without the graphical shenanigans? -
Weird pixel colors with postprocessing and amdgpu on RX 580
badosu replied to badosu's topic in Bug reports
-
I think this counts as a reasonable case for authorization, since he's not technically using it as a player account.