Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Discuss anything ZDoom-related that doesn't fall into one of the other categories.
User avatar
Kontra Kommando
Posts: 944
Joined: Mon Jan 20, 2014 6:46 pm
Location: LV-426

Re: Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Post by Kontra Kommando »

User avatar
Kontra Kommando
Posts: 944
Joined: Mon Jan 20, 2014 6:46 pm
Location: LV-426

Re: Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Post by Kontra Kommando »

Here is a version of it as a single document in word:

https://www.mediafire.com/file/cosgy4q4 ... .docx/file
User avatar
Kizoky
Posts: 291
Joined: Mon Nov 14, 2011 9:59 am
Preferred Pronouns: He/Him
Operating System Version (Optional): Windows 11
Graphics Processor: nVidia with Vulkan support
Location: Around weirdos, I'm the biggest weirdo among them

Re: Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Post by Kizoky »

What's the purpose of this? I fail to understand
User avatar
Kontra Kommando
Posts: 944
Joined: Mon Jan 20, 2014 6:46 pm
Location: LV-426

Re: Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Post by Kontra Kommando »

Kizoky wrote: Wed Apr 19, 2023 5:08 am What's the purpose of this? I fail to understand
Basically, I was able to confirm that there will indeed be a plugin for ChatGPT that will allow people to upload files and create file structures, and filter to examine solely selected files. The reason why ChatGPT is currently not very good at coding DECORATE and/or ACS is because it is not prioritized for it; it is a jack of all trades and gets confused. However, once this plugin in is available, if one were to replicate the file structure I provided for the individual notepad files to be stored in on ChatGPT4 (and solely look at that file structure when prompting the AI) ; the hope is that it would be adept at coding ACS and DECORATE, specifically for Doom (Which is how I structured it to be). Essentially, I pre-emptively made the files, and layout for the file structure. I don't know if it will work or not, but I would like to test it as soon as the plugin is available to me. I'm a plus user, and on the waitlist for the plugins.
Last edited by Kontra Kommando on Wed Apr 19, 2023 7:46 am, edited 1 time in total.
User avatar
Kontra Kommando
Posts: 944
Joined: Mon Jan 20, 2014 6:46 pm
Location: LV-426

Re: Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Post by Kontra Kommando »

Developing plugins is possible too.

Perhaps if I make it to the next step I could make a plugin for ChatGPT that will have all of this pre-packaged for the user to starting making prompts.

Right now it is a set of files and folders with assembly required.

The individual notepad format, curated into folders and sub-folders would probably be more accurate than the PDF with all in one, I suspect.
User avatar
Kizoky
Posts: 291
Joined: Mon Nov 14, 2011 9:59 am
Preferred Pronouns: He/Him
Operating System Version (Optional): Windows 11
Graphics Processor: nVidia with Vulkan support
Location: Around weirdos, I'm the biggest weirdo among them

Re: Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Post by Kizoky »

ChatGPT writes bad code very confidently, but it would be interesting to see a code that would be able to run without any script errors.
User avatar
inkoalawetrust
Posts: 70
Joined: Mon Aug 26, 2019 9:18 pm
Graphics Processor: nVidia with Vulkan support

Re: Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Post by inkoalawetrust »

Kizoky wrote: Thu Apr 20, 2023 3:35 am ChatGPT writes bad code very confidently, but it would be interesting to see a code that would be able to run without any script errors.
GPT-4 is a lot better at writing code and a bunch of other tasks AFAIK, can even make some simple projects from scratch and seems to have some spatial awareness. So with a dedicated plugin and purpose-made dataset, it guess it could potentially learn how to actually write working ZScript. Maybe, since LLMs need huge datasets to learn, unlike people, who can learn with much less data, and without getting too off topic, I feel like for-profit companies like OpenAI kinda want it to stay that way so it will be really hard to make a competitor.
User avatar
Kontra Kommando
Posts: 944
Joined: Mon Jan 20, 2014 6:46 pm
Location: LV-426

Re: Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Post by Kontra Kommando »

It has been one month since the last update to Chat GPT. Typically, they do 2 by now, but I think the next one will be the plugins. Which should happen any day soon, hopefully.
User avatar
Kontra Kommando
Posts: 944
Joined: Mon Jan 20, 2014 6:46 pm
Location: LV-426

Re: Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Post by Kontra Kommando »

Right now I use it a lot for work and productivity. But other than that, I like asking it extreme hypothetical situations for amusement. Nevertheless, once the next update arrives, I think it would be worth the cost of a subscription for plus.
User avatar
Kontra Kommando
Posts: 944
Joined: Mon Jan 20, 2014 6:46 pm
Location: LV-426

Re: Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Post by Kontra Kommando »

The plugins are now available, but I still haven't been given access.
User avatar
Kontra Kommando
Posts: 944
Joined: Mon Jan 20, 2014 6:46 pm
Location: LV-426

Re: Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Post by Kontra Kommando »

I did it!

I found a tool for microsoft edge called ChatGPT File Uploader, I took the file, divided it in 4 and uploaded it to chat GPT 3.5 (Because 4.0 currently has a cap)

