Zandronum Chat on our Discord Server Get the latest version: 3.2
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001315Zandronum[All Projects] Suggestionpublic2013-04-04 14:172014-07-15 22:53
ReporterTribeam3rd 
Assigned To 
PrioritynormalSeverityfeatureReproducibilityhave not tried
StatusclosedResolutiondenied 
PlatformMicrosoftOSWindowsOS VersionXP/Vista/7
Product Version1.0 
Target VersionFixed in Version 
Summary0001315: Lua
DescriptionYes, add lua support.

- Whys:
Fast,
Already built,
Adding support for it shouldn't be that hard,
No compiling,
Could be used to supercede acs, decorate, and all of the current text lumps that become a clusterfuck in big projects,
Execute scripts at runtime, no need to restart the game to see changes,
1 solid script language for everything,
No more worrying about keeping up with zdoom,


- Some explaining
Trying to keep up with zdoom is futile, and is more work than it's worth imo. Constantly adding their features and working hard to get them working on the current network structure seems to always cause problems. Instead of constantly improving a broken system, add a new one. Actors, map manipulation, textures, animations, hud, weapons, models, GL, sound, music, secure file access(more on this in a min), everything controlled under 1 solid language, even in multiple files like zdoom's current text lumps if you wanted. You dont have to get rid of the old systems, keep them there, just stop supporting them, like what decorate did to dehacked.


- Why not make a new C like langauge?
I hear all the devs saying this, but will you ever do it? No. It'll end up like doomscript, an idea that never sees the light of day, also instead of putting all that work into making your own langauge when lua already exist, and will be more powewful than anything you'll probably come up with. I've suggested this idea in the IRC a lot, and devs seem to always shoot down the idea becuase they are blinded by an opinion that a new script language has to be C like. Denying a new mod experiance due to a personal preferance doesn't seem productive to me, and such a plan will never happen in the first place.


- Security
Lua can be a security issue.
Adding lua should be done on a whitelist basis, and only allowing lua functions that you know are safe.
File access should only be allowed in a specific folder in the zandronum root.
More info on safe lua code here(sorta):'http://lua-users.org/wiki/SandBoxes [^]'


- Multiplayer
This should work on a client/server like architecture, maybe 2 files that can include multiple other files, one for clientside only, one for serverside only,


- It's not doom like
What in Zandronum is? Seriously Zandronum/Zdoom is not doom anymore, at this point it is it's own engine based on ID tech1.


- Misc
This will give you the chance to plan out and setup a new mod experiance, zdoom's constantly changing and adding new features on top of old ones has made a mess of things.


As a lua developer, I see great potential for this idea.
Steps To Reproducen/a
Additional Informationn/a
Attached Files

- Relationships

-  Notes
User avatar (0006209)
Ijon Tichy (reporter)
2013-04-04 16:13

And cut the already divided ZDoom/Zandronum mod base even further apart?
User avatar (0006210)
Watermelon (developer)
2013-04-04 16:22

What would this allow us to do? What features could be implement?
User avatar (0006212)
Tribeam3rd (reporter)
2013-04-04 16:58
edited on: 2013-04-04 17:08

"And cut the already divided ZDoom/Zandronum mod base even further apart?"
I don't see an issue with that, giving the fact that they are so far apart anyway.

"What would this allow us to do? What features could be implement?"
Pretty much anything, the features are only limited by the devs' decisions.
For example, if the devs wanted to they could combine all text lumps into 1 single language, including ACS and Decorate, and would be far more powerful than both languages ever code be.
Edit: Wow I'm just typing badly today -_-

User avatar (0006213)
Ijon Tichy (reporter)
2013-04-04 17:54
edited on: 2013-04-04 17:58

This would make impossible (at least practically) the ability for mods like Reelism to ever be played with Zandronum, which is something many Zandroners would love to have happen. It would also make it impossible to play Zandronum mods in ZDoom unless they stick purely with the 2.3.1 feature set, which is something at least I enjoy being able to do. Things like Samsara would have to decide whether to go with Zandronum or ZDoom, since compatibility of one mod on two ports would be near-impossible. I most decidedly do not want that, as I doubt TerminusEst13 does either.

Also, you assume that the Zandrodevs have enough time to work on making Lua useful. They don't have time to keep the pile of bugs coming in fixed at a steady rate! What hope does implementing an entirely new language have?

User avatar (0006215)
Blzut3 (administrator)
2013-04-04 18:35

Hmm... Why does everyone seem to think keeping up with ZDoom is impossible? The biggest thing holding back releases is the lack of testing. Adding more features only makes the situation worse. In the end it provides a well tested code base that solves a lot of architectural problems that we would have to otherwise resolve.

I personally think that Zandronum should be focused solely on providing a C/S net code for (G)ZDoom.

With that said, server side scripting might be useful to provide most of the functionality people want without most of the problems and without stepping on ZDoom's toes. However, I'm not sure we'd be able to provide something flexible enough to make it better than just modifying the server binary's source. I actually toyed with this idea way back when trying to rip the game mode code out into linkable libraries.
User avatar (0006217)
Tribeam3rd (reporter)
2013-04-04 19:28
edited on: 2013-04-04 19:29

Why is there so much care to support ZDoom mods?
I think if you wanna make/play a single player mod, then go ZDoom.
If you want to make/play a multiplayer mod, then Zandronum is your answer.
"but what about a mod thats both?" Zandronum has no problem with that.

This constant struggle to update the base has been going on for years, and zdoom has gone more than 2000 revisions ahead of you, without signs of stopping. I don't want to sound like an ass or anything but yall seem to be in denial...

