Re: [crossfire] TODO list

2010-03-31 Thread Juha Jäykkä
 them.  But maybe this just goes back to me playing a troll character at one
 time, and having to deal with carrying large amounts of food (due to the
  trolls bonus is HP regeneration, food usage goes up).

Fireborn have the same thing, they also need lots of food. So these two races 
need serious tweaking if food is removed as a stat (and I think wraiths as 
well, since they have the advantage of not requiring any food).

I have had times where my fireborn was in trouble killing the monsters faster 
than food stat went down, so I would say that food is not too abuntant at all!

Also, dragons' ability gains by food must be tweaked if food is reduced in any 
significant amount.

  and eat it like nothing has happened.  Just adding some form of rotting
  would probably reduce available food by a bit.

Indeed, this is nice. Of course, lembas etc might not rot at all and hearts 
and livers rot faster than apples or cooked meat...

After one gets create food spells, food becomes moot anyway in any case 
(except the special food and dragons).

-- 
 ---
| Juha Jäykkä, ju...@iki.fi |
| http://www.maths.leeds.ac.uk/~juhaj   |
 ---


signature.asc
Description: This is a digitally signed message part.
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] TODO list

2010-01-22 Thread Nicolas Weeger
   That might be simpler.  But a general evaluation of the skills, what they
 do, and if they can/should be adjusted/made more useful could be in order.

   Things like woodsmen doesn't have any skill levels IIRC, because there is
 no proper way to gain exp.  As such, you gain it, and that is it.  But one
 could see it having levels, so that as you gain levels, the amount forest
 slows you down decreases, where at some point you might not have any
 penalty.

Woodsman has skill levels, as it does alchemy-like transformation and item 
identification, too.


But I agree with the need to evaluate all skills and sort/clean stuff.

Any volunteer? :)




   If not already in place, woodsmen would also be the natural skill for
 harvesting wood.

Probably.
Right now you could implement woodcutting through the harvesting stuff 
already.



Nicolas
-- 
http://nicolas.weeger.org [Mon p'tit coin du web]


signature.asc
Description: This is a digitally signed message part.
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] TODO list

2010-01-19 Thread Otto J. Makela
Mark Wedel wrote:
 Alex Schultz wrote:
 Expand cooking to allow players to salt the meats and such? Perhaps
 make weight-reduction-enchanted containers have some kind of partial
 preservative magic? That would help trolls :)
 
 That could work.  It may just be that for even normal characters, food 
 consumption can be fairly high - reducing it by half across the board may
 not be a bad thing.

I was just earlier today thinking that the woodsman skill is in addition to
the fast moving in wooded terrain ability (does anyone actually use this?)
an identification skill -- what if it also included the ability to cure and
preserve meats so they don't spoil as fast? What about a skill to butcher
corpses down into more stable food items, or is that just too gory?

Or do we want to make all this a part of cooking?

-- 
/* * * Otto J. Makela o...@iki.fi * * * * * * * * * * * * * * * */
   /* Phone: +358 40 765 5772, FAX: +358 42 7655772, ICBM: 60N 25E */
  /* Mail: Mechelininkatu  26 B 27,  FI-00100  Helsinki,  FINLAND */
/* * * Computers Rule 0100 01001011 * * * * * * * * * * * * */

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


Re: [crossfire] TODO list

2010-01-19 Thread Mark Wedel
Otto J. Makela wrote:
 Mark Wedel wrote:
 Alex Schultz wrote:
 Expand cooking to allow players to salt the meats and such? Perhaps
 make weight-reduction-enchanted containers have some kind of partial
 preservative magic? That would help trolls :)
 That could work.  It may just be that for even normal characters, food 
 consumption can be fairly high - reducing it by half across the board may
 not be a bad thing.
 
 I was just earlier today thinking that the woodsman skill is in addition to
 the fast moving in wooded terrain ability (does anyone actually use this?)
 an identification skill -- what if it also included the ability to cure and
 preserve meats so they don't spoil as fast? What about a skill to butcher
 corpses down into more stable food items, or is that just too gory?

  Mountaineering and woodsmen (movement bonus skills) get applied 
automatically, 
just like bargaining should.  A player shouldn't need to explicitly use them.

  I could see several levels of cooking - woodsmen may allow basic preserving 
of 
flesh items (salt/smoke it for example) - this basically gets you a normal food 
item that won't rot.

  Cooking might be needed to make special food items (those that give some form 
of bonus).

 
 Or do we want to make all this a part of cooking?

  That might be simpler.  But a general evaluation of the skills, what they do, 
and if they can/should be adjusted/made more useful could be in order.

  Things like woodsmen doesn't have any skill levels IIRC, because there is no 
proper way to gain exp.  As such, you gain it, and that is it.  But one could 
see it having levels, so that as you gain levels, the amount forest slows you 
down decreases, where at some point you might not have any penalty.

  If not already in place, woodsmen would also be the natural skill for 
harvesting wood.



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


Re: [crossfire] TODO list

2010-01-18 Thread Nicolas Weeger
   I don't know a lot about Qt, but it looks like the big bonus is better
 cross platform stuff.  POSIX doesn't define everything we use, as evidenced
 by a fair number of #idef platform type

Forgot but you also gain multilinguage support through a nice mechanism - 
tr(Your text with %1).args(parameter), making it easy to see texts instead 
of obscure constants.



   I agree that should be primary focus - we can always toss lots of stuff
 in code, but unless it makes the game better to play, doesn't get us a lot.

