Thanks for your thorough reply.
Post by CSS DixielandYes, Mister Papanagnou, Your information about integer arithmetic
calculations versus floating point calculations is correct, but it is
to be expected that it had to be so, considering the reality of the
times. There were a few experimental dungeon games for computer in
the 1970s, though the game that became seminal (to the extent of even
giving its own name to the whole genre, often known as 'Rogue-like'
games) was the game called Rogue, released in 1980. Successor dungeon
games were more or less inspired on Rogue, but not directly derived
from it in terms of source code, because the code of Rogue was
proprietary and could not be legally copied.
I think what you wrote is partly not quite accurate or even wrong.
I'm too lazy to look up every detail again; what I say is (partly)
from memory (so take that with a grain of salt if you like)...
WRT rogue; developed at Berkeley and distributed with BSD Unix, it
spread extremely fast. (A _commercial_ DOS version was later ported
and sold, separately. You were probably referring to that version.)
Many years ago I collected some information that you find here:
http://rogue.gridbug.de/
It's unlikely that the reason for not using FP was lack of processor
features. After all we linked FP libraries to the programs where we
wanted them. My personal _thought_/_opinion_ at that time was that
since the game is widely discrete (in time and space models) there's
no need to use FP, thus saving space - which was precious and rarer
at that time! In the source code I could see at some places strange
routines handling with integers in a complex way to implement the
counterpart of a [simple] FP function (ISTR, e.g., an integer sqrt()
function).
Post by CSS Dixieland[snip processor history]
I do not think necessary to give the list of the most important
microprocessors that were released in the 1990s, because by the 1980s
dungeon games ('Rogue-likes') were already firmly established.
As You mention, the first implementations of such games used integer
arithmetic calculations. Later, one implementation after another
began using floating point, as it became available in the hardware.
It was of course possible to do floating point calculations by
cumbersome software methods, and it was in fact done so for critical
applications, but to my knowledge, it was not done for games. It is
enormously easier to do floating point calculations in the hardware,
If you have a FP library it's just function calls, it's not difficult.
You don't address the FP hardware directly from your source code. The
compiler creates code to call functions or to use FP opcodes supported
by the CPU or later by the (nowadays typical) FP co-processors. ISTR
that I could omit linking some "lib???.a" if I had not used the 'float'
data type in a C program. That way we could reduce the executable size.
Post by CSS Dixielandonce such hardware became available, therefore game programmers
introduced floating point only when hardware engineers had introduced
floating point. Which is, I presume, perfectly understandable.
I used always (also around 1980) FP in programming where appropriate.
(In a fully discrete game it would not be necessary, but if it solves
an implementation task it's easy to use. In some places they _should_
have used FP but didn't; e.g. the first arcade tennis games for TV
could be held in a ping-pong stable state without doing anything; a
negative and certainly undesired effect of rough quantification.)
Post by CSS DixielandThe procedure that You have delineated is in theory feasible,
(Not only in theory.)
Post by CSS Dixielandbut I am not going to implement it.
(Erm... - no one asked you to do so. - I also wasn't even aware that
you are a programmer/maintainer of some variant; if that's what you
imply here. - I was merely discussing features.)
Post by CSS Dixieland[...]
You are certainly free to disagree with me, Sir, and very free to do
YOUR OWN IMPLEMENTATION.
(Wow! - Why are you shouting? - I find it always amazing when lacking
arguments result in strawman arguments and non-topical red herrings.
We should probably stop our discussion since you appear to have got
offended by my disagreement to one of your statements? - It wasn't
intended, be assured.)
Post by CSS DixielandMost dungeon games are open source, meaning that You can obtain and
modify the source. Using a different programming language if You
prefer, taking the source just as a procedural guide for Your own
implementation. [...]
In reply to a maintainer of a variant - who showed the same counter
reflex - I already said that I'm not inclined to publish yet another
variant; I think we already have more than necessary. And I have other
priorities than adding one more variant to that huge roguelike zoo.
My own preference would be if some concepts/variants would converge
to one better variant and reduce the size of the zoo. But maintainers
often seem to be reluctant to give up their "baby"; I understand that.
So we see variants that differ in number and layout of levels, names
of artifacts, number of items and monsters, etc. *shrug*. </rant>
Post by CSS DixielandFor me, Nethack and its derivatives are well as they are. I do not
deny that Your idea would improve the game, for it surely would
improve it, but I am of the view that the result is not worth the
effort of programming with so much detail, and I am widely considered
a perfectionist. I have some reason to suppose that most programmers
will probably agree with my position. There are many thousands of
lines in each of the various source codes, and just a tiny error may
have fatal consequences.
Reading this; you doesn't seem to be a software engineer, are you?
What you write makes no sense in the context that we were discussing;
adding, merging, refactoring, and testing code, is a regular business
of software engineers. Variant developers do that all the time. This
is no exception for the (quite primitive) change we have been talking
about in this thread.
Post by CSS Dixieland[ snipped some final fluffy digression about bugs/testing ]
Janis