> > # this is good
> > set npc ignore walls(npc, true)
> >
> > # this is bad
> > set npc bit(npc, NPCbit:ignore walls, true)
> 
> Well, I choose the second approach because I hate having too many
> functions (and having to document them :) ), because it makes the
> dictionary extremely verbose: consulting a compact table as for
> alternpc is much faster (I actually prefer read/alternpc to trying to
> remember over 100 menu functions, for example). And our commands are
> inconsistent and difficult to remember as a rule -- I can never
> remember whether to use "slice parent" or "parent slice" -- so I end
> up looking up an awful lot. However a few paragraphs of documentation
> for every tiny bit is much more fair for people who aren't familiar
> with engine internals in the first place.
> 
> However despite all that, I must agree with you: I didn't realise how
> overly verbose the setnpcbit approach was.

I think a search field in the help screen in HamsterWhisper would go a 
very long way towards alleviating the difficulty of finding commands.

> But while we're on the topic of too many functions which are
> impossible to remember, I think I'll sidetrack into adding structures
> to HS, which I've been meaning to talk about. Having actually used
> Euphoria a whole a couple months back, I take back what I said about
> it being a nice language. I think not supporting user defined data
> structures in the new HamsterSpeak is out of the question, it's just
> unworkable.

This would be beautiful, I would love this!

> And following this train of reasoning, if we have user defined
> structures, and function objects, then we may as well add some form of
> object orientation, since you're already nearly there.

This would also be beautiful!

> And if we now present a slice handle, npc reference, menu handle or
> whatever else as an object with members and/or methods, we can provide
> an alternative way to interact these objects that's less verbose,
> highly consistent, easy to remember and compactly documentable:
>   menuitem.caption
> instead of
>   get menu item caption (menuitem)
> 
>   heroes[who].stats[stat.hp] += x
> instead of
>   set hero stat(who, stat:hp, get hero stat(who, stat:hp) + x)
> and so on.

*James falls on the floor and twitches with joy*

> The exact details don't matter right now, but this is very similar to
> the Magic Variables plan.

Yes! Except better and less hacky!

---
James
_______________________________________________
Ohrrpgce mailing list
[email protected]
http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org

Reply via email to