Yep, that's why C++ is in my various list.



   The problem is some maps are very food scarce, because of the monsters on
 them.  But maybe this just goes back to me playing a troll character at one
 time, and having to deal with carrying large amounts of food (due to the
 trolls bonus is HP regeneration, food usage goes up).

   Priests at least have the odd case where they can create food.  But I
 guess nethack had food.

   I think one change, relative to food, is for all flesh type things (which
 can be eaten as food) should have some time limit where they start to
 decompose/rot. I shouldn't be able to carry around an ogre leg for a week
 and eat it like nothing has happened.  Just adding some form of rotting
 would probably reduce available food by a bit.


Rotting could be fun, but depending on implementation you'd have multiple food 
parts similar but not merging because dropped-tick isn't the same...


As for trolls, that's one disadvantage they have - need MUCH food. On the 
opposite, Devourer adepts almost don't use food...




Nicolas
-- 
http://nicolas.weeger.org [Mon p'tit coin du web]


signature.asc
Description: This is a digitally signed message part.
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] TODO list

2010-01-18 Thread Alex Schultz
On Mon, 18 Jan 2010 18:33:44 +0100
Nicolas Weeger nicolas.wee...@laposte.net wrote:

I think one change, relative to food, is for all flesh type
  things (which can be eaten as food) should have some time limit
  where they start to decompose/rot. I shouldn't be able to carry
  around an ogre leg for a week and eat it like nothing has
  happened.  Just adding some form of rotting would probably reduce
  available food by a bit.  
 
 
 Rotting could be fun, but depending on implementation you'd have
 multiple food parts similar but not merging because dropped-tick
 isn't the same...

We could always implement multiple timeouts for objects that
would in this case specify how many were dropped on a given tick... not
sure it's worth the bother, but just noting that that isn't an
insurmountable issue.

 As for trolls, that's one disadvantage they have - need MUCH food. On
 the opposite, Devourer adepts almost don't use food...

Expand cooking to allow players to salt the meats and such? Perhaps
make weight-reduction-enchanted containers have some kind of partial
preservative magic? That would help trolls :)

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


Re: [crossfire] TODO list

2010-01-18 Thread Mark Wedel
Alex Schultz wrote:
 On Mon, 18 Jan 2010 18:33:44 +0100
 Nicolas Weeger nicolas.wee...@laposte.net wrote:
 
   I think one change, relative to food, is for all flesh type
 things (which can be eaten as food) should have some time limit
 where they start to decompose/rot. I shouldn't be able to carry
 around an ogre leg for a week and eat it like nothing has
 happened.  Just adding some form of rotting would probably reduce
 available food by a bit.  

 Rotting could be fun, but depending on implementation you'd have
 multiple food parts similar but not merging because dropped-tick
 isn't the same...
 
 We could always implement multiple timeouts for objects that
 would in this case specify how many were dropped on a given tick... not
 sure it's worth the bother, but just noting that that isn't an
 insurmountable issue.

  Another possibility is that each flesh has several different states - fresh, 
smelly, molding, rotting, and then gone.  The scale may be 1-100, but each of 
those corresponds to a range (81-100 is fresh, 61-80 is smelly, etc)

  When you pick up a food item or otherwise cause a case where it would merge, 
you find something in the same state (moldy lets say) and average the results.

  For example, player has 2 moldy items with value of 44 - close to rotting. 
Picks up 1 item of moldy, but its value is 58 - just went into molding.  So we 
take (44*2 + 58)/3 = 49 value for the 3 items

  Unless a player is really tracking time, they are unlikely to notice those 
adjustments.  But one problem is that if a player has a big stack of smelly 
flesh that goes into moldy, it would make that moldy items fresher and they 
wouldn't go into rotting, like they should.

  Another thought, which probably works better, is that globally all food 
active 
in the game drops one category at once.  EG, all flesh in the world goes from 
fresh to smelly at the same time, goes from smelly to moldy at same time, etc. 
In that way, they are all synced up in status - not realistic.  A middle 
approach of all food decomposes in units of 5 may work better - you could still 
get the case of some food becoming fresher, but this may be less likely to 
happen.

  OTOH, one could just say that if the food is being merged together, it is 
effectively being stored in the same place, so that their state sort of does 
average (if you have 6 eggs that are month old and 6 eggs that are fresh and 
store them together, how fresh is that dozen eggs?)



 
 As for trolls, that's one disadvantage they have - need MUCH food. On
 the opposite, Devourer adepts almost don't use food...
 
 Expand cooking to allow players to salt the meats and such? Perhaps
 make weight-reduction-enchanted containers have some kind of partial
 preservative magic? That would help trolls :)

  That could work.  It may just be that for even normal characters, food 
consumption can be fairly high - reducing it by half across the board may not 
be 
a bad thing.


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


Re: [crossfire] TODO list

2010-01-15 Thread Mark Wedel
Nicolas Weeger wrote:
 Hello.
 
 Considering the low feedback/participation on the list, I'm totally changing 
 how I work :)
 

  Seems like a reasonable idea.  I've made a list of stuff I plan to work on - 
I 
put it at:

http://wiki.metalforge.net/doku.php/user:mwedel:todo

  Plus side is there doesn't seem to be much overlap between our lists.

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


Re: [crossfire] TODO list

2010-01-15 Thread Nicolas Weeger
   I know someone sort of looked into doing crossfire in C++ several years
 back. Their opinion was it was probably easier to start writing the code
 from scratch vs trying to convert the existing code.  I haven't looked at
 it enough to say for sure, but I could certainly see it may be easier to
 start from scratch but keep in archetype/map/player/protocol compatible. 
 On the same basis, one could use that to clean up lots of bits of code that
 are their for compatibility reasons or because that is the way things
 should work - one could actually define how those things should work.