Cut the zdoom umbilical cord already, add your own stuff, do something new, make something amasing. You dont need zdoom for this port to have great mods.

User avatar (0006218)
Bloax (reporter)
2013-04-04 19:33

The problem about staying true to (G)Zdoom is that while its model works fine for single-player modding (which is to say that if the mod doesn't load, just grab a newer SVN version.)

This works much less favourably when you have hundreds of servers (less if you count clusters, but whatever), especially with the support for such updates being quite poor in the bundled server browser. (What do you think is more attractive, automatic download of the required version versus digging up whatever version you need?)

And while the releases are periodic enough for this not to create a huge mess of servers using a plethora of outdated testing releases, the entire design of the scripting system is flawed, because it requires binary implementation to get a new feature in.

That in addition to the periodic releases quite limits the scope of what you can actually do, because what if you're missing a simple feature (like no random hitscan damage)? Gotta wait for the next update!
..Which is going to come out some long time after you're done making this cool little mod.

Being able to flesh out your own functions for ANYTHING really would make things much easier than having to wait for the next release that's only going to happen after a couple of months (if we speak of the current situation).

Which ALSO includes this one benefit of you being able to implement any wacky function you might just stand there and need. Instead of having to first suggest it, having someone pick up and implement it, submit and having to wait for the next release - this last step always being present, even if you submit it yourself.

And of course, you can already do some of these things with ACS, but would you truly prefer a map scripting language hacked into some kind of monstrosity that does what it was not designed for to what - a wide-spread, rather popular and well documented and most of all mature scripting language such a LUA?

In addition to defining new objects that do things being restricted to a system that can only be expanded through binary patches? (Hello from Decorate, want your own functions? Isn't that sweet, fuck you. Hardcoded or gtfo.)
Not that it's hard to push updates.. Oh yeah..


Of course this entire wall of text might be misinformed as fuck because I'm basing this all from my own understanding of it all from bits and snippets of information, but even then I'm sure it would be even somewhat attractive if a port was functioning on LUA - let alone one that already has a defined community and is multiplayer, none the less.
User avatar (0006219)
Blzut3 (administrator)
2013-04-04 20:15

Tribeam3rd, if you're going to argue that because we're 2000 revisions behind it's hopeless to update, let me point out that Lua is a moving target as well. The closer Zandronum is to ZDoom, the faster it can update. This, and the fact that it doesn't require servers running the same version, is why GZDoom stays synchronized. Zandronum will always be some revisions behind, but it's hardly an issue in the long run.

Bloax, Lua isn't something you just plop into the game and suddenly you can do anything you ever wanted with it. You have to develop hooks for user code to work with, and those hooks need to be updated just as much as DECORATE, ACS, etc functions need to be. The only thing it would solve is providing the compiler and VM for a scripting language. Basically you could replace every instance of Lua with ACSVM and things would be just as valid. The Lua language is just designed to be more general purpose.

The only way to have infinite flexibility is to fork Zandronum and write native code.
User avatar (0006220)
Tribeam3rd (reporter)
2013-04-04 21:02
edited on: 2013-04-04 21:03

"You have to develop hooks for user code to work with, and those hooks need to be updated just as much as DECORATE, ACS, etc functions need to be. "


yes, this is true, however you can do that at your pace, with your ideas, programmed specificly for your network code, this isnt the case with zdoom's code, you have to get their code, modify it to work with yours, and all the time this cuases bugs and glitches, which then you have to go back and fix, wasting more time, then the bugfix wont come out for another year becuase of all the base update testing thats going on.

Edit: also who is to say you have to stop updating the zdoom base, you can still add lua and update the code base.

User avatar (0009974)
Dusk (developer)
2014-07-15 22:53

closing because:
- this would really drive ZDoom and Zandronum even further apart
- this has not seen activity nor consideration for over a year

Issue Community Support
This issue is already marked as resolved.
If you feel that is not the case, please reopen it and explain why.
Supporters: HexaDoken Tribeam3rd Bloax DevilHunter
Opponents: Ijon Tichy Blzut3 Dusk Arco President People RusselCS Esum ibm5155

- Issue History
Date Modified Username Field Change
2013-04-04 14:17 Tribeam3rd New Issue
2013-04-04 16:13 Ijon Tichy Note Added: 0006209
2013-04-04 16:22 Watermelon Note Added: 0006210
2013-04-04 16:58 Tribeam3rd Note Added: 0006212
2013-04-04 17:00 Tribeam3rd Note Edited: 0006212 View Revisions
2013-04-04 17:00 Tribeam3rd Note Edited: 0006212 View Revisions
2013-04-04 17:08 Tribeam3rd Note Edited: 0006212 View Revisions
2013-04-04 17:54 Ijon Tichy Note Added: 0006213
2013-04-04 17:57 Ijon Tichy Note Edited: 0006213 View Revisions
2013-04-04 17:58 Ijon Tichy Note Edited: 0006213 View Revisions
2013-04-04 18:35 Blzut3 Note Added: 0006215
2013-04-04 19:28 Tribeam3rd Note Added: 0006217
2013-04-04 19:29 Tribeam3rd Note Edited: 0006217 View Revisions
2013-04-04 19:33 Bloax Note Added: 0006218
2013-04-04 20:15 Blzut3 Note Added: 0006219
2013-04-04 21:02 Tribeam3rd Note Added: 0006220
2013-04-04 21:03 Tribeam3rd Note Edited: 0006220 View Revisions
2014-07-15 22:53 Dusk Note Added: 0009974
2014-07-15 22:53 Dusk Status new => closed
2014-07-15 22:53 Dusk Resolution open => denied






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2025 MantisBT Team
Powered by Mantis Bugtracker