Jump to content


WFG Retired
  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Jubalbarca

  1. I'm away over the weekend; I suspect I won't get the Iberian support fully in until mid-late next week. That's my next task, anyhow, then after that building placement (which will be a far thornier issue).
  2. In the next couple days I'll start getting JuBot working with the Iberians.
  3. I dropped out to some extent after Warband came out; porting SR would have been too much work given that I'm doing six AS Levels this year. In fact I've pretty much switched to doing AI programming at the moment, though I do some RTW stuff on occasion.

  4. I dunno, in my opinion graphics don't make a game. I mean, cloth simulation? Wind? All they end up doing is eating memory and preventing people with lower-spec PCs playing what's really a very good game in the making. Most of the best games ever created, IMO, had very poor graphics. Thematic, challenging gameplay, interesting and innovative game mechanics; those are not the things which sell games in the shops, hence why game companies focus on them less than they used to. But they are the things that keep us playing games. If you take TW as an example, compare Empire to Rome for graphics and Empire's streets ahead. But most of Empire's players found the game really quite bland; Rome still has a thriving player base & mod community six years or so after release. In addition, what you have to realise is that in modding and game design skills aren't necessarily transferrable. Some people are specialists in graphics; it'd be a rare programmer who could just down tools from building the graphics engine and suddenly start working on AI scripts. As such, and particularly given that this is a hobby for people rather than a commercial project, I suspect the 0AD team will prefer the challenge of building their own game.
  5. Yeah, I'm the creator of SR (and Warhammer Total War and Narnia Total War for RTW). :)

  6. Yeah, that might be an idea; where do I get the SVN version?
  7. Yup, I reckon I've fixed that now. The issue was that the Civ Centre was given as the point for forces to regroup to; without a Civ Centre, their regrouping target no longer exists. Fingers crossed it should be all fine for next release. As for other updates; - Greeks can get an Epiteichisma - Celts can get a Brythonic Broch - Both sides train a few SUs - A third strategy type, for pure cavalry raids, has been added.
  8. @Pureon: I've gotten to the stage where the Hellenes can train archers and the Celts can train cavalry, but the unit creation system's still based around a fairly simple loop. I can probably get it to build fortresses, but the next step planned is more work on the economic stuff.
  9. Bruno: I think with the towers, as long as the AI has some sort of troop somewhere on the map that can place the foundation the women can do the actual construction (I believe this works for the player in the same way). As for siege stuff, I'm planning to do a bit of econ work then I'll go back and see if I can get it training super units and siege kit. Mythos: No idea about the buildings, I haven't even touched the building creation code... does that happen on all maps?
  10. I've just released the first and very basic public version of my new AI program, called "JuBot". It's basically an improvement on the TestBot scripts, particularly militarily (economics still leave something to be desired, but I'm working on it.) - Troops given at game start will now be sent on the first attack wave instead of sitting around the whole time. - The AI will build some scout towers around its base for defence. - Women are now trained in 2s, so the AI builds up more quickly. - Some men are created in the gathering workforce as well as women. - Slightly improved & more varied military strategy - Defence forces created as well as attackers. - Each force can train 3 troop types, not just 2. Main thread & downloads; http://s9.zetaboards.com/exilian/topic/7271009/1/ Thanks to everyone who's given advice etc so far.
  11. http://s9.zetaboards.com/exilian/topic/7260056/1/ Just to let you all know that I've released 2 more maps; one island map of celts vs greeks, a fairly standard game with a range of terrains, and one really, REALLY freaky map which I just made for the hell of it. (Lime green sun, purple rocks, berry bushes arranged in religious and mathematical symbol forms, etc). Have fun!
  12. This code is intended to train a 10 spearman defense force (the "defenders" role does nothing, it's just there as a placeholder really) as top priority, then cycle round spears then javelins. Depending on a strategy which is chosen at random, it then either counts to ten and sends a raiding force or forty for a full-on assault. Almost needless to say, this does not happen. The defense force is generally larger than it should be, and once it is trained the attack forces are entirely made of javelinmen. It also seems to do a lot more full-scale assaults than probability would dictate. I'm not sure if after it goes onto training javelins it will then go back to training defenders if I kill some, though it should do in theory. Any help much appreciated... var MilitaryAttackManager = Class({ _init: function() { this.targetSquadSize = 20; this.findatype = 1; this.squadTypes = [ "units/{civ}_infantry_spearman_b", "units/{civ}_infantry_javelinist_b", // "units/{civ}_infantry_archer_b", // TODO: should only include this if hele ]; }, /** * Returns the unit type we should begin training. * (Currently this is whatever we have least of.) */ findBestNewUnit: function(gameState) { // Count each type var types = []; for each (var t in this.squadTypes) types.push([t, gameState.countEntitiesAndQueuedWithType(t)]); // Sort by increasing count types.sort(function (a, { return a[1] - b[1]; }); // TODO: we shouldn't return units that we don't have any // buildings capable of training // Let's make this shizz random... var randomiser = Math.floor(Math.random()*types.length); return types[0][0]; }, update: function(gameState, planGroups) { // Pause for a minute before starting any work, to give the economy a chance // to start up if (gameState.getTimeElapsed() < 60*1000) return; Engine.ProfileStart("military update"); // Also train up some defenders var pendingdefense = gameState.getOwnEntitiesWithRole("defenders"); if (pendingdefense.length <= 10){ planGroups.economyPersonnel.addPlan(110, new UnitTrainingPlan(gameState, "units/{civ}_infantry_spearman_b", 5, { "role": "defenders" }) ); } // Continually try training new units, in batches of 5 //planGroups.militaryPersonnel.addPlan(100, // new UnitTrainingPlan(gameState, // this.findBestNewUnit(gameState), 5, { "role": "attack-pending" }) //); //this.chat("Hmm, let's pick a number. I think " + findatype + " sounds good."); if (this.findatype == 1){ planGroups.economyPersonnel.addPlan(100, new UnitTrainingPlan(gameState, "units/{civ}_infantry_spearman_b", 5, { "role": "attack-pending" }) ); this.findatype = 0; } else { planGroups.economyPersonnel.addPlan(100, new UnitTrainingPlan(gameState, "units/{civ}_infantry_javelinist_b", 5, { "role": "attack-pending" }) ); this.findatype = 1; } // Find the units ready to join the attack var pending = gameState.getOwnEntitiesWithRole("attack-pending"); // Variable for impetuousness, so squads vary in size. if (this.killstrat == 1){ this.baserate = 41; } else { this.baserate = 11; } // If we have enough units yet, start the attack if (pending.length >= this.baserate) { // Find the enemy CCs we could attack var targets = gameState.entities.filter(function(ent) { return (ent.isEnemy() && ent.hasClass("CivCentre")); }); // If there's no CCs, attack anything else that's critical if (targets.length == 0) { targets = gameState.entities.filter(function(ent) { return (ent.isEnemy() && ent.hasClass("ConquestCritical")); }); } // If we have a target, move to it if (targets.length) { // Remove the pending role pending.forEach(function(ent) { ent.setMetadata("role", "attack"); }); var target = targets.toEntityArray()[0]; var targetPos = target.position(); // TODO: this should be an attack-move command pending.move(targetPos[0], targetPos[1]); } //Now set whether to do a raid or full attack next time var whatnext = Math.random(); if (whatnext > 0.25){ this.killstrat = 0; } else { this.killstrat = 1; } } Engine.ProfileStop(); }, });
  13. Where are the AI scripts? I'm quite keen to have a tinker, but I'm not sure where to find what I'm meant to be tinkering with. EDIT: Dw, found 'em. Can I use all normal Javascript functions in this? (Say, Math.random and Math.floor for example). Also, the military page seems to be set up to train a mix of javelinists and spear inf. Can anyone tell me why it only makes spearmen in practice?
  14. The adjustable water height could give some interesting ideas for weather effects though - rain effect creating a swollen banked stream and washing out low-lying farms, or a drought similarly opening up new fords for a breif time period?
  15. A fourth map has been added, entitled "From the Mountains to the Sea" Here's a screenie:
  16. Since I'm feeling too knackered to repost all the stuff about this, I'll just say that these are my first three maps. They're not great, but it's a start - I've thought more about gameplay than eyecandy in most cases. The titles of the 3 are Epidaurum, Rebels of Ipos, and Migration (the first 2 are greek-themed, Migration is more celt based). All available here (my website recently opened a 0AD section, so I feel slightly obliged to direct all you good people there): http://s9.zetaboards.com/exilian/topic/7260056/1/
  17. Have you thought about the idea of capturing buildings? It does seem a waste if I'm running into an enemy town to have to stab all their women to death and burn everything down when a more realistic option would be simply to take it all over and give myself a new base. So I suggest a feature which lets me take their homes and steal their wimmens. Maybe only within a faction, I dunno. I came up with the idea making a scenario based around a city-state in a civil war, and thinking how weird it was that (playing as the rebels) I'd have to throw the city's walls down, detroy the fortress, and the houses, and the fleet, and kill the entire populace THEN rebuild the whole thing.
  18. Ok, I've made some new maps. Where do I put them in order to be able to use them ingame?
  19. I don't really know anything about what systems you're using for the back end of this, but if it's a fairly normal scripting system of some sort I'd be happy to play around with working on the AI a bit. I can't pledge much time, but it's the sort of thing I could reasonably have a go at at some point if it'd be a help at all (my previous scripting experience is modding RTW and M&B, plus a ton of JavaScript/AJAX/PHP work).
  20. Just played with the alpha a bit - it's pretty good, though the big and obvious lack is an AI of any sort. Does anyone know how the AI's coming along?
  21. Hullo, recently DL'd the alpha for 0 AD when someone posted it on the Exilian (which I'm admin of, small gaming/programming/modding forum). As to who I am, I'm British, doing A Levels (History, Maths, Further Maths, Physics, and Chem), modder of Mount&Blade and Rome: Total War, also a fairly keen web developer & scripter. Can't wait for this game to have an AI (or for that matter to work out how to get on multiplayer).
  • Create New...