ID:182393
 
It'd be cool if anyone could pull this off, but without the API being public I have to think this would be a difficult task.

Lummox JR
In response to Lummox JR
In response to Ghtry
Ghtry wrote:
Lummox,

There are all kinds of sites which offer public binaries. Admittedly linux is a complex beast and comes in many flavors but they all share common things. Skype is a perfect example of offering their product to Linux users. If you know which libraries are needed just add some requirements. I know how it is to open up source code... I was meaning "pre-compiled binary". The only real drawback I can think of is that it would require a handful of computer architectures to get all the needed pre-compiles.

That's not even the half of it, I'm afraid. Before even getting the API out there we would have to fully document the API including its various structures, and make header files available for people wanting to use the library. Also we would need to document the exact procedures needed to start up the pager, DS, etc., and then be sure to keep such documentation up to date during future changes. Open-sourcing even the binary libraries just isn't feasible, even though it would be fairly awesome if a dedicated user used that info to create a native Linux client.

If this request just seems impossible I can understand. The current linux DreamDaemon has been running Hoshville flawlessly for about 30-35 hours now. It came pre-compiled. If I am not understand what you mean could you elaborate a bit more on "API"? I am very resourceful, maybe I could help?

The API refers to the backend DLL files that BYOND relies on. Basically all our frontend apps (Dream Seeker, Dream Daemon, Dream Maker, the pager) all hook into that. That's the reason DS and DD can both run games. Some of its operations are strictly internal, whereas others are exposed for users to access, and there are C++ classes and structs made available as well as the functions themselves.

Lummox JR
In response to Ghtry
What he means is, without having access to the source code of BYOND, it would be very hard, and BYOND does not have a public API, as in there is no easy way to hook into the BYOND backend. And Lummox(the active developer of the BYOND software) has no plans on making a GUI version of BYOND for Linux.

The biggest issue with that is that the BYOND GUI was designed completely for Windows, so porting it over to Linux would be hard, and as far as I know, Lummox has no experience working with Linux interfaces.

As it stands we Linux users make up a vocal minority of BYOND users. It's sad, really, but it's true. At one point a member of the BYOND Staff was working on a Mac/Linux version of the pager, but that seems to have died off, for reasons unknown.
In response to Lummox JR
In response to Ghtry
Ghtry wrote:
Lummox,

I am going to throw myself out on the ledge a bit here. I think I understand that you are saying when it comes right down to it that some Linux users will still need to make / compile. Unfortunately it is true and I totally agree with you. I have a different idea however.

I am not sure if you are familiar with RFC's? Does not BYOND have some pre-defined protocol / network structure? I refuse to believe this task is impossible. I will go as far as programming an entire base code if I had something to work with...

That'd be the same thing as documenting the backend though, so it's the exact same problem. If the DLL calls you'd need were spelled out exactly by function name, and you had totally up-to-date info on what the necessary structs and classes were and what virtual methods those classes use, then you'd be able to develop your own code for it. But documenting that would be no different than preparing the API and public binaries for use, and maintaining it would be exactly the same too.

I was reading an earlier post about BYOND not getting much attention. If BYOND really wishes to accelerate its growth, BYOND needs to show that it is willing to adhere to all users and not just some of them. Providing Linux support would be a huge increase and it gives BYOND some ammunition. I have talked with over 20 people that say the only reason they don't use Linux is because they can't play byond on it. I am willing to bet there is some way to accomplish this seemingly gruesome task. I am an unregistered non-member so this is only my opinion and all I am asking is to at least consider it. BYOND is sending network packets and using controls / bitmaps, there is some way to accomplish this.

If you're talking about just creating a remote client from scratch without using the BYOND backend at all, that's a noble idea but you're going to have some issues: The networking format would have to be documented or reverse-engineered in some way, and then you'd have to know what each message type was and how they were structured. I can charitably describe the messages involved in sending map info as "complex". If you're willing to figure them out on your own, that's great, but I couldn't for the life of me describe that message format in a way you could easily use it.

Now if we had some kind of program that could auto-create the needed documentation for us, that might actually be enough. It'd ease the initial task and make updates a breeze. Given BYOND's structure it'd probably need to be part compiler itself so it could understand some of the fundamental data types, and it'd need to determine which structs/classes are needed. Or if it's the case that comments could be added to a file that would allow an auto-documenter or some kind of parser to pull out the needed info, that would work too because the only work involved would be adding those comments and then of course compiling modules for the different architectures. If you know of such a program that can auto-document then I for one would be willing to entertain the idea.

Lummox JR
In response to Lummox JR
In response to Ghtry
I'm not sure Doxygen is the right tool for the job because that's going to require a level of detail far beyond what we can easily commit to, and also because I don't see that it's designed to produce more than mere documentation, whereas ideally it'd be best to have something decide which parts of which header files it needed. However, I think this is on the right track.

