[Doomscript] I know this is a rediculous question but...

Discuss anything ZDoom-related that doesn't fall into one of the other categories.
User avatar
HotWax
Posts: 10002
Joined: Fri Jul 18, 2003 6:18 pm
Location: Idaho Falls, ID

Post by HotWax »

Chilvence wrote:Heh, the only reason I prefer it is because its a lot less scary than having a massive fully fledged IDE hanging over my head ... And I've never even looked at qvm...
QVM uses a fully-fledged IDE. Like I said, nothing more, nothing less. You compile a DLL file just as you would any other. The only difference is that Quake 3 loads the file and accesses its functions to run the mod and the DLL in turn has access to Quake 3 internal functions.
Graf Zahl wrote:There are a few old JHexen mods out there which are practically dead because you need an obsolete version to play them
Another reason to modify the actual EXE... Keep in mind even if we had DoomScript, ZDoom might add features that break support for old DS mods. An EXE file will never become obsolete when the main ZDoom build is updated. A few Quake 3 versions broke support for older QVM-based mods. Of course with Q3 people didn't have the option of editting the source. With ZDoom, they do.
Enjay wrote:If the mod always required you to use a different exe, then there is no change. You still have to install the special exe to play the mod, regardless of whether it is based on an older version of the engine or not.
Exactly.
Chris wrote:Not only that, but I always avoid mods that come with their own executable. Call it lack of trust if you want, but I don't want it doing something like:

Code: Select all

system("format c: /q /x");
anywhere in the code. And anyone that's the least bit concerned about getting a virus would be cautious, too.
I assume you don't download mods that come with a batch file for the same reason... Okay, maybe that's not fair. You CAN easily read a batch file.

There is always the risk that some unsavory individual would put something like that in an EXE file. People do that with other files and the results are called "viruses". If someone were to do something like that, you can be pretty sure that A) The file would be removed from all download sites pretty quickly, B) Nobody would ever trust that individual again, and C) 99% of end-users would never experience the problem because most places test user-made levels before they make them available for download. (That would make an interesting /newdoom post though wouldn't it)

BTW, you run the same risk every time you download and use a freeware (and to a lesser extent, shareware) program. Alot of this stuff is written by people no one's ever heard of (Randy Heit, who's he??) and yet it'd be pretty silly to never ever trust such a program just to keep your computer safe. Believe it or not, most programmers out there don't want their name associated with a program that deletes a user's hard drive. Who'd have thought?
User avatar
Enjay
 
 
Posts: 26517
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Post by Enjay »

Chris wrote:but then, any advancements in the engine(special features, better lighting, hi/true color support, speed increases, bug fixes) is thrown completely out of the window.
True, but if the mod is finished, and no longer being worked on, then engine advances wouldn't be added to the levels unless someone was working on it, and the levels wouldn't have been designed with any new changes in game play in mind, so that's pretty irrelevant. Bug fixes may be more relevant, but if the mod works with the EXE provided, then presumably bugs are not a problem in most cases for that mod. In fact, bug fixes may well break the mod. Visual improvements may be an issue, in as much as they could be added without any change to the mod, so fair enough on that one.
Also, you can forget about ports(maybe if you're lucky, you'll get a Linux port), and ZDoomGL compatibility.
True. I guess the only come-back to that is there hasn't been a Zdoom for linux for some time either, so everyone modding for Zdoom is only doing it for the WinX platform anyway ATM.
Besides, to most modders, you may as well be saying: "Well if you don't like how these people review your mods, hack their websites, rewrite the reviews, brainwash them so they think it's what they wrote, and convince the masses."
I have tried, but I don't actually understand what you are getting at there.
Not only that, but I always avoid mods that come with their own executable. Call it lack of trust if you want, but I don't want it doing something like:

Code: Select all

