Jump to content

ChronA

Community Members
  • Posts

    215
  • Joined

  • Last visited

  • Days Won

    8

Everything posted by ChronA

  1. While I don't have first hand experience, I'm pretty certain the 0ad code base is not remotely a large enough training set to meaningfully realign a model like GPT-4. If you really wanted to do what's being proposed I think you would need to construct a procedural reinforcement learning regime. Have the model generate huge amounts code for the game: many thousands of times the size of the actual code base, then use heuristics and testing to pick out the parts that work and use those to re-train the model. That would be a huge project, and probably not practical for a small hobbyist community that can't even add highly requested features to the game with any consistency. I'd also question if it is even necessary. What I don't think people appreciate is that when it comes to pattern recognition, for many tasks GPT-4 is already nearly (and in some cases actually) super human. It can pick up on patterns, logical relationships, and implications much faster than a human being would, often from a single example or a half formed suggestion. Admittedly, often times the conclusions it draws can be wrong, and many people will point to that as a sign the bot is stupid, but they are missing the forest for the trees. It is the user's job to guide the bot to the right patterns by providing context and instructions, and in time skillful users will distinguish themselves by their ability to efficiently leverage the bot's proclivities to get remarkable results. (AI whisperers if you will.) In short, the bot being stupid is operator error. And conversely, when it gets something super specific right the first time using pure intuition, it is downright spooky. And that is an experience I've had with GPT-4 a lot more often than with humans. The bottom line is you won't need to retrain these models to produce useful code for projects 0ad. If say you wanted it to rewrite part of the Attack module, just give it the example of the old Attack module as part of your task prompt. So long as you provide clear directions it will probably produce working code without any difficulty.
  2. Something to keep in mind with language model chatbots is the primacy of context. While the word intelligence is applicable to the emergent behavior that tends to arise from large language models, never forget that what they actually are is pattern recognition and extension engines. They work by looking at a block of text and predicting the most likely sequence of letters that comes next. It's just that when you train this system on trillions of pages of text and let it take billions of factors into account when matching the pattern it starts to capture super high-level patterns like rhetoric, logic, and culture, and ends up acting very like the minds that produced all those training examples in the first place. But the bot will always remain a pattern recognition and extension engine, and this has consequences for how prompts should be engineered. GPTs generate much more specific and accurate responses from longer and more detailed prompts. Even if you are only regurgitating background information the model already knows, the extra material will help it to latch on to a more specific response pattern and produce a more sophisticated and topical answer. In some cases this will make hallucinations like the fake mod list go away. Additionally, these chatbots exhibit a behavior I call mirroring. Because they are pattern matching systems, they tend to pick up and copy stylistic and behavioral features from the users prompts. For example, if you don't put much effort into a prompt or prompts the LM won't put much care into its answer. The bot will spit out short and sloppy answers that ignore parts of the prompt and make things up to get its point across. Or if you write in a highly technical style the bot will adjust its word choices to try to mimic it, even if you give it direction to use a different style. (This is really annoying if you are trying to get the bot to rewrite a composition in a new style.) Or if you are rude or demeaning the bot will turn obstinate and passive aggressive. They mostly have really study reinforcement training now that prevents them from becoming openly hostile, but they will start ignoring directions and basic logic to keep the combative vibe going.
  3. That's kind of the point. If a strong player turtles against a weak player naked expanding, then the stronger player will almost certainly have the ability to punish the booming player before they get even a 3:2 territory advantage, to say nothing of 2:1 or 3:1. Conversely if the turtle is the weaker player they are unlikely to have success breaking out. Keep in mind that with a 3:1 territory advantage, even if the turtle has massive success breaking out and doubles their territory, they are still only even for territory control. And, economy wise the booming player still has at least a 2:1 lead; probably more because the turtle had to invest into military earlier in order to break out. Conquest teaches new players bad habits by withholding immediate feedback on the effectiveness of their strategies. A lot of new players gravitate toward turtling because they observe that they can survive for 20 minutes or so and kill many enemy units by sticking to one heavily defended base, whereas they will die immediately if they try to attack or expand.
  4. Really? How often are players who control 1/4 the map coming back against someone with 3/4ths? I've seen people comeback from having 50% the territory of an opponent (in various other symmetric RTS games, not 0AD) but even that is extremely rare. Usually, in my experience of symmetric design RTS, matches can swing decisively on just +-10% map control. If you are plowing resources into fortifying territory then those are resources you are not plowing into expanding. If a certain player or a civilization predictably turtles every time it will be trivial to take more territory than them by naked expanding. From there even if the booming player doesn't have enough territory to win on VPs directly they still have an economy advantage to win on either a monument race or open combat. Boom beats turtle.... Except of course that we all know with 0AD boom is turtle. So you may be correct that the Iberians or some other civ will certainly win. But that's a bigger problem with the game and not a good argument against imagining other options for improvements IMO. I concede the point though. It seems like for this community there are many lower hanging fruits for expressing whatever toxicity they have. And adding multimodal competitive gameplay would further complicate balance complexity and tuning, which is already a sore spot for many potential players. Tring to introduce something like this right now would be an unnecessary and 100% foreseeable train wreck. But anyway, I'm not planning to make a mod, just trying to sustain an interesting hypothetical discussion.
  5. I'd contend there is one good idea in this thread, which is to consider changing the default victory condition away from conquest. Conquest has two problems as a victory condition: The point at which victory becomes impossible for a defeated player occurs well before the victory condition will force their capitulation. Therefore you are essentially relying on the good will of the defeated opponent not to drag out the game and waste everyone's time. That choice feeds trolling and toxicity in the community. (Admittedly 0AD is much better in this respect than most of the Age of Empires games because it has the territory mechanic, which encourages major military defeats to cascade into a complete civilizational collapse more rapidly. But it is still a problem.) Conquest discourages multimodal gameplay. The only thing that matters at the end of the day is who is better at killing enemy units and buildings. That means some aspects of the game that some players might find enjoyable, such as building a diverse, attractive, and defensible city or constructing effective resource extraction and trading operations, don't actually improve their chances of victory unless there is a parity in basic military competence between the contestants. A completely pacifist player will never win a default match of 0AD, even if they have 10X the economy and territory of their opponent. If I were trying to devise an alternative, I'd probably go with a victory-point contest based on territory controlled. Players get victory points for the total amount of territory they own, plus major bonuses for having civilizational monuments like temples and wonders. Eliminate players when they have less than 1/3 the victory points of the next highest ranked player. This game mode would appeal to a variety of playstyles. Boom oriented players could race to carve up the whole map as fast as possible. Eco turtles could plow resources into monuments to keep parity, and perhaps ultimately drive to victory as a miniature cultural powerhouse. Militarists would steal territory. Balance would hang on the territory radius of buildings, and the VP bounty vs price of monuments.
  6. Squishy is kind of Persia's signature flavor in military matters, at least as the Greeks liked to tell it. Although arguably the Persian soldiers were actually just as well or slightly better armored than was the norm at the time, it's just that the Greeks were extreme outliers by wearing insanely protective kit. Regardless, if you want to represent that idea in game I think the trick is to make Persian units tanky per cost but squishy per individual. For instance suppose you dropped the shield bearer's cost from 50 Food 50 wood to 50 food 10 wood. The trick is then to balance that against the economic windfall they would get from cheap CS.
  7. Huh... So they do! Points for consistency then. It seems to be a new feature since the last time I looked heavily into unit stats. I'll try to avoid making such authoritative claims in the future unless I fact check them first.
  8. An alternate take: since in the case of towers we are explicitly simulating the added elevation of the projectile release point for the range calculation, why aren't we doing the same for other units? In 0 AD's screwy size scaling humans are something like 4-5 meters tall! That means any projectile thrown or shot from an bow should have an elevation bonus of at least +3 m, horse archers should be around +6 m, and elephant archers should probably get something like +10 m! But no, for these units the elevation advantage is baked into their baseline range (last I checked) or else ignored entirely. Can we at least be consistent?
  9. I think the point is, if towers always have a +13 elevation bonus on top of whatever they get from terrain, why not just bake that into their default range? It changes absolutely nothing about the game balance, but it makes life easier for data miners and makes the stat card more accurate at a glance to the thing people actually care about.
  10. This mod seems like a good starting point for addressing this longstanding issue, and I hope the community will give it a thorough testing. Personally (and without having tested it) I think it could probably be weighted even more heavily towards buffing melee, but that's just a baseless gut feeling (which others might call a prejudice). Specifically I think the most historically grounded representation of the melee infantry would be to give them both insanely good armor, and equal or superior DPS, compared to the ranged infantry. Read what's below to see my reasoning. As to how things ought to look: I agree with @chrstgtr that the time tested solution to this exact problem, used by almost every other RTS on the market, is to always make melee units faster than their counterpart ranged units. It works on a mechanical level in a way nothing else under discussion can so it's an appealing fix. This we must grant as axiomatic. The problem is this conventional solution butts up against the actual historical record just as hard as the current ranged-unit dominated meta. The melee units under discussion represent heavy infantry and the ranged units represent light infantry. Heavy infantry are NEVER going to be faster than light infantry in any pre-industrial context because of simple physics. F=MA, and heavy infantry will always be carrying much more M for roughly the same amount of F generated by their muscles. My understanding (though perhaps others feel differently) is that the weird way this tended to work out in history was melee and ranged actually had little direct strategic effect on each other most of the time. Ranged (ie light) infantry were agile enough to evade any direct confrontation with heavy infantry that they did not want. Meanwhile heavy infantry armor was so protective that ranged weapons actually inflicted no meaningful casualties to them on the time scale of melee combat. Of course if the heavy infantry stood around getting peppered for hours (like if the ranged units are protected behind fortifications, or were using hit and run tactics on an open field) that is an entirely different matter... and one we can simulate. Thus the role of ranged infantry then was a) to annoy the heavies when they could do so safely b) kill other ranged infantry that cavalry could not safely engage c) zone away enemy cavalry (especially the ranged sort) that might be trying to flank around friendly heavies without joining into melee range. Heavy infantry's role was to be pretty much the only cost effective DPS source against cohesive enemy heavies during pitched battle. They were also unmatched when the enemy could be forced to fight, as if they were protecting a town or some such. A lot of the way light infantry or cavalry actually went about decisively beating a heavy infantry force was about disrupting logistics or morale rather than causing direct casualties. Unfortunately that is hard to simulate. If this interpretation of ancient combined arms were brought to 0AD it would admittedly look really weird. A lot of battles would be just lines of heavy infantry duking it out, this is true. Ranged units would only be used in a few very specific situations: when protected by fortifications, when supporting a melee fight in a very tight choke, or for conducting or countering harassing actions in no-man's land when no enemy cavalry are present.
  11. From experience: a 1 to1 HP to DPS tradeoff is not going to work out how you want. The most important decider for how much damage a melee unit can do vs a range unit is not actually its DPS, but how much time it spends in attack range, which is determined by speed and effective HP. Consider that -10% HP on a unit that spends 80% of a battle walking to the enemy and 20% attacking is not a 10% reduction to damage dealt. It's -50%, as the unit is now only gets to spend 10% of its nominal lifetime on target. If you really want to test this, first you should try just doubling Melee infantry DPS. See how much that changes up the dynamics. If it is too much, then you can scale it back or look at some compensatory nerfs, but I think you will be shocked just how little difference it makes. Edit: and if the goal is to have gameplay that actually reflects ancient warfare--with 70+% of the fighting strength composed of heavy (melee) infantry--I think you will need to go much, much further with the melee inf buffs. I'd imagine somewhere in the neighborhood 2X DPS and 4X HP would do it.
  12. Create new variant XML files for each new animation in ...\art\variants\biped and ...\art\variants\quadraped for infantry and cavalry respectively. The actual animation sequences should be copied from existing sword swinging and sling throwing variants. That will save you from needing to make any new animations with Blender. You might need to create a few extra variants for each action to accommodate units with differ sized shields. Add the proper new <variant> tags for each new action to ALL the actor XML file... FOR EVERY SINGLE UNIT IN THE GAME!!! Add code to the Component files (...\simulation\components) for UnitAI.js, Attack.js, (plus all the other combat components that interact with them) to allow units to know when and how to use their new attacks, and what to do when hit by them. Add new attributes to the unit-template XML files to set the speed and damage for the new attacks according to the syntax you set up in the Component files. I'm probably forgetting something, but that's what I remember from last time I looked at doing something similar. Needless to say it is a tremendous amount of work, and unless you are actually a god-tier coder you should recruit help if you are dedicated to seeing this idea realized. Don't try to do it all on your own. It will take ages, and there is a good chance the next update could wreck all of your work before you even release it. Work smart by communicating with the main devs, sharing the burden with collaborators, using version control software for everything, and pacing yourself. This will protect your work and mental health in the long run. Other than Hyrule Conquest and maybe that one Pony mod, I don't think anyone else has ever attempted a renovation of this scale in the last 10 years. But it can be done if you are smart, persuasive, and committed to seeing your vision through. Good luck and best wishes!
  13. Exactly, the West (past, present, academic, and lay) absolutely has its own closet overflowing with skeletons where misrepresenting historical evidence is concerned. But that can't mean everybody gets a free pass to keep doing the same. It means we all need to be more critical about how we source and interpret our history. I admit I used this opportunity to rib AIEND for their country's instrumentalist attitude to these matters, and that disrespect deserves some calling out. However, I can't apologize for trying to point out a cognitive bias in others when it contributes to erroneous reasoning. Where the situation reversed, I would appreciate someone else pointing out a potential cause of my mistakes even if it temporarily hurt my ego. I think that is the only realistic way to deal with these things, and anyone who can't take the heat of having their biases examined should be ready to occasionally take a break from the kitchen.
  14. Chinese textbooks are the one infallible authority on any question of historical truth. /s Snark aside, there is a kernel of truth here that any absolute statement about the gear and tactics of an ancient military unit that operated over hundreds of years is likely to have counter examples. In early times these were people acting as military emissaries of a distinct ethnic group , and later an evolving military company shaped by the traditions of those forbearers as well as the organizational and operational requirements of their own circumstances. They were not inanimate weapons systems, like a particular model of rifle or tank. They could and would change their gear and tactics to keep up with changing times and situations. That said, in a game like this there needs to be some some sort of typical representation for a special unit like this that is functionally distinct from other units. We can quibble about their precise representation, but I think the choice to draw them as elite medium-to-light-ish melee infantry is representative of their most celebrated exploits. (As attested in the accounts above.)
  15. Gameplay wise, what differentiates corrals from farms? I've never given them much thought personally, but presumably the player gets something like 2-10 times more resource generation per unit time, and a hugely reduced territory footprint, and in exchange for much more micromanagement. The first thing to ask is whether corral management represents a distinctly fun skill challenge. Is it engaging? Does it reward the player's attention in a different way from farming? Secondly does it create a distinct set of strategic considerations? Like could provide players with reduced territory footprint with a comeback mechanic? A way to get food from land that is unavailable for farming (because of terrain, or auras, or threat of attack)? Maybe it makes cavalry more cost effective by allowing them to participate in food generation? If the answer to both these questions is no, the feature should be cut. Otherwise any buffs should ideally be concentrated on intensifying these differentiators.
  16. Is there a link on the wiki? I've looked a bit for that sort of info for 0 AD (because I would like to have larger projectile models so I can tell who is shooting who) and I've not found anything.
  17. I think this misses the point of the complaint. The ability to rescale things DOES already exist in the 3D modeling software, and that is great for those who already know how to use these programs and want all that extra flexibility. But for anyone who doesn't know how to use Blender it is a huge impediment to their ability to mod the game. There are a bunch of potential applications where the ability to easily grow or shrink game models without changing any animations would be helpful: like larger projectiles so that its actually possible to see them in flight. Or ships and units that actually match the dimensions of their collision footprints. Or an AoE style tiny trees mod. These become huge projects if every model must be rescaled and exported from source, but would be almost trivial if there was just a number in an xml that could be adjusted in on the fly with a text editor.
  18. You're headed the right direction. The biggest problem with the source image is that the facture pattern gives away the scale (very small). Sharp edges like that melt or even sublimate away really quickly. So stable, geological-scale ice that has been around for a while rarely presents such abrupt, jagged reflection edges. I think you might experiment with applying a bit of blur to give the surface a more smoothed-away look. I'd also suggest trying to add a few little traces of snow drifts. Like, when it is very cold for a long time, snow particles blown by the wind get snagged in little cracks in a standing ice sheet, and then more snow gets hung up on those particles forming little dune-like drifts that follow the course of the original crack. Don't overdo it, but a few spots here and there might help sell the scale of the ice sheet more. Those are my suggestions, but no guarantees they are any good. I'm not an artist of any sort. Just a yearly admirer of winter landscapes.
  19. That is a fair counterpoint. There might be some room to debate whether those skirmishes (if they are decisive) are actually so small that LOLN breaks down, or if they are just protracted exchanges still involving hundreds of projectiles but now spread out over a few minutes instead of 30-60 seconds. But I admit I lack the experience base to evaluate that question. Also I do agree with the concern that slower projectiles could throw of the balance in a major way, as it opens up a new avenue for systematic counter-play that could change the balance of tactics in unpredictable ways. (Dancing!) Also, with fewer, chunkier projectiles there could be problems with overkill weirdness. Like if previously it takes 10 arrows to kill a unit and 50% of the last arrow is overkill, that means 5% of the unit's DPS is wasted. Where as if it only takes 2 arrows with 50% overkill on the last shot now you are losing 25% of your theoretical DPS. Because of issues like this I would actually agree that any changes to attack rates should be lumped in with a general rebalancing of ranged vs melee troops. No sense doing the same work twice. (It helps that a melee buff is sorely needed if 0 AD is to have any pretenses of being historical.)
  20. Unlikely it would cause any noticeable difference with respect to <Accuracy>. The Law of Large Numbers applies because, even with a reduced rate-of-fire, you are still flinging hundreds of projectiles over the course of a typical battle (most of which hit something). That is more than a large enough sample size to push the tendency very close to the theoretical expectation. In intuitive terms, yes misses would be a bigger lost opportunity, but the projectiles that do hit balance it out by having a proportionately larger punch that almost exactly makes up for the damage that is lost. Plus, I don't think the threshold of "game breaking chaos" is nearly as sensitive as this objection makes it out to be. There are a bunch of really unpredictable factors in 0 AD's combat already: e.g. not being able to tell how many units are in an enemy formation due to the obscene model overlap, or the way that promotions can randomly change a few lucky units' stats on the fly. Despite this, I don't hear anyone complaining that the combat gameplay is unskillful.
  21. Every aspect of combat in 0 AD (and most other games like it) is tremendously abstracted. If you hypothetically wanted to simulate the process of attacking buildings in more detail I'd vote to go all out: with actual fire propagation spreading to other nearby buildings, attackers adding more torches to make it burn faster but not actually doing damage, and defenders "repairing" the building by throwing water on.
  22. This is the kind of thing I'd like to be able to help with, however I've currently got other obligations that require my full attention. It would be really irresponsible for me to get back into 0 AD right now. Instead, let me just try to assuage you to consider giving it a shot yourself. Modifying unit stats in 0 AD is trivially easy. The hardest part is probably just setting up a new mod, but even that is pretty straight forward.
  23. While I remain an advocate of big structural changes for 0 AD, at this juncture I think restraint would be wise for this mod. With the brand new alpha no one knows yet what the current crop of balance problems will be (even if we have some guesses). Rushing into a set of features that don't reflect the current balance zeitgeist, or worse create entirely new problems on top of the endogenous deficiencies, would risk discrediting the project. Plus there might be governance problems in these early days that would be easier to sort out before real balance politics begins. Better to wait a month or so to see how things shake out with alpha 26. Maybe start collecting proposals, drafting design documents, and organizing in the mean time.
  24. I just meant that alre's comment that (to paraphrase) "back in alpha 24 it was important to stream reinforcements" would seem to imply that in alpha 25 (and maybe the in development alpha 26) it is no longer vital to stream reinforcements like it used to be. I haven't kept up with the evolving 0 AD meta during alpha 25 unfortunately--haven't had the time--so I too was kind of hoping they would elaborate. Do they mean that the technique was more popular back then, or that some of the more prominent players made very good use of the technique at the time, or that alre personally has just not played that way a lot or maybe played many matches in general since a24? Certainly nothing about the game appears to have changed that would alter the foundations of gameplay so profoundly! The idea that continuous reinforcement is suddenly no longer required to sustain a push or was a special property of a specific alpha is very odd, I agree.
  25. That's not quite the same thing as friction of war; actually it's kind of the opposite. Although it is definitely a good thing to incentivize streaming reinforcements, and the covert implication that this might no longer be the case is worrisome. Friction is basically the idea that the deeper into enemy territory you get, the less effective your military assets become. When this is the case you don't actually want to follow up your attack with a stream of reinforcements to push deeper into enemy territory. You actually want to pull the attack group back and link up with the reinforcements in the previous no-man's-land so together they can consolidate the gains by either fortifying the newly claimed territory or attacking on a newly exposed flank. To really appreciate the distinction, look at the difference in tactics between Starcraft Brood War (a high friction game) and Starcraft 2 (a much lower friction game). SC2 features a lot more all-in deathball-style battles and decapitation base trades.
×
×
  • Create New...