Re: [crossfire] 2.0 release, was Re: Code restructuring

2006-07-22 Thread Mark Wedel
Alex Schultz wrote:

   But that can then lead to rapid turnover of major releases. Eg, I do major 
 code restructure, make 3.0.0 release.  Then some other change is made (maybe 
 compatibility breakage, maybe some other code restructure) - do you make a 
 4.0.0 
 release 3 months later then?  I think there needs to be some minimum/maximum 
 gap 
 between major releases.
   
 This is true, however I can't see major code restructures working well
 as part of a minor release. What I see as ideal though, is if the trunk
 gets a few major features almost worthy of a major release, then a code
 restructure happens, and a release happens afterwards. Of course, timing
 may not work out so ideally, but perhaps it might be good for people to
 try to time their major code restructures to finish about just before
 when a major release is anticipated.

  Well, a major code restructure can't go into a minor release.  Under the 
proposed model, the only thing that comes from the main branch is major 
releases 
- when a major release is done, then a new stable branch is set up where the 
minor releases come from.

  Going back to the original issue is code drifting apart - if a major 
restructure is done in the main branch, it makes fixing any bugs in both the 
main and stable branch more difficult.

  It could just be we live with that difficulty.  Or if a major restructure is 
done shortly after a major release, still have to wait for the 6 months or 
whatever.  I don't really want to try to say 'major code restructures happen 
near the end of the cycle' - I think if someone has the code ready and it is on 
the list of things to do, it should be committed.


 Yes, this is true, however despite that, not all major releases need
 break things, and no sense breaking things unless there is a logical
 reason to.
 (random thought about old clients: There are a good number of people who
 still use the plain X client, the gnome client though, I don't think is
 in usage though I may be mistaken)

  However, as per gros's comment, there needs to be sufficient changes between 
the releases to warrant a major release.  We probably don't want to do a new 
major release if there are not any signficant changes - I suppose this may be a 
matter of opinion, but if we go in this model, I think that sort of needs to be 
the case, as otherwise we get into confusion at what each branch/release means.

  There can still certainly be major releases which don't break compatiblity in 
any way but still hold other significant changes (new features, or changing of 
existing features/expanding them).


___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] 2.0 release, was Re: Code restructuring

2006-07-22 Thread Yann Chachkoff
Le vendredi 21 juillet 2006 07:37, Mark Wedel a écrit :
 Yann Chachkoff wrote:
   The biggest danger is that given there are only a handful of servers, if
 the first release of 2.0 (or whatever major version) has serious problems,
 it might be hard convincing people to try 2.1, etc

Well, at least for the code side of things, it seems to me that a software 
that shows serious problems should not get released.

Now, you could say that there is no way to be sure that the server works 
before trying it; I'd answer to this that (1) we developers are supposed to 
do at least some rough beta testing and (2) nothing prevents us to set a 
single beta-testing server clearly flagged as such to get player's feedback 
and spot what could have been missed during development.

I'd also like to underline that other games suffered serious problems at 
times, but it wasn't hard to convince people to try the next step, provided 
that they initially found the game promising/fun/interesting enough. If we 
are not sure of this, then we may have a content problem that needs to be put 
on the table.

   And if the changes break compatibility, that makes it even less likely
 for servers to switch over.

As long as an old version will only get bugfixes, servers will switch over 
anyway, to have access to the new cool and shiny features. But again, the 
interest of the new stuff should be strong enough and, if we believe it may 
not, then we have a problem regarding the content of the game and our 
relationship towards the player side of the community: it would basically 
mean that we work without understanding what players need/want/await for.

   I suppose it depends on how often we plan to do major releases.  If only
 every couple years, this can lead to other problems:
 1) To players/users, the project may appear dead (nothing new in the past
 12 months) 

Sorry if I sound rude by saying this, but that's ridiculous. Since when a 
project that mostly releases revisions of a given version is 
considered 'dead' ? To take a simple example, PHP 4.0 was released in 2000, 
and PHP 5.0 'only' in 2004 - did people consider it a 'dead project' in the 
meantime ?
Again, I am not saying we should provide nothing new - but simply not 
include major changes. And I think there are plenty of smaller-scale stuff 
to keep us busy to provide minor releases anyway.

 2) To developers, less satisfaction making changes if no one 
 (outside perhaps a very limited set of developers) will see it for 12
 months