Around one year ago I and another did an experiment converting to C++ and 
introducing Qt.
It was never completed, mind you (but as a by-product there is the CRE tool in 
utils/), but it wasn't *too* bad to do.
Making it build C++ mode was like 2h work. Introducing classes did take more 
time, though, but was doable too.

I could probably dig the source code if needed, even if it is obsolete by now.
Oh, and it did have dynamic archetype loading ;)
(ie change an archetype in the tree, it'd pick up the change a few seconds 
later - worked for faces at least)


But maybe yes rethinking the whole game architecture could be done taking the 
opportunity.
Of course, not a 2 days project.

And we would need to know the focus - modular design? robuste? performant?

(and see next reply :))



   But I suspect the stuff under Various is low priority - for the most part
 it cleans things up for developers, but doesn't really change the
 experience for players.

Correct. Various is more 'in some years', or 'never'.
C++/Qt would be a real time-saver in the long run - don't have to redefine 
shared strings, many many free stuff - threads, sockets, and such. And 
using a tested library.


But the first topic for me is gameplay / content. As long as no one is 
seriously working on that, I'll not do much on code, I think.

Unless I get seriously bored with reinventing the wheel and just introduce Qt 
to have basic functions - and not change the current non class mode. But I 
wouldn't do that without having a consensus on the list - worse case I'd make 
my own branch and work still on content :)




   I guess my question would be whether food as a core stat really adds much
 to the game or is as much a headache as anything else.

IMO it adds some fun.
And you could still eat some raw meat from monsters, when they give some. And 
you could introduce some fun diseases related to food - hum, that cow steak 
was good... err, why are you feeling crazy, suddenly?

Or it could just be used to regenerate sp.

But right now it's useless.




Nicolas
-- 
http://nicolas.weeger.org [Mon p'tit coin du web]


signature.asc
Description: This is a digitally signed message part.
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] TODO list

2010-01-15 Thread Dany Talbot
What would be redone with Qt ? anything GUI-related ? so the client(s)
[which ones? cfclient ?] the map editors [which ones? cfeditor? or the
java one or the gtk one?]? would you need/want to add some sort of
server admin console?

On Fri, Jan 15, 2010 at 1:16 PM, Nicolas Weeger
nicolas.wee...@laposte.net wrote:
   I know someone sort of looked into doing crossfire in C++ several years
 back. Their opinion was it was probably easier to start writing the code
 from scratch vs trying to convert the existing code.  I haven't looked at
 it enough to say for sure, but I could certainly see it may be easier to
 start from scratch but keep in archetype/map/player/protocol compatible.
 On the same basis, one could use that to clean up lots of bits of code that
 are their for compatibility reasons or because that is the way things
 should work - one could actually define how those things should work.

 Around one year ago I and another did an experiment converting to C++ and
 introducing Qt.
 It was never completed, mind you (but as a by-product there is the CRE tool in
 utils/), but it wasn't *too* bad to do.
 Making it build C++ mode was like 2h work. Introducing classes did take more
 time, though, but was doable too.

 I could probably dig the source code if needed, even if it is obsolete by now.
 Oh, and it did have dynamic archetype loading ;)
 (ie change an archetype in the tree, it'd pick up the change a few seconds
 later - worked for faces at least)


 But maybe yes rethinking the whole game architecture could be done taking the
 opportunity.
 Of course, not a 2 days project.

 And we would need to know the focus - modular design? robuste? performant?

 (and see next reply :))



   But I suspect the stuff under Various is low priority - for the most part
 it cleans things up for developers, but doesn't really change the
 experience for players.

 Correct. Various is more 'in some years', or 'never'.
 C++/Qt would be a real time-saver in the long run - don't have to redefine
 shared strings, many many free stuff - threads, sockets, and such. And
 using a tested library.


 But the first topic for me is gameplay / content. As long as no one is
 seriously working on that, I'll not do much on code, I think.

 Unless I get seriously bored with reinventing the wheel and just introduce Qt
 to have basic functions - and not change the current non class mode. But I
 wouldn't do that without having a consensus on the list - worse case I'd make
 my own branch and work still on content :)




   I guess my question would be whether food as a core stat really adds much
 to the game or is as much a headache as anything else.

 IMO it adds some fun.
 And you could still eat some raw meat from monsters, when they give some. And
 you could introduce some fun diseases related to food - hum, that cow steak
 was good... err, why are you feeling crazy, suddenly?

 Or it could just be used to regenerate sp.

 But right now it's useless.




 Nicolas
 --
 http://nicolas.weeger.org [Mon p'tit coin du web]

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





-- 
Dany Talbot, Quebec, Canada [ crystal...@gmail.com ]
Per aspera ad astra

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


Re: [crossfire] TODO list

2010-01-15 Thread Alexander Schultz
No, not client or GUI-related. Nicolas means to use it as a utility
library for C++, along the lines of the Boost libraries (which I
personally thing are better suited)

On Fri, 2010-01-15 at 13:52 -0500, Dany Talbot wrote:
 What would be redone with Qt ? anything GUI-related ? so the client(s)
 [which ones? cfclient ?] the map editors [which ones? cfeditor? or the
 java one or the gtk one?]? would you need/want to add some sort of
 server admin console?
 
 On Fri, Jan 15, 2010 at 1:16 PM, Nicolas Weeger
 nicolas.wee...@laposte.net wrote:
I know someone sort of looked into doing crossfire in C++ several years
  back. Their opinion was it was probably easier to start writing the code
  from scratch vs trying to convert the existing code.  I haven't looked at
  it enough to say for sure, but I could certainly see it may be easier to
  start from scratch but keep in archetype/map/player/protocol compatible.
  On the same basis, one could use that to clean up lots of bits of code that
  are their for compatibility reasons or because that is the way things
  should work - one could actually define how those things should work.
 
  Around one year ago I and another did an experiment converting to C++ and
  introducing Qt.
  It was never completed, mind you (but as a by-product there is the CRE tool 
  in
  utils/), but it wasn't *too* bad to do.
  Making it build C++ mode was like 2h work. Introducing classes did take more
  time, though, but was doable too.
 
  I could probably dig the source code if needed, even if it is obsolete by 
  now.
  Oh, and it did have dynamic archetype loading ;)
  (ie change an archetype in the tree, it'd pick up the change a few seconds
  later - worked for faces at least)
 
 
  But maybe yes rethinking the whole game architecture could be done taking 
  the
  opportunity.
  Of course, not a 2 days project.
 
  And we would need to know the focus - modular design? robuste? performant?
 
  (and see next reply :))
 
 
 
But I suspect the stuff under Various is low priority - for the most part
  it cleans things up for developers, but doesn't really change the
  experience for players.
 
  Correct. Various is more 'in some years', or 'never'.
  C++/Qt would be a real time-saver in the long run - don't have to redefine
  shared strings, many many free stuff - threads, sockets, and such. And
  using a tested library.
 
 
  But the first topic for me is gameplay / content. As long as no one is
  seriously working on that, I'll not do much on code, I think.
 
  Unless I get seriously bored with reinventing the wheel and just introduce 
  Qt
  to have basic functions - and not change the current non class mode. But I
  wouldn't do that without having a consensus on the list - worse case I'd 
  make
  my own branch and work still on content :)
 
 
 
 
I guess my question would be whether food as a core stat really adds much
  to the game or is as much a headache as anything else.
 
  IMO it adds some fun.
  And you could still eat some raw meat from monsters, when they give some. 
  And
  you could introduce some fun diseases related to food - hum, that cow steak
  was good... err, why are you feeling crazy, suddenly?
 
  Or it could just be used to regenerate sp.
 
  But right now it's useless.
 
 
 
 
  Nicolas
  --
  http://nicolas.weeger.org [Mon p'tit coin du web]
 
  ___
  crossfire mailing list
  crossfire@metalforge.org
  http://mailman.metalforge.org/mailman/listinfo/crossfire
 
 
 
 
 


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


Re: [crossfire] TODO list

2010-01-15 Thread Nicolas Weeger
 No, not client or GUI-related. Nicolas means to use it as a utility
 library for C++, along the lines of the Boost libraries (which I
 personally thing are better suited)

Indeed, I meant server-side.
Client-side is JXClient IMO :)



Nicolas


 On Fri, 2010-01-15 at 13:52 -0500, Dany Talbot wrote:
  What would be redone with Qt ? anything GUI-related ? so the client(s)
  [which ones? cfclient ?] the map editors [which ones? cfeditor? or the
  java one or the gtk one?]? would you need/want to add some sort of
  server admin console?
 
  On Fri, Jan 15, 2010 at 1:16 PM, Nicolas Weeger
 
  nicolas.wee...@laposte.net wrote:
 I know someone sort of looked into doing crossfire in C++ several
   years back. Their opinion was it was probably easier to start writing
   the code from scratch vs trying to convert the existing code.  I
   haven't looked at it enough to say for sure, but I could certainly see
   it may be easier to start from scratch but keep in
   archetype/map/player/protocol compatible. On the same basis, one could
   use that to clean up lots of bits of code that are their for
   compatibility reasons or because that is the way things should work -
   one could actually define how those things should work.
  
   Around one year ago I and another did an experiment converting to C++
   and introducing Qt.
   It was never completed, mind you (but as a by-product there is the CRE
   tool in utils/), but it wasn't *too* bad to do.
   Making it build C++ mode was like 2h work. Introducing classes did take
   more time, though, but was doable too.
  
   I could probably dig the source code if needed, even if it is obsolete
   by now. Oh, and it did have dynamic archetype loading ;)
   (ie change an archetype in the tree, it'd pick up the change a few
   seconds later - worked for faces at least)
  
  
   But maybe yes rethinking the whole game architecture could be done
   taking the opportunity.
   Of course, not a 2 days project.
  
   And we would need to know the focus - modular design? robuste?
   performant?
  
   (and see next reply :))
  
 But I suspect the stuff under Various is low priority - for the most
   part it cleans things up for developers, but doesn't really change the
   experience for players.
  
   Correct. Various is more 'in some years', or 'never'.
   C++/Qt would be a real time-saver in the long run - don't have to
   redefine shared strings, many many free stuff - threads, sockets, and
   such. And using a tested library.
  
  
   But the first topic for me is gameplay / content. As long as no one is
   seriously working on that, I'll not do much on code, I think.
  
   Unless I get seriously bored with reinventing the wheel and just
   introduce Qt to have basic functions - and not change the current non
   class mode. But I wouldn't do that without having a consensus on the
   list - worse case I'd make my own branch and work still on content :)
  
 I guess my question would be whether food as a core stat really adds
   much to the game or is as much a headache as anything else.
  
   IMO it adds some fun.
   And you could still eat some raw meat from monsters, when they give
   some. And you could introduce some fun diseases related to food - hum,
   that cow steak was good... err, why are you feeling crazy, suddenly?
  
   Or it could just be used to regenerate sp.
  
   But right now it's useless.
  
  
  
  
   Nicolas
   --
   http://nicolas.weeger.org [Mon p'tit coin du web]
  
   ___
   crossfire mailing list
   crossfire@metalforge.org
   http://mailman.metalforge.org/mailman/listinfo/crossfire

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



-- 
http://nicolas.weeger.org [Mon p'tit coin du web]


signature.asc
Description: This is a digitally signed message part.
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] TODO list

