Re: [crossfire] Crossfire 2.0+ features/priorities

2006-03-08 Thread Anton Oussik
In that case it would make sense to make a big noobie map, with
buildings, each of which contains a course to do some thing. If each
of these noobie maps was personal to the player, the players could
learn about playing cf without anyone else spoiling their fun. This
would also enable them to come back later to complete learning if they
can not be bothered with advanced stuff just yet. I propose each
building award the player some experience towards the skill at the end
to make it worthwhile.

These are the general buildings I can think of:

  - Basics 1: Moving, applying things, reading signs, notes, etc.
  - Basics 2: Wearing, equipping, making active, opening/closing,
marking, 'body command
  - Basics 3: Changing/learning skills, commands like 'statistics,
'skills, experience system

  - Traps 1: Finding/disarming traps (on the floor, in doors, on chests)
  - Traps 2: Setting traps

  - Melee combat 1: Attack things with punching/karate/etc.
  - Melee combat 2: If you can hold a weapon, how to use it to do
things in 1, run attack

  - Ranged combat 1: How to pick up and equip bow, arrows, and shoot
  - Ranged combat 2: bowmode and arrow quivers

  - Spell casting 1: How to see what spells you have, select a spell
you have, and fire a spell.
  - Spell casting 2: Learning new spells, types of spells (schools),
sp requirement, spell level.
  - Spell casting 3: Different kinds of spells (cone/bolt/etc) and casting them

  - Identifying: List different ways of identify items

  - Healing: List different ways of healing different things

  - Alchemy: How to use alchemy-like things

  - Stealing: How to steal
...and possibly a few more buildings for things like oratory,
climbing, jumping, literacy (scroll making?).

Then there could be specific houses for the races like dragons
explaining the whole food/focus thing, a house for firebournes
explaining the whole you are a ball of fire, don't get put out
thing, and a house for wraith explaining You are dead - you don't
digest food or heal (when I make the patch balanced enough to be
applied to the source tree) thing.

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-03-06 Thread Anton Oussik
On 27/02/06, Mark Wedel [EMAIL PROTECTED] wrote:
   OTOH, I'm firmly in the camp that I'd like a nice popup window on the client
 where the player chooses his stats, race, class, and if we want to go in the
 direction of choosing skills, that also.

Me too, but then followed by two introductory maps, one for the race,
where the player goes through a course learning about their race, its
advantages and disadvantages and how to use it effectively, and
another about their class, learning about its advantages and
disadvantages and how to use it effectively. That does however
requires some map making to make it interesting.

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-03-06 Thread Mark Wedel
Anton Oussik wrote:
 On 27/02/06, Mark Wedel [EMAIL PROTECTED] wrote:
   OTOH, I'm firmly in the camp that I'd like a nice popup window on the 
 client
 where the player chooses his stats, race, class, and if we want to go in the
 direction of choosing skills, that also.
 
 Me too, but then followed by two introductory maps, one for the race,
 where the player goes through a course learning about their race, its
 advantages and disadvantages and how to use it effectively, and
 another about their class, learning about its advantages and
 disadvantages and how to use it effectively. That does however
 requires some map making to make it interesting.

  I could perhaps see some special maps for the special races (fireborn, 
dragon, 
maybe another).  I can't really see the need of separate/unique maps for most 
of 
the humanoid races.  Is an elf really much different than a dwarf than a human?

  Sure, there are a few different skills that each get, but they are similar in 
a larger regard (item identification/creation).

  The class one would perhaps sort of mimic the current newbie one?  How to 
kill 
creatures, pick up objects, etc?  I wonder if that could be expanded, like 'if 
you have a spell, this is how you cast it', etc.  So new players could do what 
tasks are relevant for their class.  Yet at the same time, see other things 
that 
can be done.

  I wonder if these could also be made as unique maps for each player, so they 
could also revisit them later (for example, it may be several levels, but that 
fighter may start picking up spellcasting, and being able to revisit the 
introductory dungeon and learn about spellcasting could be handy).

  This also has the advantage that if players bypass it/exit it prematurely, 
they could re-enter it.  There should be a way for experience players to 
largely 
skip it, but then you get the case of inexperience players skipping out and 
realizing they need that stuff.  IF they can be pointed with something like 'go 
to Introductory Building next to the inn', that would be easy enough.

  Another random thought - the idea of being able to start in different places 
has been raised.  I wonder if this could be one of those places, which then 
just 
exits to scorn.  If a player is experienced enough to start in navar, then they 
shouldn't need that introductory dungeon.



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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-02-26 Thread Gabriele Dini Ciacci
On Sun, 29 Jan 2006 14:38:55 -0800
Mark Wedel [EMAIL PROTECTED] wrote:

 the current method of 'press keys to swap stats', 'press spacebar to cycle 
 through classes', 'move your now created character to choose a class', and then 
 heading to the nexus are all a little hokey.

(Here is my char creation draft, another of my series, if someone thinks I should
gather all the drafts I wrote on the wiki, say me, so they are all near, instead that
sparse on the list)

Me and lalo did lot of discussion about that, and we ended up with a design
to still use in-game creation system (that I personally do not like, but many seem
to like it in cf comunity) withotu sacrifing flexibility.
Lalo created different rooms for class selection each with a different wall and
decoration layout based in yoru race. Those rooms can miss the
conflicting/owerpowered race/class combos too.
(many rooms are allready created, work just need to be finished)

