A.I. Player Suggestion?
Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. This forum is archived - please use this set of forums to ask new questions.
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. This forum is archived - please use this set of forums to ask new questions.
A.I. Player Suggestion?
Hello, community, I'm Andrei, an avid Doom/ZDoom player. I've been with Doom since it's inception, and witnessed it evolve from just a bang-bang game to a sophisticated and, above all, highly accessible programming/mapping environment, especially with the advent of the new ports. So, what brings me here, you might ask. Well, nothing more than a couple of questions.
More specifically, a concept of a mod that could be loaded into ZDoom and have the player be controlled by an AI. In other words, you don't play the game, the computer does. This is of course, not without a couple of conditions, to make everything worth the while:
A) All tactical processing is to be done live, in the heat of the action. That means that the AI has no predictive knowledge of the (pretty basic IMO) routines that the monsters would employ. (e.g. if a monster shoots, the AI responds with a delay and may fail to dodge, it does not predict the monster's actions). This can turn Doom into a full-fledged tactical computer. Also, no LMP demo pre-rendering. All is LIVE, and it also literally depends on the brains that your actual PC has, as explained below.
B) If this is to ever exist, users should be given a wide range of parameters using a menu to, shall I say, give the AI what would be known as personality, and in the case of harder situations, even save it's life by, say, making it more conservative or vice-versa. (e.g. a horde of monsters approaches, be fearful make a run for the exit or try to do Macho Man and die).
To be also kept in mind is, one user needs to set the AI so that the actual processor does not choke. If it does, the AI takes up too many cycles and makes what would be known as mistakes (loses attention?...). A CPU scaling option may also be included.
Normal conditions also apply of course, like the limited field of view (the AI has no 180 degress view of everything, just what a human would see through a computer screen ahead), and the (adjustable?) ping (delay, reaction time). These are just two of the many examples.
This is just a shallow idea for now, but actually the question in question was, can this be done through ACS? Is there a way to implement a "driver" that would take control over the keyboard, or is that not even necessary in order to make the player move by itself? It would be pretty interesting for one to create a "character", and see how it would handle itself in "real life".
More specifically, a concept of a mod that could be loaded into ZDoom and have the player be controlled by an AI. In other words, you don't play the game, the computer does. This is of course, not without a couple of conditions, to make everything worth the while:
A) All tactical processing is to be done live, in the heat of the action. That means that the AI has no predictive knowledge of the (pretty basic IMO) routines that the monsters would employ. (e.g. if a monster shoots, the AI responds with a delay and may fail to dodge, it does not predict the monster's actions). This can turn Doom into a full-fledged tactical computer. Also, no LMP demo pre-rendering. All is LIVE, and it also literally depends on the brains that your actual PC has, as explained below.
B) If this is to ever exist, users should be given a wide range of parameters using a menu to, shall I say, give the AI what would be known as personality, and in the case of harder situations, even save it's life by, say, making it more conservative or vice-versa. (e.g. a horde of monsters approaches, be fearful make a run for the exit or try to do Macho Man and die).
To be also kept in mind is, one user needs to set the AI so that the actual processor does not choke. If it does, the AI takes up too many cycles and makes what would be known as mistakes (loses attention?...). A CPU scaling option may also be included.
Normal conditions also apply of course, like the limited field of view (the AI has no 180 degress view of everything, just what a human would see through a computer screen ahead), and the (adjustable?) ping (delay, reaction time). These are just two of the many examples.
This is just a shallow idea for now, but actually the question in question was, can this be done through ACS? Is there a way to implement a "driver" that would take control over the keyboard, or is that not even necessary in order to make the player move by itself? It would be pretty interesting for one to create a "character", and see how it would handle itself in "real life".
- wildweasel
- Posts: 21706
- Joined: Tue Jul 15, 2003 7:33 pm
- Preferred Pronouns: He/Him
- Operating System Version (Optional): A lot of them
- Graphics Processor: Not Listed
- Contact:
Re: A.I. Player Suggestion?
Welcome to the forum, Binary; I feel your suggestion is more something that could be handled in an add-on WAD, not something that should be implemented directly in ZDoom. Therefore, I've moved your thread to Editing from Feature Suggestions.
Re: A.I. Player Suggestion?
My bad. I see, however, that I don't really have an audience, which is actually quite understandable, since it would probably involve large periods of time with tedious programming. Nevertheless, I didn't come here to ask someone to get it done for me. I just want to know if it can be done in ACS, and if there is really a point in me learning this new programming language. Would you be kind enough to answer that question, wildweasel?
Last edited by Binary on Thu Jul 04, 2013 6:02 am, edited 2 times in total.
Re: A.I. Player Suggestion?
ACS is easy and kinda like C. (or something)
Unless you want some compilicated things.
I'm not sure if what you want is possible...
Unless you want some compilicated things.
I'm not sure if what you want is possible...
Re: A.I. Player Suggestion?
Look, let me put it this way. I want to know to what extent can an ACS script affect what is happening with Doom. For instance, does ZDoom allow the player to move by itself?
- .+:icytux:+.
- Posts: 2661
- Joined: Thu May 17, 2007 1:53 am
- Location: Finland
Re: A.I. Player Suggestion?
It could certainly be done, although it would need to be scripted separately for every map. I doubt you could make an A.I that could figure out how to complete any map. But you can make A.I's to some extent with decorate and ACS.
And just to show what ACS can do:
You can see how flexible it actually is...
And just to show what ACS can do:
You can see how flexible it actually is...
Re: A.I. Player Suggestion?
At least with ACS... (Yes, I know it's for Wolfenstein, but could be also done with Doom).+:icytux:+. wrote:I doubt you could make an A.I that could figure out how to complete any map.
Re: A.I. Player Suggestion?
And why is that? If it can turn Doom into a 2D sidescroller, why would it not allow for the implementation of some routines like those AutoWolf demos, be them several megabytes of code, that would tell the A.I. what to do and how to set it's priorities? Has anybody tried this before with Doom, actually?
Re: A.I. Player Suggestion?
You know, I don't mean to be mean (wait...), but placing a following camera and rendering a few (yeah, few, right...) sprites is much easier than making Doom searching for a way through the level and avoiding monsters' attacks and a lot of other things.
Re: A.I. Player Suggestion?
So it can't really be done, that's what you are telling me? I would need a deeper-level programming, in actual C, wouldn't I?mallo wrote:You know, I don't mean to be mean (wait...), but placing a following camera and rendering a few (yeah, few, right...) sprites is much easier than making Doom searching for a way through the level and avoiding monsters' attacks and a lot of other things.
Re: A.I. Player Suggestion?
Well, ZDoom uses C++ rather then just C. What (I think) he's trying to get at is you are trying to over simplify what is most obviously not a basic and straight forwarded process. One could make ZDoom into a sidescroller because it just so happens that if you use some features together, you can make a ZDoom mod that's some sort of sudo-sidescroller. Cameras and angle control pretty much sums it up.
What you want to do, however, is make an object have an understanding of the environment it's in and navigate it. You already have introduced two complications.
What you want to do, however, is make an object have an understanding of the environment it's in and navigate it. You already have introduced two complications.
- ACS does not know anything about the level environment itself. As a basic example, it does not know where/if doors exists, let alone have the ability to execute them.
- The things this object is supposed to react to need to identify themselves to this object. You need to independently tag and track every single enemy, projectile and lamp and this object could/does encounter. How do you do this on maps that already tag and track objects for specific triggers the map has?
Re: A.I. Player Suggestion?
^
What this guy just said. I agree.
What this guy just said. I agree.
Re: A.I. Player Suggestion?
Maybe ZScript will be able to accomplish this? Does it delve deep enough into ZDoom's engine to have enough information?
Re: A.I. Player Suggestion?
I am aware of the difficulties, even if I haven't gotten going on ACS yet. For now, however, I want to clarify things at a theoretical level. A.I. is definetly do-able in Doom, hence the monsters, IMO. Am I right? Is there a way to "put" the monster AI in the player and work on it's routines? Monsters can shoot, can open doors, and I'm sure the possibilites can be extended. Why not? Or are monsters another "hack"?edward850 wrote:Well, ZDoom uses C++ rather then just C. What (I think) he's trying to get at is you are trying to over simplify what is most obviously not a basic and straight forwarded process. One could make ZDoom into a sidescroller because it just so happens that if you use some features together, you can make a ZDoom mod that's some sort of sudo-sidescroller. Cameras and angle control pretty much sums it up.
What you want to do, however, is make an object have an understanding of the environment it's in and navigate it. You already have introduced two complications.
- ACS does not know anything about the level environment itself. As a basic example, it does not know where/if doors exists, let alone have the ability to execute them.
- The things this object is supposed to react to need to identify themselves to this object. You need to independently tag and track every single enemy, projectile and lamp and this object could/does encounter. How do you do this on maps that already tag and track objects for specific triggers the map has?
BTW, how do you make a self contained mod in ACS? I read the Wiki and it only applies to maps. Can one lead me to a mod tutorial?
-
- Posts: 182
- Joined: Fri Mar 16, 2012 7:11 am
- Contact:
Re: A.I. Player Suggestion?
DISCLAIMER: I could be wrong. But I believe there's just no way for the monster to know what to do. The engine was not designed for this - there is nothing that tells a player where a switch will be and where they should go next to complete a level. The work is all done by the player's brain being able to recognise the next objective. I'd imagine you could (with difficulty) make a monster that explores an area but to activate anything it would have to be aware of triggerable linedefs and pickups. ACS apparently is not capable of providing this information.Binary wrote: Is there a way to "put" the monster AI in the player and work on it's routines? Monsters can shoot, can open doors, and I'm sure the possibilites can be extended. Why not? Or are monsters another "hack"?