News:

Simutrans Chat Room
Where cool people of Simutrans can meet up.

The game is frozen but time works

Started by dndimitr, July 08, 2013, 03:45:08 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

dndimitr

Hi!!!

Well , i installed the pak32 .(Cartoon) and i tried to set the map's propertie's with maximum values. When i used the middle button to scroll the map , the program froze but the time still worked .
Is it a problem of my graphic card ? 

with the lspci command i took the informations aboout my graphic card

This is the output
00:00.0 Host bridge: NVIDIA Corporation C55 Host Bridge (rev a2)
00:00.1 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:00.2 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:00.3 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:00.4 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:00.5 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a2)
00:00.6 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:00.7 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:01.0 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:01.1 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:01.2 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:01.3 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:01.4 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:01.5 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:01.6 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:02.0 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:02.1 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:02.2 RAM memory: NVIDIA Corporation C55 Memory Controller (rev a1)
00:03.0 PCI bridge: NVIDIA Corporation C55 PCI Express bridge (rev a1)
00:07.0 PCI bridge: NVIDIA Corporation C55 PCI Express bridge (rev a1)
00:09.0 RAM memory: NVIDIA Corporation MCP51 Host Bridge (rev a2)
00:0a.0 ISA bridge: NVIDIA Corporation MCP51 LPC Bridge (rev a3)
00:0a.1 SMBus: NVIDIA Corporation MCP51 SMBus (rev a3)
00:0a.2 RAM memory: NVIDIA Corporation MCP51 Memory Controller 0 (rev a3)
00:0b.0 USB controller: NVIDIA Corporation MCP51 USB Controller (rev a3)
00:0b.1 USB controller: NVIDIA Corporation MCP51 USB Controller (rev a3)
00:0d.0 IDE interface: NVIDIA Corporation MCP51 IDE (rev a1)
00:0e.0 IDE interface: NVIDIA Corporation MCP51 Serial ATA Controller (rev a1)
00:0f.0 IDE interface: NVIDIA Corporation MCP51 Serial ATA Controller (rev a1)
00:10.0 PCI bridge: NVIDIA Corporation MCP51 PCI Bridge (rev a2)
00:10.1 Audio device: NVIDIA Corporation MCP51 High Definition Audio (rev a2)
00:14.0 Bridge: NVIDIA Corporation MCP51 Ethernet Controller (rev a3)
01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI RV370 [Radeon X300/X550/X1050 Series]
01:00.1 Display controller: Advanced Micro Devices [AMD] nee ATI RV370 [Radeon X300/X550/X1050 Series] (Secondary)
02:00.0 SATA controller: JMicron Technology Corp. JMB360 AHCI Controller (rev 02)
03:06.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
03:06.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)
03:07.0 Modem: Motorola SM56 Data Fax Modem (rev 04)
03:08.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev c0)

kierongreen


dndimitr


kierongreen

Yikes, 32000x524? When I tried creating a map that size here it restarted my x server because of running out of ram and swap... How much memory do you have on your computer - if it's any less than 4GB I wouldn't even try running a map that size.

Ters

The problem is probably with everything but your graphics card. Simutrans doesn't really make any use of that.

Spacethingy

32000x524 = 16.768 million. Using Simutrans' scale of 1 kilometre per tile, that about the area of Russia in the real world. Even downsizing to a more realistic scale of about 100 metres per tile, that's still about an area like the UK.

That's going to be one heck of a project playing that map!
Life is like a Simutrans transformer:

You only get one of them, and you can't have it on a slope.

dndimitr

QuoteYikes, 32000x524? When I tried creating a map that size here it restarted my x server because of running out of ram and swap... How much memory do you have on your computer - if it's any less than 4GB I wouldn't even try running a map that size.

My ram is 4GB ... Is it a problem of the game  or a problam of my pc??  ???

Ters

I wonder what you mean when you write "the time still worked". Didn't the entire program freeze, so that the date kept running at the bottom of the window? Or did the game move along at a slow and jerky pace, seemingly ignoring input?

prissi

The time will continue, but you frame rate is so low (due to the amount of objects on the screen) that the mouse event are not processed. Use pak96 or pak192 instead. Those have much faster screen updates. With pak32, zoom in. Zooming out will almost certainly lead to a frame rate below 1 frame per second, as you will have million of objects on the screen.

You can disable trees (this will reduce the memory footprint dramatically)
You must disable water animations (will increase display)
Set frames per second to 10 on the command line (will make scrolling more reliable)
Use a larger pak size, at least pak64 and do not zoom out to the end.

dndimitr