Lummox JR
It would probably be better for the BYOND staff to work getting it running under WINE, and then just building it with winelibs. http://members.byond.com/linuxguild
WINE and BYOND work decent enough together, it would work much better if BYOND used the Geko engine.


[EDIT: Or just simply re-program it using cross-platform libaraies, God knows BYOND's source code is turning into a mess with all of those updates and Dan not here to maintain it.]
In response to Lummox JR
If you found a program that did the job, would that not be a major benefit for you guys working on the software? Isn't half the issue that the old programming lacked documentation and Dan is no longer around to explain things? To prevent a repeat of that, it would be a good idea to have as much documented as possible. You've done wonders with the changes in 4.0, but if you were to stop working on BYOND, how long would it take someone else to pickup where you left off?

And if some of the information can be released to the public for the benefit of BYOND, so be it. And when BYOND grows enough to allow for more developers, it would make it much easier for someone to build an official Linux front end. Making the frontends as changeable as possible is always a plus.
In response to Flame Sage
Flame Sage wrote:
[EDIT: Or just simply re-program it using cross-platform libaraies, God knows BYOND's source code is turning into a mess with all of those updates and Dan not here to maintain it.]

Right, because BYOND's source was impeccable when Dan was here to "maintain" it. I can't believe I didn't think of "simply" re-programming it. What a genius suggestion!

The main problem is that with 4.0 there are a lot of widgets to maintain so porting that all over to another toolkit would take a huge effort. I have no problem open-sourcing that, except as Lummox said we'd have to fully document and clean up the API, and that is just as much work as recoding this stuff. This code has never been well-designed and is practically uncommented. It just boils down to having enough manpower to work through it, and we don't.
In response to Danial.Beta
Danial.Beta wrote:
If you found a program that did the job, would that not be a major benefit for you guys working on the software? Isn't half the issue that the old programming lacked documentation and Dan is no longer around to explain things? To prevent a repeat of that, it would be a good idea to have as much documented as possible. You've done wonders with the changes in 4.0, but if you were to stop working on BYOND, how long would it take someone else to pickup where you left off?

It would be a big effort, but with each iteration we get a little more knowledgeable. I've been working the last few years to try to slough off my knowledge onto LJR, while we collectively work through existing code neither of us is familiar with. Some of this is documented now, although the sheer volume of stuff there makes doing that a full-time job, something we don't have time for. I hope LJR can maintain this for some time into the future (hence the slough off).

And if some of the information can be released to the public for the benefit of BYOND, so be it. And when BYOND grows enough to allow for more developers, it would make it much easier for someone to build an official Linux front end. Making the frontends as changeable as possible is always a plus.

Yes, it would. But there are only so many hours in the day. If this project were making money, we could better divide the labor among more people. But it's barely getting by as is.

Linux is just too small potatoes to devote our limited time to at the moment. I understand the suggestion that we let others do it, but even walking them through the process is a huge task.
In response to Tom
Well Tom; as I see it, if you do open source it, it would cause tons of problems. Everyone running around with their own "custom" BYOND client? It would just be a mess.
I do see the benifit of open source though, it would allow for new features, code optimization, etc.
I just don't think it's a good idea to OpenSource something like BYOND, hire more developers, yes.

I never said reprogramming BYOND was going to be easy, but it would allow you guys to focus on adding in features, and redesigning the core of BYOND to allow for newer features ;)
In response to Tom
Tom wrote:
Linux is just too small potatoes to devote our limited time to at the moment. I understand the suggestion that we let others do it, but even walking them through the process is a huge task.

Bah to you and your image of small potato!
In response to Flame Sage
Small potatoes, what kind of resemblance is that. Last time I checked our community is far larger than yours and bringing Linux users the availabilty of BYOND would give you possible access to some great programmers, no offense but if anything the small potato here is BYOND. o.o'
In response to Tekken
Tekken wrote:
Small potatoes, what kind of resemblance is that. Last time I checked our community is far larger than yours and bringing Linux users the availabilty of BYOND would give you possible access to some great programmers, no offense but if anything the small potato here is BYOND. o.o'

Small potatoes relative to windows. Obviously just about every community is bigger than BYOND.
In response to Tom
In response to Ghtry
Ghtry wrote:
Linux was the original OS before windows was born. I am amazed how Linux is constantly shoved off in a corner. I never expected you to say such a thing. I always thought of BYOND being a friendly community. That hits a soft spot bro. I hope the linux community does not take offense to your comment. There are indeed many programmers who are extremely intelligent which prefer the Linux OS.

Actually, linux has only been around for ~20 years, but unix has been around forever. And it's a superior OS, I'm not denying that. I used to develop exclusively for unix and BYOND started as a unix/linux project (even with a GUI, but that was in a toolkit that wasn't freely available for linux).

I wish we could just make decisions based on what our personal preference is for the best system. But BYOND is also a (very small) business, and in order to make money we have to cater to the masses. The masses use windows.
In response to Tom
Page: 1 2 3 4