Me: Create a custom enemy monster based on Jason Voorhees from Friday the 13th.

Chat GPT (with ACS/DECORATE AI v1.0 training)

Certainly! Here's an example of a custom enemy monster based on Jason Voorhees from Friday the 13th using DECORATE:

actor JasonVoorhees : ZombieMan replaces ZombieMan
{
health 2000
radius 20
height 64
speed 8
painchance 200
damage 10
states
{
Spawn:
PAIN ABCD 2 A_Look
loop
See:
PAIN E 4 A_Chase
loop
Melee:
PAIN F 8 A_FaceTarget
PAIN G 8 A_CustomMeleeAttack(100, "JasonMachete")
PAIN H 8
goto See
Death:
PAIN IJKLMN 6
stop
}
}

actor JasonMachete : CustomMissile
{
+FLOORCLIP
height 8
damage 50
speed 15
seeSound "weapons/machgf"
deathSound "weapons/machgh"
+RANDOMIZE
states
{
Spawn:
TNT1 A 1
loop
Death:
TNT1 A 1
stop
}
}
```

In this example, the actor "JasonVoorhees" is defined as a replacement for the "ZombieMan" actor. It inherits most of its properties from "ZombieMan" but introduces some specific properties for Jason Voorhees, such as increased health, a different radius, height, speed, pain chance, and damage. The states of the actor are defined to include the typical behavior of a monster, including spawning, seeing the player, performing a melee attack, and dying.

Additionally, a custom actor "JasonMachete" is defined as a custom missile for Jason Voorhees to use in his melee attack. It inherits from the "CustomMissile" actor and sets specific properties for the machete, such as damage, speed, and sound effects.

Feel free to customize and expand upon this example to create your own unique version of Jason Voorhees in the game.
User avatar
Kontra Kommando
Posts: 944
Joined: Mon Jan 20, 2014 6:46 pm
Location: LV-426

Re: Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Post by Kontra Kommando »

I asked for something a bit more challenging, let me know if it is correct:

create a teleportation attack for jason, where he will appear in front of the player randomly as a way to then attack the player

ChatGPT
Certainly! Here's an updated version of the custom enemy monster based on Jason Voorhees, including a teleportation attack:

cpp
Copy code
actor JasonVoorhees : ZombieMan replaces ZombieMan
{
health 2000
radius 20
height 64
speed 8
painchance 200
damage 10
states
{
Spawn:
PAIN ABCD 2 A_Look
loop
See:
PAIN E 4 A_Chase
loop
Melee:
PAIN F 8 A_FaceTarget
PAIN G 8 A_CustomMeleeAttack(100, "JasonMachete")
PAIN H 8
goto See
Teleport:
PAIN I 4 A_FaceTarget
PAIN J 4 A_TeleportOther("JasonVoorhees", 64)
PAIN K 4 A_SpawnItemEx("TeleportFog", 0, 0, 0, 0, 0, 0, 0)
PAIN L 4 A_TeleportOther("JasonVoorhees", 64)
PAIN M 4 A_SpawnItemEx("TeleportFog", 0, 0, 0, 0, 0, 0, 0)
PAIN N 8
goto See
Death:
PAIN IJKLMN 6
stop
}
}

actor JasonMachete : CustomMissile
{
+FLOORCLIP
height 8
damage 50
speed 15
seeSound "weapons/machgf"
deathSound "weapons/machgh"
+RANDOMIZE
states
{
Spawn:
TNT1 A 1
loop
Death:
TNT1 A 1
stop
}
}

actor TeleportFog : CustomMissile
{
+NOGRAVITY
+RANDOMIZE
states
{
Spawn:
FOG1 ABC 8
stop
}
}
In this updated version, a new state called "Teleport" is added to the "JasonVoorhees" actor. When triggered, Jason will teleport to a random location near the player. The teleportation is accompanied by the spawning of a custom actor called "TeleportFog," which creates a visual effect to indicate the teleportation.

To trigger the teleportation attack, you can call the "Teleport" state using ACS (Action Code Scripting) in your map. For example, you can use the following ACS script to initiate the attack when the player enters a specific area:

cpp
Copy code
script 1 (void)
{
Thing_Activate(AmbushTrigger, TRUE); // Activate the ambush trigger
Thing_Deactivate(1); // Deactivate this script
}
Make sure to place an AmbushTrigger thing in your map and tag it with the same number used in the ACS script above.

Feel free to modify and customize the teleportation attack further to suit your specific needs.
User avatar
Kontra Kommando
Posts: 944
Joined: Mon Jan 20, 2014 6:46 pm
Location: LV-426

Re: Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Post by Kontra Kommando »

Install ChatGPT File Uploader, I use it for the Edge browser.

Once installed, go to start a new chat in ChatGPT.

After the green button to upload the file appears on the screen, upload each file individually. Wait a few minutes between uploads to avoid network errors.

After all four text files are uploaded, the installation process is complete.

You can now start asking it questions regarding modification of Doom with DECORATE and ACS.

Download here:
https://www.mediafire.com/file/oxoqnoz5 ... d.zip/file
User avatar
Kontra Kommando
Posts: 944
Joined: Mon Jan 20, 2014 6:46 pm
Location: LV-426

Re: Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Post by Kontra Kommando »

Checking for accuracy here

Me: create a machine gun version of the pistol

To create a machine gun version of the pistol, you can modify the existing pistol code and adjust its behavior to mimic a machine gun. Here's an example of how you can create a machine gun version of the pistol using DECORATE:

ACTOR MachineGun : DoomWeapon { Weapon.SelectionOrder 200 Weapon.AmmoType "Clip" Weapon.AmmoGive 30 Weapon.AmmoUse 1 Weapon.SlotNumber 2 Weapon.SlotPriority 30 +WEAPON.NOAUTOFIRE +WEAPON.AMMO_OPTIONAL Weapon.Kickback 0.8 Weapon.BobRangeX 4 Weapon.BobRangeY 4 Weapon.BobSpeed 0.2 Weapon.BobStyle 2 States { Ready: MGUN A 1 A_WeaponReady Loop Deselect: MGUN A 1 A_Lower Loop Select: MGUN A 1 A_Raise Loop Fire: MGUN A 3 MGUN B 4 A_FireBullets(5, 1, 1, 5, "BulletPuff") MGUN A 5 MGUN C 5 MGUN A 4 A_ReFire MGUN D 0 A_ReFire MGUN D 0 A_PlaySound("weapons/machinegun") Goto Ready } } ACTOR BulletPuff { Projectile +BLOODSPLATTER +NOGRAVITY +RIPPER +RANDOMIZE RenderStyle Add Scale 0.5 Alpha 0.75 States { Spawn: TROO H 4 TROO I 4 Bright Stop } }

In this example, we created an ACTOR called MachineGun that inherits from DoomWeapon to ensure it behaves like a weapon. The machine gun uses the Clip ammo type and consumes 1 ammo per shot. It has an ammo capacity of 30 and is placed in slot number 2.

The States section defines the various states of the machine gun, including the Ready, Deselect, Select, and Fire states. The Fire state is responsible for firing the bullets and playing the associated sound effect.

Additionally, we created an ACTOR called BulletPuff to represent the bullet impact effect. The BulletPuff actor uses the Projectile flag, and in its States section, it displays a brief animation of a bullet impact.

Remember to include these definitions in your DECORATE lump or script file, and adjust the graphics and sound names to match your desired resources.
User avatar
Kontra Kommando
Posts: 944
Joined: Mon Jan 20, 2014 6:46 pm
Location: LV-426

Re: Doom ACS/DECORATE-AI (NLP Engineering Project) *Zip File!*

Post by Kontra Kommando »

Me: create a rocket launcher that fired friendly versions of the lost souls that explode on impact.

ChatGPT
Certainly! Here's an example of how you can create a rocket launcher that fires friendly versions of the Lost Souls that explode on impact using DECORATE:

ACTOR FriendlyRocket : Rocket { Projectile +FRIENDLY +NOGRAVITY +RANDOMIZE DamageFactor "0.5" // Adjust the damage factor as desired DeathSound "weapons/rocketlauncher/explosion" States { Spawn: MNT1 A 0 Bright Loop Death: TNT1 A 0 A_PlaySound("weapons/rocketlauncher/explosion") TNT1 A 0 A_SpawnItemEx("FriendlyLostSoulExplosion", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Explode(128, 128, 0, 0) Stop } } ACTOR FriendlyLostSoulExplosion { Projectile +RANDOMIZE DamageFactor "1.0" // Adjust the damage factor as desired States { Spawn: SKUL F 6 Bright SKUL G 6 Bright SKUL H 6 Bright SKUL I 6 Bright SKUL J 6 Bright SKUL K 6 Bright Stop } } ACTOR RocketLauncherFriendly : RocketLauncher { +WEAPON.SHRAPNEL Weapon.ShrapnelType "FriendlyRocket" States { Ready: MISS A 1 A_WeaponReady Loop Fire: MISS A 1 A_FireCustomMissile("FriendlyRocket") MISS B 1 A_PlaySound("weapons/rocketlauncher/firing") MISS C 1 A_ReFire MISS D 1 A_CheckReload Goto Ready } }

In this example, we created an ACTOR called FriendlyRocket that inherits from the Rocket actor. The FriendlyRocket has the FRIENDLY and NOGRAVITY flags, making it friendly to the player and removing gravity. Adjust the DamageFactor property to adjust the damage dealt by the friendly rockets. The Death state triggers an explosion effect using the FriendlyLostSoulExplosion actor.

The FriendlyLostSoulExplosion actor represents the explosion effect of the friendly rocket. Adjust the DamageFactor property as desired.

Finally, we created an ACTOR called RocketLauncherFriendly that inherits from the RocketLauncher actor. It has the WEAPON.SHRAPNEL flag and specifies the FriendlyRocket as the shrapnel type. Adjust the sound names in the Fire state to match your desired resources.

Remember to include these definitions in your DECORATE lump or script file and adjust the graphics and sound names to match your desired resources.

Return to “General”