ID:1479676
 
I don't understand, how is BYOND looking to move forward when they're still against anything that will break older games?
Play nice, kids, or the pool gets closed.
I like this desire for BYOND, because it's completely backwards compared to the console wars. They're all about releasing new consoles to get more money.
To stir a bit of conversation: what features and/or behavior do you suppose should be dropped, if we were to draw a line between old and new games going forward?
DS should always maintain legacy support for older versions of DD and code compiled in old versions of DM. However DD should not necessary maintain backwards compat with old code or clients nor should new code necessarily maintain the same behavior or even run at all in old clients or servers.
Honestly, if we were in the hypothetical situation where BYOND were to be gifted 100,000 dollars to do whatever it wanted, and I were the lord of the universe, here's where I'd push the software:

1) Implement actual variable types, 1byte, 2byte, 4byte, 8byte signed/unsigned integer alone should suffice for my wants.

2) Implement chararrays/bytearrays, as well as mutable strings.

3) Permit operator overloading on datums.


4) Drop DirectX/GDI completely, in favor of a Chromium-based UI with HTML5 rewrites of all the interface elements, including map elements being <CANVAS>

5) Allow offscreen HTML rendering to be treated as an image that can be used on the map through Chromium's render to texture features. This would allow HTML pages and interface elements to be part of the map interface, and for them to be treated like atoms.

6) Rewrite the view() sending algorithm to only resend what has changed, or turfs entering the viewport after a move.

7) Rewrite the map code to make maps an entity level object. Map objects are objects that can be positioned in the world arbitrarily, and contain turfs, allowing dynamic loading/unloading, as well as making maps mobile.

8) Per-pixel collision using bitmask images.

9) Expose OpenGL shaders to the workflow, so that we can write shader behavior. Atoms would be able to be given specific fragment and pixel shaders. We could effectively write things like per-pixel lighting engines quickly and easily using this technique. We can also have direct control for how objects are rendered, such as how anti-aliasing is applied, and how nearest-neighbor calculations are done.

10) proper binary file io.

11) proper server-side DLL implementation, which permits objects in the DLL to have DM wrappers, and proxies that permit the passing of DM's datatypes directly into the functions as arguments, rather than using text strings.



All of that would make me happy as a clam, but I know it will probably never happen unless BYOND goes open source and some insane person decides to contribute a lot of it to github.
I'm not saying I don't support BYOND, far from that. Just wondering why it won't just move on. I know they're doing what they can but wouldn't this be for the best?
I wholeheartedly agree. The pace at which the engine is moving is slow, to say the least, but it is moving. The developers who have invested their hope in the engine don't want to leave because they covet improvement.

It's like a girl who's still in love with her immature ex-boyfriend. She doesn't want to move on, she just wants him to be a better man so there may be a possibility of rekindling their relationship.
you guys should sell 2 front page advertising spots for any game listed (including anime)

i'de definitely invest
I vote for drawing a line in the sand at some point and just breaking compatibility after a certain build number, so we can move on to bigger and better things.
And it's not like people can't just use an older BYOND version to play those games, heck, even packing an older version with the new version. Then just check if the game trying to load is older or newer and launch appropriately.

