Jump to content
Official BF Editor Forums


  • Posts

  • Joined

  • Last visited

Everything posted by [bfsp]korben_dallas

  1. free plug from the schoeldgenmeister!
  2. DR/Kyron, Are the cloned aircraft just new Con & Tweak files? Or did you copy/rename the meshes, textures, etc? Edit: What does the shadow look like over water? deepwater?
  3. Could this be adapted to fix the issue where no matter where a player enters the vehicle, they always enter PCO position one?
  4. I've spoken to a number of people in the BF2 mod community, and it seems this is alway a topic of interest. The Shattered Faith mod was hyped advertised to unbelieveable proportions, though I don't recall ever seeing any in-game footage. I've heard some theories and rumors, but instead of repeating them here, I respectfully would like the real story. If there are any insiders (First Strike?) who can share, it would be appreciated. P.S. BF2142 is not an excuse, there are plenty of BF2 mods (too many in fact!) still alive today.
  5. DICE is kinda like that hot (Swedish!) chick you see every day at school or work or wherever, and when you finally get the nerve up to try to carry a lengthy conversation with her, she says "Um.. do I know you? Oh, are you that xyz guy who.." - [cell phone rings, she answers it, and walks off]. I'd be less worried that DICE is ignoring us and more worried that there is anyone left there who knows a modding community even exists. An empty cubicle provides as few answers as a poor community manager but much harder to be angry at.. Amen about being loyal customers. DICE does (did?) great work, would be nice to have some sort of dialog with them about it that doesn't mention Stats or Units Sold.
  6. Can Python manipulate the comrose hud text dynamically? And then perform an action based on that dynamic element? For example, populate comrose buttons with CP names of the map you're playing, and then by clicking on one of the buttons, make a trivial change to that CP? P.S. If what Surge says is true, then I'd side with him. DevTeam members should never divulge trade secrets, until the mod is released or offically declared dead.
  7. I paid for and own BF1942, Road to Rome, BFV, and BF2. I would like to thank DICE for all that great entertainment value. Now.. No BF2142 Editor = no more Battlefield purchases for me, ever. I will only be purchasing games which have released editing tools.
  8. Python gamemode request: Escort Objective: * Escort team must move and protect a vehicle, while using it to capture flags in a linear order. Attacking team must destroy the escorted vehicle before it captures the last flag. Elements: * Round is timed, and preferably the time limit is not hard coded in the python. If time expires, the attacking team wins. * If escort team escorts vehicle and captures all flags, they win once the last flag is captured, and the round ends. * Flags can only be captured in linear order by either team. Escort team must have the escorted vehicle within the CP radius to capture the flag. Attacking team capture flags normal way, but linearly (opposite direction of escort team).
  9. Greetings all, A few months ago, I was afforded the opportunity to pick the brain of the man behind the AI we love so much. This is an in-depth look into the mechanisms and challenges of creating game AI for the Battlefield series. link to article hosted on PlanetBattlefield Battlefield SinglePlayer Q. & A. with DICE – Tobias Karlsson October 31, 2006 Please introduce yourself and give a brief overview of your work in Battlefield titles. My name is Tobias Karlsson. After I had completed my M.Sc. in Computer Science I ended up at DICE more, or less by chance. At DICE, I started by designing the AI for Battlefield 1942, and then implemented it together with two colleagues. I then moved on to work on the AI for Battlefield 1942: The Road to Rome and I was the lead programmer, as well as the AI programmer on Battlefield 1942: Secret Weapons of WWII. I then went on to be the lead AI programmer for Battlefield 2, and for the start of Battlefield: Bad Company. After that I’ve helped finish Battlefield 2142 and now I’m architecting the AI for an undisclosed title. There are many different types of artificial intelligent systems: expert systems, rule/case based programming, heuristics, neural networks, fuzzy systems, hybrid systems, genetic and evolutionary algorithms, etc. Why was a Reactive AI system chosen for Battlefield, and what similarities and differences does Battlefield AI have with other game or non-game artificial intelligent systems? It is common to divide different AI solutions into two general categories, reactive and planning (also known as proactive) systems. The different approaches to AI mentioned above are either reactive or proactive (though some systems may have parts that fit both categories). Reactive systems react to perceived changes in their environment and choose actions that either are getting them closer or that are preserving their goal state. Proactive systems try to create a plan for reaching their goal states first, and then use this plan to select the corresponding actions to execute. The problem with planning systems is that if circumstances change enough, the plan will be invalid. A plan necessarily contains some predictions about the future, and if it turns out that these predictions turns out to be inaccurate, the plan becomes invalid. In an environment such as the one found in the Battlefield games, the world is very hard to predict, especially for any length of time. Also, the world is very complex, which means that either the predictions need to be very short term, or risk missing vital information. Also, as a general rule, the reactive systems are much less CPU intensive. Given this, choosing a reactive approach came pretty natural. The BF game AI is mostly reactive, but there are parts of the system that aren’t or are a mix of reactive and planning systems. The pathfinding is a classic planning system, using the ever popular A*-algorithm. The strategic AI (or SAI for short) is purely reactive, and has no sense of the future (which may sound like a contradiction for an AI dealing with strategies). The Battlefield AI is based on an architecture called supersumption. I don’t know how rare this is, but game AI is frequently based on Finite State Machines (FSMs for short). In my experience, this is an architecture that is efficient for small systems, but soon becomes difficult to expand and maintain. Supersumption is an architecture that is used in the MIT synthetic character group, but these systems aims at much more complex, and docile AI than that of Battlefield. Battlefield AI consists of a number of components and layers: bots, behaviors and weights, knowledge, AI templates, sensing, pathfinding, SAI, strategic areas, strategies, etc. In which of these (and why) does the BF AI developer spend the majority of his/her time during development? During testing? All systems that you mention have taken a considerable amount of time to develop, but the most time intensive tasks are the low level systems (like basic steering of vehicles), and the behaviors (including their short term plans). How does a bot see the Battlefield? This is a difficult question to answer. The bots’ senses are quite different from ours. To begin with, the sensing the bots is aimed to introduce uncertainty, rather than the opposite that is true for biological systems. In the game, we could always cheat and provide the bots with perfect information about the world. This is also the easy way out. Most players, however, would consider it to be unfair, and hence not feel that the game was as fun, if the bot always knew exactly where the player was. Consequently, we need to provide some kind of simulation of more human senses. This is done by doing raycasts from the bot’s eyes to the position of the enemy (within the bot’s frustum) that we want to test if the bot sees. If the bot sees the enemy, the bot will remember the location off the enemy and which point on the enemy the bot saw. The bot also updates its team’s common knowledge data base. The bots of Battlefield 1942 were sometimes accused of being irresponsive, and sometimes ignoring the player. To minimize these problems in Battlefield 2, we allowed bots in the same squad or same vehicle to share this information, and we also allowed bots to look at enemies outside their frustum whenever they got hit so that they would respond faster when under attack. Why are sensing and pathfinding different systems? Sensing and pathfinding has two very different purposes, and hence the outputs of the different systems are very different. The same thing goes for how the output is calculated, and what data is needed to do this. The output of the sensing system is whether a bot can or cannot see a specific vehicle or soldier. The output of the pathfinding system is a sequence of positions that the bot needs to traverse in order to get from its current position to its goal. The navmeshes of Battlefield 2 does not contain the information to correctly check visibility, and they have no code support for doing 3 dimensional raycasts. Instead the navmeshes contain only information regarding pathable surfaces. The fact that one edge on a polygon in a navmesh isn’t connected to another polygon only means that it is not valid to try to path across that edge, it says nothing about the reasons for this (there could be a wall, and abyss, or the end of the combat area). The navmesh is much simplified compared to the detailed collision meshes that the raycasting of the sensing use. What makes Battlefield pathfinding so resource-intensive that it must be statically generated prior to game runtime? This is hardly unique to the Battlefield games. Most games, if not all games, use precomputed pathfinding data. Anyone that has tried creating a navmesh for a Battlefield 2 map knows how long time that take. Doing the same calculation in real time is hardly feasible. Battlefield maps are also much larger than maps of most games. A soldier occupies an area of about 0.1 m2 while the maps can be over 16 million m2. The Battlefield maps are also highly complex in certain areas, which mean that the precision needs to be correspondingly good. How will game AI pathfinding systems cope with the advent of many-body physics and deformable/destructible environments? This is a huge problem that faces many AI teams in the industry. The answer is either that we don’t know yet, or we will cope poorly. As mentioned above, the standard solution for pathfinding problems in the industry has been using the A* algorithm on pre-computed navigation data. The more complex and detailed the levels become, the more time and CPU-power is used to compute the navigation data. It is reasonable to assume that recomputing the navigation data in real time will not be feasible for most systems in use today. Battlefield 1942 allows for up to 64 bots. Battlefield 2 allows for up to 108 bots (maxed squad members). Battlefield 2142 allows for 108 bots plus and additional 256 autocontrollers. Are these increases a simple issue of available cpu and ram resources, or is this a more complex situation involving the game engines’ capabilities and limitations? The real limits for the number of bots in the Battlefield games are arbitrary from the AI’s point of view, but rather limits are set in the game. Also, the number of bots you can comfortably simulate varies greatly from system to system, and it has turned out to be very difficult to sell the idea that the performance of the AI can vary much in the same way as the performance of the graphics. The more bots on the battlefield, does Battlefield AI complexity grow linearly or exponentially? Why? The complexities of different parts of the AI grow differently. Many systems, like a bot’s pathfinding, are unaffected by the amount of bots. The cost of constructing a path is independent on the number of bots in the world, so the total cost of constructing path grows linearly with the number of bots wanting to construct paths. Other systems, like the sensing system, are dependent on the number of bots. When a bot check what it sees, it checks against all other players to see if it sees them (there are lots of early outs, but the principle is true). All bots need to check all other bots, so the total cost for sensing grows quadratically with the number of bots. A common criticism of Battlefield AI by mainstream players/reviewers is that the AI is not challenging, that bots are too predictable. Is there any validity to this criticism? What, if anything, needs to change or be addressed that would most greatly impact this perception? AI is probably the most unforgiving discipline in game construction. Anyone knows what a valid behavior is, and is well adapted to spot players that behave badly compared to that norm. Even the most powerful computer of today cannot compete with a human brain in a general competition. Sure, they can perform complex meteorological calculations and beat grand masters at chess, but the ‘simple’ act of seeing and through that comprehending the world at a near human level is something that is far beyond the reach of today’s computers and programs. A game AI that runs a on a fraction of the CPU of an ordinary home computer cannot even begin to compete with humans. We know this, and instead of trying to make an AI that is the intelligent in the true sense of the word, our goal is to make the AI that is the most entertaining there is. Granted, the Battlefield AI could be much more entertaining (and smarter) than it is, but as with all projects we have a limited amount of resources, and the needs of the AI are weighted against the needs of all the other systems that make up the game. To make a long answer short, yes the criticism is valid, and it will always be, there is always something that can be done better, and in the case of the Battlefield AI, there are a lot of things that will be improved for every new game. At the same time though, I feel that the criticism is sometimes too hard. I have, for instance, yet to read a review of Battlefield 2 that acknowledges the significant improvements of the AI that were made over the AI in Battlefield 1942. And I also have yet to see anyone acknowledging that making an AI for Battlefield is an extremely difficult undertaking. In Battlefield, there are huge maps, a vast array of vehicles of very different types, and yet the AI is compared to other game bots tactical infantry games and flight-sim pilots. The first thing I would like to do with the Battlefield AI is to make it use cover. The lack of self preservation that is currently prevailing in the bots is their most obvious weakness. A more general skill, and somewhat related to the covers, I would like to give the bots a much better special awareness. How are bot behavior weights derived? Is this type of weighting exclusive to Battlefield AI, or common among game AI, or comparable with non-game AI systems? This is mostly a process of trial and error. You spend a lot of time testing and retesting situations in which you like the bots to behave in a certain way. You keep on tuning them until you are happy with the results. As for other AI systems, I don’t know to be honest. I assume that weights are pretty common whenever you want to compare different behaviors in the way we compare them, but they would make little sense for other kinds of systems. While map strategy syntax and construction appears fairly straight forward, the “why” is much more elusive because of the multitude of variables – strategic areas, landing zones, neighboring, choke points, water ways, squad behavior, etc – which must be taken into account. Please provide a brief analysis of a formidable map strategy set - not necessarily a technical description, but more an evaluation of the reasoning for the conditions, prerequisites, modifiers, and strategies. The first step is to create the strategic areas and their relations. Once this is done, I consider the different plausible scenarios of the map. Almost all maps will work well with a standard strategy that runs most of the time, one strategy if the team is dominating the map, and one strategy if the team is being dominated. This setup will make the map play decently in most circumstances. If this turns out to be too stiff and repetitive, it may be a good idea to add one or two more strategies for the normal situation on the map. These strategies aims to create situations where one team may concentrate on one flank, one spear head attack, or spread wide to try and capture badly defended areas. Once I know what I want to achieve, I write the strategies and add flags to the strategic areas so that I know that the strategies only will activate when I want them. The same thing goes for the modifiers. If I want the bots to attack a certain strategic area, I make sure that the flags for that strategic area are unique so that I can add modifiers that guarantee that that strategic area is the one with the highest temperature. end
  10. -1 in BF script usually means infinite or not applicable. More than likely, the engine ignored them as bad values and set them to the exe internal default.
  11. You are unnecessarily removing all deviation (both humans and bots) from the weapons. Just play at a higher botskill, which reduces weapon deviation for bots only.
  12. some random thoughts here: * bots cannot use ladders, so do not put Capture Points in areas only accessible by ladders * bots do not jump unless they are stuck, so avoid paths which force players to jump * make sure there is a wide path anywhere you want vehicles to navigate, and make sure the path is free of small obstacles or ditches * bots need a full length runway to take off in jets * bots suck at parachuting.. don't go there * bots can navigate complex rivers and waterways, but make the water pathways wide * navmesh the 16 player map size for your first time, then once you have the hang of it you can move on to navmeshing larger sizes
  13. I find it humorous, in a John Steinbeck "Of Mice and Men" kind of way, that Colin.. Community Manager????.. is nowhere to be found on the site of the largest community of modders. The Project Reality Mod, fully featured on TotalBF2 is distributing Xpack content.. not just .con & .tweak references, but meshes, textures, animations.. the full boat. But not a whisper from Colin or DICE. I guess BF2 is an old dying bird to them now, so why bother. Yet Colin seems to have time and energy to suggest to TotalBF2142 that they remove from their front page an offline mod which allows players to experience unlocks.. read again, an offline mod of just .con/.tweak changes that doesn't affect online play at all.. and TotalBF2142 pulls it from their front page faster than EA can say "buyout". So much for BF2142 community mod support. Is it surprising the first public act of 2142 mod support was to try to squash a harmless legal fully-within-the-software-license mod that players like? Methinks the "DICE Live Team" is Dead. Or perhaps undead, like the zombies in Dawn of the Dead. I am starting to feel like Junk did about 6 months ago. I hope time isn't the only cure.
  14. True but you cannot port any DICE-made BF2 content into BF2142. No sounds, textures, effects, meshes, animations, etc. There aren't any mods which are 100% pure conversions, and thus they would be missing content and have to use BF2142 content instead. Not gonna work for alot of vehicles and maps.
  15. So are you saying that the Titan maps will not run if the maxplayers > 48 ?
  16. This will cause a CTD in an SP or COOP game. Also Nytaiceman, keep in mind that the changes we are suggesting work more over the long term than the short term. Bots are independent agents which you will find quite difficult to force to do anything. You could always separate out spawnpoints - make most human only - and put the bot-only spawnpoints away from the air vehicles.
  17. Mach, Is there a way to include a custom gamemode within a map? A gamemode which is contained fully within the map? FH-CTZ posted something about including python files in the map files, but never detailed it.
  18. Look up along the top and follow the links for Starter (official) Tutorials and Member Tutorials. Read all of those, dig in and learn, use the Search button, and you should have everything you need. We all started from scratch at some point.. just a matter of time, patience, and willingness to learn.
  19. Productions stuff, silly. Of the Imperial kind.
  20. Not sure about positioning, but black is 0 0 0
  21. I need a way to track the overall movement of an individual player and use those updates to move a strategicarea, so bots will have a general idea of the player's location at all times. It could even be every 30 seconds, if the time interval is a factor. It'd be for single player, but ideally it'd work in coop as well. I believe in gpm_coop, the server is handling all the AI. I guess the question is can SA's be repositioned in real time.
  22. I don't know anything about Rex's scripts. How would they know where to put the navmesh? How would they know where ground, water, and deepwater materials are? How would they know where to tesselate? How would they know how to designate clearances for soldiers and vehicles?
  23. Wrong. Read my reply above. Making it into a true staticobject would require nefarious mesh importing/exporting in 3dsMax. And it would mean duplicating mesh files and potentially texture files as well. Much better idea to have it as a stationary PCO.
  24. Sasqplay, I suggest you do some research before responding to topics.
  • Create New...