Page 1 of 2

Port Zandronum to <Platform here>

Posted: Sun Sep 01, 2013 7:35 am
by Blzut3
tl;dr: Hobby developers will only port their software to platforms they are personally interested in. The only reason Zandronum isn't on your favorite platform is the lack of developer interest.

Since these threads appear every now and then I figure I should write a proper answer and sticky it so that the rumors about our code base and/or porting policies don't needlessly spread. Also, I will first speak from the point of view of a ZDoom developer since it will simply some things a bit.

So you've stumbled across the world of home brew or you got some new phone or tablet and are about to ask if we will port our software to your device of choice. Do not bother to ask here since the answer is going to be no.

First let me get a few rumors out of the way. ZDoom is not a huge unmaintainable mess. It is a fairly complex piece of software with a lot of specialized parts and, due to the age of the project, there is a lot of code that isn't a picture perfect example of good code. No doubt about that, but overall a single developer can understand how most of the code works. People also seem to still believe that ZDoom is locked to the x86 architecture. On the contrary, ZDoom itself has been known to run on PowerPC, MIPS, and ARM. Yes ZDoom contains x86 and x86-64 assembly code, but it is all entirely optional!

Now that I just got done explaining that it would be easy to get ZDoom running on any platform, why would we not want to expand our user base? For home brew systems, the answer is usually that FMOD is not available for that system. Because of this the entire sound system would need to be translated to something comparable. We have no interest in doing this ourselves since from our research there is no suitable replacement for FMOD that won't provide a worse experience for our current users. There has been some work contributed for optionally using OpenAL, but the developer of that branch has not made any progress recently.

But what about Android/iOS/Windows Phone/Windows RT where FMOD is available? In these cases the issue is mostly that we have no touch screen interface. All of these platforms do, to my knowledge, have a way to connect a keyboard, joystick, or mouse to them, but from a user experience stand point one should not have to assume any of these devices are available. Further more for the best experience the platform specific back end should be rewritten to be native to those platforms (this isn't nearly as much work as it sounds since ZDoom already has the interfaces laid out).

In many cases, Android being a notable exception, there is the walled garden problem. App store policies generally assume that the app is stand alone and does not rely on third party data (game IWADs). I know Apple does not allow execution of user source code, so the iOS app store is definitely a no go even if freedoom or whatever was packaged along with it. Since the platforms do not support side loading out of the box, ZDoom would be limited only to jail broken devices which vastly shrinks the user base. Small user base means low developer interest. (Note that this is ignoring possible license politics, and no being GPL would not alleviate any of that.)

Now how does Zandronum differ from ZDoom? Given the age of our ZDoom base at the time of writing, Zandronum is still locked to x86 architectures. The reason is mostly known so it wouldn't be hard to fix this, but our current stance is to just wait until the ZDoom base is upgraded. Also worth noting is that Zandronum's code quality is significantly lower than ZDoom's. (If you ever wondered why ZDoom doesn't pull Zandronum's bot code, this is the reason.) This has caused some issues with type sizes being assumed and stuff like that. Again, not a huge problem, but for this reason I would highly recommend anyone interested in doing a port to start with ZDoom first. You will have a much higher chance of initial success. ;) Otherwise the only other issue could be getting the OpenGL renderer working, but that's optional code.

One thing that is definitely NOT the reason the ports don't exist is any disadvantage given by the platforms control schemes. This is usually mentioned by more competitive players, but the fact there are a lot of casual players that just don't care about that problem. For example, ZDoom and Zandronum provide above average controller support for a computer game because there are people that want to use a game controller for one reason or another.

To conclude, don't bother asking here for ports to other platforms. If one of us becomes interested in a platform we'll just port it without being prompted. Instead find a community for your platform of choice and see if there's anyone there interested in doing the port. Perhaps this is a good reason to get into programming so you can do it yourself! Provided the code changes are done right there's no reason we wouldn't accept the port upstream, and if it isn't too hard to set up a development environment for it's possible we'd even maintain updated binaries once the port exists.

RE: Port Zandronum to <Platform here>

Posted: Sun Sep 01, 2013 12:30 pm
by Ivan
Good read, hopefully people will stop asking for ports in here :p

RE: Port Zandronum to <Platform here>

Posted: Sun Sep 01, 2013 1:11 pm
by ibm5155
Hmm Thinking now, it may be easy to make screen controllers, just make an acs scripipt that when player ex: press fire, it´ll show the fire button pressed,...
and how to detect the screen position, I don´t know how could it be done (hmm detect the mouse position with sdl? :s)

I want to play with porting zdoom to wp, but I don´t even did a hello world on it =/ (At least I compiled it on ubuntu xD), But someday, I´ll get this chance :D
And for now, if people really want a portable zandronum, buy an windows 8 (not rt) tablet :p

RE: Port Zandronum to <Platform here>

Posted: Sun Sep 01, 2013 1:18 pm
by Balrog
This changes nothing. Idiots will still make "I want Doom on my iPad :qualityposter: " threads, everyone else will laugh at them, and they'll clutter up the forum. The only way to stop this is to make starting a "Port Zandronum to X" thread a bannable offense. (Not recommending that we actually do this, but it's probably the only way to make a difference.)

