[WIP] PyDoom! GZDoom with Python scripting

For in-development or completed ZDoom projects
Forum rules
Got a cool project idea but nothing else? This forum is NOT for you! Put it in this thread instead!
Please read the full rules for more details.

[WIP] PyDoom! GZDoom with Python scripting

Postby Kate » Sat Feb 25, 2012 6:55 pm

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.2 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 ACS scopes), 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.

Unfortunately, there's no way to take screenshots of code, so instead if you want updates on PyDoom, you have a few choices: You can join #ZDoom for real-time updates if you're the talkative IRC type (I also have a #PyDoom on the same network as well), or you can watch the CIA.vc page for commits, which also has an RSS feed in case you're into that sort of thing. I'll also be posting on occasion, usually for releases.

The wiki documents features as they are added, and the BitBucket project page will also have downloads once 1.0.0a is released proper, which I will link to when there are downloads.
Bugs and feature requests go on the issue tracker, where I'm more likely to notice them (you can post them in the thread if you like, but I'll just repost them in the tracker so I can keep track of them more easily).
User avatar
Kate
Will love and tolerate THE SHIT out of you
 
Joined: 15 Jul 2003
Location: New Jersey, US

Re: [WIP] PyDoom! GZDoom with Python scripting

Postby Nash » Sat Feb 25, 2012 9:49 pm

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?
User avatar
Nash
http://twitter.com/ISurvivorGame
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia

Re: [WIP] PyDoom! GZDoom with Python scripting

Postby Bouncy » Sun Feb 26, 2012 4:58 pm

To quote Kate from the IRC for you:
I 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.


Basically, it's a Doomscript. =P
User avatar
Bouncy
All Caps Guy, Maker of Sir Belfin Dramatic Reading Series.
 
Joined: 24 Aug 2003
Location: 2280 Lol Street: The Calamitous Carnival (formerly Senators Prison)

Re: [WIP] PyDoom! GZDoom with Python scripting

Postby Mikk- » Sun Feb 26, 2012 5:03 pm

What's with all of this awesome stuff being posted on the forum as of late? Blackfire? PyDoom? DH-acc?
User avatar
Mikk-
I found a gun in the Laundry Cart, guess someone didn't like the room service.
 
Joined: 30 Jun 2009
Location: Space station base of the UAC

Re: [WIP] PyDoom! GZDoom with Python scripting

Postby Bouncy » Sun Feb 26, 2012 5:08 pm

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? :P
User avatar
Bouncy
All Caps Guy, Maker of Sir Belfin Dramatic Reading Series.
 
Joined: 24 Aug 2003
Location: 2280 Lol Street: The Calamitous Carnival (formerly Senators Prison)

Re: [WIP] PyDoom! GZDoom with Python scripting

Postby Gez » Sun Feb 26, 2012 5:14 pm

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?
Gez
 
Joined: 06 Jul 2007

Re: [WIP] PyDoom! GZDoom with Python scripting

Postby Apothem » Sun Feb 26, 2012 5:53 pm

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? :P



I always liked to think of it as "Pushing the limits". Simply because....... Well WHY NOT?!
User avatar
Apothem
ACS scripting makes my head go BooM!
 
Joined: 29 Nov 2003
Location: Performing open heart surgery on an ACS compiler.

Re: [WIP] PyDoom! GZDoom with Python scripting

Postby Kate » Sun Feb 26, 2012 7:46 pm

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.
Last edited by Kate on Sun Feb 26, 2012 8:09 pm, edited 1 time in total.
User avatar
Kate
Will love and tolerate THE SHIT out of you
 
Joined: 15 Jul 2003
Location: New Jersey, US

Re: [WIP] PyDoom! GZDoom with Python scripting

Postby printz » Sun Feb 26, 2012 8:05 pm

Pink 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.

Aah, I was hoping for an opportunity for people to stop using GZDoom and using PyDoom instead :mrgreen:

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.
Dimension LXXII, that animesque mod with giant rods of plasma shockwaving on imps.
User avatar
printz
Nothing can be shared from the desktop.
 
Joined: 26 Oct 2006
Location: Bucharest, Romania

Re: [WIP] PyDoom! GZDoom with Python scripting

Postby Kate » Sun Feb 26, 2012 8:16 pm

printz wrote:
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.
Dimension LXXII, that animesque mod with giant rods of plasma shockwaving on imps.

And giant-meteor-summoning hammer-wielding sorceresses of light and darkness. With a rapid-fire minigun magnum. ...And Xaser.
User avatar
Kate
Will love and tolerate THE SHIT out of you
 
Joined: 15 Jul 2003
Location: New Jersey, US

Re: [WIP] PyDoom! GZDoom with Python scripting

Postby Kate » Sun Mar 04, 2012 5:47 am

Still working on it. The best thing I like about Python is being able to experiment with it live.
Spoiler: Huge image
User avatar
Kate
Will love and tolerate THE SHIT out of you
 
Joined: 15 Jul 2003
Location: New Jersey, US

Re: [WIP] PyDoom! GZDoom with Python scripting

Postby InsanityBringer » Sun Mar 04, 2012 10:56 am

Hah, you can change actor properties on the fly? This is reminding me quite a bit of unreal, heh.
User avatar
InsanityBringer
 
Joined: 05 Jul 2007

Re: [WIP] PyDoom! GZDoom with Python scripting

Postby Bouncy » Sun Mar 04, 2012 5:01 pm

Oh, the possibilities.

Also, you silly shotgun farg, you. =P
User avatar
Bouncy
All Caps Guy, Maker of Sir Belfin Dramatic Reading Series.
 
Joined: 24 Aug 2003
Location: 2280 Lol Street: The Calamitous Carnival (formerly Senators Prison)

Re: [WIP] PyDoom! GZDoom with Python scripting

Postby Xaser » Sun Mar 04, 2012 7:08 pm

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

Why do I feel so out of my league here? D:
User avatar
Xaser
secretly a supercomputer being a government
 
Joined: 20 Jul 2003
Location: .plɹoʍɹǝʌǝu.

Re: [WIP] PyDoom! GZDoom with Python scripting

Postby cq75 » Sun Mar 04, 2012 10:09 pm

hm... very interesting, especially being able to create new actors in-game.
User avatar
cq75
I've given myself a number, and taken away my name.
 
Joined: 27 Dec 2009
Location: Just beyond the line horizon

Next

Return to Projects

Who is online

Users browsing this forum: DenisBelmondo, Google [Bot] and 9 guests