[ZScript] Project Absolam v0.1.1 - Dungeon Crawler Tools

Post your example zscripts/ACS scripts/etc here.

[ZScript] Project Absolam v0.1.1 - Dungeon Crawler Tools

Postby Nero » Wed Jul 22, 2020 6:35 pm

Project Absolam?
Project Absolam v0.1.1
I started this project about 4 years ago, so honestly I don't remember why I named it that, but it's a codename.

Project Absolam started out as a question: "can you make a game like Diablo in GZDoom?" At the time I said no because of the limited lighting system; I wanted to use models before dynamic lights understood vertices. So the project got shelved until I got laid off due to the slowdown the pandemic caused in manufacturing. The shop I worked at cut 50% of its 2nd shift in an afternoon; notice the past tense there. Anyway, bored, a few days into quarantine I started looking at old projects and thought I'd give Project Absolam a look. And my answer to the original question is now a resounding, yes!

Tools for the Crawling of Dungeons!
The circles...oh the circles!

The Camera
Besides Diablo, Dungeon Siege should also be mentioned. I haven't played it, I should, but my knowledge of it comes from Ross Scott. From what I have seen, the behavior of Project Absolam's camera is similar. While offering a birds-eye view, it remains attached to the player and will face the same direction as the player at all times. Or maybe it's a bit like a Bethesda game camera. What's important is that the behavior can be customized.
  • Pitch control
  • Height adjustment - can be keybound too
      This is sort of a gimbal adjustment. The camera is not actually attached to the player, instead the camera is attached to a secondary point that orients itself behind the player. This allows the camera to swing vertically 180 degrees along an arc to change the height of the camera while maintaining its pitch.
  • Sync with players look
  • Can be toggled between 1st and 3rd person

The Crosshair
Also called the reticule, this glob of code and models was conceived of as a way to help target enemies from an unusual observation position.
  • Customizable search radius
  • Lock until death behavior - the crosshair won't go idle until the current target is destroyed
  • Customizable aim tolerance angle - how far from the edge of a target can the player aim before the crosshair goes idle
  • Projectile leading - secondary reticules are created which indicate where to aim to hit a target with a projectile firing weapon. Does literal ballistic leading calculations.
  • Interface for mod weapons and monsters - this thing only works with vanilla stuff right now but there is a way!
  • Actually a functioning proof-of-concept of the extension system

The Extension System
Basically the player is responsible for spawning everything that this project does - or at least the parents of everything. Rather than hard code a bunch of A_SpawnItemEx calls into the player, Project Absolam uses the awesome power of event handlers to "register" modules with the core system through a net event. This is done for both spawning the object(s) and outputting debug info.

Plans for the Project
  • One thing I skipped over is variable arguments for the extension system. Everything is there but nothing uses them, so I thought why not use them to control the A_SpawnItemEx arguments? The original intent was left undefined for modules to do with as needed, so likely I'll set up room for flexibility there.
  • I still need to finish filling out the weapon and monster lists for the other vanilla games. Right now only Doom is done.
  • Decide what to do about flying monsters - I haven't tested this at all yet.
  • Some sort of yaw control for the camera
  • Improved debug output, it's a functional mess
  • Better color controls for debug messages - I gotta be missing an enum somewhere! Help?!

Download the full packages from my Google Drive. The Github repos only contain the source code.

What in the World?
The world package is the files for the map you see in the demo video. They aren't necessary but they're available if anyone is interested. Do as you please with the files, but credit please, I did make those models.

Load Order and Requirements
Project Absolam is also the origin of Tooltips. The camera has enough options that might be confusing enough that I wanted tooltips for them. So Tooltips is required otherwise Project Absolam will not load.

Load Order
Project Absolam packages need loaded in the correct order otherwise there will be problems. Use a mod loader such as ZDL to make this easy. Below is the correct order for Project Absolam Packages.
  1. Tooltips
  2. the World
  3. the Camera
  4. the Crosshair
  5. any other extension module
  6. any other mod reliant on Project Absolam

Compatibility With Vanilla Games and Mods
Vanilla Games:
Right now only Doom is supported, but the framework is there to support the other games.
Not without compatibility patches. Project Absolam creates its own player class, therefore any other mod doing the same will conflict. Also, the projectile leading system also makes some assumptions about both vanilla weapons and monsters, which any mod messing with will likely screw up the ballistics math. Finally, the same system does not have any way to gather the required information about weapons and monsters added by mods unless the provided interface is used.

Spoiler: "Compatibility Info for Mods"

Use, Intent, Whatever
Project Absolam isn't done, as you can see by the feature list. I haven't even taken time to make a nice demo vid like I usually do, I just slapped up the quick capture I made for the Editing post I'd made about crazy angles and trigonometry I'm really bad at. Still pretty much shows what all this does.

So I'm not going anywhere fast with this project so I'm making it available to anyone else who might be interested in any of it. All of the plans for the project are on a "when I get to it" sort of timescale. That's it, hope you, yes you, like or hate or just passively grunt at Project Absolam, idk, it's a thing, here it is. Bye! :P

Spoiler: "Changelog"
Last edited by Nero on Tue Aug 04, 2020 10:54 am, edited 2 times in total.
User avatar
Royal Boredom....Why can't I do this in Windows?
Joined: 06 Sep 2006
Location: Middle of Nowheresville Il.

Re: [ZScript] Project Absolam v0.1 - Dungeon Crawler Tools

Postby Cherno » Thu Jul 23, 2020 12:56 am

It's a nice idea but would probably benefit a lot from using models instead of sprites.
User avatar
Joined: 06 Dec 2016

Re: [ZScript] Project Absolam v0.1 - Dungeon Crawler Tools

Postby Nero » Thu Jul 23, 2020 2:51 pm

My apologies, I'm proud of my debug output; those dots represent vector points and I left them on in the original video. I turned them off for the new demo; found a bug too, I shouldn't be getting any text on the screen with debugging off. But yes, the crosshair parts are very much models, just flat planes.
User avatar
Royal Boredom....Why can't I do this in Windows?
Joined: 06 Sep 2006
Location: Middle of Nowheresville Il.

Return to Script Library

Who is online

Users browsing this forum: No registered users and 0 guests