Page 1 of 1

Posted: Wed Feb 28, 2007 1:55 am
by Sophia
I've decided to give the next beta a wider release, due to the number of people who have expressed interest. I was originally going to hold it back until 1.0, but this version is definitely in condition to be played around with... also, my inbox was exploding a bit from bug reports/suggestions, they may be easier to organize here. :)

In addition, there are some rather subjective issues that would stand more opinions--

Is the delay after an attack where the damage pops up too long?

Is showing cumulative damage to the characters a nice touch, or annoying?

Should rusters rust?

... etc. :)

Anyway, I've updated the top of the thread with a download link.

Posted: Wed Feb 28, 2007 7:02 pm
by Tom Hatfield
No problems this time around. I'm assuming there's nothing left after killing the death knights?

The short damage popup has always been one of my highest grievances. I just don't think DM has a good damage feedback system. However, I understand you're making a clone, and that includes all the perceived drawbacks. In that case, it feels about the right amount of annoying.

By cumulative damage, I assume you mean poison damage. Without this, I'd never know when my characters were poisoned or how badly, so I say keep it. (DM2 was even nicer because it had a poison meter, so I knew approximately what power VI BRO I needed to heal my guys.)

Rusting rusters . . . why would you call them rusters if they didn't rust? A conundrum indeed. Maybe you could have polishers instead.

Posted: Wed Feb 28, 2007 7:10 pm
by beowuuf
Stand under a door and the damage meter comes up with cumulative damage from the door

Posted: Wed Feb 28, 2007 7:20 pm
by DSE
is the cumulative damage where you keep walking into a wall and the figure just goes up and up. If so, I dont like it, did the original do this ?

Posted: Wed Feb 28, 2007 7:36 pm
by beowuuf
You aren't taking more and more damage though, it's just telling you how much damage you are taking from one group of activities

Each damage was seperate in the original, so you only ever saw 10 and 10 and 10, in DSB you an now realise that standing fighting under a door say you have taken 150 damage in total, or walking into a wall repeatedly you have taen whatever

Posted: Wed Feb 28, 2007 8:13 pm
by Sophia
Tom Hatfield wrote:No problems this time around. I'm assuming there's nothing left after killing the death knights?
Right.
Tom Hatfield wrote:The short damage popup has always been one of my highest grievances. I just don't think DM has a good damage feedback system. However, I understand you're making a clone, and that includes all the perceived drawbacks. In that case, it feels about the right amount of annoying.
The attack damage popup used to be a bit longer, but that caused people who were fond of rapid-fire punching to have to slow down their attacks, as the damage popup stayed up into the time when the next attack would be available.

Perhaps one answer would be to have the damage popup last longer by default, but be cleared with a click-- or even have that click be interpreted as a valid click in one of the click zones, for the really impatient. ;)
(That is, you can't SEE the weapon icons, but if they would be considered to be clickable, you can still select them)

If you have an alternate way of showing the damage that still feels DMish (or even not, I could always have it as a configurable option in the ini file, so purists could turn it off), feel free to suggest it, though. :)
Tom Hatfield wrote:DM2 was even nicer because it had a poison meter, so I knew approximately what power VI BRO I needed to heal my guys.
Oooh. This would be something nice to have anyway.... ;)

Posted: Wed Feb 28, 2007 8:59 pm
by Trantor
My 2 cents:

-Time of damage popup: Yes, too long.

-Cumulative damage: Irritating for me.

-Rusters: Not by default I think.
-

Posted: Thu Mar 01, 2007 1:03 am
by Joramun
I agree with Trant on all those points.

DSB should focus on flexibility, and being able to rust etc. is ok, but the original DM dungeon should be respected as closely as possible.

Bug : sometimes I have sound parasites (like a "scratch" after the regular sound of an action, like throwing a torch. But it's not always. More like 1 in 20 or 30 actions. Totally random)

Posted: Thu Mar 01, 2007 10:43 am
by linflas
i've just finished the demo and sorry if i'm a bit harsh :
- i have a slowness feel, for almost everything in the game (comparing with CSBwin or RTC), this is probably caused by the popup damage delay, but objects throwing is also delayed.
- sometimes i don't go forward and have to press again numpad 8 key (i am sure my keyboard works fine because i don't have this with other DM clones)
- cumulative damage is an excellent idea, maybe the way it is calculated gives too high values.
- rusters didn't rust by default but i like the idea.
- range size to pick objects on the floor seems too small : this is harder to pick them.
- i read the doc and a few of your lua scripts and well... let's hope an editor will come !
- color pixels defining objects seems really a strange idea to me ! but that agrees with my previous point