First, there are changes that can be introduced by each minor release. Second, 
major changes worth an upgrade of the major version number are likely to take 
a long time to complete, maybe months, so the waiting time is unlikely to 
be a problem - you cannot be upset that your code isn't used if you haven't 
even got enough time to finish it.

   This can be solved by doing major releases every 6 months (or a year at
 max) - but that then limits number of changes that can be done in each for
 each major release.  Which may not be a bad thing, but just a note.

Why would we ever need to base major releases on arbitrary dates ? That's a 
terrible idea, IMHO. Such changes should be based on the features first, and 
*then* on some kind of deadline to complete the work, not the reverse.

   But last point is scope of changes - if major changes break
 compatibility, you probably don't want to do them too often - players (and
 server admins) probably don't want to have to start from scratch every 6
 months.

Sure. I was more thinking about a rather long cycle for majors - one every two 
years or so, possibly even longer.

   That more or less matches what I said for the CVS branch.

   I guess if we're not really concerned about stability of major releases,
 doing pre-releases isn't necessary.  But given that major releases will
 have much larger scale changes, I'd see that number of severity of bugs to
 potentially be larger.

   Likewise, if the code isn't being used very much until it is released, it
 means that a bug for a big change may not be discovered until a year after
 that change is made.  I know from my own developing perspective, I'd much
 rather find bugs for code I do relatively shortly after I do the code,
 because the code will be fresher in my mind than if I have to look back at
 something I did 6 months ago.

Then simply open a public beta server using the last usable CVS code. There's 
no need to play with pre-xxx labels of any kind for that.

   I suppose in short what I'm saying is it is really nice to have all code
 actually exercised/used somewhat shortly after the code is written.

Yes, indeed. But that would also include some testing made by the developer(s) 
it(them)selves. Often, changes made in the CVS currently result in an 
unusable code because of gross errors that could have been avoided if the 
coder had spent ten more minutes to build, install and test his/her new 
addition. 

   At the same time, the number of 

Re: [crossfire] 2.0 release, was Re: Code restructuring

2006-07-22 Thread Mark Wedel
Andrew Fuchs wrote:

 On the community side, we need to encourage player interaction, both
 in and out of the game.  One way to boost in game interaction would be
 bolstering the player economy.  However, that will probably not be
 done in time for cf2.0.  For the community out of game, make it easier
 to find resources like the forums, and the wiki.

  Some of this could be done by including notes/links to that in the client 
itself (perhaps in the about tab).  I think most servers may report that info 
in 
the motd, but a lot of other info is also displayed at login time, so may not 
be 
obvious to everyone (one of those things that when you get shown a bunch of 
info 
at one time, becomes more common to just ignore it.)

  There is also nothing preventing server admins from changing the motd so that 
it doesn't contain that information.


  Additionally, make
 it easier to join irc channels, possibly by putting a java applet
 somewhere. 

  Not 100% sure about that - presumably most everyone playing will have some 
irc 
client available - we should probably make it more obvious (again) on pointing 
out that the irc channel exists.

  I personally don't think we want to write/maintain our own irc interface. 
There might be libraries to make it pretty easy, in which case doing it may not 
be that hard.  But in that case, it should be a pretty specific interface (only 
connect to the crossfire channel, etc - don't get things too complicated by 
implementing a complete irc client).  If a person is serious about using irc, 
they should be able (or probably already have) a fully featured irc client.


 Another thing that could be done to aid the community,
 both in-game and outside of the game, would be to setup a method to
 connect to servers, just for the purpose of chatting with people who
 are playing (oldsocketmode uses food iirc).

  IMO, oldsocketmode should just go away - part of the code cleanup.

  But a simple change for this would be if your on a savebed and not regaining 
sp/grace/hp, you don't use food.  I don't think that would hurt balance and 
people could be logged in and never eat a bite but still take in conversations, 
etc.  If you want to go out and trade items, whatever, then you would use some 
food.



  Another topic of
 communication between players, would be the inter-server chat
 discussed a while ago.

  I think that falls into a major project - not as simple as one might thing - 
this needs to be properly thought out in many ways.

 


___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] 2.0 release, was Re: Code restructuring

2006-07-22 Thread Yann Chachkoff
Le vendredi 21 juillet 2006 20:15, Andrew Fuchs a écrit :
 What I'm inferring, and my op pinions:

 Summary:

 While 2.0 should be a significant release, the majority opinion is
 that it should not take years.  This makes it difficult to implement
 what everyone wants, etc.

True.

 I think 2.0 should be the point at which most issues that we have
 known about, but haven't fixed, should be fixed.  
