L.C. Posted February 17, 2010 Report Posted February 17, 2010 (edited) The purpose would be to open Subspace map editing into a new world of real-time collaboration and editing. I believe I have suggested this feature before, and that it would require complete recoding of DCME for anything to matter. But anyway: There would be a server and client version. Server version could function as a client too, and would also have a built-in command-line for those that do not want have the GUI/client-mode enabled on themselves and resource-reasons. Clients are much like the current DCME, except they would have the ability to connect to server-client versions. Data center would be sent over raw -- just to keep things simple. Tile data and location is what would be going in and out and through this little co-op network. Extensively (but more complicated) would be to have functions natively transmit their data instead of 100% raw tile data. That is, it might send circle(0,0,300,300,218,...) (x1 origin, y1 origin, x2 origin, y2 origin, tileid, etc) instead of each individual tile or a "map chunk" to the server/clients. EDIT: Also, client latency wouldn't necessarily matter, since nothing is necessarily time-critical. As many things possible should be made client-side if taking the "extensive" route. "Hacking" and "cheating" would be an utter waste of time, so protection schemes and stuff against this would also be a waste of time. Edited February 17, 2010 by L.C.
Samapico Posted February 17, 2010 Report Posted February 17, 2010 As I said, I will be working on making a map editing module for Discretion, so it will handle all the rendering and stuff like that. This will allow ONLINE editing, eventually, which would be awesome, to say the least.ASSS would simply have to be modified a bit as well to handle such packets as 'tilechange(x, y, id, ...)' and stuff like that. Sending the data as raw is the most realistic way of doing it, cause of all the options you can choose on your side that would make a circle draw differently, for example.
L.C. Posted February 17, 2010 Author Report Posted February 17, 2010 (edited) Raw would be the most compatible as you say.But shortcuts would be the most optimal. The only way it would work is if algorithms were the same, otherwise you would have unequal data on both ends. (It'd be just like Continuum almost.) Perhaps it could be a choice? Edited February 17, 2010 by L.C.
Samapico Posted February 17, 2010 Report Posted February 17, 2010 But since the map editing module would most likely be an optional client-side addon, and that these algorithms could change at each version, it might get complicated.It could be an option, certainly... But not on the initial release for sure. Though if it's part of the basic modules, it would also stay up to date for everyone... A dream come true, where no one complains about bugs already fixed
L.C. Posted February 17, 2010 Author Report Posted February 17, 2010 You should enforce that players have updated versions, just like Continuum almost. I don't see how it would be a problem then, plus it would be an "ethical" thing to do anyhow.
Samapico Posted February 17, 2010 Report Posted February 17, 2010 Sending raw data would allow to highlight conflicts if more than one person changes a tile at the same time... You'd send tilechange(x,y,oldtile,newtile)So if you receive something where oldtile isn't the same tile as you have, it means you (or some 3rd party, even) changed that tile in the meantime. mmhm... Would also be nice if it were like in google docs when you edit a datasheet, you see where the other participants have their cursor at.You'll also have people flying around in ships while you are editing... this will be fun Imagine the new event possibilities, where the host can play God and change the map around while others are playing Or even modules that use the tilechange packet... say, to destroy walls or whatever... or generate random bases
»Lynx Posted February 17, 2010 Report Posted February 17, 2010 I've not read over all the ideas in the thread, because I'm limited on time - but I suggest used Google toolkit for anything like this. It would involve recreating discretion, but it's what Wave is coded in. Real time collaboration is harder than you'd think it is.
L.C. Posted February 17, 2010 Author Report Posted February 17, 2010 (edited) I've not read over all the ideas in the thread, because I'm limited on time - but I suggest used Google toolkit for anything like this. It would involve recreating discretion, but it's what Wave is coded in. Real time collaboration is harder than you'd think it is.It's no different than a server-client model, ie. Subgame2 and Continuum. EDIT: But meh, I would think the programming part of anything that deals with netcode and networking wouldn't be the easiest task in the world. Edited February 17, 2010 by L.C.
Hakaku Posted February 17, 2010 Report Posted February 17, 2010 Why not just implement something like trac changes (aka revision control)? You could then review all the changes made and either accept or reject the changes, or continue editing.
L.C. Posted February 17, 2010 Author Report Posted February 17, 2010 Why not just implement something like trac changes (aka revision control)? You could then review all the changes made and either accept or reject the changes, or continue editing.That would be a completely different feature or way of mapping. Multiplayer map editing is real-time and collaborative. That makes the difference entirely.
Hakaku Posted February 17, 2010 Report Posted February 17, 2010 Revision control is collaborative, and it can easily be used and integrated in a real-time environment. It doesn't work against these, all it does is merely add an extra level of control that permits you to see differences between more than one version; how you use it and what permissions you grant users is your choice. Wouldn't it be easier just to roll back changes if ever someone decided to spazz out and ruin the entire map live? Or what about working with someone, wouldn't it be nice to see their changes highlighted on the map rather than guessing what they did? (what if you both live in different time zones?) This way you don't solely have to rely on constantly saving the map and sending changes to users online, while ?messaging others to tell them what you did.
L.C. Posted February 17, 2010 Author Report Posted February 17, 2010 Hm, I think your Trac idea is good. But even then, it is different than what I see. Why not mix both? The server would keep track of every edit each player makes their timestamps, and when the session is over, the server could export the session in a file that contains each player's "stream." Then, with a program, you could view individual streams (fast forward/rewind/frame-by-frame), mix or turn on viewing of other streams at the same timestamp, etc.
»Lynx Posted February 18, 2010 Report Posted February 18, 2010 I've not read over all the ideas in the thread, because I'm limited on time - but I suggest used Google toolkit for anything like this. It would involve recreating discretion, but it's what Wave is coded in. Real time collaboration is harder than you'd think it is.It's no different than a server-client model, ie. Subgame2 and Continuum. EDIT: But meh, I would think the programming part of anything that deals with netcode and networking wouldn't be the easiest task in the world. It being server/client isn't the issue. The issue is coding a map editing application that allows for real time collaboration. I know I wouldn't want to do it using VB6. Google Tool Kit includes the complete API for Google Wave, which is a pretty good online collaboration tool, and would allow the editor to be used from within a browser. Google have also recently acquired EtherPad and have open sourced all of it's code. I'd honestly be more focused on getting a platform independent version of DCME rolled out in C or C++ first, though.
Samapico Posted February 18, 2010 Report Posted February 18, 2010 Who said anything about VB6? I sure didn't As I said, I will be working on making a map editing module for Discretionas in, remaking it from scratch... The editor being entirely built in Discretion.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now