2010-01-15 Thread Mark Wedel
Nicolas Weeger wrote:
   I know someone sort of looked into doing crossfire in C++ several years
 back. Their opinion was it was probably easier to start writing the code
 from scratch vs trying to convert the existing code.  I haven't looked at
 it enough to say for sure, but I could certainly see it may be easier to
 start from scratch but keep in archetype/map/player/protocol compatible. 
 On the same basis, one could use that to clean up lots of bits of code that
 are their for compatibility reasons or because that is the way things
 should work - one could actually define how those things should work.
 
 Around one year ago I and another did an experiment converting to C++ and 
 introducing Qt.
 It was never completed, mind you (but as a by-product there is the CRE tool 
 in 
 utils/), but it wasn't *too* bad to do.
 Making it build C++ mode was like 2h work. Introducing classes did take more 
 time, though, but was doable too.

  I could see that - C code in general should compile under C++, but there may 
be a few areas where it doesn't.  But just making it compile under C++ doesn't 
get a lot.

  To be really valuable, conversion to classes, etc, is likely needed, and that 
is a much bigger project.  And the question then is whether it is worth it to 
try to convert the existing code base (structure by structure) or start with 
something new, with perhaps lots of copy/pasting, but also proper/better design 
in how the classes and like interact.


 
   But I suspect the stuff under Various is low priority - for the most part
 it cleans things up for developers, but doesn't really change the
 experience for players.
 
 Correct. Various is more 'in some years', or 'never'.
 C++/Qt would be a real time-saver in the long run - don't have to redefine 
 shared strings, many many free stuff - threads, sockets, and such. And 
 using a tested library.

  I don't know a lot about Qt, but it looks like the big bonus is better cross 
platform stuff.  POSIX doesn't define everything we use, as evidenced by a fair 
number of #idef platform type

 
 
 But the first topic for me is gameplay / content. As long as no one is 
 seriously working on that, I'll not do much on code, I think.

  I agree that should be primary focus - we can always toss lots of stuff in 
code, but unless it makes the game better to play, doesn't get us a lot.

 
   I guess my question would be whether food as a core stat really adds much
 to the game or is as much a headache as anything else.
 
 IMO it adds some fun.
 And you could still eat some raw meat from monsters, when they give some. And 
 you could introduce some fun diseases related to food - hum, that cow steak 
 was good... err, why are you feeling crazy, suddenly?
 
 Or it could just be used to regenerate sp.
 
 But right now it's useless.

  The problem is some maps are very food scarce, because of the monsters on 
them.  But maybe this just goes back to me playing a troll character at one 
time, and having to deal with carrying large amounts of food (due to the trolls 
bonus is HP regeneration, food usage goes up).

  Priests at least have the odd case where they can create food.  But I guess 
nethack had food.

  I think one change, relative to food, is for all flesh type things (which can 
be eaten as food) should have some time limit where they start to 
decompose/rot. 
  I shouldn't be able to carry around an ogre leg for a week and eat it like 
nothing has happened.  Just adding some form of rotting would probably reduce 
available food by a bit.


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


Re: [crossfire] TODO list

2010-01-14 Thread Dany Talbot
move to Qt/C++, to not reinvent the wheel all the time; and massively
clean the code

such as this:
(naive draft)
(the object superstructure need to be separated into a base 'object'
class - and then you'd have God : Object inheriting from it and adding
stuff specific to God that are in the former object superstructure in
the C code. Also I didn't check the code to rework the function
parameters - that is why it is called a naive draft).


#include iostream
#include global
#include living
#include object
#include spells
#include sounds
// TODO: other includes

/* TODO:
move

 * Compares 2 strings.
 * @param s1
 * @param s2
 * strings to compare.
 * @return
 * 1 if s1 and s2 are the same - either both NULL, or strcmp( ) == 0.

static int same_string(const char *s1, const char *s2) {
if (s1 == NULL)
return s2 == NULL;
else
return s2 != NULL  strcmp(s1, s2) == 0;
}

to an utility function/class
*/

class God : Object
{
 public:
// default constructor
Gods();

// default destructor
~Gods();

// operator overload '=='

// operator overload '='

// accesors

// modifiers

Archetype *determine_holy_arch(const Object *god, std::string type);
const God *find_god(std::string name);
const std::string determine_god(Object *op);
int become_follower(Object *op, const Object *new_god);
int tailor_god_spell(Object *spellop, Object *caster);
void pray_at_altar(Object *pl, Object *altar, Object *skill);

private:
const std::string get_god_for_race(std::string race);
int _follower_has_similar_item(Object *op, Object *item);
int _follower_level_to_enchantments(int level, int difficulty);
int _god_enchants_weapon(Object *op, const Object *god, Object
*tr, Object *skill);
int _god_examines_item(const Object *god, Object *item);
int _god_examines_priest(Object *op, const Object *god);
int _god_gives_present(Object *op, const Object *god, Treasure *tr);
int _god_removes_curse(Object *op, int remove_damnation);
int _improve_weapon_magic(Object *op, Object *tr, Object *weapon,
Object *skill);
int _lookup_god_by_name(std::string name);
int _worship_forbids_use(Object *op, Object *exp_obj, uint32 flag,
const std::string string);
void _follower_remove_given_items(Object *pl, Object *op, const
Object *god);
void _god_intervention(Object *op, const Object *god, Object *skill);
void _remove_special_prayers(Object *op, const Object *god);
void _stop_using_item(Object *op, int type, int number);
void _update_priest_flag(const Object *god, Object *exp_ob, uint32 flag);
};