I'd get furthermore by saying that the last 1.x should be the point where most 
issues should be solved. And then, we can start making massive changes 
leading to the 2.0 version.

 Additionally, the 
 game should be made easier to use (more graphical interfaces on the
 client side instead of typing in commands constantly),

Yep - some proposals for the ergonomy of the client would be more than 
welcome.

 Gaining developers:
 snip
Agree on all this, although gathering more devs is probably not the most 
important point ATM.


 Strengthening the community:

 On the community side, we need to encourage player interaction, both
 in and out of the game.  One way to boost in game interaction would be
 bolstering the player economy.

I think that, before entering into such details, we should ask ourselves what 
is fun in the game and what isn't. And more important, as players what they 
find fun, and what they don't.
I am also doubtful that changing game mechanisms is the top issue for a 
stronger community - rather, that's making the game attractive and fun, by 
proposing events in and around them. Many MMORPGs feature special events 
around their games (contests, one-time special quests, etc). I think that 
should be investigated for Crossfire.

 However, that will probably not be done in time for cf2.0.  

Indeed. But that's probably a good time to start thinking about that part, and 
try to produce a list of what should be done.

 For the community out of game, make it easier to find resources like the 
 forums, and the wiki.  Additionally, make 
 it easier to join irc channels, possibly by putting a java applet
 somewhere.  

Good idea. Probably make the Forum and Wiki more visible on the front page 
would also help.

 Another thing that could be done to aid the community, 
 both in-game and outside of the game, would be to setup a method to
 connect to servers, just for the purpose of chatting with people who
 are playing (oldsocketmode uses food iirc).  

Agree.

 Another topic of communication between players, would be the inter-server 
 chat discussed a while ago. 

Yep, although that's a little more complex issue to solve. Maybe bridges with 
the IRC could solve the issue.

 My opinion on release numbers:

 Once we have more developers and enough are willing to volunteer, it
 may be a good idea to appoint some people to maintain the stable
 branches.

Maybe. Note that I don't think we should maintain several stable branches 
concurrently - only the last release made. I doubt we'd really need specific 
maintainers in such a scheme.

 Micro releases: bug fixes, and addition of small features
 Minor releases: Features involving significant changes
 Major releases: Huge changes in game play, major overhauls, milestones
 in development

I mostly agree with this. Just for the record, I think micro releases probably 
wont require any CVS branching. I'd put small features as minor release 
ones, though - else, we're taking the risk of a slide where most changes 
become considered as micro release ones to make them happen faster.

 Finally, i just want to note that our next release could be 1.10.0
 instead of 2.0 if we need more time for cf2.0.

Quite probably. I think we should first fix all the remaining problems, 
release that as 1.10, and then work on that strong code basis to get a 2.0.

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] 2.0 release, was Re: Code restructuring

2006-07-22 Thread Alex Schultz
Mark Wedel wrote:
   Well, a major code restructure can't go into a minor release.  Under the 
 proposed model, the only thing that comes from the main branch is major 
 releases 
 - when a major release is done, then a new stable branch is set up where the 
 minor releases come from.

   Going back to the original issue is code drifting apart - if a major 
 restructure is done in the main branch, it makes fixing any bugs in both the 
 main and stable branch more difficult.

   It could just be we live with that difficulty.  Or if a major restructure 
 is 
 done shortly after a major release, still have to wait for the 6 months or 
 whatever.  I don't really want to try to say 'major code restructures happen 
 near the end of the cycle' - I think if someone has the code ready and it is 
 on 
 the list of things to do, it should be committed.
   
Agreed, I was just nitpicking about what would be the ideal
circumstances, and if someone does have code ready right after a major
release, it should indeed still be committed. Personally I think this
difficulty would be perfectly fine to live with, provided that those who
do the restructuring make sure they keep detailed logs of what
functionality of the code moved where in the changelog (i.e. along the
lines of Moved weapon behavior from apply_ob() in item.c to
type_weapon_apply() in types/weapons.c), to make it easier to people to
deal with.


   However, as per gros's comment, there needs to be sufficient changes 
 between 
 the releases to warrant a major release.  We probably don't want to do a new 
 major release if there are not any signficant changes - I suppose this may be 
 a 
 matter of opinion, but if we go in this model, I think that sort of needs to 
 be 
 the case, as otherwise we get into confusion at what each branch/release 
 means.

   There can still certainly be major releases which don't break compatiblity 
 in 
 any way but still hold other significant changes (new features, or changing 
 of 
 existing features/expanding them).
