Oct 5 2010, 1:41 pm
|
|
It seems that BYOND will be getting a flash client in the not too far future (at least, from what inkling of hints interviews have given us). Maybe that will quench your thirst for more important updates? And also, perhaps there will be support actionScript. That should open up some awesome possibilities. :D
|
I think 3D is an improvement, but it's not the only possible one. There are enough successful 2D BYOND-esque "game makers" today, and their developers aren't rushing to make them more "modern" or somesuch by adding 3D (and I'd like to add that 2D games are still very much a viable genre). 3D is one way to expand BYOND's audience. A better designed, more advanced suite is another.
Edit: I'll be honest: I really dislike both of these. They're impressive as a proof-of-concept, but they certainly don't look like a game I'd like to play. [Edit] I never argued that they shouldn't add this feature. I am arguing it is not a priority. |
and I'd like to add that 2D games are still very much a viable genre Technical note: 3D *is* superior. You can always ignore the extra dimension and replicate anything that can be done in 2D. Some things can be done in 3D but can't be replicated in 2D. Back on point: Claiming that we don't need 3D because 2D is sufficient is a lame argument. You can claim that interesting games can be produced without the presence of any new feature - that doesn't mean we shouldn't consider new features and how they could be added. Metamorphman wrote: It seems that BYOND will be getting a flash client in the not too far future ... Maybe that will quench your thirst for more important updates? It would make for an update that's more significant than average but I wouldn't get excited about it. A flash client doesn't increase BYOND's capabilities. No games become possible to make or even easier to make because a flash client exists. Toadfish wrote: I'll be honest: I really dislike both of these. They're impressive as a proof-of-concept, but they certainly don't look like a game I'd like to play. The difference is that Vengeance 56 took a lot of time to make and pushes BYOND's limits. It's about as nice as first-person views could look in BYOND. The mockup I provided of the first person view is bare bones, it would require very little code. With nice sprites and textures you could make something like this. I never argued that they shouldn't add this feature. I am arguing it is not a priority. The reason I would consider this as being high priority is because it's highly feasible. Some features (like the flash client) are less useful and more complex but get more of the staff's attention. Part of the reason for my recent idea-posting spree is to show the staff that there are many useful things that could be added to BYOND and they don't appear to be working on any of them. Fugsnarf wrote: I don't oppose it, I just don't think BYOND can support it at this time. It's easily possible to implement, but it's not practical. You still haven't explained why this is not practical. The closest you've come is saying: Unless you can make all of this "3D" rendering client-side, it won't be nearly as feasible But this doesn't make sense. The 2D rendering that is currently done for the map display is done client-side. The 3D rendering would be done client-side too - I have no idea why you'd think otherwise. |
Excuse me for stepping out of this discussion. I phrased my argument quite poorly (I didn't expect this to become a discussion), which results in a misunderstanding of my position. In any case, it was an off-hand remark and is not interesting in the context of this post. That said, keep the good articles coming!
|
Toadfish wrote:
That said, keep the good articles coming! As long as the nays keep coming I'll keep the articles coming =) |
Part of the reason for my recent idea-posting spree is to show the staff that there are many useful things that could be added to BYOND and they don't appear to be working on any of them.
I have many ideas as well for BYOND. Extremely small ones. But, as you said, no one appears to be working on the stuff so I tend to just not bother writing up a suggestion post. |
I appreciate your posts because you clearly consider your proposals before making them, and they are often very solid suggestions.
That said, I feel like you are obsessed with the limitations of the toolkit. It is not so much that any single feature is necessarily that difficult, but that they beckon other, supporting features, introduce new bugs, and make this already enormous project even more so. You can mock us for releasing feature-thin updates, but my aim is to release a stable product. I think we've done rather well, given the complexity of the system. Since BYOND is always being tested on new platforms in a variety of scenarios, this is not an easy job and in fact takes up a great deal of time. It's unfair to say we aren't working on any of these features people bring up. Almost all of the features are in response to suggestions. Recently, Fugsnarf made a post regarding the movement system, which led to an improved way of doing that. The networking improvements that led to the ability to do these side-scrollers and such was due to extensive tests of Falacy's games. Even little things, like the 475/476 features, were in direct response to requests by longtime users who needed them for their games. As far as 3D specifically goes, it's true that our policy has generally been to steer clear of this, and it's also true that the move to DirectX has opened up some doors. My tendency would be to shy away from it because of the obvious feature creep it would introduce, but also because of the added complexity it pushes onto our developers. While it's true that, as an augmentation, it doesn't force anyone to change, just having the option opens Pandora's box. I've always wanted BYOND to be about design and not glitz, and venturing into the world of bounding boxes and shaders and what-not changes that mentality considerably. Also, I'm not convinced 3D would necessarily change anything. We introduced isometric mode some time ago and, despite being trivial to use (easier than 3D would be), it has not taken off; largely, I think, because the supporting work (the graphics) is more difficult. As far as the comments about the Flash project goes: obviously I can't be 100%, but I'm pretty sure you are completely wrong. The impact of an inline web client would far surpass a graphics/language/network upgrade because it would give BYOND games much more exposure. For instance, we could leverage the Facebook API to allow you to play BYOND games with your friends right from Facebook. BYOND is not a big download and we've made the installation as painless as possible, but the fact that you have to download, that you have to install, is a huge detriment to the project in this day of 10 second attention spans. Also, it's ridiculous to assert that 2D games are dying. Farmville is the most popular game in the world and you could make that with BYOND. In fact, you could make a better, multiplayer version with BYOND. But it wouldn't take off unless you could get users, which is why the inline client is so important. I've been working on this project for a very long time and have a lot of pride, but I have no problem admitting that Unity is a much better engine. It's more modern, uses a cleaner API, has way more features, and was built with a general framework in mind, instead of as a rogue-like engine creator. But I'm not scared about people migrating to that project because it's a completely different niche. A user here could make a successful BYOND game but completely fail with Unity or any other generic system. And that can be said of the existing feature set, or even the one from five years ago. |
Tom wrote:
That said, I feel like you are obsessed with the limitations of the toolkit. We both know that BYOND has flaws and limitations so I'm not going to say "great job Tom, BYOND is awesome!" and leave it at that. If I didn't think that BYOND was a quality piece of software I wouldn't waste my time suggesting ways to improve it (note: this is about as close as I come to giving compliments). My tendency would be to shy away from [3D] because of the obvious feature creep it would introduce, but also because of the added complexity it pushes onto our developers ... I've always wanted BYOND to be about design and not glitz, and venturing into the world of bounding boxes and shaders and what-not changes that mentality considerably. I can't find a link to the game (I swear I've played it though) but here's a screenshot from a top-down shooter that Calus CoRPS made. The left/right arrow keys make you turn, the up/down keys move you forwards/backwards. With 3D graphics support this game could be turned into a first person shooter in a matter of seconds - all of the functionality (turning, pixel movement, collision checking, shooting, etc.) already exists in the top-down version. Instead of changing the player's icon to represent their rotation you change the "client.view_angle" variable. That's it! It could really be that simple. A 3D mode begs for many other features to be added (shaders, normal/bump maps, shadows, etc.) but I wouldn't worry about this for a couple of reasons. First, these features have already been requested (shaders and shadows, at least) and they've been successfully ignored (and rightfully so). Secondly, a 3D mode is incredibly useful by itself. This is similar to how interface controls are useful even though they don't support certain events (ex: mouseover) - the feature itself begs for more features to be added but people can get by without those additional features. I'm not convinced 3D would necessarily change anything. We introduced isometric mode some time ago and, despite being trivial to use (easier than 3D would be), it has not taken off; largely, I think, because the supporting work (the graphics) is more difficult. Personally, I don't use the isometric mode because the maps are harder to edit and because it doesn't really let you do anything new. Despite being able to better create the illusion of 3D an isometric display still suffers from many of the same limitations as a top-down 2D display. 3D makes some things possible. A 2D Minecraft would not be much fun. The extra dimension gives you much more space to explore and build in, it also makes it easier (and prettier) to navigate. To pick on Calus CoRPS again, Fortress Build is essentially an isometric Minecraft, but without the first person view it's terribly difficult to navigate and doesn't have nearly the same appeal. |
I'm just going to throw into the air the fact that 2D shaders are possible. I don't know how they're handled in DirectX, but when I was getting into C++ a while ago, the OpenGL based multimedia library SFML only required 1 line of code to use 2D shader.
|
Fair enough! You make a compelling case and I'll certainly take that into account when we get back to working with the graphics engine.
|
If Tom thinks it's a viable idea, then I may be wrong in my assumptions. If it can be a feasible endeavor, then I definitely support it.
|
One additional feature springs to mind: If one wants each face of a tile to be different, it could use the directions in the icon for each face. This however leads to putting a "top" or "up" direction in BYOND icons, or perhaps using one of the diagonals in place of up, since the faces will be using only north, south, east, and west.
Also, even if we don't put 3D models in immediately I think we should keep it as a long term goal of a 3D conversion and make all changes with that eventual goal in mind. |
"Some existing features might be hard to translate to 3D. I'm not sure how layering would work (the built-in layer variable) because 3D gives you z-buffering for free. I'm not sure that everything you can currently do with layers could be easily done in 3D, but I'm also not sure that you'd need to or want to."
Your footprints appear over the turf ground. That means their layer is higher than the ground. I suppose that's all you'd need the layer variable for, in a 3D environment like that. Basically for overlays, to determine what overlay appears over the other. Maybe overlays can even be on any of the 6 sides of a cube. Really, a first-person BYOND is pretty much Minecraft, but with better multiplayer support and lacking pixel movement, which isn't totally necessary in Minecraft either. I'm sure your isometric pixel movement library could be modified to fit a first-person world. I'd love this. |
Kaiochao wrote:
Really, a first-person BYOND is pretty much Minecraft, but with better multiplayer support and lacking pixel movement, which isn't totally necessary in Minecraft either. Which is the exact reason why I don't see the big deal in Minecraft. But then again, I suppose I didn't give it a big enough shot. One day I'll join Gotrax. ;P |
Kaiochao wrote:
Really, a first-person BYOND is pretty much Minecraft, but with better multiplayer support and lacking pixel movement, which isn't totally necessary in Minecraft either. I'm sure your isometric pixel movement library could be modified to fit a first-person world. This would just be a new display mode. To transition an existing project to use the 3D display would probably be easier than switching from top-down to isometric. The biggest change is the need for camera control. |
MMMMMMMMMMMMMMMMmmmmmmmmmmmmmmmmmmm........... I wonder, how moving would be in that 3D format, also if there's a possible 3rd person view.
|
Dakumonki wrote:
MMMMMMMMMMMMMMMMmmmmmmmmmmmmmmmmmmm........... I wonder, how moving would be in that 3D format, also if there's a possible 3rd person view. Isometric and topdown are 3rd person already. I assume you mean the camera slightly behind the player or something. What I'm thinking is that it'd be done by setting client.pixel_y to a negative and raising client.pixel_z. If you look down on top of your player, imagining a coordinate system, a negative pixel_y would move behind the player, and increased pixel_z would raise the camera higher. Then there would have to be client.pitch/yaw(maybe even roll, for awesome twisting effects) to aim the camera down a bit if necessary. I'm hoping the least they could do with the movement in a first-person game would be tank-style movement. Left/right to rotate view(with probably a smooth shift rather than instant turn), forward and back. The ideal but probably unlikely control would be how first-person-shooters are: move the mouse to pitch/yaw the screen. Maybe a new mouse event could be added: MouseMove(dx, dy) where dx and dy are the differences in the mouse's location between the previous and current tick. Forum_account wrote: This would just be a new display mode. To transition an existing project to use the 3D display would probably be easier than switching from top-down to isometric. The biggest change is the need for camera control. I'm not sure if it would(though it'd be nice) include in a 3D display mode actual 3D movement. What I mean is going up staircases and jumping, in one Z level, as suggested in my feature request. |
The difference between first person and third person views is the camera control. Provided the developer has the ability to position the camera however they please, no built-in support would be needed for making a first person view. It could be handled in DM by using the built-in camera control procs or vars. We'd only need a gluLookAt kind of proc to make these views possible.
3D movement is already possible. Built-in support isn't needed. By keeping this as being only a new display mode it is much easier to implement (the flash client might complicate things though). People often dismiss this feature as being too complicated (often out of ignorance, but still) we don't need to make it more complicated. |
Forum_account wrote:
The difference between first person and third person views is the camera control. Provided the developer has the ability to position the camera however they please, no built-in support would be needed for making a first person view. It could be handled in DM by using the built-in camera control procs or vars. We'd only need a gluLookAt kind of proc to make these views possible. Simply amazing, I guess they should make a mouse scroll proc, or we should be able to handle that through script files. |