On Thu, Jan 14, 2010 at 5:26 PM, Nicolas Weeger
nicolas.wee...@laposte.net wrote:
 Hello.

 Considering the low feedback/participation on the list, I'm totally changing
 how I work :)


 I've put my plans for the future at
 http://wiki.metalforge.net/doku.php/user:ryo:todo and I intend to do them,
 except maybe the Various ones.

 If you have questions, feel free to ask me (this list or privately), but else
 I'll just implement as I see fit and discuss after if needed :)



 Nicolas
 --
 http://nicolas.weeger.org [Mon p'tit coin du web]

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





-- 
Dany Talbot, Quebec, Canada [ crystal...@gmail.com ]
Per aspera ad astra

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


Re: [crossfire] TODO list

2010-01-14 Thread Mark Wedel
Dany Talbot wrote:
 move to Qt/C++, to not reinvent the wheel all the time; and massively
 clean the code

  I know someone sort of looked into doing crossfire in C++ several years back. 
  Their opinion was it was probably easier to start writing the code from 
scratch vs trying to convert the existing code.  I haven't looked at it enough 
to say for sure, but I could certainly see it may be easier to start from 
scratch but keep in archetype/map/player/protocol compatible.  On the same 
basis, one could use that to clean up lots of bits of code that are their for 
compatibility reasons or because that is the way things should work - one could 
actually define how those things should work.

  But I suspect the stuff under Various is low priority - for the most part it 
cleans things up for developers, but doesn't really change the experience for 
players.

  As for other points - pretty much agree with them all.  One question/comment 
however about:

reduce food supply, like divide by 10 the current values?, to give more 
interest 
to food - right now it’s useless

  Most RPG's don't really concern themselves with the player needing to feed 
themselves.  And in fact food as a rapidly decrease attribute is I'm sure 
something that dates back to early versions of crossfire, which were much more 
gauntlet based than an RPG.

  I wonder if part of reducing that food supply, of the food attribute should 
just be removed, and the sole purpose of food is to give various benefits, like 
some of the special foods do right now (give some healing, resistances, etc, 
for 
some time).  Most normal food could be removed, except for dungeon dressing and 
perhaps some quests.

  Dying as starvation because you can't find food has to be one of the suckiest 
ways to die.  And having to carry around huge quantities of food because you 
are 
going into a deep dungeon is also somewhat annoying (more annoying is realizing 
you are about out of food, have to abandon the dungeon, go back, get some more, 
etc).

  I guess my question would be whether food as a core stat really adds much to 
the game or is as much a headache as anything else.


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


[crossfire] New crossfire todo list

2006-09-17 Thread Mark Wedel

  I've taken a bit of time to go through and make a new todo list of most 
things 
that need to be done:

http://wiki.metalforge.net/doku.php/dev_todo_new

  There is still more stuff to add.  It's unclear at what complexity level 
something should be there, vs a bug on the tracker or just go and do it, but 
I'll think more about that later.

  I also see that as becoming the definitive TODO list, replacing the one in 
the 
server directory which is always out of date, and doesn't really provide much 
in 
the way of tracking.

  I've added comments to a fair number of the items there.  In no way does that 
mean that is the definitive, or even correct, way of doing it.  I was mostly 
just trying to gather the useful bits from past mails, etc, and put it there vs 
sitting in my mailbox.

  I'd also suggest that it is generally better to actually pull out the useful 
bits of the conversation and put them in the wiki vs referring to the mailing 
list - too often, it may be a thread of 50 messages, with most not providing 
much useful info - its a bit more handy to just be able to see the main points.

  A few notes/questions.  In looking through the TODO list in the server, some 
questions about these points:

If a shop is placed in a random map (special map), the objects below the
shop wall stick around - normally not much a problem, unless it is placed
in a glory hole (treasure level), in which case coins are now beneath the wall.
(I seem to recall seeing a recent commit that may have fixed this?)

Change code so that if a player kills another player, he gets no exp
(I recall seeing discussions about this, but don't see anything in the settings 
to suggest that this has been done?)