Backwards compatibility is nice and all, but I don't think it should mean having to keep a bunch of legacy stuff in the current code-base to do it; we already have a stable version more than able to run that old stuff.
it would basically be a big f u to not only the older games but even the 1s being made right now if all of that was added
In response to Zagros5000
Not... really? It isn't like the previous version of BYOND will completely cease to exist. Drawing a fine line between legacy and modern versions of software that aren't backwards compatible is a pretty common occurrence. You see this with game consoles for instance (Xbox One and PlayStation 4 aren't backwards compatible with Xbox 360 and PlayStation 3).

We've also seen this multiple times with programming languages ([Python 2.7, Python 3.0], [D1, D2]). I really don't see it as a "big f u", because if people want to make their game work on the modern version then they can simply just update. Otherwise, the legacy versions exist and are perfectly fine to use.
How exactly would breaking backwards compatibility allow BYOND to "move forward"? What would you even need to break?

The problems that prevent BYOND from actually advancing run very deep. In fact, the root of the problem probably extends to the core of the engine itself. This means that breaking backwards compatibility likely wouldn't achieve much of anything that couldn't be done if it were not broken. It just isn't something that flexible.

What I'm saying is that what you are talking about here would require something far more drastic than what you seem to realize. I think a good way to summarize it would be to "replace the code that Dan wrote". In other words, it would be more or less a complete rewrite of all the "primitives" that even Tom and Lummox JR seem to be afraid of.

If they switched to modern tools, it still might take 5 years before they have something stable. I don't think it's worth it to break anything, unless the plan is a complete rewrite and renewal of BYOND, with full access to the latest high-end 3D technologies and a wide range of portability.

Unfortunately, it just isn't very realistic for BYOND to try to compete with other platforms, especially with the current state of things.
In response to Nadrew
Nadrew wrote:
And it's not like people can't just use an older BYOND version to play those games, heck, even packing an older version with the new version. Then just check if the game trying to load is older or newer and launch appropriately.

Backwards compatibility is nice and all, but I don't think it should mean having to keep a bunch of legacy stuff in the current code-base to do it; we already have a stable version more than able to run that old stuff.

I was really thinking about this for somewhat of a year now. I just thought it was an obvious solution everyone had though of, so I never mentioned it.

This is no different than having situations where you don't have a N64 for instance but you have a PC or something else that can run an emulator. In turn, you are not able to play N64 games on what is actually something totally different. I do this every now and then to relive the old games.

With what Nadrew said, it should be possible. Checking if the games compiled version is of a legacy version. Then simply running it under the legacy packaged side of BYOND. If it's a concern about hard drive space or any other things, I'm sure also including 3 separate compilations wouldn't be too bad.

BYOND Current/Legacy [zip]
BYOND Current [zip]
BYOND Legacy [zip]

While also allowing the pager to work on Legacy.

I honestly still play some old BYOND games occasionally just to relieve my boredom. I'd hate to see them go away completely as well. However, I'd also hate to see BYOND drop dead. And people honestly need to have more of a reason to buy a BYOND membership to support that. But that's off-topic..in the off-topic section.
In response to Ter13
Well, I dare-say I'd push back on 1. and 3. out of hand, myself, due to the intended nature of the language. :P

----

In terms of dropped features ... well, depends. I don't actually know of any features who's nature prevents other features particularly being added.

I know plenty of implementation choices which make adding new features more difficult, unless a significant internal refactor is had. Which is a very different thing entirely, as you can usually do that and maintain source code level compatibility, or even binary compatibility through a translation process on load if that's a concern. Breaking netcode compatibility isn't such a big deal, BYOND's done this more than a few times and it's generally worked alright.

I'm sure there are some features you might need to kill to get other stuff working, but I'm not aware of any big ones at the moment?
In response to Stephen001
Stephen001 wrote:
I'm sure there are some features you might need to kill to get other stuff working, but I'm not aware of any big ones at the moment?

That's the way I see it. None of the existing features seem like they would prevent any kind of new feature from being added. All of the new things should be able to coexist perfectly fine with the old things, so I really don't see any point in dropping anything.

For example, with enough effort, it should be possible to tack on vector graphic support or even 3D rendering while still allowing the old movement system to function and the development of text-based worlds to continue right alongside it. Sure, it might seem kind of odd, but if it works, then why break it?

Anyway, I don't think anyone here actually understands what they are talking about, because BYOND is closed source. Trying to predict what would have to be changed or removed internally within BYOND, based on the current features is like trying to determine what goes on in the center of the Earth, just by examining earthquakes and tremors. Tom and Lummox JR could probably laugh at our pathetic attempts.
Maybe I've glossed over certain bug/feature reports, I wouldn't doubt it. So I wouldn't rule it out, I just can't think of anything at the moment.
In response to Stephen001
I, myself vaguely recall a few -not many at all, but of note nonetheless- posts/topics/suggestions i've read in which, at some point down the line, an issue was brought up about backwards compatibility/wherein it was mentioned (whether in making something available in a certain way, or adding something new) that it might end up breaking/was already suspected to end up implicating some either legacy, or backwards compatible code/design decisions.. and as such it tended not to seem like an insignificant point opposing the undertaking of certain requests.

I figured i'd get this down, and let it be known that actually there does seem to be some instances where 'moving forwards' has perhaps been stopped because of an attempt to 'support older games'... however i'd like to share Nadrew's and others' thoughts on this in saying it looks like a good idea for such a setup (as suggested somewhere above, i think partly in xirre's comment) to be put in place that perhaps allows Tom and lummox to realise more freedom/flexibility in byond's ability to move forward, meaning even more features and so on.

'p.s' - thinking about it, it seems (makes more sense at least) that this (backwards compatibility, e.t.c) was more something really considered in cases where it was being asked to change the way in which certain features either worked, or were implemented -as opposed to adding new features- which in some cases might help 'move things forward' just as much as adding new things.

This is the thing, I'm not sure collectively we have specific things we know about, can point to, and go "yes, this well defined improvement here, it was blocked by maintaining compatibility for this older, less used feature or behaviour here".

I actually have my suspicions that this whole "can't do new features because we're maintaining compatibility for older ones" thing is largely a misunderstanding of what Lummox or Tom have said once upon a time, perceived to be a much bigger 'issue' by a year or two of chinese whispers.

The only thing I can think of, which actually fits the category, would be alpha transparency on some interface controls, or in combination with overlaying on a map. Which isn't a feature issue, it's a platform support issue / technology choice issue, in the sense that GDI+ in Windows XP isn't so hot, and in Windows Vista is craptastically implemented. I remember one issue where Windows 98 was the reason for a change being awkward, and Tom just dropped Windows 98 support.

It was probably these platform support issues, which have been misconstrued as "older game features preventing new game features / improvements being implemented". Platform support issues are a bit different to "supporting older games", because it concerns the width of your potential audience, not the size of your back-catalogue of games.
Page: 1 2