Jump to content

ChronA

Community Members
  • Posts

    215
  • Joined

  • Last visited

  • Days Won

    8

Everything posted by ChronA

  1. Sorry to anyone itching to examine my code for multi-weapon units and ammo. Being a hopeless perfectionist, I've been obsessing over what appeared to be minor glitches and error notifications associated with my changes that would pop up once in a blue moon. Alas, some of them turned out to be not so minor after all. In particular, there seems to be a nasty interaction between the weapon switching in code and the ammo counting code. (Animations sometimes get desynced from the simulation and units forget how long weapon cooldowns and ammo reload cycles are supposed to be. Put them together and you have units occasionally vomiting out dozens of invisible projectiles like a machine gun. I didn't notice until in one very large test battle a lone surviving Hastatus mowed down a dozen enemies with what appeared to be three successive pila throws.) That's just the fun of game development I guess... always a learning experience. I've made some initial improvements to try to fix it, but the problem appears to be somewhat intrinsic to the way I clumsily shoehorned my variables for tracking ammo and attack cycling into the preexisting architecture of the INDIVIDUAL.COMBAT.ATTACKING state. I basically need to go back to the drawing board with the attack cycling code. It's going to take a lot of work for me to fix, and right now I don't have the time. But I don't want anyone to feel short changed, so tomorrow I'll work getting the repo semi-presentable and post the link here. I wouldn't recommend anyone try to build off my work just yet, but maybe it will provide some inspiration for what is possible.
  2. I can't take on another modding project right now. But in another month or three I might be able to help, assuming all you need is an extra hand to edit the json files. If you are looking for someone to exercise balance judgement for the values of those "other" resources, you will probably want someone else. I haven't played enough DE, or even just vanilla 0AD (competitively or otherwise) to know what I'm doing. But, please keep me in mind if you have any other little tasks like this. As someone who loves tinkering in the guts of RTSs (more than actually playing them really), I admire your work on DE. I'd like to lend a hand if I can. (As someone who tried to make a total conversion mod of a similar scale on my own before, I know that help is needed. It's just a shame that fruitful collaboration is often so hard. When they don't try to take over creative control of your project, they'll promise the moon and then disappear for months without a scrap of the work they promised. I'm trying to be more proactive about not falling into the latter category.)
  3. I agree in principle. I think the problem is figuring out how to make it work on the simulation side (**and not be cheesable). Thanks; and that is a very fair criticism. Anyway, I wasn't really trying to suggest my scheme outlined above would be an ideal or even a good design for a game. More-so, I was just trying to demonstrate the possibility of a more historically authentic design, while still paying homage to the RTS aesthetics of diverse units and pronounced counters. (If the objective is just to simulate the actually strategy of ancient warfare with as few moving parts as possible, I suspect all you actually need is heavy melee infantry, slightly ranged light infantry, and melee cavalry) I think you are spot-on with respect to elite slingers and archers, who were actually expected to do serious war fighting. (And there were definitely some armies who employed that doctrine.) However I think it is a mistake to believe the purpose of skimishers was (or is... both in the real world, and in strategy games) always to inflict major casualties. Rather it's the threat that sustained bombardment could eventually produce casualties that mattered. The skirmishers present enemy infantry with a choice: either come fight, or go away, or mill around over there while we very slowly plink you to death. For that job, a bunch of farmers--with staff slings they made from sticks and string an hour ago, and who could only hit the broad side of a barn with one shot out of a hundred--will get it done just fine, and there's no beating them for speed of recruitment or equipment cost. (Just don't expect them to stick around if the enemy charges or is able to shoot back.)
  4. Aw! Thanks! By the way, I was quite successful with my bug hunting today. The mod is no longer spitting out error messages every 2 seconds whenever ammo-using units get into combat. Also, the CPU performance cost of all the new new target selection logic I added seems to be pretty mild, which is something I was worried about. So, tomorrow I'll be double checking if there are any new bugs associated with hunting and gathering and building. And if that checks out, I'll make the Git repo public and start writing a forum post pointing you all too it!
  5. Yeah, I'm having a lot of fun experimenting with balance while I hunt for bugs. I'm finding some surprising thing things just by tweaking a few parameters. To bring this back to the very astute original topic, what exactly would a historically authentic counter network for 0AD look like? (Sorry for wall of text. I only share in the hopes other find my idle musings pleasantly provocative.) I think OP is correct that a compact formation of infantry, whether spearmen or "swordsmen" or even ranged units, will be effectively invulnerable to cavalry attack or any other melee force smaller than itself. And unless they are very lightly armored, non-artillery ranged bombardment is unlikely to do more than superficial damage either (even if skirmishers can kite heavy infantry forever). In either case, I think the tactical utility of cavalry and ranged skirmishers vs the heavy infantry deathball in open terrain is to force an engagement, by chip damage or threat of encirclement. Or, in favorable terrain like a choke point, a dense forest, or a bog, a smaller force of heavy infantry supported by ranged skirmishers can actually defeat larger, pure heavy infantry formations by a strategy of defeat in detail. So the counters to heavy infantry are: 1) bigger group of heavy infantry 2) artillery bombardment (late game only) 3) mixed melee and ranged infantry with favorable terrain. That in itself puts some pretty stringent limits on your game design. Heavy infantry either need to to be tech-blocked or prohibitively expensive until late game, or you need maps with lots of defensible terrain if you want the combat to be at all interesting. I also think it is intriguing that, from what I've seen (and I may be very wrong), Greek and Roman and even many medieval sources often don't make that much distinction between different variants of ranged skirmisher or even light melee infantry. That suggests there were no big differences between them for the job they were meant to do. We know there are some differences. Like babosu said, spear throwers have the fastest rate of fire, and they usually have a small shield, which would give a lot of protection in hand-to-hand combat (ie. high hack armor). On the other hand, they have the shortest range and the least amount of ammo. > Slingers were agreed by ancient sources to have the longest range, were the easiest to train and equip (low cost and build time), and had effectively unlimited ammo. However, (with the exception of professional slingers) I think we can surmise that slingers had an inferior baseline of accuracy compared to javelinists and archers. Also, before factoring in interactions with armor, each individual strike from a sling stone may have been slightly less likely to be lethal or debilitating than a hit from a javelin or arrow (less damage); but this effect, if it existed at all, was probably so slight that you could probably ignore it and give all 3 weapons the same damage. > Lastly, archers (I think) had the lowest rate of attack by a significant margin. In the real world you can't loose arrows from a war bow as fast as you can nock them... your arms would fall off. However, bows have decent range, and probably had better baseline accuracy at their preferred engagement distance than slings. I feel like I've also read somewhere that bows were considered an anti-cavalry weapon in some parts of the ancient world, and my tests seem to back that up. Effectiveness of range weapons against Cav seems to scale most strongly with accuracy and reaction speed (range/prepare time). Archers have a noticeable edge over slings and javelins against Cav in most of my experiments. Apparently none of that was of much consequence to the Greeks or Romans. But a game with no variety in its ranged units would be boring. So if you need to map distinctive roles onto them, I think the most historically accurate would be having javelinists as the anti-melee-infantry version. Slingers work as the more anti-ranged-specialized and long distance sustained fire-support variety. And archers might be the jacks-of-all-trades + hit-and-run/close-support specialist with an interesting anti-cavalry flavor.... One other more thing that might be worth remembering too, is that the republican Romans and probably others favored their lighter troops for capturing buildings. It makes sense that they would be better equipped for individual CQC in tight environments, compared to heavy infantry optimized for group fighting. So maybe javelinists and light "swordsmen" can be distinguished in their gameplay with bonuses to their capture attack. So to answer my own question about a historically authentic counter network for 0AD... It might look like: (Light Infantry) Light Spearmen (fast melee infantry with a spear, little armor, possibly a small shield): Counters melee cavalry, light swordsmen. Countered by ranged units, towers/fortifications, medium and heavy infantry. Light Swordsmen (fast melee infantry with a sword, little armor, usually a small shield, & a capture bonus): Counters buildings. Countered by ranged units, cavalry, light spearmen, medium and heavy infantry, heavy fortifications. Javelin Skirmishers (fast ranged infantry with javelins, little armor, usually a small shield, & a capture bonus): Counters buildings, light & medium melee infantry, sometimes ranged cavalry. Countered by slingers, archers, cavalry, heavy infantry, heavy fortifications. Slingers (fast ranged infantry with a sling, little armor): Counters light melee infantry, javelin skirmishers, archers, sometimes ranged cavalry. Countered by heavy infantry, melee cavalry, buildings. Archers (fast ranged infantry with a bow, little armor): Counters light melee infantry, javelin skirmishers, sometimes cavalry. Countered by slingers, heavy infantry, buildings. (Medium Infantry) Medium Spearmen (melee infantry with a spear, a large shield, sometimes partial armor): Counters melee cavalry, light & medium swordsmen. Countered by javelin skirmishers, heavy infantry, heavy fortifications. Medium Swordsmen (melee infantry with a sword, a large shield, sometimes partial armor, & a capture bonus): Counters buildings/fortifications. Countered by javelin skirmishers, cavalry, heavy infantry. Pikemen (melee infantry with a pike, sometimes a small shield or partial armor): Counters melee cavalry, light & medium melee infantry. Countered by ranged units, heavy infantry, towers/fortifications. Sword Skirmishers (melee & ranged infantry with javelins, a sword, a large shield, sometimes partial armor, & a capture bonus): Counters buildings/fortifications, light & medium melee infantry, sometimes cavalry. Countered by javelin skirmishers (by cost), heavy infantry. Heavy Slingers (melee & ranged infantry with a sling, a sword, full armor or partial armor and a large shield, & a capture bonus): Counters light infantry, sometimes cavalry. Countered by medium melee infantry, heavy infantry. Heavy Archers (ranged infantry with a bow, full armor): Counters light infantry, sometimes cavalry. Countered by medium melee infantry, heavy infantry, buildings. (Heavy Infantry) >> have no reliable counter-play until late game, so they are not affordable/available in numbers until late game. Heavy Spearmen (melee infantry with a spear, a large shield, & full armor): Counters cavalry, light & medium infantry. Countered by heavy pikemen, artillery, heavy fortifications. Heavy Pikemen (melee infantry with a pike, full armor and usually a small shield): Counters cavalry, any melee infantry. Countered by heavy skirmishers, massed ranged infantry, artillery, heavy fortifications. Heavy Skirmishers (melee & ranged infantry with a variety of weapons, full armor, & usually a large shield): Counters any light & medium infantry, heavy pikemen, usually cavalry. Countered by heavy spearmen, artillery.
  6. As of yesterday, I have a mod that adds it. I gave ranged units an ammo counter, initialized in their template, and made it so if they run out of ammo but have a melee weapon defined (or if their target gets within their minimum range) they will switch to melee and charge. The ammo count gets reset if they spend enough time out of combat, allowing you to retreat and rearm. I'm still debugging some things and the animations transitions are a little wonky sometimes, but it should be ready to share in not too long (few more weekends maybe). Honestly, I'm surprised no one else has ever tried this before. Other than accounting for interrupted attacks it was not hard to code. Took me like two days, and I barely know any Java. This community has weird development priorities IMO. The first time watching my maniples of Hastati throw their 2 pila and charge with gladius in hand was way more gratifying than adding another civ to the pile...
  7. Precisely. So what I was trying to say is that I think (based on the scale of the units) the strength of gravity in 0AD ought to be about 20 units/s^2, in order to better match our local gravity of 9.81 m/s^2. I'm very glad to hear that the core development team concur and the issue will be improved in the next version. 40.0 units/s^2 sounds fine to me even if it is unrealistically strong for the size of the units. Exaggeration is key to good animation after all.
  8. I think you need to do a quick experiment as a sanity check (I know I did). Place two non allied Mauryan spear infantry. Observe that their spears are about the same height as them (2 meters). Now have them fight, and observe that their spears only just touch each other with the butt conveniently right near the center of the attacking model. Thus the separation of the two units must be 2 meters (call it 2.5 or even 3 since the target's body has some thickness and he is leaning forward). Now check the xml and you will find that the spearman's range is set at 4.5 game meters. What happened to the extra 1.5 to 2 meters? Also observe that the footprint of the spearman is is set as a circle with radius 1.5 meters, meaning it should have a diameter of 3 meters. However the spearman is visibly much taller than the circle is wide, meaning his height is at least 3 meters. I assumed this was a deliberate decision on the part of the dev team. If it is not then you have some major revisions to do. (And please don't tell me melee and footprints use different distance units from range attacks, because that would be insanity and I would need to uninstall 0AD on principle.)
  9. The use of 9.81 for <gravity> in vanilla Zero AD is inappropriate because the in-game unit-models are depicted at about a 2:1 scale. (I.e. human units are drawn as being approximately 4 meters tall in-game!) Therefore, a gravitational acceleration of 9.81 m/s^2 at 2:1 scale works out as only 4.905 m/s^s relative to the human characters on screen. A more appropriate quantity would be 19.62, but since the scaling factor is just a very imprecise approximation anyway (personally) I would just put it at a nice round 20.0.
  10. Thanks very much for the warm welcomes everyone. It is disappointing to hear that development is currently blocked by legalities. That must be very frustrating, but I trust it will be resolved in due course. In the mean time then I will focus on pulling my personal modding efforts into a cohesive package suitable for public scrutiny. If you knowledgeable people would like to suggest any specific aspects of the design on which I would do well to focus my efforts, I would be much obliged. Otherwise, based on a preliminary search of these forums I’d speculate that area of deficiency that is most undeserved by the current modding efforts is game-flow experimentation. (I gather some people are advocating ditching city phases in favor of more organic progression.) That should be something I can easily experiment in with just technology scripts and unit templates. Therefore that's what I’ll focus on unless anyone has a better suggestion. And I’ll definitely stop by the IRC channel when I get the chance. Cheers.
  11. I’ve followed 0 AD for several years now and I am very impressed with how the game is developing, especially with the last few alpha updates. It is really evolving into a very special game in the same spirit as Age of Empires. I would like to help it get there a little faster if that is possible. Unfortunately I’m not an experienced or formally trained programmer or computer scientist by any description. However I am one of those people who likes taking a peak at how their games work, and messing with gameplay to suit my personal tastes where possible. Recently (i.e. in the last year or so) I’ve started fiddling with 0 AD’s modding system, focusing mostly on unit templates, technologies, and auras. It’s wonderfully user friendly and I’m having a lot of fun with it. It seems only fitting then that I should try to give back to this wonderful project. I might need a bit of introductory help with whatever version control system 0 AD’s development is using, and anything to do with Java or C++ is probably a bit beyond my depth. However, surely there are some things someone less skill could help with. Some things off the top of my head I might be able to assist in: 1. Writing/editing unit tooltips or histories (a task too tedious for those with better things to do, I imagine). 2. Fine tuning ranged-attack ballistic parameters. The game is using a gravitational acceleration of 9.81 m/s^2 to match real world physics. However, 0 AD uses exaggerated spacial scaling for gameplay purposes, meaning that real world parameters will look out of place. In my own experiments, setting gravitational acceleration to 50.0 m/s^2 with a projectile speed of 40.0 m/s produced very attractive ballistic arcs for most units. 3. Customizing fauna. I get the feeling there’s still some work to be done with the AI and animations for hunt-able animals, which is probably beyond my depth, but I could still help out with adjusting some of the unit parameters so they better reflect their real world inspirations. 4. Balance experiments. Granted it would be rather foolhardy to trust something so important to an unproven newcomer, but this is something I have some experience in. I was heavily involved in theory crafting during the development and post-release balance patching of the indie time travel RTS Achron. It taught me a lot about the science of unit scaling and game flow. Perhaps I could offer a fresh perspective.
×
×
  • Create New...