Posted: Thu Mar 01, 2007 1:58 pm
by DSE
I have just tried your clone on an old machine I have here. Its a Pentium 3 450 with 384 MB, and it works great. Really well done with this work, its great, I love it !

Posted: Thu Mar 01, 2007 6:20 pm
by ian_scho
Well I tried it and I liked it.
I agree with Linflas' comment though, about the sluggish feel to things. I'm being really picky here.
Again, it's a demo but the editor is needed me thinks. Also, if you can include with it a wallset builder thingy if you have one?... :P
I just LOVE the idea of being able to programmatically change spells and mosters. This is definately the selling point of this clone for me. Whether this converts to wacky and wild dungeons only time and a lot more of Sophia's toil will tell.

Good work and well done!

Posted: Thu Mar 01, 2007 7:32 pm
by Paul Stevens
On my AMD Athlon running at about 1250MHz
I noticed no slugishness whatsoever. My video
card is an NVIDIA TNT2 model 64. Nothing
very special about that!!!

I noticed that DSB did consume a fair
percentage ofthe available CPU
time (~50 %). The demo seemed very
true to the original DM look and feel.

I did lose about 90 minutes of work when
DSB started up and switched my graphics
mode from 1280x1024 to whatever. Caused
my video capture process to restart. Oh, well.

Having examining some of the lua code,
I want to repeat.....this is a remarkable effort.

Posted: Fri Mar 02, 2007 2:23 am
by Sophia
linflas wrote:i have a slowness feel
Add the line "ClockDivide=2" to your dsb.ini, in the "Settings" section.
Does it still feel slow? ;)
(Seriously, though, the default value is 7. Maybe 6 or 5 will feel better to you...?) By the way, below 2 seems to cause the game to be unplayable, so don't do that.
linflas wrote:sometimes i don't go forward and have to press again numpad 8 key
It's not purely your computer, or it would show up elsewhere, and it's not purely DSB, or it would show up for other users-- so I think it's some interaction thereof. What OS are you running? Is there something odd about your keyboard?
I'm a little stumped on this one.
linflas wrote:cumulative damage is an excellent idea, maybe the way it is calculated gives too high values
I don't quite understand. What I mean by "cumulative damage" is that it simply just keeps showing the damage you've taken in a certain period of time rather than resetting the damage popup... that's all it does. Like, if you stand under a door, rather than 4 3 3 5 etc. the number will go 4 7 10 15 etc.
linflas wrote:let's hope an editor will come !
Hehe, I'm hoping that too. ;)

Posted: Fri Mar 02, 2007 9:59 am
by linflas
i played a moment with the ClockDivide value and there's no unique value that can be realistic for everything. so, i tried a few settings and here are the values i would put for specific events :
- 2 for shooted arrows with bow, lightning/des-ew/fuse spells
- 3 for punch/stab/jab and other throwing actions, fireballs/poisons bolts spells
- 4 for kick and swing/chop class of actions
- 5 for melee/thrust etc.
- 6 for hack/berzerk
- 7 for door closing/opening

about the keyboard problem, i assume that it comes from my way of typing (maybe my left middle finger has maleficent faculties) : does DSB acts when the key is pressed or when it is released ?
EDIT: actually i know why it happens : i press 7 to turn left and immediately after/at the same time, i press 8 to go forward but it seems that DSB can't cumulate succesive key typings while CSBwin or RTC can.

about too high values in cumulative damage, i was thinking about poison (i got about 8/10/15 points health damage while sleeping and having been poisoned several times by the scorpion) but under a door, yes, what you suggest is realistic.

Posted: Fri Mar 02, 2007 11:45 am
by linflas
is there an option to play DSB windowed ? with scaling ?

