A.I. Player Suggestion?

Archive of the old editing forum
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.
User avatar
Binary
Posts: 101
Joined: Wed Jul 03, 2013 1:54 pm
Location: In hide...
Contact:

A.I. Player Suggestion?

Post by Binary »

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".
User avatar
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?

Post by wildweasel »

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.
User avatar
Binary
Posts: 101
Joined: Wed Jul 03, 2013 1:54 pm
Location: In hide...
Contact:

Re: A.I. Player Suggestion?

Post by Binary »

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.
mallo
Posts: 1112
Joined: Sat May 22, 2010 12:49 pm

Re: A.I. Player Suggestion?

Post by mallo »

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...
User avatar
Binary
Posts: 101
Joined: Wed Jul 03, 2013 1:54 pm
Location: In hide...
Contact:

Re: A.I. Player Suggestion?

Post by Binary »

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?
User avatar
.+:icytux:+.
Posts: 2661
Joined: Thu May 17, 2007 1:53 am
Location: Finland

Re: A.I. Player Suggestion?

Post by .+:icytux:+. »

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...
mallo
Posts: 1112
Joined: Sat May 22, 2010 12:49 pm

Re: A.I. Player Suggestion?

Post by mallo »

.+:icytux:+. wrote:I doubt you could make an A.I that could figure out how to complete any map.
At least with ACS... (Yes, I know it's for Wolfenstein, but could be also done with Doom)
User avatar
Binary
Posts: 101
Joined: Wed Jul 03, 2013 1:54 pm
Location: In hide...
Contact:

Re: A.I. Player Suggestion?

Post by Binary »

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?
mallo
Posts: 1112
Joined: Sat May 22, 2010 12:49 pm

Re: A.I. Player Suggestion?

Post by mallo »

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.
User avatar
Binary
Posts: 101
Joined: Wed Jul 03, 2013 1:54 pm
Location: In hide...
Contact:

Re: A.I. Player Suggestion?

Post by Binary »

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.
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?
User avatar
edward850
Posts: 5889
Joined: Tue Jul 19, 2005 9:06 pm
Location: New Zealand
Contact:

Re: A.I. Player Suggestion?

Post by edward850 »

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?
mallo
Posts: 1112
Joined: Sat May 22, 2010 12:49 pm

Re: A.I. Player Suggestion?

Post by mallo »

^
What this guy just said. I agree.
User avatar
printz
Posts: 2649
Joined: Thu Oct 26, 2006 12:08 pm
Location: Bucharest, Romania
Contact:

Re: A.I. Player Suggestion?

Post by printz »

Maybe ZScript will be able to accomplish this? Does it delve deep enough into ZDoom's engine to have enough information?
User avatar
Binary
Posts: 101
Joined: Wed Jul 03, 2013 1:54 pm
Location: In hide...
Contact:

Re: A.I. Player Suggestion?

Post by Binary »

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?
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"?

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?
albiongeck
Posts: 182
Joined: Fri Mar 16, 2012 7:11 am
Contact:

Re: A.I. Player Suggestion?

Post by albiongeck »

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"?
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.
Locked

Return to “Editing (Archive)”