#9
QuoteI wonder what you mean when you write "the time still worked". Didn't the entire program freeze, so that the date kept running at the bottom of the window? Or did the game move along at a slow and jerky pace, seemingly ignoring input?



Well , i mean tha the date keep running ath the bottom of the window .

Quote
The time will continue, but you frame rate is so low (due to the amount of objects on the screen) that the mouse event are not processed. Use pak96 or pak192 instead. Those have much faster screen updates. With pak32, zoom in. Zooming out will almost certainly lead to a frame rate below 1 frame per second, as you will have million of objects on the screen.

You can disable trees (this will reduce the memory footprint dramatically)
You must disable water animations (will increase display)
Set frames per second to 10 on the command line (will make scrolling more reliable)
Use a larger pak size, at least pak64 and do not zoom out to the end.

Ok thank you . 
Is the game running correct in pak32 ??? I mean that if I change all the things that u said , will I play normally ??  The problem is my pc , isn't it ? 

kierongreen

The problem is that you are pushing Simutrans and your computer to the limit. Some games put limits on map sizes, Simutrans doesn't but realistically keeping below 4 million tiles makes it run much better (i.e. 2048x2048 or 32000x128). As computers become faster and have more memory larger map sizes become possible (at one point even 512x512 was a huge map).

Ters

But how can Simutrans keep updating the bar at the bottom of the screen when nothing else works? The game has to run and render for the date to be drawn.

dndimitr

Quote from: Ters on July 09, 2013, 04:20:23 AM
But how can Simutrans keep updating the bar at the bottom of the screen when nothing else works? The game has to run and render for the date to be drawn.

Yes , i think that date should be stopped when the game is frozen .Becuase  , for example , it is possible somebody to bankrupt  when the screen is not updated .

Is date updated regardless of the game ??

kierongreen

The GUI runs on interrupts from the simulation loops to ensure that it remains at least somewhat responsive. Simutrans simply can't cope with a map this size on your computer - it's trying to cope as best it can.

Ters

Quote from: kierongreen on July 09, 2013, 09:51:46 AM
The GUI runs on interrupts from the simulation loops to ensure that it remains at least somewhat responsive. Simutrans simply can't cope with a map this size on your computer - it's trying to cope as best it can.

So it is completely stuck in simulation, without every reaching the map rendering? When I have caused Simutrans to hang, it was in the rendering part. I wasn't aware that GUI rendering could happen from inside the simulation, except modal dialogs. Or is it simply skipping every frame in the hope of not lagging behind on simulation? If so, it is a bit silly that much time can pass without anything being rendered. Frame skipping shouldn't be allowed to go this far.

kierongreen

What alternative is there? You simply can't conjure up more CPU power and memory. If simutrans can't cope with a map size on a particular computer then what should it do - exit?

Ters

Quote from: kierongreen on July 09, 2013, 05:48:18 PM
What alternative is there? You simply can't conjure up more CPU power and memory. If simutrans can't cope with a map size on a particular computer then what should it do - exit?

At least exit the map and go back to the default world used at start-up, after stopping the simulation and showing an error message. It is not that different from a desync between client and server in a networked game. To avoid aborting a game due to a temporary capacity problem, the situation should be persistent over at least five seconds, with no signs of improving if Simutrans can know of such a trend. The error message could perhaps also contain a button for letting the game continue, or save it. At the very least it should inform the user that there are performance problems, not just show a confusingly mostly empty screen while keeping on running.

prissi

Simutrans is stuck in rendering, i.e. reduces frame rate but delays steps (where also the event processing is taken place) in order to catch up. Since on a empty map without movingobjs (as in pak32.comic) nothing will change on a map, and no pedestrians or car can be gnerated, it will look like it is frozen. However, it is just busy with looking up tiles an drawing. Remember in pak38 size it is possible to end up with tiles of px wide, i.e. with about 800000 tiles on the screen. I am pretty sure than any game which has to draw 2 million objects per frame will have very low frame rates ...

Just because you zoomed out too much you surely do not want to kick the user out of his game? The only thing possible is rather to enlarge objects when no interaction run for 1000 ms or so.

Ters

If zooming is the problem, then different measures can be used to get things going again. I just didn't get the impression that was the problem here. It sounded very much like the opposite.

dndimitr

I can understand that when there are a lot of objects in the game , the game probably stucks.  But, if the game stucks  , date should stuck too.

So user  could wait the game to return on the previous state and he couldn't say that i must start again because the date changed .

prissi

If you zoomed out too much (i.e. smaller than 5 pixel per tile) the resulting tile contained nother => nothing was drawn but the status bar. That is a error which only occured with pak32 at fully zoom and hence was not discovered before. You could resolve this by zooming in again or using current nightly.