[WIP] PyDoom! GZDoom with Python scripting
[WIP] PyDoom! GZDoom with Python scripting
So, everyone is posting about their GUI libraries and ACS endeavors, I figured I would announce this as I'm working on it.
Well, what else is there to say? It's GZDoom, but with Python 3.3 as a scripting language. With native string support, classes and objects, generators and functions, dictionaries and lists, it should enable you to do a lot more than ACS currently can, due to the fact that it's leaps and bounds more capable than ACS is.
The interpreter currently lives outside of the game scope, and I intend to take full advantage of this by adding the ability to interface with the menu and console and even the intermission, so your scripts can reprogram many different parts of the game and become an integral part of it, outside of the level scope that ACS currently lives in.
There will be Capsules, special dictionaries which store information with the map, hub, and game (like the [wiki=Scope]ACS scopes[/wiki]), and even the player - which allows mods to persist script info between games, like a per-player mod-dedicated configuration file. I will document them as I add them.
Update: This project has been abandoned and is no longer available. Sorry!
Well, what else is there to say? It's GZDoom, but with Python 3.3 as a scripting language. With native string support, classes and objects, generators and functions, dictionaries and lists, it should enable you to do a lot more than ACS currently can, due to the fact that it's leaps and bounds more capable than ACS is.
The interpreter currently lives outside of the game scope, and I intend to take full advantage of this by adding the ability to interface with the menu and console and even the intermission, so your scripts can reprogram many different parts of the game and become an integral part of it, outside of the level scope that ACS currently lives in.
There will be Capsules, special dictionaries which store information with the map, hub, and game (like the [wiki=Scope]ACS scopes[/wiki]), and even the player - which allows mods to persist script info between games, like a per-player mod-dedicated configuration file. I will document them as I add them.
Update: This project has been abandoned and is no longer available. Sorry!
Last edited by Kate on Wed Jul 02, 2014 1:28 am, edited 7 times in total.
Re: [WIP] PyDoom! GZDoom with Python scripting
As a modder, what crazy features do I have access to with PyDoom that I can't do with GZDoom? For example, does it open up the game like VavoomC does?
- BouncyTEM
- Posts: 3822
- Joined: Sun Aug 24, 2003 5:42 pm
- Preferred Pronouns: He/Him
- Operating System Version (Optional): Windows 10
- Graphics Processor: nVidia with Vulkan support
- Location: 2280 Lol Street: The Calamitous Carnival (formerly Senators Prison)
Re: [WIP] PyDoom! GZDoom with Python scripting
To quote Kate from the IRC for you:
Basically, it's a Doomscript. =PI do intend to go a lot farther with Python than ACS already has access to using structured modules, so you can directly access things like actors, sectors, and lines without requiring explicit tags or ids, and also plan to add some non-level stuff like the currently hardcoded intermission to make it easier to replace/modify rather than having to supply your own mapinfo and level to do it. Being able to define your own behavior for actor class types, custom action functions of course, being able to read certain level properties, usually mapinfo stuff, that ACS doesn't yet have the ability to read because of its' inability to receive strings, and that's a bunch of what's on the todo so far.
Re: [WIP] PyDoom! GZDoom with Python scripting
What's with all of this awesome stuff being posted on the forum as of late? Blackfire? PyDoom? DH-acc?
- BouncyTEM
- Posts: 3822
- Joined: Sun Aug 24, 2003 5:42 pm
- Preferred Pronouns: He/Him
- Operating System Version (Optional): Windows 10
- Graphics Processor: nVidia with Vulkan support
- Location: 2280 Lol Street: The Calamitous Carnival (formerly Senators Prison)
Re: [WIP] PyDoom! GZDoom with Python scripting
Enough people getting fed up with Graf's constant <no's> of useful features because of personal preference the lack of abilities for mods to do what they want so people taking it upon themselves to make the features possible? 