Race selection is done in another room before this one, with each path that has
a decoration that matches the one used in the class selection.
Each way to a race has a magic mouth that tells you the stat mods, so the
player has just to step on it to read the description of that race.

The player starts in the race selection room as a new arch named something
like life force (or energy).

Note:
A nice romantic notice on ghostish races should be something like life force
sacrifice and converts to a death force

 After that, each race receive a cerain ammount of tokens (non dropable inventory
item) to spend on skills. Each class is teleported in a different room with many paths,
each path rapresent a skill, at the path start you get a magic mouth that explain you the
use of the skill and what you will be able to do with it.
Each skill cost a different amount of tokens, based on class (room is per class as said
above), then the player chooses one skill stepping on the teleporter at the end of the
path, if he still has tokens he get the skill and then is teleported back in the room to
choose another skill.
There is a special teleporter that bring you to startgin point directly, converting all your
tokens in money (like 500gp per token), this is for players that prefer having no skills,
but more startign money.
Notice that only common skills are here, skills for casting are not supposed to be bougth
in this room, this is for professional skills like smithing, woodsman, mountanering and
so on

It woudl be fair for the avarae skill to cost 2 tokens, with less improtant skills costing
1 token and complex skills costing 3 tokens (like smithing).

This is the basic common for all classes.

Casters classes will do one more step and go in a room with many paths where they can
use their magic study tokens (or devotion tokens if churches become like magic
schools) to acquire different caster skills like piromacy, sorcery...

The number of magic study tokens you get is based on the class, class that studied
magic obsessiverly get 3 tokens, so he can get 3 magic schools, intermediate magic
user get 2 tokens, and basic magic user gets 1 token.

Special races get in a room with race tokens (each special rage get 1) where they
can buy race skills, like dwarfs can buy for just one token smithering or jewlercrafting
as starting skill. Fireborns can buy piromacy, elves can buy woodsman.
Or again they can convert those tokens to money takeing the exit.

I think that's all, code changes requided should be minimal, but since I am on the
side of plugininzation I add that there is a way to make map changes minimal too.

If random map generation becomes plugin, you can just add a layout that is char
creation room layout that automatically generates the path rooms, given a list
of skills that need a path wtih the skill token cost, the name of the token items.
Then the teleporters will have all the same token checking algo. So those maps are
dynamic and generated only when a player step in, this is cause this model has many
maps and keeping them all loaded allways sound terible. Morover keeping them in sync
with game engine is sad too, cause we want to be able to add new skills.
Generating the map on the fly solve both issures cause if you want to add a skill to a
class you just have to edit the class generation file (where the plugin read the
configuration) and you are done.

This extra plugin idea adds more code now, but reduce the ammount of mapper work
needed (considering that we have few mappers and bad mapping tools, it sound good
to me). Morover it nearly zeros the ammount of mapper work requided in the future in
case of skill change, and personally, thinking about mantainability, this is the only way
to have a char generation that can be keep in sync with the engine.

Notive that since the plugins is dynamic, each server can configure char generation, so
a server that do not want to allow smithing as a starting skill for example, can jsut remove
it from the list in teh configuration file of the plugin.


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-02-02 Thread Anton Oussik
On 02/02/06, Mark Wedel [EMAIL PROTECTED] wrote:
   That said, if the smooth movement stuff is a high priority item, I'd think
 that would completely redo movement and actions, and that could be the time to
 fix it then.

I would say that a smooth moving slowed down crossfire where it takes
time to kill things (with health bars over monsters, etc.) is a good
general direction for the project. However the CrossFire of today
seems quite different from that. I have very little understanding of
the movement/map code, but I would guess changing that would be very
close to a re-write.

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-02-02 Thread Miguel Ghobangieno
I don't want those abilities removed. Why shouldn't I
beable to make a magic monster that can reflect spells
or arrows that? Just remove the ability from the
knights and gaurds and remove the reflecting amulet
from circulation.

I hate all this talk of removing everything from the
game. Maybe crossfire should fork to crossfire-intact
and crossfire-not-intact?



__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-02-01 Thread Miguel Ghobangieno
I think a better solution would be to, rather then
show every attack message, only show one every 1
second or so. Friendly fire is setable in the settings
file and can be set low to compensate.