Allow possibility of one players magic not harming another player
(isn't this what the friendly fire option does, so this should be removed?)

Ability for stores to set different prices for goods
(The shopitems code only affects how much you can sell stuff for, not buy 
stuff, 
correct?  If so, this is still valid)

- Change inscription - instead of looking at range field of the player,
   have the spell to be inscribed part of the inscription command, eg
   'inscribe scroll of identify'
(is this still something that needs to be done?)

- Generalize the code better - split between 'rules' and 'engine'
(see TODO for more info - wonder if we really want to go that route - the code 
re-orgs as suggested is different from this, so maybe it just goes away as 
something TODO?)




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


Re: [crossfire] New crossfire todo list

2006-09-17 Thread Alex Schultz
Mark Wedel wrote:
 - Change inscription - instead of looking at range field of the player,
have the spell to be inscribed part of the inscription command, eg
'inscribe scroll of identify'
 (is this still something that needs to be done?)
   
Yes. When inscribing spell scrolls, one needs to do something along the
lines of mark scroll-to-inscribe-over; cast meteor swarm; use_skill
inscription. The change suggested there would make it so one would use
something like mark scroll-to-inscribe-over; use_skill inscription
meteor swarm instead.

 - Generalize the code better - split between 'rules' and 'engine'
 (see TODO for more info - wonder if we really want to go that route - the 
 code 
 re-orgs as suggested is different from this, so maybe it just goes away as 
 something TODO?)
Personally I don't think we want to go that route, however the suggested
code re-orgs such as what I proposed a while back in the mailing list,
would as a side affect make splitting the 'rules' and 'engine' easier,
if at any point we decided we wanted to. IMHO we should do the code
re-orgs and decide if we want to split the 'rules' and 'engine' after.

Alex Schultz

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


Re: [crossfire] New crossfire todo list

2006-09-17 Thread Mark Wedel
Alex Schultz wrote:
 Mark Wedel wrote:
 - Change inscription - instead of looking at range field of the player,
have the spell to be inscribed part of the inscription command, eg
'inscribe scroll of identify'
 (is this still something that needs to be done?)
   
 Yes. When inscribing spell scrolls, one needs to do something along the
 lines of mark scroll-to-inscribe-over; cast meteor swarm; use_skill
 inscription. The change suggested there would make it so one would use
 something like mark scroll-to-inscribe-over; use_skill inscription
 meteor swarm instead.

  This should probably be taken to the next step, with the client providing 
some 
nicer dialogue for this, eg, a menu item like 'inscribe scroll'.  The client 
would then present list of possible items (based on client type attribute) and 
list of spells, and player chooses.

  Of course, the client still has to send the actual request to the server, and 
the server would still have to validate if it works.  Thinking about this, the 
logic for this on the server side could actually do most of the work with very 
little changes.  Eg, client does something like:

C-S: inscribe scroll tag spell name/identifier

  The server side command for that could find the object of scroll tag, save 
away current marked object, mark the scroll object, store away current ready 
spell, ready new spell, call inscribe code, and then put back the marked object 
and ready spell.

  OTOH, would probably be better for the inscribe code to take the inscribe to 
object and spell object and just go from that, as that would be cleaner.

  I am really thinking, however, that having the client handle most of the 
presentation of this is the better way to go.

 
 - Generalize the code better - split between 'rules' and 'engine'
 (see TODO for more info - wonder if we really want to go that route - the 
 code 
 re-orgs as suggested is different from this, so maybe it just goes away as 
 something TODO?)
 Personally I don't think we want to go that route, however the suggested
 code re-orgs such as what I proposed a while back in the mailing list,
 would as a side affect make splitting the 'rules' and 'engine' easier,
 if at any point we decided we wanted to. IMHO we should do the code
 re-orgs and decide if we want to split the 'rules' and 'engine' after.

  And I'm not sure how much reason there is to split the rules and engine in 
any 
case.  But if it is easy to do that, that could help in the testing actions 
perhaps.


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


Re: [crossfire] New crossfire todo list

2006-09-17 Thread Alex Schultz
Mark Wedel wrote:
 This should probably be taken to the next step, with the client providing 
 some 
 nicer dialogue for this, eg, a menu item like 'inscribe scroll'.  The client 
 would then present list of possible items (based on client type attribute) 
 and 
 list of spells, and player chooses.

   Of course, the client still has to send the actual request to the server, 
 and 
 the server would still have to validate if it works.  Thinking about this, 
 the 
 logic for this on the server side could actually do most of the work with 
 very 
 little changes.  Eg, client does something like:

 C-S: inscribe scroll tag spell name/identifier

   The server side command for that could find the object of scroll tag, save 
 away current marked object, mark the scroll object, store away current ready 
 spell, ready new spell, call inscribe code, and then put back the marked 
 object 
 and ready spell.

   OTOH, would probably be better for the inscribe code to take the inscribe 
 to 
 object and spell object and just go from that, as that would be cleaner.

   I am really thinking, however, that having the client handle most of the 
 presentation of this is the better way to go.
   
Actually, I'd be inclined to do something such as a more general
skill-usage protocol. Something like:

C-S: client_use_skill skill name/identifier [ob1:object tag]
[ob2:object tag] [spell:spell name/identifier] [message:text
lengthtext]

Which could be used to make clientside menus for other skills and such
things.

Alex Schultz

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


[crossfire] TODO list items.

2006-08-15 Thread Mark Wedel

  With crossfire release methodology slowly moving forward (I think one way or 
another we'll have figured out what we're doing in terms of a SCCS system by 
weeks end), I thought it was time to look at some of the TODO lists.  Most of 
these are from the wiki or one in the server directory

I want to try to keep this somewhat shorter, so basically a list of things to 
do 
and when to do them.

  The list below is just a quick first pass I did - almost certainly not 
complete, and just basic gut feelings on target version and priority.  I'm 
putting this out for the purpose of discussion.

change: briefly, what the change is.

target release: 1.x (minor release), 2.0 (next major release), 3.0 (major 
release after next). Anything with 1.x is presumed it will be completed before 
2.0 and thus 2.0 will include it, if it is a high priority feature.  Some 
determination on target release is how big a change I think it is - if I think 
the change may be small enough to go in a minor release, I have a 1.x target.

priority: How important a change is.  If another change depends on the first 
one, that will also result in the first one having a higher priority.  Priority 
is from 1 to 3, one being the highest. Basically:
1 - Something that must be done, or prerequisite for something else
2 - Should really be done, but not critical to game play.
3 - nice to have feature, but if not done, not critical.  Many of these may 
really be a 3.0 targets.  Enhancements vs fixing known problems are most likely 
to be in this category.

  The different items should in general also be done in the priorities listed - 
P1 before P2, P2 before P3.


Change  Target Release Priority
Fix/Revamp sound2.0 2   
Ambient music   2.0 3
Fix Weather 1.x?2   
Improve lighting2.0 2   
Changes to the clients (better ui)  ?   1
(more details on what is meant by this is needed)
New character creation method   2.0 1
Game Balance2.0 1
Land Plots  1.x 3
Code Cleanup2.0 1
Better NPC logic1.x?1
Add Kandora maps1.x 3
Map Cleanup (more details?) 1.x?3?
Big worldify pupland1.x?2   
Auction house map?  1.x?3?
archetype cleanup (remove old params so no  1.x?1
 legacy loader code needed)
Buildable shops 2.0 3?
Newspaper (script based)1.x?3?
Player clothing (image change based on clothing) 3.03?
Time of day based events2.0 2
Player economy  3.0?2
Quest management system 2.0 1
Improved player communications  3.0 2
Performance improvements (lots of spells on 1.x 1
map causes performance hit)
Thread the server   3.0 2
Make slaying more consistent2.0 2
Change speed of players (high levels players2.0 2
 move way too fast)
Improve NPC communication (tag keywords so  2.0 3
are more obvious to players)
discrete attack damage (dam_fire, dam_cold.)2.0 3





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


Re: [crossfire] TODO list items.

2006-08-15 Thread Nicolas Weeger (Laposte)
I won't comment on the priority, just other things :)

 Better NPC logic  1.x?1

Can be scripted. I'm no mapmaker, but if someone gives me the flow of the 
dialog I can write the script.
I could look at adding utility functions to help write such dialogs, too.
(Daimonin does that, I think)

 Newspaper (script based)  1.x?3?

Can already be done, but no one actually did it...
(may require scripts to access timeofday stuff, but not that hard)

 Player clothing (image change based on clothing) 3.0  3?

Would require many graphics artists, though, and already many things to redo 
first :)

 Time of day based events  2.0 2

