ID:113249
 
A lot of people might not realize BYOND has a Feature Tracker, or maybe you do know it's there but you don't really care because you're not making games. Either way, there are a lot of things on there which could directly influence the games you enjoy playing.

If you're a BYOND Member you get to vote on which features you'd like to see added. It's not an entirely democratic process, it just gives the BYOND staff a good idea of what the community wants. The problem with this is some people might not be entirely sure about what they're voting for and end up inadvertently burring great feature requests under ones which seem nice but aren't very practical or feasible.

What I'm going to do is list off a few of the popular features and give my opinions on them. I'm also going to point out a few lesser known feature requests to hopefully give them some support.

Popular Feature Requests

Client Sided Icon Manipulation
BYOND uses a very server-focused method of hosting. When playing a BYOND game over the internet the sever does all the calculations and sends the info to the players' game clients. For the most part this works out just fine but, this also means game resources (changing your hair color, rotating projectiles, etc) are created server-side and sent to the client. This uses up a lot of bandwidth and makes the game lag.

What this feature is asking for is a way to offload some of the burden of icon operations from the server onto the client. If the server only had to send instructions for generating icons rather than the icons themselves network lag would decrease dramatically during icon operations. This feature is definitely worth the votes.
Pixel Movement
Pixel movement is a method of collision detection which doesn't rely exclusively on tile-based coordinates. Basically, when you take a step you move a few pixels rather than a whole 32x32 tile.

It's a feature which sounds great but isn't quite as simple to implement as you'd think. There are many ways BYOND could add native pixel movement but, there's no uniform method of collision detection which would benefit every single game using it. BYOND already has the tools necessary to make your own form of pixel movement just the way you want it and with Forum_account's extremely polished pixel movement library I think it would be a waste of time to focus on adding this.
Selectively Hiding Objects from Players
What this feature is asking for can be summed up as a much more versatile invisibility variable. Invisibility works in a linear fashion right now, atoms can be more invisible or less invisible than other atoms. If you want to see the more invisible atoms you also see the less invisible atoms. There's no way to break the invisible atoms into different groups where you can see one set of invisible atoms without seeing the other set. That's what this feature is asking for.

There are all sorts of uses for this feature. A few examples I can think of are making instances a whole lot simpler to create. Survival/Horror games would be able to have many different new traps and puzzles. The elevation in my own game Decadence would become an obsolete thing of the past. Pretty much everything about this feature request is positive and I'd like to see it added.
Get DD Hosted Mode
This is one of those features which may seem pointless but would actually save developers from a lot of headaches. BYOND has three security modes: trusted/safe/ultrasafe. This is to prevent people from turning a BYOND game into a keylogger, trojan, or some other nasty thing. The drawback is normal developers have to jump through security checks in order to have simple server logs, player saves, and so on.

When starting up a game things can look pretty messed up depending on your security settings. What this feature is asking for is a way to actually check what the security settings are so developers can set up contingency plans to deal with not having read/write access. I would really like to see this added.

Not So Popular Feature Requests

Multiple Guests/Debug Key
When developing a multiplayer BYOND game a normal part of the testing process is logging into the game with a whole bunch of different accounts and testing out all the game's mechanics until something breaks. This process can be bogged down by the fact you have to log in and out of all those accounts just to connect to the game with them in the first place.

This feature is essentially asking for a way to log into a game a bunch of times without having to change accounts. It would make testing a lot easier and quicker. I'm the one who submitted the request, so obviously I would like to see it added.
Macros solely for Shift, Ctrl, and Alt.
This one's a no-brainer. BYOND doesn't support macros for just shift, ctrl, and alt. They're modifier keys for commands like Ctrl+F. We aren't able to use ctrl on its own as a crouch button just like you would find in most FPS games.

Having the ability to use ctrl, alt, and shift as macro keys would improve the gameplay experience in a lot of games which require rapid user input. Modern games use WASD controls with the pinky on ctrl and the thumb on space bar. Not being able to use layouts like this only serves to promote the use of awkward control schemes.
Map Resolution stretching alternative to AA
When stretching game windows icons lose their crisp image quality and become blurry.This feature request is asking for a way to change the behavior of this resizing.

It's a much needed feature but, I'd like for the BYOND staff to really sit down and give this particular area a complete overhaul. Your average SNES emulator has all sorts of view filters; nearest neighbor interpolation, grayscale, scanlines, you name it. I would really like to see these things added.
ping(Address)
Pinging something is a way of measuring network latency. It's how you tell when someone's connection has gone bad. BYOND has a few methods for measuring network latency but, none of them are reliable and accurate enough for normal use.