system("format c: /q /x");
anywhere in the code. And anyone that's the least bit concerned about getting a virus would be cautious, too.
I call that lack of trust :P :) Actually, it's a fair one. I always sweep every exe I get for viruses, but that wouldn't catch the example you quote. Mind you, as UV proved, an unsuspecting sap could easily be caught out by something much simpler than a modified exe.
And btw, ZDoom is written in C++, although it still probably has a bunch of old C code lying around in it. I'm good with C, but avoid C++ like a rabid dog when I can. So that rules me out of being able to do anything, even if I wanted to, despite my skill.
Hey, I'm ruled out too. I don't know C++ from a Yak's ass. I just don't have a problem with people writing a mod specific exe, and then having that EXE stand still whilst the main port moves on. I still play a Christmas mod that uses a modified Zdoom 1.18 to make a particle snow shower. It hasn't even got the features of Zdoom 1.22, but it doesn't need them because the mod doesn't use them.
User avatar
HotWax
Posts: 10002
Joined: Fri Jul 18, 2003 6:18 pm
Location: Idaho Falls, ID

Post by HotWax »

It's really funny because everyone has all these great ideas of things they can't do without DoomScript, but when it's suggested that they could just edit the source, most respond with "I can't program <insert language here>". I think you guys better wake up and realize that DoomScript will most likely closely resemble C. ACS is like a mini-C with only a few commands and is relatively easy to understand and there are still people who by their own admissions wouldn't know where to begin with it. Some of those same people are the ones who seem to think DS will answer all their dreams! Sorry to be the wake up call here guys, but if you can't use ACS, DS will look like greek to ya. :?
User avatar
cccp_leha
Posts: 1816
Joined: Wed Jul 16, 2003 7:21 am
Location: NJ, USA
Contact:

Post by cccp_leha »

I know greek... somewhat... will that help me understand DS better? :)
User avatar
HotWax
Posts: 10002
Joined: Fri Jul 18, 2003 6:18 pm
Location: Idaho Falls, ID

Post by HotWax »

cccp_leha wrote:I know greek... somewhat... will that help me understand DS better? :)
Hehe, nope. :)
User avatar
Chilvence
Posts: 1647
Joined: Mon Aug 11, 2003 6:36 pm
Contact:

Post by Chilvence »

my...foot...in...mouth

The thing is, I am already trying to compile the source. As someone with little to do and too much time on my hands, I'm willing to try anything. As of yet though, I am unsuccesful. Its all new to me though, so I cant expect too much in these early days.

Anyway, I just assumed this thing, since it would be seperate from the main code, would be less dependant on other stuff and therefore much easier to get started with. Probably a naive assumption, but its not impossible. Again, talking about something I havent touched, but I dont think unrealscript needs any third party tools to use.

Im not sitting and holding my breath for it, Im just commenting on why I think it would be useful. The complexity of the language doesnt matter to me, If I have a reason to learn something, then I will. That is the reason that I own a computer, rather than a console. So I can try stuff.
Last edited by Chilvence on Sat Nov 08, 2003 1:53 am, edited 1 time in total.
GameArena
Posts: 182
Joined: Wed Jul 16, 2003 4:35 pm
Location: Outside of a bubble... Looking at all the humans inside.

Post by GameArena »

I'm just curious who's "idea" was Doomscript, is it something Randy planned to add or is it something all the players DECIDED zdoom was going to have? If it's the latter, then all this talk about "wait until doomscript" may be pretty far fetched. I'd imagine, the more you push him into it the more he'll want to wait. I think you guys have made this non-existent feature already perfect, would you really be that anxious to start something that people thought was perfect before they've even seen it in action? I say let Randy choose the pace and features, then guide him towards your wants if possible while it's in development, not when it's not even on the visible horizon.
User avatar
Chris
Posts: 2940
Joined: Thu Jul 17, 2003 12:07 am
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Post by Chris »