See newspaper :)

 Make slaying more consistent  2.0 2

What do you mean by that?

 discrete attack damage (dam_fire, dam_cold.)  2.0 3

Hu?


Nicolas

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


Re: [crossfire] TODO list items.

2006-08-15 Thread Mark Wedel
Nicolas Weeger (Laposte) wrote:
 I won't comment on the priority, just other things :)
 
 Better NPC logic 1.x?1
 
 Can be scripted. I'm no mapmaker, but if someone gives me the flow of the 
 dialog I can write the script.
 I could look at adding utility functions to help write such dialogs, too.
 (Daimonin does that, I think)

  I think for NPC logic, it should be termed monster logic really.  I think 
that 
is what it is talking about.

  So what I'd see if monsters being smarter on what attacks they choose, 
finding 
a path to the player (right now, I think they just pretty much do a straight 
path logic, so easy to duck around a wall and never have them get to you), 
sensibly use healing spells, etc.

  OTOH, some of these depends on other issues - as long as monsters have 10x 
the 
number of HP as players, most healing spells will be pretty pointless for them.

 
 Newspaper (script based) 1.x?3?
 
 Can already be done, but no one actually did it...
 (may require scripts to access timeofday stuff, but not that hard)

  Probably also needs more detail in terms of what information it will actually 
present.  As it is now, it is relatively vague in terms of what it would do.

 
 Player clothing (image change based on clothing) 3.0 3?
 
 Would require many graphics artists, though, and already many things to redo 
 first :)

  Which is why I put it as 3.0.  And at some level, given the relatively small 
image sizes, might be really hard to distinguish (most if the images for actual 
equipment uses the full 32x32 pixels, and thus just can't be overlayed on top 
of 
the image for the characters.

  A perhaps easier thing would be using different color channels (or whatever) 
so that the color of clothing could be changed - eg, you get a new color key to 
use.  So you don't need seperate images for a red mage vs a blue mage, just a 
different color key.

  The problem is that has to get communicated down to the client, which means 
revising the protocol.  And, unlike animations and smoothing, which are 
basically image/archetype attributes and only need to be sent once, color keys 
(or clothing changes) is an object attribute - could have bunch of different 
mages currently in the game with different colored garb.

 
 Time of day based events 2.0 2
 
 See newspaper :)

  Depends on the level and commonality of the events.

  The most basic use of this I would see would be exits (shops) closing at 
night 
and opening during the day.  Could be certain places (taverns) that only open 
at 
night.  Scripts could be used for that, but sort of back to some previous 
things, if we are looking to use that a lot, may make sense to have an easier 
hook (or need common scripts, so that you don't need need to write a custom one 
for each shop).

  Secondarily would be NPCs saying different things.  I think scripts may be 
needed for that.

  Also, having the different connected values based on time.  It would make 
sense that the scorn gate is open during daylight hours, but closing during the 
night.

  But like a lot of these, exactly how it is done isn't as important.  If these 
can be easily done with scripts, thats great, but those scripts still need to 
be 
written, tested, etc.

  Saying it can be done with scripts isn't that much different than saying 'it 
can be written in C code' - that code still needs to be written :)

 
 Make slaying more consistent 2.0 2
 
 What do you mean by that?

  From the TODO list:
Slaying is sloppy in that it uses strstr.  This, an item that has 'slaying
giant' (like holyword of mostrai) will kill ants.  strstr matching was most
likely added to support comma seperated slaying lists (slaying demon,undead).
However, the code should really insist on exact matching, and if necessary
break apart the comma seperated list.  Probably best to make something like a
'does_slay()' function which can be used all over the place (consistent
behaviour is a good thing).  If performance for this becomes an issue, making
a slaying a set of pointers could be done (char **slaying), and it gets filled
in at load time, and at save time, gets filled in the opposite direction.
However, from a simple basis, a check in does_slay() can be done to see if
slaying does contain a comma, and if not, just do simple strcmp, and only if
it does does extra work need to be done. MSW 2003-03-28

 
 discrete attack damage (dam_fire, dam_cold.) 2.0 3
 
 Hu?

  Right now, if you have a weapon that has attacktype physical  fire, and dam 
40, it will do dam 40 of whatever attack works best against the creature.

  It is fairly common in most games that extra attacktypes do some extra 
damage. 
  Eg, this weapon does 20 physical damage and 10 fire damage.  There isn't any 
way to do that right now (ok, maybe with scripts :), but that isn't really the 
point here).

  The effect