This feature request is asking for a simple built-in procedure for having a server ping an IP address. Being the one who submitted the request, it's safe to say I'd be happy to see it made so.
I voted up your ping() command. That would be extremely useful. (:
Yeah, I hope that one gets added. There are a few counter-requests for having a client ping something but they don't seem as practical as having the actual server pinging certain addresses.

Also, on a side note, since when did emoticons flip over? Ever since I first started using the internet eyes went before the smile, now I notice more people seem to be putting the smile first.
It'd be nice to get some more feedback from the staff on these issues. I'm sure they've read most of the feature requests but don't comment on them all. Now that they're focusing on adding more features it'd be nice to have a somewhat regular development post from the staff to hear what their thoughts are on some features and to get an idea of what they're working on.
SuperAntx wrote:
Also, on a side note, since when did emoticons flip over? Ever since I first started using the internet eyes went before the smile, now I notice more people seem to be putting the smile first.

It's the fault of Instant-Messengers with "default emoticons" that change our nice-looking :) smiles into emotes that are really ugly and annoying. So now you do a (: smile, so that you get the text rather than an animated piece of garbage smiling at you!

Or at least that's why I do it...
Forum_account wrote:
It'd be nice to get some more feedback from the staff on these issues. I'm sure they've read most of the feature requests but don't comment on them all. Now that they're focusing on adding more features it'd be nice to have a somewhat regular development post from the staff to hear what their thoughts are on some features and to get an idea of what they're working on.

Agreed. Similarly, I mentioned on a request somewhere that I thought there should be a new designation apart from "Open". It'd be nice to know the requests (and bug reports) were read instead of thinking they were looked over.

Kalzar wrote:
Forum_account wrote:
It'd be nice to get some more feedback from the staff on these issues. I'm sure they've read most of the feature requests but don't comment on them all. Now that they're focusing on adding more features it'd be nice to have a somewhat regular development post from the staff to hear what their thoughts are on some features and to get an idea of what they're working on.

Agreed. Similarly, I mentioned on a request somewhere that I thought there should be a new designation apart from "Open". It'd be nice to know the requests (and bug reports) were read instead of thinking they were looked over.
Well, when they are looked at they are generally commented on by whoever read them. But some status like that might be useful.

SuperAntx wrote:
Also, on a side note, since when did emoticons flip over?

I had been wondering that, too.

It's the fault of Instant-Messengers with "default emoticons"

Now that makes sense. Bloody IM/Chat programs that don't respect writers' style choices.
Here I thought you were just pointing out some Feature Tracker issues that you liked. But now I see that this is more of a "vote for these because they benefit Decadence" sort of post.
Yut Put wrote:
Well, when they are looked at they are generally commented on by whoever read them. But some status like that might be useful.

I think Lummox once said that they're not using the status field anymore. I forget why. Maybe it's because they have the voting now, I'm not sure. It'd be nice to hear the staff's opinions on their development blog. It'd be one place you can check to see what their thoughts are instead of having to dig through the list of comments for every feature request.

Gakumerasara wrote:
this is more of a "vote for these because they benefit Decadence" sort of post.

I think the ping proc is the only one that's really Decadence specific (other games would probably want the client's ping time to the server they're connected to). The rest of the issues are things that would benefit other games, other developers just aren't speaking up as much.
Gakumerasara wrote:
Here I thought you were just pointing out some Feature Tracker issues that you liked. But now I see that this is more of a "vote for these because they benefit Decadence" sort of post.

Most of them would help Decadence because they're so valuable they'd end up helping pretty much every BYOND game. I put some thought into these picks.
A note on the map's AA: if you switch between software and hardware rendering, AA switches on and off.

As for Alt, Ctrl, and Shift macros, HDK Mouse & Keys offers infallible (99% Guarantee!) support for key-downs and key-ups for these three keys.

P.S. I thought you were going to throw in a mention of the whole updating libraries debacle.
I definately voted for Client-Side Icon manipulation, the extension of invisability and the map stretching feature-requests. Those are all very top interests to me and are the top 3 I see being the most widely useful
One thing I've noticed that is sort of interesting is that, when it comes to selectively hiding objects from players, one thing you can do is paint an images to the client.image over a turf.

If you do this, it seems BYOND is coded to let you click through that image to reach the turf, but any mobs or objects are rendered undetected.

Of course, it's not quite as elegant as if you could simply implicitly imply a player can't see something. The atom.invisibility setting can work, but only on a single spectrum.
There are all sorts of weird tricks to selectively hide objects, but none of them are as versatile or easy to use as simple group listings would be.
Yeah, I'm not the type to say, "Well, BYOND is fine the way it is, you should just code around it." By all means, the more hard-coded features they can give us, the more versatile BYOND will be.

Personally, something I wanted to see is verbs being able to be assigned icons. These icons should show up on the right click menus or the info pane verb command panels. Instant buttons, no need for creating objects to activate the verbs indirectly with the Call() proc.