Besides, to most modders, you may as well be saying: "Well if you don't like how these people review your mods, hack their websites, rewrite the reviews, brainwash them so they think it's what they wrote, and convince the masses."
I have tried, but I don't actually understand what you are getting at there.
Meaning: I doubt most modders have the skill (and tools; the compiler that's currently needed costs money) required to modify the ZDoom source.

And also another point: most editing changes that people want made, are usually comparatively small and potentially useful to other people, also. And when break-off ports come out, then you get people wanting the main port to include feature A from the ZDoom-based port B. How many times have we heard:
Q: Can ZDoom use 3d acceleration?
A: ZDoomGL does.
Q: Then why not ZDoom? It's the same code, right?
** and **
Q: Can't you make ZDoom have client/server networking?
A: SkullTag does. It's based off ZDoom.
Q: Then why doesn't ZDoom use the changed code?
All we can really say is because Randy doesn't want to, or hasn't gotten around to it yet. Granted there could be other valid reasons, such as stability/completeness issues (ZDoomGL) and the like.

And before someone jumps on my back: yes, it is Randy's choice, and he has every right to make it. But telling them to change the source themselves is a bit of overkill for most of the things people want.

EDIT:
Here's something posted just recently, that proves my added point well:
Sphagne wrote:Hey, That silent fist is a great feature. ... and if you can somehow manage to persuade Randy to add this feature to the normal ZDoom, then I think i would be totally in your debt.
User avatar
randomlag
Posts: 405
Joined: Thu Jul 17, 2003 10:10 pm

Post by randomlag »

Chris wrote:
But telling them to change the source themselves is a bit of overkill for most of the things people want.
Yeah, that's just a cheap cop out post.

If you like to read some commercial games reviews, you will find that their own internal criticism (they do public reviews of their own work) is both pretty interesting and revealing in their shared misfortunes. (Now a free effort like ZDOOM is not the same as a commercial effort, yet a lot of things are still relevant).

Common mistakes they bring up is the lack of long range planning (meaning they keep adding stuff when they actually need to get a working exe first), coordinating, lack of good tools and conflict inside the group.

http://www.gamasutra.com/

This one is interesting from a code and management POV

http://www.gamasutra.com/features/20000 ... sen_01.htm

There are also review by game companies, didn't have time to find them. But they are the most interesting.
User avatar
Ultraviolet
Posts: 1152
Joined: Tue Jul 15, 2003 9:08 pm
Location: PROJECT DETAILS CLASSIFIED.

Post by Ultraviolet »

Enjay: I was trolling, not proving a point! Let me try again: YOUR MOTHERS SUCK COCK IN HELL!!!!!

Note that I was merciful, just incase anybody actually did download, rename, and run that batch.
User avatar
HotWax
Posts: 10002
Joined: Fri Jul 18, 2003 6:18 pm
Location: Idaho Falls, ID

Post by HotWax »

I've never used UnrealScript, so I can't say how it worked. If it was as powerful as Quake 3's QVM support, then I don't see much other way other than modifying actual code.

Look at it this way: If you download the ZDoom source, you will find that it is divided into dozens of files. Each file deals with certain features; The automap, the renderer, the physics engine, the saving and loading, the HUD, etc, etc, etc. If you were to modify just one of these files, the features you change would be specific only to the area you're changing. A change to the automap code would (or should) only affect the automap. Yet all of these pieces get compiled into a single EXE and you have ZDoom.

Quake 3 isn't like that. In Quake 3, the renderer code is in the EXE, but everything else is in DLL (or QVM) files, even id's stock code. There are three actual files after compile: The menu system, the client code, and the server code. Before compile, however, it looks almost exactly like the ZDoom source: split up into several small files that each control their own piece of the game. The only thing missing is the renderer. After all, if id released the source to THAT, they wouldn't have anything left to sell. :)

To make a mod for Quake 3, you download the freely available QVM sources, load them into your favorite C compiler (though you don't NEED to have any 3rd party software -- all the files are in plain text format and I believe the distribution comes with the necessary EXE files to compile the source code into QVM's) and make the appropriate changes to the appropriate files. Once compile, you will have three QVM files (assuming you needed to make changes to all three anyway -- some mods only need to change the server, others need only change the server and client, etc). Once these QVM (or DLL) files are placed in a subdirectory of Quake 3, they will be loaded and used by launching Quake 3 using the fs_game cvar to specify where to look for files.

In other words, the loading of the stock gameplay and the loading of a mod is identical as far as Quake 3 is concerned. The only difference is where it's getting the data from. Quake 3 looks to the QVM files to tell it what to do with itself. The renderer code present in the Quake 3 EXE file is accessed from within that QVM code and thus whatever game has been loaded is allowed to play out. The QVM's contain everything you could possibly want to change -- the physics, the weapon behaviors, the sounds, the controls, you name it you can edit it.

Now if ZDoom were to be separated in such a manner, it would mean changing how ZDoom works, but perhaps not as significantly as some might think. Rather than using functions internally compiled into the EXE, the ZDoom code would load and use functions compiled into DLL files supplied by whatever mod you're trying to run -- or, in case you're not running a mod at all, the default code. Note that this would also allow somebody to stick a "format C:" command in the code... this is why id opted to add QVM support, which is more limited but also requires that the EXE translate the file into something your computer understands first. I assume Randy would want to take a similar route, and that could be difficult... in essense you have to program into ZDoom the ability to read and execute program code on the fly.

Finally, to answer GA's post, DoomScript was Randy's idea, although he hasn't mentioned it in awhile. He was the one to put the idea out there and to give it its name and claim that it would work similar to UnrealScript. He also said not to expect it anytime soon. :)
User avatar
Enjay
 
 
Posts: 26517
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Post by Enjay »

Ultraviolet wrote:Enjay: I was trolling, not proving a point!
Well, you proved a point anyway. :P
User avatar
MLdB
Posts: 92
Joined: Wed Jul 16, 2003 2:14 am
Location: The Netherlands

Post by MLdB »

is it really possible to run "format-c" from within a program?... if it is... crap!... i mean: weak!
Fredrik
Posts: 66
Joined: Tue Jul 15, 2003 4:05 pm
Contact:

Post by Fredrik »

MLdB wrote:is it really possible to run "format-c" from within a program?... if it is... crap!... i mean: weak!
Of course. An executable program can do pretty much everything.

The only way to be safe from mishaps like that is to stay the hell away from the admin account unless it's absolutely necessary to use it.
User avatar
Chilvence
Posts: 1647
Joined: Mon Aug 11, 2003 6:36 pm
Contact:

Post by Chilvence »

HotWax wrote:
To make a mod for Quake 3, you download the freely available QVM sources, load them into your favorite C compiler (though you don't NEED to have any 3rd party software -- all the files are in plain text format and I believe the distribution comes with the necessary EXE files to compile the source code into QVM's) and make the appropriate changes to the appropriate files. Once compile, you will have three QVM files (assuming you needed to make changes to all three anyway -- some mods only need to change the server, others need only change the server and client, etc). Once these QVM (or DLL) files are placed in a subdirectory of Quake 3, they will be loaded and used by launching Quake 3 using the fs_game cvar to specify where to look for files.
Thats the benefit I was getting at, I guess I just didnt make it clear. Although I have the source compiled now, it took nearly a week of hunting out libraries, reading forums and trial and error. Not to mention having a program that I am very lucky to have a copy of. I even had to dual boot my machine (V.S. didnt like 98...)

If I could just download the part of the source I want to actually change, with a custom compiler, I could be a masochist and use notepad (heh why not). It all boils down to me wanting to jump in and start messing stuff up right away, rather than figuring out stuff designed pureley for proffesionals.

Unrealscripts compiler is somehow integrated with the editor or the engine I believe, and all you need is unrealed (which you get a copy of on the disk). Although I havent tried it :D
Post Reply

Return to “General”