RE: Port Zandronum to <Platform here>

Posted: Sun Sep 01, 2013 2:34 pm
by Blzut3
Nah, the point of this thread is we can just reply to those new threads with a link here and lock it.
ibm5155 wrote: Hmm Thinking now, it may be easy to make screen controllers, just make an acs scripipt that when player ex: press fire, it´ll show the fire button pressed,...
and how to detect the screen position, I don´t know how could it be done (hmm detect the mouse position with sdl? :s)
ACS is for level scripting. Not running an engine. :P

Each platform has its own API for getting the screen touch position. As I stated in the post, it would be preferable that these kind of things be implemented natively (without SDL) since ZDoom provides a frame work for doing that already.

RE: Port Zandronum to <Platform here>

Posted: Mon Sep 02, 2013 1:49 pm
by ibm5155
well the menu at zdoom works 100% fine at touch screen, then make a
global acs script just to draw the buttons positions, and then just make a simple way to get the screen position (not by acs) to make an action...

hmm if there be a way to get the touchscreen position by acs it would be easy to make controls for each mod (and a generic one for doom,...)

But all that Is because I know better about acs (and a bit of sdl).
if the zdoom frame work is as easy as get a key and draw a image by sdl, there´ll be no limitations for that :D

RE: Port Zandronum to <Platform here>

Posted: Mon Sep 02, 2013 2:17 pm
by Tux
Imho, it should be done like that: donate us 15k of dollars, we will port you zandronum to X platform.

RE: Port Zandronum to <Platform here>

Posted: Mon Sep 02, 2013 3:27 pm
by Ivan
ibm5155 wrote: well the menu at zdoom works 100% fine at touch screen, then make a
global acs script just to draw the buttons positions, and then just make a simple way to get the screen position (not by acs) to make an action...

hmm if there be a way to get the touchscreen position by acs it would be easy to make controls for each mod (and a generic one for doom,...)

But all that Is because I know better about acs (and a bit of sdl).
if the zdoom frame work is as easy as get a key and draw a image by sdl, there´ll be no limitations for that :D
Yeah make simple this simple that and ta da, it's all finished! SO SIMPLE AM I RIGHT? Why don't you do it yourself if it's so simple :D

RE: Port Zandronum to <Platform here>

Posted: Mon Sep 02, 2013 3:50 pm
by Ænima
Ivan wrote:
ibm5155 wrote: well the menu at zdoom works 100% fine at touch screen, then make a
global acs script just to draw the buttons positions, and then just make a simple way to get the screen position (not by acs) to make an action...

hmm if there be a way to get the touchscreen position by acs it would be easy to make controls for each mod (and a generic one for doom,...)

But all that Is because I know better about acs (and a bit of sdl).
if the zdoom frame work is as easy as get a key and draw a image by sdl, there´ll be no limitations for that :D
Yeah make simple this simple that and ta da, it's all finished! SO SIMPLE AM I RIGHT? Why don't you do it yourself if it's so simple :D
Why would you use ACS?

RE: Port Zandronum to <Platform here>

Posted: Tue Sep 03, 2013 10:48 pm
by HellBlade64
Well..... What about the Ouya?

RE: Port Zandronum to <Platform here>

Posted: Tue Sep 03, 2013 10:57 pm
by Balrog
You just don't get it do you? There's no incentive to port this to anything other than what it's already on. Even the Ouya is more trouble than it's worth. In other words....
phpBB [video]
The [video] tag is deprecated, please use the [media] tag

RE: Port Zandronum to <Platform here>

Posted: Tue Sep 03, 2013 11:11 pm
by W1D3A55
HellBlade64 wrote: Well..... What about the Ouya?
Sir, there are no facepalms great enough in the universe than what I can give you right now. You've completely missed the entire point of the topic above and what everyone else has said to you. Zandbanjo will NEVER be ported to Xbox, PS3, Mobile Devices, or practically ANYTHING ELSE END OF DISCUSSION.

RE: Port Zandronum to <Platform here>

Posted: Wed Sep 04, 2013 2:51 am
by Blzut3
W1D3A55 wrote: NEVER
Technically speaking this is missing the point as well, but not nearly by as much. :P

