Contributing to VS
-
- Explorer
- Posts: 10
- Joined: Mon Sep 05, 2005 10:31 pm
Contributing to VS
Hi,
I've been playing VS for some time now and I really like the game. I think i can manage to have some spare time in which I'd like to contribute. I've a bachelor in computer science and a major in artificial intelligence. OpenGL programming knownledge I unfortunally don't posses. Perhaps contributing code to the higher level game parts (economics/AI e.g.) is a possibility?
In the Contributor Help & Internal How-Tos forum, I was told to contact spiritplumber in this topic. Any pointers where I could start and what could be done?
I've been playing VS for some time now and I really like the game. I think i can manage to have some spare time in which I'd like to contribute. I've a bachelor in computer science and a major in artificial intelligence. OpenGL programming knownledge I unfortunally don't posses. Perhaps contributing code to the higher level game parts (economics/AI e.g.) is a possibility?
In the Contributor Help & Internal How-Tos forum, I was told to contact spiritplumber in this topic. Any pointers where I could start and what could be done?
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
This is the WCU (Wing Commander Universe) mod forum. If you want to help with WCU, there's plenty to do; but otherwise you can post to the Vegastrike 'Features Requests' or 'Contributors' forums. There's a serious need for AI work, BTW.
Last edited by chuck_starchaser on Tue Sep 06, 2005 6:17 pm, edited 1 time in total.
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Elite
- Posts: 7243
- Joined: Mon Apr 18, 2005 2:40 pm
- Location: LS87, Buenos Aires, República Argentina
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
True.
I just thought he posted here by mistake, tho.
I just thought he posted here by mistake, tho.
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Developer
- Posts: 1831
- Joined: Mon Mar 07, 2005 10:33 pm
- Contact:
hi!
well, any engine change in WCU should benefit VS as a whole too... As for AI, how can I help? ^-^ You probably know more than me anyway.
well, any engine change in WCU should benefit VS as a whole too... As for AI, how can I help? ^-^ You probably know more than me anyway.
My Moral Code:
- The only sin is to treat people as if they were things.
- Rules were made for people, not the other way around.
- Don't deceive. Real life is complicated enough.
- If all else fails, smash stuff.
- The only sin is to treat people as if they were things.
- Rules were made for people, not the other way around.
- Don't deceive. Real life is complicated enough.
- If all else fails, smash stuff.
-
- Explorer
- Posts: 10
- Joined: Mon Sep 05, 2005 10:31 pm
Well, you could help by pointing me to the parts in the source code responsible for the AI. I'm not familiar with the VS code, so looking it up might some work.. Besides that, perhaps a discussion could be started which parts of the AI should be improved first, a priority list perhaps, altough I doubt this is the right topic for such a discussion...
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
jf, take a look at the thread "What engine changes do we need for the story line?"; we are discussing things that are related to future AI needs there.
I know this doesn't address your question, but for something to do while spirit gets around to answering your post.
Just for an example:
We need to simulate economies, but for economies to be self-balanced there needs to be offer and demand, and for there to be offer and demand there have to be units that have goals, and look for ways to fulfill them. Say an industrial planet has some types of industries. As the population increases some entreprenurial AI has to notice the fact that labor cost is cheap, and the elements are in place for some type of industry that isn't there yet. And for an economy to be *really* stable, there should be ways an industry can borrow during a rough period... so there should be lender AI's perhaps.
For another:
Could a "squadron leader" AI help simplify fleet-level commands by taking context into account?
And yet another:
Right now, most of the AI is "scripted", ad-hoc; I had this idea a while ago we could somehow use a genetic algorithm, set up a PC that plays a dynamic universe 24/7 where AI's get better by random mutation and natural selection. The trick is making those AI's have failings, like the human difficulty in "thinking about more than one thing at a time", and perceptual limitations or aberrations similar to human ones (for simulating human AI's only, of course).
I know this doesn't address your question, but for something to do while spirit gets around to answering your post.
Just for an example:
We need to simulate economies, but for economies to be self-balanced there needs to be offer and demand, and for there to be offer and demand there have to be units that have goals, and look for ways to fulfill them. Say an industrial planet has some types of industries. As the population increases some entreprenurial AI has to notice the fact that labor cost is cheap, and the elements are in place for some type of industry that isn't there yet. And for an economy to be *really* stable, there should be ways an industry can borrow during a rough period... so there should be lender AI's perhaps.
For another:
Could a "squadron leader" AI help simplify fleet-level commands by taking context into account?
And yet another:
Right now, most of the AI is "scripted", ad-hoc; I had this idea a while ago we could somehow use a genetic algorithm, set up a PC that plays a dynamic universe 24/7 where AI's get better by random mutation and natural selection. The trick is making those AI's have failings, like the human difficulty in "thinking about more than one thing at a time", and perceptual limitations or aberrations similar to human ones (for simulating human AI's only, of course).
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Explorer
- Posts: 10
- Joined: Mon Sep 05, 2005 10:31 pm
The economy of VS is indeed something I was thinking about to improve. It will be a very large system and I think the main concern will be to find a way to create a believeable economy while not taking to much time from the CPU as the 3D world and that gameplay is of a primary concern.
You thought of using a genetic algorithm is a possibility although I don't think it'll be the "right" approach. Creating such an algorithm will take a LOT (and a mean really a LOT) of time to compute as the economy is really complex. Breaking this up in piece (1 algo for planet economy, 1 for trading by mercenarcies, etc) might be an option. The problem with genetic algorithms is that the result can be right, but there is no guarantee. Furthermore you'll have to design a measurement scale on which the algorithms can be tested. Then you'll have to design a way to represent different algorithms (the structure of the "genes") which is quite complicated with this size. Finally you'll have the disadvantage of a genetic algorithm that the results are very hard to interpret....
Al in all I think this is an approach which can be pursued as a side project, and long term option. The main concern for the short term will probably be to design an infrastructure in which we can experiment with different models. Creating an AI is often about constantly adding even smarter pieces. The genetic algorithm can be such a smarter piece. For now, I think creating this structure and thinking about the performance is the number one priority. This isn't really hard to create by the way. There are standard design patterns for this. A nice architecture will propably be the subsumption architecture. In this architecture one can add smarter (often slower) algorithms which can override dumber but faster algorithms if needed.
An other thing that has to be created is a list of different goods which can be created on different planets/bases/etc with different costs (factors). These will have to be use to calculate the real cost where e.g. the population of a planet is taken into account. However starting with static costs is a good starting point I think. This can always be extended in the future as this will rely on input from story/system/universe creators which may not be available right away.
You thought of using a genetic algorithm is a possibility although I don't think it'll be the "right" approach. Creating such an algorithm will take a LOT (and a mean really a LOT) of time to compute as the economy is really complex. Breaking this up in piece (1 algo for planet economy, 1 for trading by mercenarcies, etc) might be an option. The problem with genetic algorithms is that the result can be right, but there is no guarantee. Furthermore you'll have to design a measurement scale on which the algorithms can be tested. Then you'll have to design a way to represent different algorithms (the structure of the "genes") which is quite complicated with this size. Finally you'll have the disadvantage of a genetic algorithm that the results are very hard to interpret....
Al in all I think this is an approach which can be pursued as a side project, and long term option. The main concern for the short term will probably be to design an infrastructure in which we can experiment with different models. Creating an AI is often about constantly adding even smarter pieces. The genetic algorithm can be such a smarter piece. For now, I think creating this structure and thinking about the performance is the number one priority. This isn't really hard to create by the way. There are standard design patterns for this. A nice architecture will propably be the subsumption architecture. In this architecture one can add smarter (often slower) algorithms which can override dumber but faster algorithms if needed.
An other thing that has to be created is a list of different goods which can be created on different planets/bases/etc with different costs (factors). These will have to be use to calculate the real cost where e.g. the population of a planet is taken into account. However starting with static costs is a good starting point I think. This can always be extended in the future as this will rely on input from story/system/universe creators which may not be available right away.
-
- Explorer
- Posts: 10
- Joined: Mon Sep 05, 2005 10:31 pm
Oh and by the way, adding "human" errors to the AI isn't probably that hard (depending on the system) as this can be implemented quite often by supllying the AI only with a limitted amount of information. In that case you'll have a system just like AI chess players which can't calculate the best move as this takes to much time, but have to make an educated guess. Time constraints will probably cause this anyway so it might be possible to supply an AI with all information but not giving it enough time to compute the best possibilities. The options to reduce the performance of an AI are numerous, creating a good AI first which can be reduced is quite hard OTOH.
-
- Developer
- Posts: 1831
- Joined: Mon Mar 07, 2005 10:33 pm
- Contact:
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
Exactly; but I don't think you need to worry too much about performance; I don't think there's a pressing issue with performance, atm. Besides, if we're talking about economies at bases, then there's no performance issues at all. Even economy in space should be no issue at all, since it could be pre-computed while you're docked at a base, and just played out when you're in flight.jfbenck wrote:The economy of VS is indeed something I was thinking about to improve. It will be a very large system and I think the main concern will be to find a way to create a believeable economy while not taking to much time from the CPU as the 3D world and that gameplay is of a primary concern.
Gotcha.You thought of using a genetic algorithm is a possibility although I don't think it'll be the "right" approach. Creating such an algorithm will take a LOT (and a mean really a LOT) of time to compute as the economy is really complex. Breaking this up in piece (1 algo for planet economy, 1 for trading by mercenarcies, etc) might be an option. The problem with genetic algorithms is that the result can be right, but there is no guarantee. Furthermore you'll have to design a measurement scale on which the algorithms can be tested. Then you'll have to design a way to represent different algorithms (the structure of the "genes") which is quite complicated with this size. Finally you'll have the disadvantage of a genetic algorithm that the results are very hard to interpret....
Brook's idea, yeah, or more like taking advantage of what the lower echelons already learnt; --at least that's how I understood it. I was thinking about that for pilot/gunner AI, subsumed by a squadron AI, subsumed by a fleet AI. That's why I was mentioning genetic algos; because I was thinking we could have ship AI's killing each other for a few weeks, then, when they are good, we put them into squadrons and have the squadron AI's killing each other a few weeks, and once those are good, to arrange squadrons into fleets, and have fleet AI's kill each other a few weeks.Al in all I think this is an approach which can be pursued as a side project, and long term option. The main concern for the short term will probably be to design an infrastructure in which we can experiment with different models. Creating an AI is often about constantly adding even smarter pieces. The genetic algorithm can be such a smarter piece. For now, I think creating this structure and thinking about the performance is the number one priority. This isn't really hard to create by the way. There are standard design patterns for this. A nice architecture will propably be the subsumption architecture. In this architecture one can add smarter (often slower) algorithms which can override dumber but faster algorithms if needed.
Okay.An other thing that has to be created is a list of different goods which can be created on different planets/bases/etc with different costs (factors). These will have to be use to calculate the real cost where e.g. the population of a planet is taken into account. However starting with static costs is a good starting point I think. This can always be extended in the future as this will rely on input from story/system/universe creators which may not be available right away.
Right now, Vegastrike has a list of goods most people aren't too happy with and it's a waiting game about who's gonna jump in to clean up the list. With WCU, the list is pretty much inherited from Privateer, with some additions, like unrefined ores, and standard containers. I think the original stuff from Privateer has to be there for nostalgia reasons, but other items could be added. AI-wise it could first use some introduction of internal simulation, in the sense that you can bring nothing but furs to a mining base; and they'll be just fine. I think they should starve to death There are other items, like mining equipment, that should be pretty essential. On the other hand, you're just one trader among many, so the consequences shouldn't be stark, but they should be there to some extent.
Another thing is prices and quantities. Right now, after trading for a while, quantities start to drop for unknown reasons (to the players), and you have to exit the game and restart it to reset the economies. Balancing prices is a balancing act (pun intended) and I thought maybe by unleashing a bunch of smart AI traders and letting offer and demand set the prices might balance the prices automatically to offset such factors as length and difficulty of the trade route. But of course, these smart traders need to be somewhat smart. This would also make the environment more believable, if you could follow a merchant ship around, and learn from it about a lucrative trade route.
Even more realistic if merchant ships would pool next to each other whenever possible, to get a "convoy effect" to better their chances against pirates.
Right. I suppose the AI could be programmed like a co-routine, so it only executes a microstep of the algorithm per frame, so as to slow it down.Oh and by the way, adding "human" errors to the AI isn't probably that hard (depending on the system) as this can be implemented quite often by supllying the AI only with a limitted amount of information. In that case you'll have a system just like AI chess players which can't calculate the best move as this takes to much time, but have to make an educated guess. Time constraints will probably cause this anyway so it might be possible to supply an AI with all information but not giving it enough time to compute the best possibilities. The options to reduce the performance of an AI are numerous, creating a good AI first which can be reduced is quite hard OTOH.
It would be nice to limit the attention span of AI pilots to one threat at the time; I have an intuitive feeling this would make them 'feel' very human; much less machine-like. Maybe also using lossy compression in the "visual input" part. Like translating the NPC's view coordinates of you to 16-bit fixed point from float, or to 8-bits, or even just 4, and feed that to the ai.
One thing players have trouble with, that AI's should have too, is predicting when to move the stick or mouse the other way, so that your inertial rotation will stop right when your guns are pointing at the right spot. AI's are too good at it, atm.
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- ISO Party Member
- Posts: 453
- Joined: Sat Jul 30, 2005 10:21 am
Re: "Quantities start to drop"... are we talking about VS here, or WCU?
I dunno how WCU does it, but in VS, it's not that stuff is "mysteriously" dropping, it's that the stuff is there, you buy it, and it's no longer there. They produce some stuff over time, but nothing like the deluge of stuff that exists there every time you restart the game.
I dunno how WCU does it, but in VS, it's not that stuff is "mysteriously" dropping, it's that the stuff is there, you buy it, and it's no longer there. They produce some stuff over time, but nothing like the deluge of stuff that exists there every time you restart the game.
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
Ah, okay; I haven't played VS in quite a while... so *that*'s what it is.
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Hunter
- Posts: 75
- Joined: Tue Apr 19, 2005 2:15 am
-
- Explorer
- Posts: 10
- Joined: Mon Sep 05, 2005 10:31 pm
That could be a possibility except in the case that elapsing time will be introduced when docked at a base. It's hard to predict the effects on performance, but keeping a close eye on this will be important.chuck_starchaser wrote: Exactly; but I don't think you need to worry too much about performance; I don't think there's a pressing issue with performance, atm. Besides, if we're talking about economies at bases, then there's no performance issues at all. Even economy in space should be no issue at all, since it could be pre-computed while you're docked at a base, and just played out when you're in flight.
That's indeed the kind of system I meant. However genetic algo's aren't necessairily needed.chuck_starchaser wrote: Brook's idea, yeah, or more like taking advantage of what the lower echelons already learnt; --at least that's how I understood it. I was thinking about that for pilot/gunner AI, subsumed by a squadron AI, subsumed by a fleet AI. That's why I was mentioning genetic algos; because I was thinking we could have ship AI's killing each other for a few weeks, then, when they are good, we put them into squadrons and have the squadron AI's killing each other a few weeks, and once those are good, to arrange squadrons into fleets, and have fleet AI's kill each other a few weeks.
Establishing a good economic system of different goods will probably be a prerequisite for perfecting the AI. However, to create the general structure, we could do with the current goods. Varying prices will probably be essential to creating a dynamic economychuck_starchaser wrote: Okay.
Right now, Vegastrike has a list of goods most people aren't too happy with and it's a waiting game about who's gonna jump in to clean up the list. With WCU, the list is pretty much inherited from Privateer, with some additions, like unrefined ores, and standard containers. I think the original stuff from Privateer has to be there for nostalgia reasons, but other items could be added. AI-wise it could first use some introduction of internal simulation, in the sense that you can bring nothing but furs to a mining base; and they'll be just fine. I think they should starve to death There are other items, like mining equipment, that should be pretty essential. On the other hand, you're just one trader among many, so the consequences shouldn't be stark, but they should be there to some extent.
Another thing is prices and quantities. Right now, after trading for a while, quantities start to drop for unknown reasons (to the players), and you have to exit the game and restart it to reset the economies. Balancing prices is a balancing act (pun intended) and I thought maybe by unleashing a bunch of smart AI traders and letting offer and demand set the prices might balance the prices automatically to offset such factors as length and difficulty of the trade route. But of course, these smart traders need to be somewhat smart. This would also make the environment more believable, if you could follow a merchant ship around, and learn from it about a lucrative trade route.
Even more realistic if merchant ships would pool next to each other whenever possible, to get a "convoy effect" to better their chances against pirates.
A possibility, but lets concentrate on the economy first. Creating player AI is a completely different task. A huge task in itself probably.chuck_starchaser wrote: Right. I suppose the AI could be programmed like a co-routine, so it only executes a microstep of the algorithm per frame, so as to slow it down.
It would be nice to limit the attention span of AI pilots to one threat at the time; I have an intuitive feeling this would make them 'feel' very human; much less machine-like. Maybe also using lossy compression in the "visual input" part. Like translating the NPC's view coordinates of you to 16-bit fixed point from float, or to 8-bits, or even just 4, and feed that to the ai.
One thing players have trouble with, that AI's should have too, is predicting when to move the stick or mouse the other way, so that your inertial rotation will stop right when your guns are pointing at the right spot. AI's are too good at it, atm.
Indeed. AI is generaly not about creating a smart algorithm, but about creating an algorithm which results in smart behaviour. Smart behaviour can be established with simple algorithms if the variantion and the amount of parameters which influence it is large.mat_yarrow wrote: There could be another way of designing an ai on the strategic level that's well balanced..
When Dan Bunten(later Dani Bunten), the designer of M.U.L.E., was asked how to balance a game, he reportedly answered "Cheat". When asked what to do if players complained, "Lie".