--- Mark Wedel [EMAIL PROTECTED] wrote:

   But this is also tied to player speed.  Unless you
 make attack speeds really 
 slow, but that doesn't work will with current
 movement code - really, attack 
 speed I don't think has much effect if it is slower
 than the players normal speed.
 
   So I think without some significant changes, hard
 to slow it down to the point 
 you can read it out without some major
 restructuring.  If we say the player 
 speed is 0.5, that is still 4 attacks/second.
 
   I think to be at a 'readable' pace, it would need
 to be closer to about 1 
 attack/second.  But you still want to move at a
 reasonable pace.  So to do that 
 'slow' attack, you'd need some code restructuring -
 basically, you'd have to 
 have a separate 'weapon_speed_left' variable or the
 like - if you try to move 
 onto a monster, if your weapon_speed_left is less
 than zero, you just can't move 
 there (right now, you'd attack the monster).
 
   I had suggested a long time ago adding something
 like 'damage factor' as a 
 setting, which divides/multiplies damage
 done/received.  This provides a 
 convenient way to make adjustments without having to
 change all the archetypes 
 and the like
 
   If we're going to start adjusting HP of
 creatures/players, I'd state a primary 
 goal to be that monsters and players have more
 similar HP.  One of the problems 
 right now is monsters have so many more hp than
 players that targeting spells at 
 other players become almost instant death.
 
 
 ___
 crossfire mailing list
 crossfire@metalforge.org

http://mailman.metalforge.org/mailman/listinfo/crossfire
 


__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-02-01 Thread Miguel Ghobangieno
I think we should have plots and reputation system in
for 2.0.
And a setting to show (by default) 1 attack message
per second or so (rather then char punches once, and
again, and SUPRISE again!). It would also be good if
the int for hp, maxhp, sp, and maxsp (used for alters)
was raised to int 32 (it's int 16 now, right?). I
don't think we should mess with the amount of hp
clients or monsters get nor the weap attributes. We
may want to explore the use of regents or something
for spells as talked about before (you need this
before you can cast uber powerfull spell). More
spells... such as circular spells (not 'nova spells',
orbiting spells: ring of fireball, etc etc) might be
nice too. Transports would be good too. 

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-02-01 Thread Brendan Lally
On 2/1/06, Miguel Ghobangieno [EMAIL PROTECTED] wrote:
 And a setting to show (by default) 1 attack message
 per second or so (rather then char punches once, and
 again, and SUPRISE again!).

I want the rate of attacks to be down to about one (or two at most) a
second - at least for  'normal' weapons (like broadswords). Try
swinging a sword more than twice a second consistantly, and then you
will see why I think this a reasonable limit (yes, you can do more
with a fencing sword like a foil or epee, but they don't do much
damage anyway, if someone wants to add them with stupidly high weapon
speeds, they could still do so). - having fewer attacks means more
time to think in combat, less hack and slash, more strategy, and less
CPU overhead too.

 I
 don't think we should mess with the amount of hp
 clients or monsters get nor the weap attributes.

I want to get rid of reflect spells and reflect arrows as abilities, I
think they too effectively nerf lightning spells, and make cone spells
to useful. However I would like to have a 'recast' spell, which would
cast a copy of any spell that hits a player in the opposite direction
for  a short period of time (couple of seconds).

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-02-01 Thread Mark Wedel
Brendan Lally wrote:
 On 2/1/06, Miguel Ghobangieno [EMAIL PROTECTED] wrote:
 And a setting to show (by default) 1 attack message
 per second or so (rather then char punches once, and
 again, and SUPRISE again!).
 
 I want the rate of attacks to be down to about one (or two at most) a
 second - at least for  'normal' weapons (like broadswords). Try
 swinging a sword more than twice a second consistantly, and then you
 will see why I think this a reasonable limit (yes, you can do more
 with a fencing sword like a foil or epee, but they don't do much
 damage anyway, if someone wants to add them with stupidly high weapon
 speeds, they could still do so). - having fewer attacks means more
 time to think in combat, less hack and slash, more strategy, and less
 CPU overhead too.

  The counter of course is that crossfire doesn't mimic real time - IIRC, time 
in the crossfire world is 8-10 times faster than real-time.

  That said, I wholeheartedly agree that crossfire is too fast, so should be 
slowed down.

  Slowing it down would have another effect, that being that it would take 
longer to kill stuff, and thus money would be accumulated slower (As well as 
exp, and/or alternate ways of exp become more valuable).

  But if physical attacks are slowed downs, spells also have to be moderated in 
some way.  And that can start to get trickier if the player has multiple 
wands/etc.

  That said, if the smooth movement stuff is a high priority item, I'd think 
that would completely redo movement and actions, and that could be the time to 
fix it then.


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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-31 Thread Brendan Lally
On 1/31/06, Anton Oussik [EMAIL PROTECTED] wrote:
 In order to achieve that I propose starting with 3 changes:
   * DRASTICALLY reduce  the hp regeneration (something like 10-fold)
   * Significantly increase hp of players and monsters (3-10 fold)
   * Significantly lower resistances given by items (so a player can
 get up to 25% resistance or so with several items)

One thing that might work well there, would be to also have a
reduction in weapon speed (reduce it by a factor of 2 or so).
Currently when you attack monsters the attack messages are numerous
and spam-y, if they were slowed down a lot (to at least the point
where you could read all of them out loud as they come in). There
would be fewer attacks to calculate, the rate of damage would be less,
and there would also be fewer draw_info messages to transmit, which
seems like a win all round.

It would also make it possible to bring back the point from long ago
of attack sounds, since attacks and parries would be slow enough that
you could actually have sounds mapped to them.

 As an extension to the aboce extension a new family or party spells
 can be introduced. These will aid parties in combat by providing
 spells like party heal, and party word of recall. Possibly party
 strength, party wisdom, and so on can be introduced. They would be
 high level spells that would act on all of the party, and will belong
 to different magic schools.

IIRC party spells are already supported in principle, but nothing is
currently using them.

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-31 Thread Mark Wedel
Brendan Lally wrote:
 On 1/31/06, Anton Oussik [EMAIL PROTECTED] wrote:
 In order to achieve that I propose starting with 3 changes:
   * DRASTICALLY reduce  the hp regeneration (something like 10-fold)
   * Significantly increase hp of players and monsters (3-10 fold)
   * Significantly lower resistances given by items (so a player can
 get up to 25% resistance or so with several items)
 
 One thing that might work well there, would be to also have a
 reduction in weapon speed (reduce it by a factor of 2 or so).
 Currently when you attack monsters the attack messages are numerous
 and spam-y, if they were slowed down a lot (to at least the point
 where you could read all of them out loud as they come in). There
 would be fewer attacks to calculate, the rate of damage would be less,
 and there would also be fewer draw_info messages to transmit, which
 seems like a win all round.
 
 It would also make it possible to bring back the point from long ago
 of attack sounds, since attacks and parries would be slow enough that
 you could actually have sounds mapped to them.

  But this is also tied to player speed.  Unless you make attack speeds really 
slow, but that doesn't work will with current movement code - really, attack 
speed I don't think has much effect if it is slower than the players normal 
speed.

  So I think without some significant changes, hard to slow it down to the 
point 
you can read it out without some major restructuring.  If we say the player 
speed is 0.5, that is still 4 attacks/second.

  I think to be at a 'readable' pace, it would need to be closer to about 1 
attack/second.  But you still want to move at a reasonable pace.  So to do that 
'slow' attack, you'd need some code restructuring - basically, you'd have to 
have a separate 'weapon_speed_left' variable or the like - if you try to move 
onto a monster, if your weapon_speed_left is less than zero, you just can't 
move 
there (right now, you'd attack the monster).

  I had suggested a long time ago adding something like 'damage factor' as a 
setting, which divides/multiplies damage done/received.  This provides a 
convenient way to make adjustments without having to change all the archetypes 
and the like

  If we're going to start adjusting HP of creatures/players, I'd state a 
primary 
goal to be that monsters and players have more similar HP.  One of the problems 
right now is monsters have so many more hp than players that targeting spells 
at 
other players become almost instant death.


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


Re: [crossfire] Crossfire 2.0+ features/priorities (compression)

2006-01-30 Thread Miguel Ghobangieno
A server variable could be set that turns on/off
compression.


__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-30 Thread Anton Oussik
On 29/01/06, Mark Wedel [EMAIL PROTECTED] wrote:
   One of the things that have been on my wishlist a long time is a better
 character creation method.

I'd say that a character creation window would work best - where you
can select the name, roll and re-roll stats, chose your race, sex, and
class, and see how it changes your character (as well as seeing how
the character looks themselves). Race/Class descriptions can then go
into textboxes under pulldown selection controls, and starting
items/skills should be viewable.

Another thing I can propose is to replace the listen level with
channels, and be able to toggle/redirect individual channels between
different tabs in the client.

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-30 Thread Brendan Lally
On 1/30/06, Anton Oussik [EMAIL PROTECTED] wrote:
 Another thing I can propose is to replace the listen level with
 channels, and be able to toggle/redirect individual channels between
 different tabs in the client.

I had a working channels implemention, but the problem was that it was
too complex to be really usable, and seemed too similar to the party
code.

hijacking colours in the draw_info packet to send meaningful data
about the type of draw_info would be more reasonable

Maybe also it would be an interesting idea to have a 'triggered'
draw_info which would send back the packet number that caused them to
be printed (this would involve storing the last packet number in the
player struct, and sending it in the packet)

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


Re: [crossfire] Crossfire 2.0+ features/priorities (compression)

2006-01-30 Thread Alex Schultz
Miguel Ghobangieno wrote:

A server variable could be set that turns on/off
compression.

This is a good point, it would allow servers to balance bandwidth and 
processor usage on the server side better if the are short on one but 
not the other.

Alex Schultz

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-30 Thread Rick Tanner
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


Miguel Ghobangieno wrote:
 Well Leaf said that it was so that if someone really
 wanted to recant their diety that they could, but they
 would have to mean it (not by accident, or by mere
 trifiling whim) and thus brace. 

Actually, I pointed out how the brace command *can* be used when
switching cults during a discussion[1] of removing the command because
it offered little or no benefit for using it.

[1] - http://forum.metalforge.net/viewtopic.php?p=9535#9535



-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFD3q1ghHyvgBp+vH4RAtE3AJ9TirT0cTwj3+5tSuZgtcmH9C2r0gCfcGQU
kt9rlYbH/7UPLeUD+uyxei8=
=8P5B
-END PGP SIGNATURE-

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-30 Thread Rick Tanner
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


Miguel Ghobangieno wrote:
 
 Maybe some new spells too? Circular spells ect (kinda
 like a circle of protection of fireballs spining
 around you etc).

This effect is already possible (and probably unintentionally, too) by
using the stay fire command.


NOTE: I /think/ the stay fire sequence is used, but it's been years(!)
since I bound this to my key settings.







-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFD3q+FhHyvgBp+vH4RAigXAKC9X0u0chR8f9aEcDYk5modvYDB0gCePVVm
tkB0XDttxy7QyYq7we4Q3qw=
=MWhv
-END PGP SIGNATURE-

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-30 Thread Mark Wedel
Brendan Lally wrote:
 On 1/30/06, Anton Oussik [EMAIL PROTECTED] wrote:
 Another thing I can propose is to replace the listen level with
 channels, and be able to toggle/redirect individual channels between
 different tabs in the client.
 
 I had a working channels implemention, but the problem was that it was
 too complex to be really usable, and seemed too similar to the party
 code.
 
 hijacking colours in the draw_info packet to send meaningful data
 about the type of draw_info would be more reasonable
 
 Maybe also it would be an interesting idea to have a 'triggered'
 draw_info which would send back the packet number that caused them to
 be printed (this would involve storing the last packet number in the
 player struct, and sending it in the packet)

  Long on my wish list also was to change handling of messages (draw_info) to 
change from color to tags that denote what the message pertains to.

  Eg, combat messages, listings (shop, who, etc), shout, talk, etc.  I think 
there would probably be about a dozen different content types.

  The client could then have a pretty easy interface to say what to do with the 
message (discard, print in window 1, window 2).  Also, let the player choose 
the 
color/font for these.

  This adds some amount of complication to the client.  But a first pass is to 
just update all the draw_info to use new flags.  A first pass on the client 
would be something simple like 'shout - ok, these are red, and put in window 2' 
- basically be hardcoded to how it works now, with the interface to follow, 
since that is probably the harder part.


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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-30 Thread Mark Wedel
Alex Schultz wrote:
 Mark Wedel wrote:
 
  This issue is really the server-client direction, and that already is 
 binary, 
 so not a whole bunch of savings.

  I have a feeling the big hog is the map data - things like stats is never 
 much.  The item stuff, especially for huge piles, can add up.  And I think 
 someone suggested that the detailed item information (what you get from 
 describe 
 item) is also sent along - I think that may be a reasonable idea, but does 
 increase the bandwidth on that (that is also tricky in that certain things 
 could 
 change the description of the item (it being identified will change its 
 value 
 for example) - I'm not 100% the UPD_ flags cover that, but probably do (but 
 money will always be suspect - changing charisma can affect costs also).

 What would also save alot of bandwidth, would be including in the new 
 server protocol a method of sending rectangular blocks of tiles that 
 should all be added of deleted. This could potentially cut the map 
 bandwidth in half or less in some locations (lots of floor and walls 
 compared to everything else). Making the client interperate the data for 
 that would be very easy, the most difficult part would be the server 
 logic of where it should define rectangles but I am sure that is not too 
 bad.

  It could be done now, but could prove to be a costly (CPU wise) operation - 
the map code would have to look to see if there are such regions.  There may be 
fast ways to do that.

  But you also get the cases that you need to check to see if it is faster to 
send that block.  a 2 square rectangle is not going to be any faster than just 
sending it as two spaces.  a 3 space block may be the break even point.

  But it also gets tricky - having a 10x10 area of floor with nothing on it, it 
would be a clear win.  But if that floor is littered with monsters, objects, 
etc, it becomes less clear, because we're going to need to send data on those 
spaces, so we are not saving the cost of sending the coordinates, just the cost 
of sending the face itself.

  I'm more inclined to just go with the compression method - if the same face 
is 
repeated 200 times, the compress code should do a good job of reducing that to 
very little space.  And I think this may actually be less cpu costly than 
trying 
to find rectangles.  It also helps for those cases where we are sending data 
that does not encompass the entire range of data size.  For example, we use 16 
bits to send the face data.  Yet right now, we only have 5000 faces, which can 
fit in 13 bits.  So going through compression would still save space even on 
maps without good rectangles.


 I put up a couple ideas about the new map protocol here a while back:
 http://wiki.metalforge.net/doku.php/dev_todo/newmapprotocol
 (see also http://wiki.metalforge.net/doku.php/dev_todo and 
 http://wiki.metalforge.net/doku.php/dev_todo/cf2.0 on the wiki)
 
 Alex Schultz
 
 
 ___
 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] Crossfire 2.0+ features/priorities

2006-01-29 Thread Yann Chachkoff
 But relatively to players and developers, what do people see as the top 
 feature(s) that should be added (or things fixed) to make crossfire a better 
 game.

Apart from the code cleanup idea, here's what I see as important:

- Better visual appearance. On the coding side, it means adding things like 
support for smooth moves (continuous move of characters and monsters between 
squares, instead of the current direct jump to the next square visual 
effect), or support for action animations (when I attack a monster, I expect my 
character to swing its weapon. When I wear a shield, I expect the shield to 
appear on the character displayed).

- Better scenaristic background. Currently, a lot of the maps are very 
bash-n-slash without little to no story behind. I think that more than 
software code additions, solid, interesting stories will keep people playing. 
Offering different starting points for each race, providing more interactions 
with NPCs, chaining quests, etc. would require no new code and would also help 
filling the Bigworld map.

- Friendlier client. The currently available clients are intimidating for 
newcomers: the cfclient looks rather primitive while gcfclient is crowded with 
options bars, icons and menus and leaves only a small patch in the middle to 
display the game playfield itself. I think that a friendlier design here that 
leaves more space for the game would make the game somewhat more immersive and 
enjoyable to play.

Those are the things that I see as top-priority. Apart from the first, I don't 
think they require massive code changes. I tend to think that - once cleaned - 
the current game engine of Crossfire is very good and includes a lot of 
interesting features, on par with many commercial RPG and that it mostly 
requires to offer better content to get much more attractive.


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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-29 Thread Alex Schultz
Mark Wedel wrote:

  With the current discussion regarding modularization, the topic of new 
features also came up.
  

Discussions do that :P

  For 2.0, it was mentioned do a general code cleanup to removed old crufty 
 code 
that is only there for compatibility reasons.  Fair enough.
  

Yes, I agree. We can't keep much of this old compatibility cruft around 
forever. Yes we don't need to do a major release for it, but IMHO doing 
it at a major release will confuse the players less and therefore would 
be of benefit.

  but relatively to players and developers, what do people see as the top 
feature(s) that should be added (or things fixed) to make crossfire a better 
game.
  

Features added... well... here's some ones I think would be neat for a 
2.0 release (though doing all isn't too realistic):
-Land plots (I plan on working on those some time)
-Colored lighting and more lighting levels
-More layers
-Revamp/fix sound
A few ideas/proposals on those are at 
http://wiki.metalforge.net/doku.php/dev_todo (feel free to contribute to 
the todo list there)

Also I would really like to see the weather fixed up. The issues with 
that are:
1) Some disappearing tiles and such ugly bugs (might be a bug in the 
overlay code instead of weather code). (Also, no this isn't just Mikee, 
I've seen this on my private test server too)
2) Too much granularity right now. For this I think strange elevation 
values might be to blame. Might also be some simulation parameters. Not 
really sure. But in any case, you shouldn't see things like so many wet 
and dry spots speckled right beside eachother, that makes it seem almost 
as if there is little rainclouds speckled all over the place looking 
like they could float individually over player's heads
3) Once the granularity is fixed, perhaps some new rain pictures would 
also help that look even better

   I'm somewhat curious to see what the thoughts are.  I think this info may 
indirectly help drive the modularization discussion - it may be that some of 
these features require significant rewrites or cleanups of the code that make 
sense with modularization.  It may also be that some are relatively easy to do 
and don't require such changes.

Personally, I think modularization and better organization would be 
something good to do, however I do not think it is worth doing major 
rewrites to archive such. Perhaps rewrite some parts, but IMHO there is 
plenty of organization that can be done with the current code without 
major rewrites.

Also, out of the modularization discussions, there has been some 'game 
engine' talk. Personally, I do not believe separating into a game engine 
would be a good goal within/for the project, though I do believe that it 
isn't harmful if such separation comes as a side affect of other goals 
such as making the code more maintainable (not saying engine separation 
would necessarily have that affect, that is for another discussion).

Alex Schultz

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-29 Thread Brendan Lally
On 1/29/06, Mark Wedel [EMAIL PROTECTED] wrote:
   but relatively to players and developers, what do people see as the top
 feature(s) that should be added (or things fixed) to make crossfire a better 
 game.

I'll split this into two parts, usability issues/improvements, and
game issues/improvements (many of these things I have hinted at on IRC
in the past, but I'll describe them more fully here)

Usability:

currently most useful features of the game are hidden behind obscure
text commands, without any nice way for the clients to show them in a
systematic way. . - the rest are really minor niggles.

I would suggest then, in no particular order:

* client side display of parties (so that they can present an
interface more like gcfclient2 has for the metaserver, removing the
need for using the rather complex party commands directly).

* adding more stats, including a number that could be considered as
settings, so that clients can have a configure menu for them (imagine
having a 'server' tab next to the general, map, and keybindings tabs
in gcfclient)

In order to do that, I think you would need to send

output-sync short (byte?)
output-countbyte
bowmode byte mapped to associated requestinfo
applymode   byte mapped to associated requestinfo
listen levelbyte
petmode byte mapped to associated requestinfo
usekeys byte mapped to associated requestinfo

all of which would have better names displayed client side
(eg, group up to [spinbox] identical messages before sending, recieve
messages with priority [spinbox] or lower)

* I'd also want to consider removing brace altogether, or at least
making it a flag in the stats so that it can be displayed client side
(hitting brace by accident and not being able to move can be
confusing).

* providing an [instruction]  ext new draw info so that clients can
print the instructions that apply to them in order to do things. (I
would imagine that this would be something like drawextinfo 0 8 0 to
worship a new god, stand on their alter and $(use_skill praying) 
then a client could look up their own 'instructions' array, or check
their keybindings, and if use_skill praying is found, print that
instead (otherwise, strip out the $() characters). - so for example,
my gcfclient setup has use_skill praying mapped to 'p', so when I
receive that message, it should check an 'instructions' array, find it
empty, and then look in the keybindings, find one that matches, and
say to worship a new god, stand on their alter and press p

* a new login system, which would allow single packet character login,
or creation.
something like a login name\0password packet, and also a createchar
name\0\password packet (with the double typing the responsibility of
the client).
then some way to request die rolls, and send back the final results,
and a race choice

For this there would be something like requestinfo races, returning
replyinfo [list of races with their corresponding face numbers], then
requestinfo race foo return replyinfo race foo the foo are a
mysterious race from the land of the metasyntactic variable -
clients then would be able to present a list of races to choose from,
and a nicer interface to handling swapping stats.

* sending all the information given from describing items in the items
command (I think this is only the message, chosen name  values, then
having the description generated client side, and shown as a tooltip
to each item - freeing the left mouse button to do something else to
items (moving apply away from middle click, maybe?).

* having a concept of actions applying to a square (an extension of
what I mentioned the other day about having a goto system, have
something like left-click to walk to a square/pull a lever/talk to an
NPC/fight a monster on a square (probably whichever is appropriate to
the topmost item on the square, decided server side) and right click
to cast a spell/fire an arrow, etc to a square. (diablo-style
controls)

possibly as an extension to this, send an actionid to the client with
the map command (2 bytes per square (maybe a byte if there isn't a
convenient tayste within the rest of the (newly redesigned) map
command), so that clients can tell the player what would happen by
clicking on a given square (this would also need some special flags to
decide whether to show things like secret walls - possibly they should
be marked walkable once you are adjacent to them, but not from a
distance - or maybe the detect traps skill should mark them detected,
after which they show up)

- an extension to the extension above, send health status along with
monsters (probably as a percentage to not give away total hp), they
can then have clients draw health bars above their heads.

* having a keywords system in NPC dialog, so that when NPCs speak, it
formats their text specially, underlining (or similar) the words they
say that you can ask more about - 

Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-29 Thread Andrew Fuchs
I have added a page to the wiki, where crossfire 2.0 features could be tracked.

http://wiki.metalforge.net/doku.php/dev_todo/cf2.0

--
Andrew Fuchs

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-29 Thread Mark Wedel
Brendan Lally wrote:

 I would suggest then, in no particular order:
 
 * client side display of parties (so that they can present an
 interface more like gcfclient2 has for the metaserver, removing the
 need for using the rather complex party commands directly).
 

  Yes - that sounds like a good idea.

 * adding more stats, including a number that could be considered as
 settings, so that clients can have a configure menu for them (imagine
 having a 'server' tab next to the general, map, and keybindings tabs
 in gcfclient)
 
 In order to do that, I think you would need to send
 
 output-sync   short (byte?)
 output-count  byte

  I'd suggest the output-* stuff on the server should go away.  That was put in 
before the client/server split IIRC.  I think any collapsing/discarding of 
messages should just be done on the client.

  Granted, doing it on the server does save some bandwidth, but I can't see 
that 
as much an issue on current connections.


 bowmode   byte mapped to associated requestinfo
 applymode byte mapped to associated requestinfo
 listen level  byte

  is listen level really used much?  I'd almost suggest this go away also, but 
right now, harder for the client to deal with it, since it isn't getting 
message 
levels.

 petmode   byte mapped to associated requestinfo
 usekeys   byte mapped to associated requestinfo

  Yes, all the rest makes sense, and wouldn't be hard to do at all.

 * I'd also want to consider removing brace altogether, or at least
 making it a flag in the stats so that it can be displayed client side
 (hitting brace by accident and not being able to move can be
 confusing).

  Brace could probably go away now.  I believe there are other ways to get the 
same effect (ready melee weapon skill, and just fire in that direction)

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-29 Thread Miguel Ghobangieno
One of the things we should do for 2.0 (note: we are
not yet at 1.9) is try to decrease bandwith usage. For
instance, some animations are cylical, and the server
knows which ones these are currently IIRC. The server
shouldn't have to send a update for every tile every
time for cylical animations, the client should beable
to work this feat IMHO.

Also if we can make some commands that are 4 bytes
long (north south etc) or other longish commands
shorter that might be good too. (We should keep
backwards compat here maybe thought, so if a client
says it's not 2.0+ it gets to use the old, easier to
parse, stuff).

Plots should go in at 1.9 I guess.
Crossedit could be gtkized for 2.0. or after. (I'm not
against updating crossedit, I am against removing it).

Maybe some new spells too? Circular spells ect (kinda
like a circle of protection of fireballs spining
around you etc).




__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-29 Thread Miguel Ghobangieno
Brace is used, as Leaf said before, to make it easier
to swich deities without being pushed off the alter...
this was allready discussed!

We shouldn't do things that increase bandwidth
usage...
/me watches the bandwith usage skyrocket just to spite
him.

--- Mark Wedel [EMAIL PROTECTED] wrote:

 Brendan Lally wrote:
 
  I would suggest then, in no particular order:
  
  * client side display of parties (so that they can
 present an
  interface more like gcfclient2 has for the
 metaserver, removing the
  need for using the rather complex party commands
 directly).
  
 
   Yes - that sounds like a good idea.
 
  * adding more stats, including a number that could
 be considered as
  settings, so that clients can have a configure
 menu for them (imagine
  having a 'server' tab next to the general, map,
 and keybindings tabs
  in gcfclient)
  
  In order to do that, I think you would need to
 send
  
  output-sync short (byte?)
  output-countbyte
 
   I'd suggest the output-* stuff on the server
 should go away.  That was put in 
 before the client/server split IIRC.  I think any
 collapsing/discarding of 
 messages should just be done on the client.
 
   Granted, doing it on the server does save some
 bandwidth, but I can't see that 
 as much an issue on current connections.
 
 
  bowmode byte mapped to associated requestinfo
  applymode   byte mapped to associated requestinfo
  listen levelbyte
 
   is listen level really used much?  I'd almost
 suggest this go away also, but 
 right now, harder for the client to deal with it,
 since it isn't getting message 
 levels.
 
  petmode byte mapped to associated requestinfo
  usekeys byte mapped to associated requestinfo
 
   Yes, all the rest makes sense, and wouldn't be
 hard to do at all.
 
  * I'd also want to consider removing brace
 altogether, or at least
  making it a flag in the stats so that it can be
 displayed client side
  (hitting brace by accident and not being able to
 move can be
  confusing).
 
   Brace could probably go away now.  I believe there
 are other ways to get the 
 same effect (ready melee weapon skill, and just fire
 in that direction)
 
 ___
 crossfire mailing list
 crossfire@metalforge.org

http://mailman.metalforge.org/mailman/listinfo/crossfire
 


__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-29 Thread Brendan Lally
On 1/29/06, Miguel Ghobangieno [EMAIL PROTECTED] wrote:
 Brace is used, as Leaf said before, to make it easier
 to swich deities without being pushed off the alter...
 this was allready discussed!

But since being pushed off the square is an intended effect, being
able to brace to avoid that is probably a bug rather than an intended
feature.

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-29 Thread Miguel Ghobangieno
Well Leaf said that it was so that if someone really
wanted to recant their diety that they could, but they
would have to mean it (not by accident, or by mere
trifiling whim) and thus brace. A question I have is
does brace have any ill effects. EX: if you are on a
mover, and brace, does that stop you from being moved.
If so then... well that's not supposed to happen and
brace seems like it needs work, if not then nm.

--- Brendan Lally [EMAIL PROTECTED] wrote:

 On 1/29/06, Miguel Ghobangieno [EMAIL PROTECTED]
 wrote:
  Brace is used, as Leaf said before, to make it
 easier
  to swich deities without being pushed off the
 alter...
  this was allready discussed!
 
 But since being pushed off the square is an intended
 effect, being
 able to brace to avoid that is probably a bug rather
 than an intended
 feature.
 
 ___
 crossfire mailing list
 crossfire@metalforge.org

http://mailman.metalforge.org/mailman/listinfo/crossfire
 


__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-29 Thread Mark Wedel
Miguel Ghobangieno wrote:
 Well Leaf said that it was so that if someone really
 wanted to recant their diety that they could, but they
 would have to mean it (not by accident, or by mere
 trifiling whim) and thus brace. A question I have is
 does brace have any ill effects. EX: if you are on a
 mover, and brace, does that stop you from being moved.
 If so then... well that's not supposed to happen and
 brace seems like it needs work, if not then nm.

  I'd make the case that this should just be handled better, like if you pray 
over an altar to another god, you get a message like:

You currently worship ...  Changing gods will result in a loss of experience in 
the praying skill.  Are you sure you want to do this (y/n)?

  This is one of those cases where hacks are currently in place - IIRC, there 
is 
a 1% chance when praying over the altar of a new god you won't get pushed off. 
This still means that occassionaly someone could be over an altar, pray (not 
intending to change gods) but hits that 1% chance when it doesn't push him off 
and thus change gods.

  The current method is to just repeat until you are not hit by that 1%, but 
that still seems like a bit of a hack.

  This could be changed without breaking any compatibility in clients, since it 
is just messages.

  That said, the current query status is IMO one of those things that could be 
done in a better fashion - currently, there is a ST_.. case statement with 
function to call.  It would be much more flexible to convert that into 
callbacks.  Eg, the function that prints out that message would do something 
like:

  set_reply_callback(change_god_confirmation, ...)

  Instead of having to set ST_ states.  I think one reason there isn't much in 
the way of actual questions from the server because it really is a pain to set 
them up.


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


Re: [crossfire] Crossfire 2.0+ features/priorities

2006-01-29 Thread Mark Wedel
Miguel Ghobangieno wrote:
 One of the things we should do for 2.0 (note: we are
 not yet at 1.9) is try to decrease bandwith usage. For
 instance, some animations are cylical, and the server
 knows which ones these are currently IIRC. The server
 shouldn't have to send a update for every tile every
 time for cylical animations, the client should beable
 to work this feat IMHO.

  I'll probably throw out a 1.9 release in the next few weeks.

  I do plan to work on the map2 command in that not too distant future 
(really!).  Part of that is to let the client do animations.  That said, that 
isn't a huge bandwidth hog.

 
 Also if we can make some commands that are 4 bytes
 long (north south etc) or other longish commands
 shorter that might be good too. (We should keep
 backwards compat here maybe thought, so if a client
 says it's not 2.0+ it gets to use the old, easier to
 parse, stuff).

  IMO, the client-server communications isn't an issue.  Even at say 10 
bytes/command, and doing 10 commands/second, that is 100 bytes per second.  A 
2400 baud modem can cover that.

  This issue is really the server-client direction, and that already is 
binary, 
so not a whole bunch of savings.

  I have a feeling the big hog is the map data - things like stats is never 
much.  The item stuff, especially for huge piles, can add up.  And I think 
someone suggested that the detailed item information (what you get from 
describe 
item) is also sent along - I think that may be a reasonable idea, but does 
increase the bandwidth on that (that is also tricky in that certain things 
could 
change the description of the item (it being identified will change its value 
for example) - I'm not 100% the UPD_ flags cover that, but probably do (but 
money will always be suspect - changing charisma can affect costs also).

  It _may_ be reasonable to compress the map data if that packet was big enough 
(there would need to be a new command, like:

S-C: cdata len

  And after the client gets the data, it then uncompresses it and then runs the 
commands from it.  But to do that, requires some reworking - ideally, you would 
want to queue all the data that the server is about to send to the client 
during 
the activity tick, and then after that, go and compress the data and send it 
along.  This actually wouldn't be that hard.  However, it does make a tradeoff 
of CPU consumption (on the server to compress it) vs bandwidth.


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


[crossfire] Crossfire 2.0+ features/priorities

2006-01-28 Thread Mark Wedel

  With the current discussion regarding modularization, the topic of new 
features also came up.

  For 2.0, it was mentioned do a general code cleanup to removed old crufty 
code 
that is only there for compatibility reasons.  Fair enough.

  but relatively to players and developers, what do people see as the top 
feature(s) that should be added (or things fixed) to make crossfire a better 
game.

   I'm somewhat curious to see what the thoughts are.  I think this info may 
indirectly help drive the modularization discussion - it may be that some of 
these features require significant rewrites or cleanups of the code that make 
sense with modularization.  It may also be that some are relatively easy to do 
and don't require such changes.


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