03 Oct, 2011, Hades_Kane wrote in the 1st comment:
My game was created using the ROM codebase.
I've noticed some other games that are using such a codebase, but then have appended a tag to their game denoting it to be a subserver of such a codebase. Specifically, I was looking at Ivalice's listing on TMC (a fun game I used to occasionally play, still check in now and again), and they have their game listed as Rom[IV:C]. IV:C standing for Ivalice:Custom I assume.
This just got me thinking, in general, at what point is it fair to consider a game a subserver of a parent codebase? Not that I'm itching to label our code as EoT v1 or whatnot, but I was just curious of some opinions on this. Is there any use (aside from, I suppose, perceived bragging rights) of labeling a code as a subserver if you aren't releasing it? I can understand wanting to label it differently for release, though.
For that matter, once a code is justifiably a "new" subserver, how do you determine version number (again, if you are releasing, I would understand each new release being indicated by a new version number)?
Just some things that cropped to mind, and more of my attempts at "non technical" discussion :p
(I've been absent from the community from a couple of years, and I'm trying to draw myself back in)
In my opinion, a game probably qualifies as a subserver of a codebase if over 50% of the lines of code have been modified from the original.
For instance, The 7th Plane started as God Wars about a decade ago. After converting it to C++, partially object-oriented, and rewriting/removing/replacing 99% of the original code, I now label it as Planar v2.5.10 (latest production version). The format I use for version numbering is major.minor.revision. Every changeset (defined by code that compiles, is tested and has been committed to the source control repository) is a revision update. Every collection of revisions that represent a major addition to the game (new class, large world expansion, etc) is a minor update. Every collection of minor updates that drastically and radically reinvents the game is a major update. Admittedly, there's a lot of subjectivity to it, but I try to be consistent in how I apply it.
There are myriad reasons to relabel your game as a subserver of the original codebase and to use a version numbering system. Here are a few: 1) A different label signifies to potential players that it's definitely not stock 2) A different label increases your personal ownership of the code 3) Version numbers help track scope of change to the game 4) Version numbers help to organize/plan future changes 5) Version numbers help promote upcoming or recent additions
I know AU is considered a heavily modified ROM 2.4b6, being as that is what we started as… Then again we'd have to publicly release our code to become a codebase I'd think.
That's my general view as well, although I don't have a problem with engines like IFE and Rapture being referred to as a codebase, either, because (although they didn't publically release their code) there's more than one mud using them.
It's a bit more murky in situations where the admin team split, each starting up their own rival mud based on the same code. I've seen this happen a few times over the years, and I guess it could be argued that the original mud has technically become a new codebase, but there's usually far too much hostility between the two factions for any sort of agreement to be reached - each side typically considers their own mud to be the "official" one.
However in the case of Ivalice and 7th Plane on TMC, they both list the codebase they're derived from as their "Parent Server Type", and then use the "Additional Server Type Notes" to mention their personal versions. I don't have a problem with that, its just a text field and it doesn't weaken the search engine.
There is no golden rules, you do whatever please you (the only golden rule is to use a VCS so YOU know what you are releasing) The rest is only for marketing. Saying you come from ROM helps players think 'oo I know what ROM is, I wont be totally lost. Also say: Oooh I hate ROM, I wont connect this game. Saying you are new codebase mean : oo I will be lost or ooo it is exciting…
There is no golden rules, you do whatever please you (the only golden rule is to use a VCS so YOU know what you are releasing)
Not on TMC you don't, the listings are audited*. If every mud started listing themselves as "custom", it would reduce the value of the mud list - and that list is targeted at players.
* Although the big commercial muds tend to get their own way, but it's still better than nothing.
All muds are custom if they do anything else than editing areas. And I never cared for the engine as a player, as whatever the engine you can do pretty much what you want once you start modifying it. Imho, the field has no real value technical wise. (A way better info should be the licence it uses.)
I didn't realize TMC had any such rules. In the non-TMC world, I could relabel an exact copy of diku within the constraints of the license without changing a line of code. Arguably TMC would have been better off asking people what their code is derived from, and staying away from terms like what codebase is the engine. It sounds like that's what they're actually wanting to know, anyways. I'm guessing TMC audits this field by eye balling the game and making a determination if it's been edited enough in their opinion? To me that's silly.
I do not think the OP only wanted to talk about what TMC does.
What he said in his first post was "I've noticed some other games that are using such a codebase, but then have appended a tag to their game denoting it to be a subserver of such a codebase. Specifically, I was looking at Ivalice's listing on TMC".
So that was the context of my reply. On TMC each listing has "Parent Server Type" and "Additional Server Type Notes". You can put anything you like in "Additional Server Type Notes", but "Parent Server Type" is selected from a drop-down list, and "Custom" is used for muds that are written from scratch.
I didn't realize TMC had any such rules. In the non-TMC world, I could relabel an exact copy of diku within the constraints of the license without changing a line of code. Arguably TMC would have been better off asking people what their code is derived from, and staying away from terms like what codebase is the engine. It sounds like that's what they're actually wanting to know, anyways.
Well I think "Parent Server Type" is pretty self-explanatory, but it does also clarify "(If your mud is derived from any code base please specify here)". Likewise, the "Custom" option in the drop-down list is actually written "Custom (written from scratch)" when creating or editing the listing.
I'm guessing TMC audits this field by eye balling the game and making a determination if it's been edited enough in their opinion? To me that's silly.
Well that's the whole point - it doesn't matter how much you've edited the game, if its a ROM derivative then "Parent Server Type" should be "ROM".