Page 1 of 1

Posted: Mon Apr 17, 2006 4:35 pm
by Lunever
continuing report:

Just finished the worm level. Whew, every single worm has been a challenge, I think I died as often as I did when playing FTL-DM for the very first time. Great!

Playing right now on that aforementioned very old machine I noticed something interesting: When I shot the "prisoner"-mummy to get a clear shot a those 8 worms (no way I could live with circumventing them), at first it went smoothly even on the pII, but with every worm shot the game slowed down a bit; it seems, that the pile of worm rounds takes the engine far more resources that handling the actual living monsters; when a darkening of light started to set in, the combination of worm round piles and light handling slowed the game really awfully down. Well, I suppose it's not important, only very few people will use such an old machine for RTC, but I've been thinking I should mention it at least.

Posted: Mon Apr 17, 2006 7:14 pm
by Sophia
Lunever wrote:Despite having turned off almost everything starting from config options and ranging to disconnecting the machine and disabling even virus protection and firewall, the game sometimes becomes slowed down, especially when there are either a lot of monsters about or a lot of items piled on the floor, especially if either happens when it is rather dark. Is it possible to include some option in some future release so I can continue to play RTC on this old machine, like an option that makes RTC behave like FTL-DM in respect to the number of active dungeon levels?
Doing that won't get you much of anything. The symptoms you have described seem to imply that the slowness is in rendering the graphics, not updating the dungeon.

There is a pretty good amount of inefficency in the RTC renderer, but, the unfortunate truth is, any sort of complex scaling, transparency, etc. effects being done in software at the resolutions RTC runs at are simply going to be slow on an older computer.

A mode that -looks- more like FTL-DM might get you more, but I wouldn't know how to make that work with modern custom dungeons. :)

Posted: Mon Apr 17, 2006 9:34 pm
by Lunever
Well, if possible at all it'd be enough if it worked with the dungeons originally designed by FTL. If more modern custom dungeons wouldn't work with such modifications, so be it - you can't have everything on such an old machine. Beside that, I do have a more recent machine too, but often I have only the older one available (newer desktop - older laptop).

Posted: Wed Apr 19, 2006 3:07 pm
by George Gilbert
Sophia is correct, the problem is in the rendering part of the code, not the dungeon update.

I did some experiments a while ago on performance and with some code like this attached to the main game loop:

Code: Select all

Start main loop

Start timer A
Check for mouse / keyboard
Update entire dungeon
Calculate stuff to draw

Start timer B
Make DirectX draw functions
Stop timer B

Stop timer A

End main loop
For that kind of thing, the time for A and B are almost identical (about 95% for the entire DM or CSB dungeon). I.e. RTC is keeping track and updating about 5000-10000 items with negligible impact on performance. Dropping this down to just updating a single level (so about 500-1000 items) really wouldn't make any difference.

Bear in mind that the Atari / Amiga versions had to run on 8 MHz machines so cunning short cuts were required for big dungeons. My guess is that everyone here is playing on computers 100 (if not 500) times more powerful and so keeping lots of objects updated is not an issue.

The slow down comes in the rendering of the screen where RTC runs at double the resolution (so 4 times as many pixels) and 32-bit instead of 4-bit graphics so there's a total of 32 times as much information to blit to the screen.

From your other posts I believe your running in the unsupported windowed mode which will slow it down even further. Try running RTC fullscreen (the supported default!) and you should be OK.

Posted: Wed Apr 19, 2006 3:23 pm
by Lunever
I never used windowed mode, I've always been using full screen.

Posted: Wed Apr 19, 2006 5:46 pm
by TheMormegil
RTC slows down quite nastily when there are a lot of things being drawn for me too. I'm using an oldish laptop abroad atm, sure it would be fine on my PC at home. Anyway changing the config helped considerably. Here are the relavent bits

Code: Select all

CACHE		YES
ANTI_ALIAS	NO
LOW_RESOLUTION	YES
TRANSPARENCY	NO
STEPLIGHTING	YES
SLOW_WAKING	NO
FIREBALL_LIGHT	NO
FLIGHT_ARC	YES
SCALE_PORTRAITS	YES
Turning off scaling portraits might help a little, but only in the hall of champions!

Posted: Wed Apr 19, 2006 6:06 pm
by Lunever
I did most of this too, but:

I have CACHE NO. Is cache on better for performance?

ANTI-ALIAS - NO, right

Lowres - YES, right

Transparency - NO, right

I have STEPLIGHTING NO. Is steplighting using up less ressources?

Slow-waking - NO, right

Fireball-light - NO, right

I have Flight_Arc NO, assuming that it would take less ressources, am I wrong with that?

Scale portraits - what exactly is that doing?

Posted: Wed Apr 19, 2006 6:08 pm
by beowuuf
Yes, if you don't cache it has to do everything as it goes, or from memory, or soemthing...I'm sure it says in the docs or somewhere...

With stelplighting, unless I am wrong, it's not using the gradual alpha blend transparancy

Posted: Wed Apr 19, 2006 7:10 pm
by George Gilbert
Lunever wrote:I did most of this too, but:

I have CACHE NO. Is cache on better for performance?

ANTI-ALIAS - NO, right

Lowres - YES, right

Transparency - NO, right

I have STEPLIGHTING NO. Is steplighting using up less ressources?

Slow-waking - NO, right

Fireball-light - NO, right

I have Flight_Arc NO, assuming that it would take less ressources, am I wrong with that?

Scale portraits - what exactly is that doing?
The cache is the single biggest way to improve performance! Set that to YES and you'll notice a huge improvement in performance (at a cost of some extra memory used).

Anti-alias: No impact on performance if cache is on, it will kill performace completely if its off though

Low-res: No significant difference if cache is on, slightly slower with it off

Transparency: Only makes a difference when drawing transparent objects (e.g. water elementals etc)

Steplighting: Makes no difference whatsoever (it just rounds up the light level to step values)

Slow waking: No difference

Fireball-light: No difference

Flight-arc: No difference (it just draws items gradually lower on the screen as they fly)

Scale-portraits: Draws the mirror characters at a distance of more than 1 square away from the party. Only makes a difference when the party is looking at a portrait (and then only with the cache off).

************

In Summary: Set CACHE to YES - nothing else then really makes any difference.

Posted: Wed Apr 19, 2006 11:06 pm
by Lunever
Ok, even if the difference is insignificant, just out of curiosity: In theory, does steplighting ON and Low-res ON use a tick less ressources than having them OFF?
I gonna try out cache ON now, I'll report back whether it improves anything.

Posted: Wed Apr 19, 2006 11:11 pm
by George Gilbert
No, step-lighting will make no difference at all and in fact running in low-res might actually take slightly longer!

Posted: Thu Apr 20, 2006 1:13 am
by Lunever
Ok, caching is really a bit better (of course even caching on doesn't make a pII run on 4GHz). Seems that to think turning everything optional off isn't that bright an idea.

Posted: Thu Apr 20, 2006 1:14 am
by Lunever
PS: Why is caching optional then at all?

Posted: Thu Apr 20, 2006 1:33 am
by George Gilbert
Because when I first wrote RTC, computers came with much less memory as standard and so using memory to pre-render images (which is what the cache is - and therefore why when its on antialiasing etc then doesn't affect performance) wasn't an option for everyone.

These days, you're right though - there's no need to turn it off (which is why it's on by default).

Posted: Thu Apr 20, 2006 6:53 am
by TheMormegil
Hmm I was sure something other than cache had made a difference, ah well I'll turn hi res etc back on then! :)