The point is, don't bother asking, no one here will do it because a post asks for it. As the last bold line in my original post says: if you want an Ouya port, ask on the Ouya forums. You'll have more luck there.

RE: Port Zandronum to <Platform here>

Posted: Wed Sep 04, 2013 3:42 am
by W1D3A55
Blzut3 wrote:
W1D3A55 wrote: NEVER
Technically speaking this is missing the point as well, but not nearly by as much. :P
When I said never, I meant it most likely won't be within the near future (for both developer and obvious reasons). Shouldve stated that heh.

RE: Port Zandronum to <Platform here>

Posted: Thu Sep 05, 2013 12:43 pm
by Grymmoire
Balrog wrote: This changes nothing. Idiots will still make "I want Doom on my iPad :qualityposter: " threads, everyone else will laugh at them, and they'll clutter up the forum. The only way to stop this is to make starting a "Port Zandronum to X" thread a bannable offense. (Not recommending that we actually do this, but it's probably the only way to make a difference.)
That seems a little extreme. I think locking the threads and redirecting the OP to this thread should suffice. I don't know how bad of a problem this is since I haven't been around in a while to see it, so I don't really know if a warn should be attached as well but at the least a lock/trash and redirection should be enough.

If it's happening enough to warrant this thread's creation, a warn should be enough.

RE: Port Zandronum to <Platform here>

Posted: Thu Sep 05, 2013 2:45 pm
by ibm5155
Ænima wrote: Why would you use ACS?
1) its an easy script language
2)everyone could make buttons
3)you Will not to adatp The controls to each os.

about what i said to be easy, os because its very easy to get a key on sdl, but touch controls i dont know (geting touch position? Xd)

RE: Port Zandronum to <Platform here>

Posted: Thu Sep 05, 2013 4:22 pm
by Watermelon
ibm5155 wrote:
Ænima wrote: Why would you use ACS?
1) its an easy script language
2)everyone could make buttons
3)you Will not to adatp The controls to each os.

about what i said to be easy, os because its very easy to get a key on sdl, but touch controls i dont know (geting touch position? Xd)
I have no idea what you're trying to say here.


Also as someone who is using SDL for my own game, getting key input is a pain in the ass and I ended up having to write my own wrapper class to use it properly.

RE: Port Zandronum to <Platform here>

Posted: Wed Feb 05, 2014 12:25 am
by MrSetharoo
Why are people asking for Zandronum on phones anyways there's already Doom ports like DoomGles (I think that's what its called) and a FreeDoom port which I forget the name of. Also, If i remember correctly, because I had this on my old phone, there is a Quake 3 remake called Open Arena that the main devs ported to Android and is a direct port (and if i remember correctly it uses the same engine a Quake 3 if not modified). so maybe that can be a springboard for someone to use to port Zandronum. Though, as stated before there are already ports of doom to phones anyways so why even ask for Zandronum since you probably wouldn't be able to do multiplayer anyways.

RE: Port Zandronum to <Platform here>

Posted: Thu May 01, 2014 3:30 pm
by UltimaXtreme
MrSetharoo wrote: Why are people asking for Zandronum on phones anyways there's already Doom ports like DoomGles (I think that's what its called) and a FreeDoom port which I forget the name of. Also, If i remember correctly, because I had this on my old phone, there is a Quake 3 remake called Open Arena that the main devs ported to Android and is a direct port (and if i remember correctly it uses the same engine a Quake 3 if not modified). so maybe that can be a springboard for someone to use to port Zandronum. Though, as stated before there are already ports of doom to phones anyways so why even ask for Zandronum since you probably wouldn't be able to do multiplayer anyways.
I'm aware I'm late to the party, but I'll describe it as such.

If you're aware, ports are made with different engines, therefore, different interpretations of the Doom source code. The reason is because Z& is using the ZDoom interpretation, which is the most widely supported interpretation among WAD makers, thus your Skulltag/Zdoom exclusivities.

The desire for a Z& port or a Zdoom port makes sense because DoomGLES, and FreeDoom, among multiple others, is using the barebones of the source code, the original. The only seriously good port is Doom Touch by Beloko, and that's in PrBoom. The differences with Pr v. Z can be explained here.

Support for a wide variety of WADs is why, and while Pr keeps most of the original feel of Doom, it's wasted with touchscreen controls. May as well take up ZDoom.

RE: Port Zandronum to <Platform here>

Posted: Thu May 01, 2014 5:58 pm
by ibm5155
Basically because it support multiplayer and support most of modern wads (almost new zdoom mods but it's a huge wad support compared to prboom)