Posted: Fri Mar 02, 2007 1:55 pm
by Joramun
Zo Kath Ra spell has "nil" mass -> bug when throwing (in util.lua)
Attempt at changing the mass with exvar failed (same error)
Also ground image for the spell is wrong (currently it's not a corbum)

I'm testing the game with different Clockdivide, and i feel 5 or 6 is better.

I don't understand what you mean Linflas. The game speed can't be different for different objects !
(otherwise, we'll face a major space-continuum aberration)
:idea: Star Trek dungeon ! :lol:

Posted: Fri Mar 02, 2007 2:11 pm
by Gambit37
No, what he's saying is that different events "feel right" with different speeds set. So, the implication is that the speed of events that feel wrong needs to be tweaked.

Posted: Fri Mar 02, 2007 2:22 pm
by linflas
c'est exactement cela :)

Posted: Fri Mar 02, 2007 2:36 pm
by Joramun
D'accord, d'accord... Still i'll submit my Star Trek dungeon idea :P

I experienced several crashes when manipulating objects (putting them on the ground). It may be due to exvar abuse from my part (to avoid scroll and potion crashes, i affected power and text to all objects i was spawning on the ground with my dear "for loop" )

EDIT:
- it appeared with Clock divide = 2, and I couldn't reproduce it with Clockdivide = 5. I forgot to save the corresponding log.txt :(
- Item comments are not parsed as scroll text ( / doesn't mean new line)
- Potential bug : poison cloud visible when thrown on hidden fake wall tile.

- Suggestions :
:arrow: affect "class" attribute to objects that have particular behaviors but come in different types : eg for all potions have : class = "POTION" etc.
:arrow: function : dsb_set_cell(lvl, xc, yc, state) where state = 0 or 1 (square and wall)
:arrow: function : dsb_get_cell(lvl, xc, yc) return cell_state (0 or 1)

Posted: Fri Mar 02, 2007 7:59 pm
by Sophia
Hmm, some more issues:
linflas wrote:i played a moment with the ClockDivide value and there's no unique value that can be realistic for everything.
What I got from this list is that you feel thrown objects seem need to go a lot faster, attack recovery times need to be a little lower, and door opening and closing feel right the way it is... is that right?

You play mostly RTC, right? I based DSB's timing on CSBwin and memories of DM on an overburdened CPU... I think thrown objects in RTC go at a full 6 ticks/sec so it seems faster (still not as fast as ClockDivide=2 though!) Right now thrown things move one square per game "tick" so there's not a lot of flexibility there. Attack recovery times, more so, though, as far as I can tell, the values are straight out of DM... at least the numbers are.
linflas wrote:i press 7 to turn left and immediately after/at the same time, i press 8 to go forward but it seems that DSB can't cumulate succesive key typings while CSBwin or RTC can.
Wow, I didn't realize people played/typed this fast!
Ok, I'll take a look at this. :)
linflas wrote:is there an option to play DSB windowed ? with scaling ?
Yes to windowed, no to scaling-- but it's rather experimental. I hacked it in quickly and forgot about it, to be honest. If you'd like to play with it, though, add "Windowed=1" to your "Settings" section of dsb.ini.
Joramund wrote:Zo Kath Ra spell has "nil" mass -> bug when throwing (in util.lua)
No, for me, the mass is always initialized to 0, which is valid, and I can't reproduce this...
Joramund wrote:Item comments are not parsed as scroll text ( / doesn't mean new line)
It automatically breaks these into newlines. Good/bad?
Joramund wrote:Potential bug : poison cloud visible when thrown on hidden fake wall tile.
Clouds are visible on walls to make the Vi Altar work, and because that is (as far as I know) the way DM works too.
Joramund wrote:affect "class" attribute to objects that have particular behaviors but come in different types : eg for all potions have : class = "POTION" etc.
Ok, I'll do this.
Joramund wrote:dsb_get_cell(lvl, xc, yc) return cell_state (0 or 1)
dsb_set_cell(lvl, xc, yc, state) where state = 0 or 1 (square and wall)
It returns "true" or "false" (Lua booleans) but otherwise "dsb_get_cell" is in already. "dsb_set_cell" isn't, but I'll add that.

Posted: Fri Mar 02, 2007 9:56 pm
by Joramun
About item comments :
What I mean is, scrolls do consider a '/' as a new line, while item DON'T eg: if i add text="TEST/TEST" it will read "TEST/TEST" on an item and :
TEST
TEST
on a scroll. It's not really a problem.

Concerning Zo Kath Ra : I was mistaken. It was normal spells (like zo or oh ir ra) that would show up in hand as a zokathra, on the ground as a small blue thing, and raise an error when thrown. I should have put them as items in the dungeon ;)

Posted: Fri Mar 02, 2007 10:13 pm
by Paul Stevens
A strangeness....I added the 'Windowed=1' line
and then the program uses 100% CPU while
waiting at the Prison Entrance. After entering
the Prison it uses about 75%.

Posted: Fri Mar 02, 2007 11:28 pm
by Parallax
Sophia wrote:It automatically breaks these into newlines. Good/bad?
Bad. Could you please let a '/' or another special character sequence force a new line, and the presence of at least one such line return disable the auto-formatting for that object?

Posted: Sat Mar 03, 2007 7:26 pm
by Sophia
Paul Stevens wrote:A strangeness....I added the 'Windowed=1' line
and then the program uses 100% CPU while
waiting at the Prison Entrance. After entering
the Prison it uses about 75%.
Oh, unfortunately, this is not strange, it's about right.
The main loop of DSB is quite simple: Update the game world, draw a frame, check for input. It tends to use up whatever CPU cycles it can get hold of.
Parallax wrote:Could you please let a '/' or another special character sequence force a new line, and the presence of at least one such line return disable the auto-formatting for that object?
I've added '/' as a line break.
As for disabling the auto-formatting, I don't know why you'd want to, but I did figure I'd need to add support for other fonts, so I added a command:

Code: Select all

dsb_textformat( chars_per_line, y_offset_per_line, max_lines )
By setting chars_per_line to something unreasonable, you will effectively disable word wrapping. :)

Posted: Sat Mar 03, 2007 9:21 pm
by Paul Stevens
Oh, unfortunately, this is not strange, it's about right.
That's how DOS programs work. That is how
CSBwin worked when it was translated from
the Atari. But that is not how Windows programs
work. That is a 'Show-Stopper' for me because
my computer is being used for other things that
must proceed. In fact, that is why CSBwin exists.
I tried using RTC in the early days and could not
because I had a 133MHz machine and RTC used
all available time.

At the minimum, I would think that the dungeon
would not change more than n times per second
and therefore the screen need not be redrawn
nor the game world updated more often than
that. CSBwin also only redraws those parts of
the screen that have actually changed.

Posted: Sat Mar 03, 2007 10:04 pm
by Sophia
Paul Stevens wrote:my computer is being used for other things that
must proceed.
They will proceed just fine. DSB will play nice when it has to, though not necessarily when it doesn't have to. It does tend to busy wait and other practices that I admit are not exactly "Windows friendly," but it can function on far less CPU cycles than it would take on an idle machine. I tied up over 60% of my CPU with other things and tried to play DSB, and it still ran flawlessly, so it shouldn't interfere with other programs that keep your CPU busy.

That said, I am no expert on Windows programming and some of my practices are more simplified and grounded in the DOS era. When I first started writing the program I had two choices:

1. Go forward with the technology I knew and develop a game.
2. Start learning lots of new technology.

I chose option #1. Perhaps some of the people who now have DSB in their hands will think that was a good choice.

Of course, I am always open to improving the engine and various optimizations and improvements are always on the horizon, but I'd like to get it functional and playing first.

Posted: Sat Mar 03, 2007 10:18 pm
by Paul Stevens
It ain't right and it ain't pretty....
A search of CSBwin for 'Sleep'
will turn up a couple of matches. But:

While (nothing to do) Sleep 1 millisecond;

Beats

While (nothing to do) repeat;

by a BIG BUNCH. And it maintains
the 'DOS-Like-Look'.

Posted: Sat Mar 03, 2007 10:34 pm
by DSE
any kind of "thread sleep" in your main game loop will immediately drop the utilisation of the cpu (by a massive amount, even if the "sleep" is just for 1 millisecond) and you wont notice the difference in your game. otherwise your app will take all available processing power (or the maximum allowed by your runtime libraries). the main point is to allow the windows messages to be processed and allow other application some cpu time.

Posted: Sat Mar 03, 2007 11:25 pm
by Parallax
Sophia wrote:By setting chars_per_line to something unreasonable, you will effectively disable word wrapping. :)
That's all I'm asking for: the right to be unreasonable. Thank you. :)

Posted: Sun Mar 04, 2007 12:46 am
by mikko
DSE wrote:the main point is to allow the windows messages to be processed and allow other application some cpu time.
Well, it's the job of the task scheduler in the OS to do that, but if your application has nothing to do, it's polite to sleep and allow other processes _more_ time. This will of course show as low cpu utilization when there are no other processes around.