Welcome to the POSSESSION.jp!

We are the global gaming community from Japan. By registering with us, you'll be able to discuss, share and private message with other members of our community.
POSSESSION は日本発祥のゲーミングコミュニティです。 私たちのコミュニティに参加して、様々なディスカッションや情報共有をしてみましょう。

SignUp Now!

[6/3/2019] Monster Scripts - Simulates your boss AI for you

Zero

Member
Joined
Jan 5, 2018
Messages
45
Steam
View
Sorry for disappearing without mentioning anything. Life sucks for some people including me. I regretted over my decision to try develop a lossless image compression algorithms. It's already been 2 weeks since I'm free. It just that I need to tune my mind back to normal before I can do high-speed development once again.

The last few things I can remember that needs to be mentioned about the scripts before my sudden disappearance few months ago is that;
  1. Server tickrate affects the simulation of AI. There's a need to test the script on proper server before thinking of measures to solve the problems or changing mechanics. (Namely targeting, orientation and movement systems)
  2. All vscripts are server-side.*
  3. I need to remove the so called ultimate attack mechanic I implemented because of the first point.
I've tested it with a friend of mine before I disappeared. All I can say is that, the first point might not be accurate because my internet was not stable when I tested it while the second point is true. I only included bahamut model and configurations in the map file when tested.

* Further explanation is that, no matter how you slice it, all players couldn't execute the script but server. Therefore, mappers can simply call server scripts by calling any function name that is provided by server admins. You don't even need to include it in your map. Send your scripts to server admins instead of including it in your maps. This makes anyone who likes to decompile your map learns nothing about the scripts. Only the server admin knows.
As an example;
Let's say a server admin made a vscript to kill all counter-terrorists in his server. He gave you the function name "KillAllCT" to be called in your map. Instead of bothering with all these logic and trigger hurt entities, you just need to make a trigger that call the script function "KillAllCT". When your map call this function, all living counter-terrorist players in your map will die.

Scripts will be uploaded before 16th March 2019. I'm not continuing my map since I've lost my motivation due to shits happened to me all these months. Also, don't give too much expectations in v1 scripts. Server tickrate probably affects the AI simulation alot. I might need to opt for hybrid method for server that use lower tickrate than 64 if the scripts is not playable on posession server.

Hybrid method refers to server-side + client-side monster simulation. Most if not all of possession players have already seen the so called client-side method. All of moving bosses you've seen in the server up until now can be called as client-side because everything is simulated in player's computer. All of those bosses are simulated with 64 tickrates ignoring client tickrate in settings if I'm not mistaken on how the game actually works internally.

So, how will I do the hybrid method if current script is not playable on possession server? I need to remove most of the AI simulation mechanics that depends on server tickrate. Especially basic targeting and orientation. (including movement maybe) and replace these with map entities. This will remove the advantage of using lesser dynamic entity slots.
Buffs, debuffs, skills, attack patterns, animations, gfx, and health counter display will be maintained since it's not server tickrate dependent and too convenient to all mappers.

I'll probably try mapping again after I fix my mood. What you can expect from V2 scripts should V1 scipts not being playable is the scripts' handiness on removing most of your workloads in setting up monsters and spawning them. That's the V2 target for using hybrid method should V1 fail to fulfill it's purpose of simulating AI in a server with lower tickrate.

Purpose of Monster Scripts
Monster Scripts are meant to make it easier for mapper to create monster, spawn them, simulate their AI and stuffs. It's also meant to introduce new type of map known as "raid" map for CSGO players.

Features

1. Lesser Amount of Dynamic Entities
By using monster scripts, you can reduce the amount of DYNAMIC entities you're creating in the map. Making it lot more easy for you to add more entities since CSGO entity limit for dynamic entities is.. 2047. Seems alot? No no no. I didn't even include player's entities into the calculation yet. So, each player use 15 entity slots. 64 x 15 = 960. 2047 - 960 = 1087. Heck, almost half of the slots already being used in a full 64 players server which makes the amount of available slots is much more lesser for mappers to use.

2. Configurations
You no longer need to create too many entities for each type of boss or monster.
Everything has become simple by making configuration script files to be used as monster's settings.
Just create a new script folder for each type of monster settings you going to make and copy paste the template and mess around with the values.

3. Targeting System
No more trigger brushes. The script will deal with the targeting itself for both attacks and skills.
Searching for players within a distance? Attack player with highest damage? No problem. The system will do itself.

4. Orientation and Movement
With script, now the monster can point itself to it's target automatically. No rotating brush needed.
And, with one thruster, the script can also move in four directions. Forward, Backward, Left and Right*.

5. Attacks and Skills
To-do.

6. GFX and SFX
To-do.

7. Health and Overhead Health Bar Display
Math counter? HIT BASED health counter?? Trigger Multiple??? You no longer need to make those things. The monster system have those things up and running. You only need to make a single func_physbox to be used as hitbox. What's more, the AMOUNT of damage dealt to the hitbox will also be damage dealt to monster's health, making it weapon oriented damage*. You can also set damage multipler in the configurations.
To-do for Overhead Health Bar Display Descriptions.

*Damage multiplier applied on hitbox instead of individual weapons. Individual weapon damage multiplier functionality requires plugin to do so.

8. Animations
Idle Animation? Moving Animation? Attack Animation? SKILL ANIMATION? FLYING? DYING? Screw you input and output windows.
Now you don't need to setup those I/Os anymore. Let the script do those things. What you need to do is mess around with animation's configuration for the monster.

9. Patterns for Attack, Skills, and Movement
To-do

10. Scripting and Dialogues
To-do

Suggestions
None ATM

Changelist
v1.0 - Between 7th March to 16th March
 
Last edited:

Zero

Member
Joined
Jan 5, 2018
Messages
45
Steam
View
  • Thread Starter Thread Starter
  • #2
Configuration Folder Structure, File Purpose, Template

Configuration Folder Structure
vscripts/monster/configuration/<individual monster setting folder*>/
  • include.nut
  • info.nut
  • stats.nut
  • animation.nut
  • pattern.nut
  • templates.nut

*You can name the folder such as "goblin", "orc", "dragon" or "ossan" but make sure the name doesn't contain any space. Use underscore "_" instead.

Explanation on each configuration file

include.nut

info.nut

stats.nut

animation.nut

pattern.nut

template.nut
 
Top