Re: [WIP] PyDoom! GZDoom with Python scripting
Only PyDoom (and Tower of Babel) will fit that one since both others do not modify G)ZDoom.
Looking at CIA commit messages, it seems you're cherry picking bugfixes but aren't otherwise keeping up with the ZDoom codebase, are you?
Looking at CIA commit messages, it seems you're cherry picking bugfixes but aren't otherwise keeping up with the ZDoom codebase, are you?
- Apothem
- Posts: 2070
- Joined: Sat Nov 29, 2003 7:13 pm
- Location: Performing open heart surgery on an ACS compiler.
Re: [WIP] PyDoom! GZDoom with Python scripting
Bouncy wrote:Enough people getting fed up with Graf's constant <no's> of useful features because of personal preference the lack of abilities for mods to do what they want so people taking it upon themselves to make the features possible?
I always liked to think of it as "Pushing the limits". Simply because....... Well WHY NOT?!
Re: [WIP] PyDoom! GZDoom with Python scripting
To be honest, yeah, I'd rather not try and keep up with the current ZDoom, because it usually updates so fast that I'd spend more time patching than I would actually coding and when I start picking apart the internal systems, it'll only wind up slowing down progress if anything.
I'd rather a stable release than a bleeding-edge one. Everything I want to do will be covered by scripting anyway.
I should probably mention I spawned this out of requirement for scripting to advance another project I'm working on, called Dimension 72, probably never heard of off of IRC until now. So one can guarantee that I'll be extensively scripting what I can and that what I implement will be well-tested, at least. As for why I started with a recent revision instead of the release, the answer is because that was the revision I last used my 72 project on, so I can use 72 as testing material without backpedaling changes to make it work again.
When will I release? I'll release once I have some basic callbacks and modules implemented. It would be a waste to post binaries of a script that can only print to the console, so I'm first going to build a small library of essential built-ins so that it's easier to get a good idea of what this thing will be able to do, at least ACS-equivalent functionality, and see how others like it. If people like it, I'll keep updating.
I'd rather a stable release than a bleeding-edge one. Everything I want to do will be covered by scripting anyway.
I should probably mention I spawned this out of requirement for scripting to advance another project I'm working on, called Dimension 72, probably never heard of off of IRC until now. So one can guarantee that I'll be extensively scripting what I can and that what I implement will be well-tested, at least. As for why I started with a recent revision instead of the release, the answer is because that was the revision I last used my 72 project on, so I can use 72 as testing material without backpedaling changes to make it work again.
When will I release? I'll release once I have some basic callbacks and modules implemented. It would be a waste to post binaries of a script that can only print to the console, so I'm first going to build a small library of essential built-ins so that it's easier to get a good idea of what this thing will be able to do, at least ACS-equivalent functionality, and see how others like it. If people like it, I'll keep updating.
Last edited by Kate on Sun Feb 26, 2012 7:09 pm, edited 1 time in total.
Re: [WIP] PyDoom! GZDoom with Python scripting
Aah, I was hoping for an opportunity for people to stop using GZDoom and using PyDoom insteadPink Silver wrote:To be honest, yeah, I'd rather not try and keep up with the current ZDoom, because it usually updates so fast that I'd spend more time patching than I would actually coding and when I start picking apart the internal systems, it'll only wind up slowing down progress if anything.

Dimension LXXII, that animesque mod with giant rods of plasma shockwaving on imps.Pink Silver wrote: I should probably mention I spawned this out of requirement for scripting to advance another project I'm working on, called Dimension 72, probably never heard of off of IRC until now.
Re: [WIP] PyDoom! GZDoom with Python scripting
And giant-meteor-summoning hammer-wielding sorceresses of light and darkness. With a rapid-fire minigun magnum. ...And Xaser.printz wrote:Dimension LXXII, that animesque mod with giant rods of plasma shockwaving on imps.Pink Silver wrote: I should probably mention I spawned this out of requirement for scripting to advance another project I'm working on, called Dimension 72, probably never heard of off of IRC until now.
Re: [WIP] PyDoom! GZDoom with Python scripting
Still working on it. The best thing I like about Python is being able to experiment with it live.
Spoiler: Huge image
- InsanityBringer
- Posts: 3392
- Joined: Thu Jul 05, 2007 4:53 pm
- Location: opening the forbidden box
Re: [WIP] PyDoom! GZDoom with Python scripting
Hah, you can change actor properties on the fly? This is reminding me quite a bit of unreal, heh.
- BouncyTEM
- Posts: 3822
- Joined: Sun Aug 24, 2003 5:42 pm
- Preferred Pronouns: He/Him
- Operating System Version (Optional): Windows 10
- Graphics Processor: nVidia with Vulkan support
- Location: 2280 Lol Street: The Calamitous Carnival (formerly Senators Prison)
Re: [WIP] PyDoom! GZDoom with Python scripting
Oh, the possibilities.
Also, you silly shotgun farg, you. =P
Also, you silly shotgun farg, you. =P
Re: [WIP] PyDoom! GZDoom with Python scripting
Oh wow, that's cool -- didn't realize it had come along so far already. Modifying properties realtime seems like an interesting venture... and yes, very Unreal-y. 
Also late, but

Also late, but
Why do I feel so out of my league here? D:Pink Silver wrote:And giant-meteor-summoning hammer-wielding sorceresses of light and darkness. With a rapid-fire minigun magnum. ...And Xaser.
- cq75
- Posts: 1212
- Joined: Sun Dec 27, 2009 9:28 pm
- Graphics Processor: nVidia with Vulkan support
- Location: Just beyond the line horizon
Re: [WIP] PyDoom! GZDoom with Python scripting
hm... very interesting, especially being able to create new actors in-game.