Agreed, I was just pointing out that even with major releases, we should
think before breaking things, and if there is a reasonable way to get
things done, without breaking, or without making the code messy, etc.
then it should be considered.

Alex Schultz

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] 2.0 release, was Re: Code restructuring

2006-07-22 Thread Alex Schultz
Andrew Fuchs wrote:
 Finally, i just want to note that our next release could be 1.10.0
 instead of 2.0 if we need more time for cf2.0.
And that is something I strongly believe should be the case. I
personally do not believe that we are ready for 2.0 for a while (I'm
thinking about 6 months or so if not a little more), and I believe in
the meantime that we should do at least one release such as 1.10.0.
However I believe the point of another release between 2.0 and now to
gain more time, is fairly moot unless people can work on 2.0 in cvs
starting fairly soon, hence, I believe that the best solution would be
to create create a new cvs branch for working on 1.10.0, and then work
on 2.0 things in the main branch. In terms of debate between making a
branch for each major version, or each minor version, I personally don't
have much preference on, but I feel that a branch of some sort is
needed. Also, I believe the type of code restructure I mentioned a
little earlier on the mailing list, should be something to target for
2.0, though I personally wait about a month to start work on it to allow
people to get used to usage of the branches and possibly to apply
pending patches that have been lying around for a while already.

Alex Schultz


___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


[crossfire] Server setup an Debian - newbie

2006-07-22 Thread Penbrock
Good morning all. I have installed the server from the Debian apt-get 
and it installed fine, or so I thought. It seems that the .deb package 
does not install the plugins.
  Where can I find the doc's for an old fart just learning Linux to get 
the  plugins compiled?

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


[crossfire] Ideas to make DM quests easier to manage and setup, was Re: 2.0 release

2006-07-22 Thread Andrew Fuchs
On 7/22/06, Nicolas Weeger (Laposte) [EMAIL PROTECTED] wrote:
  I am also doubtful that changing game mechanisms is the top issue for a
  stronger community - rather, that's making the game attractive and fun, by
  proposing events in and around them. Many MMORPGs feature special events
  around their games (contests, one-time special quests, etc). I think that
  should be investigated for Crossfire.

IMO, we need more of these.  Adding some way for mappers to use the
date to control events on their maps could have a somewhat similar
effect, but would be less interesting to players.

 We did that on Metalforge a few times, a few DMs.

 Drawbacks:
 * it takes time to plan
 * it takes time to actually eg put items, create stuff, and so on

I don't have the time to do this, but would some semi-standardized
quest types, and premade maps (containing objects requiring minimum
modification, and/or a script to check player's status) to aid with
those quests help?

 * it takes time to run, because people will connect to the game and want to
 play

Possibly make the event last for a day or two, but that would make
things harder to plan.

 * it takes many people to handle everything

Would some premade scripts to manage dm quests help?

 * also note time zone issue, too

Another reason to make events that last a few days.

 But i'd be ready (and eager!) to help do some events from time to time.

-- 
Andrew Fuchs

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Server setup an Debian - newbie

2006-07-22 Thread Andrew Fuchs
On 7/22/06, Penbrock [EMAIL PROTECTED] wrote:
 Good morning all. I have installed the server from the Debian apt-get
 and it installed fine, or so I thought. It seems that the .deb package
 does not install the plugins.

Weird, usually the plugins are includes with the server, and run by
default.  It could be that they where placed in another package, but I
doubt that (only packages that look like they would logically include
them are crossfire-server and crossfire-common).

   Where can I find the doc's for an old fart just learning Linux to get
 the  plugins compiled?

No such documentation exists AFAIK (plugins are application specific
most of the time).  Also I don't know of anywhere to get a individual
plugin, except for the source code.  So ultimately the easiest
solution (for those who know how to) would probably be to compile the
server from source.

P.S.:  Anyone want to get hold of the maintainer of the crossfire
Debian packages, and see what he knows?

-- 
Andrew Fuchs

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Server setup an Debian - newbie

2006-07-22 Thread Andrew Fuchs
Ok, it seems like the package has been fixed, and is waiting to be
uploaded to the debain servers/mirrors.

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=379348

-- 
Andrew Fuchs

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Server setup an Debian - newbie

2006-07-22 Thread Penbrock
Andrew Fuchs wrote:
 Ok, it seems like the package has been fixed, and is waiting to be
 uploaded to the debain servers/mirrors.

 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=379348

   
I found the maintainer on IRC and he is fixing it. Thanks


___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire