Jump to content

Small requests


aka_Hawk

Recommended Posts

Well, I hope they're small. :) When you have the time, could you please add a shortcut for opening the Relationship window? I often want to check the technology of other players and then I usually have to click a bit to open it. Shift+R would be much easier. ;)

Also, when placing a satelite over discovered area, it would be nice to have a circle outlining the area it would be able to observe. The range tool is nice, but a bit cumbersome to use for this purpose.

Link to comment
Share on other sites

Ah, I hadn't thought about the satellite one. I'll have to get to it later. I'm working on getting greater separation between the AI and the game itself right now, which requires thousands of changes to the code. Once I get finished with that, I'll take another look at these issues. Feel free to remind me.

Link to comment
Share on other sites

Ah, I hadn't thought about the satellite one. I'll have to get to it later. I'm working on getting greater separation between the AI and the game itself right now, which requires thousands of changes to the code. Once I get finished with that, I'll take another look at these issues. Feel free to remind me.

Wow Brit....you're actually going to go through with this! Cool! I have two suggestions. Make sure to write enough docs and/or code comments to make it easy figure out what stuff does. Second, and probably less likely, make the AI script based so someone can change it using coding similar to VB script. Most people have an easier time with that vs. C++.

Link to comment
Share on other sites

Make sure to write enough docs and/or code comments to make it easy figure out what stuff does. Second, and probably less likely, make the AI script based so someone can change it using coding similar to VB script. Most people have an easier time with that vs. C++.

Sounds like Brit is decoupling the AI code as-is so it can be a stand-alone dll, for others to mess with as-is. If he does more than this pro bono then great.

Link to comment
Share on other sites

At this point, I'm playing around with the idea of creating a generalized strategy-game AI. I've looked around for this kind of thing on the internet, but haven't had any luck. The closest I've seen to a strategy AI is that there's a handful of pathfinding AIs, but nothing that handles the larger picture. It seems like there might be a demand for it. If there's some demand to license the technology for other games, then there's some additional reasons to work on an expanded AI system.

(Pathfinding AIs are used to find a path from point A in the game world to point B.)

make the AI script based so someone can change it using coding similar to VB script.

If I'm going to make a generalized, licensable AI system, I'll have to add a scripting mechanism. I don't know what I'll use. I think LUA has been pretty popular as a scripting language, but haven't looked into enough to make a decision about it yet.

Link to comment
Share on other sites

... If I'm going to make a generalized, licensable AI system, I'll have to add a scripting mechanism. I don't know what I'll use. I think LUA has been pretty popular as a scripting language, but haven't looked into enough to make a decision about it yet.

That would be totally awesome! :) Re LUA, it's the script language used in World of Warcraft to allow users to create their own GUI. I'm not sure that "used by wow" is a quality mark in itself :) but at least it indicates that it's well known and used quite extensively. :P

Link to comment
Share on other sites

At this point, I'm playing around with the idea of creating a generalized strategy-game AI. I've looked around for this kind of thing on the internet, but haven't had any luck. The closest I've seen to a strategy AI is that there's a handful of pathfinding AIs, but nothing that handles the larger picture. It seems like there might be a demand for it.

There are a lot of shortcomings with AIs because most developers cannot afford to spend the time needed to create a competent and challenging computer opponent. It's a lot of work. A generalized licensable AI system that can continued to be improved upon over time would be great!

Link to comment
Share on other sites

Brit that is an interesting idea, but since games are so different how are you going to interact with the GUI and the map and unit database? Even the rules for how units move is different from game to game. Seems like a very tall order to me. Each game is likely to have different objectives and strategies. You might find in the end that all you're doing is developing a new programming language. BTW there are computer languages specifically for AI/expert systems and simulation development.

Link to comment
Share on other sites

That would be totally awesome! :) Re LUA, it's the script language used in World of Warcraft to allow users to create their own GUI. I'm not sure that "used by wow" is a quality mark in itself :) but at least it indicates that it's well known and used quite extensively. :P

I didn't know world of warcraft used it. I've just heard that it's popular among game developers.

Link to comment
Share on other sites

Brit that is an interesting idea, but since games are so different how are you going to interact with the GUI and the map and unit database?

As far as interacting with the GUI: the AI won't do that. A developer would have to write some interface code so that, for example, if the AI decides to declare war on another player, that the game-code will have to receive that message and send it through the proper channels so it shows up in the GUI.

As far as the map: I have a system in place for pathfinding. The game-developer would have to describe the game world as a bunch of areas and describe how they're linked together. It's very natural for grid-based games, but it also works for continuous-movement maps like EOS has. The system is already flexible enough that it can handle unusually-shaped maps as well. For example, it can already handle pathfinding on a sphere or mobius strip or other exotic shapes.

As far as the unit-database, there is a way to describe each unit's movement rates across different terrain, which units it can contain, and a way to describe how well units fight against other units. This could either be setup as raw-numbers so the AI can calculate how well units fight against each other, or it could be simply setup as a bunch of combat result values (e.g. if unit A attacks unit B, it can be expected that X amount of damage is done to each side). I'm not sure how I'd be able to handle special-abilities, though, since that can be tricky. (A special ability would be stuff like: if a unit has a special weapon that can be used once every X seconds, turn invisible for a short period of time, etc.)

Even the rules for how units move is different from game to game. Seems like a very tall order to me.

The AI pathfinding system I've built up can take into account different speeds on different terrains and can also mark certain terrains as impassible. The game-unit's movement abilities will have to be translated into a format that the AI understands, but I don't think that will be too difficult.

Each game is likely to have different objectives and strategies.

Some things in the game world can be assigned values for their destruction or capture. I suspect that some scripting or something might have to be involved to handle special cases. I suspect there will have to be some documentation to guide developers when the AI is behaving incorrectly for their game-world. For example, I could imagine that an AI might be building too many of unit X, and the developer would have to adjust some settings to change the balance of which units get created.

It might also be interesting to add some additional features into it so the AI can learn to play. For example, attaching a genetic algorithm to the system to try different variations on building units.

I'm not sure how I'd setup the AI to handle certain strategies, though. For example, setting up ambushes, or avoiding ambushes. Sometimes human players will figure out a simple, effective strategy that they can use over and over against an AI opponent to destroy them little by little. A good AI should avoid getting drawn into that.

I'm not quite sure how I'll handle cases where units can be ordered to attack in a specific sequence. (For example, in Civilization, the player should hit the city with catapults first, then horses because they can retreat, then ....)

You might find in the end that all you're doing is developing a new programming language. BTW there are computer languages specifically for AI/expert systems and simulation development.
Link to comment
Share on other sites

×
×
  • Create New...