|
Slightly cold news on page 10! Phlamey breaks the server. |
|
This is a long thread. Click here to view the threaded list. |
|
Jeffrey Lee |
Message #106410, posted by Phlamethrower at 23:03, 11/2/2008, in reply to message #106409 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
ISTM that the railway tracks might have been better generated *before* the rest of the map. Lay the tracks, then map/build a city around them. That might have been a more sensible idea, yes. There's still some tweaking I need to do to make the tracks look 'right' - things like discouraging it from producing tight loops or snaking sections just to get the shortest path, and discouraging it from building over road so that when the track supports are put in they can be placed with reasonable spacing (All the train tracks are elevated - something I haven't mentioned before, I think. This seemed like the easiest way of adding them, and makes sense from the point of view that it's a crowded city with little space spare at ground-level).
But with all the work already done, that's probably not such a practical approach now. I wouldn't discount the idea - it would be quite easy to change the code so that buildings (the main things that get in the way of the train tracks) are only placed after the tracks have been placed. (although obviously the stations and important mission buildings would have to be placed before the train tracks - but the rest can be done after).
Apart from working on the train tracks I'm also working on ideas on how to restructure the generator so that the mission buildings that are required to be in the map do actually get put into it (The current code doesn't guarantee anything, which isn't very useful if the game ends up needing 50 or so special buildings for each city). Basically this boils down to reworking the order in which everything is done, as well as tweaking/rewriting a couple of stages so that they are focused around satisfying the mission buildings rather than just focusing on making a map that looks sensible.
So if I do decide that the current track generator output isn't good enough, I may try switching to your approach and have the track generated just before the regular, random buildings are put into the map. Certainly it would get rid of a lot of problems I'm having with the track snaking around in places - but instead it might just end up generating very straight and boring tracks, at the same time as preventing large areas of the map from having sensible buildings placed. But on the other hand, generating the train tracks before putting the buildings in would be the perfect way of creating a subway system, since there would be plenty of spaces available for the planner to put the tunnel entrances and exits.
[edit]
I've just realised that this bi-directional search isn't going to be as easy as it first seemed, as although the code can easily detect whether the end points of two paths meet, it can't easily detect whether the sections of track inbetween the points have overlapped (which would be a bad thing if I tried joining the two paths together). There are ways around this, but I'm not sure how much they will affect the performance of the algorithm.
[Edited by Phlamethrower at 23:37, 11/2/2008] |
|
[ Log in to reply ] |
|
VinceH |
Message #106411, posted by VincceH at 11:22, 12/2/2008, in reply to message #106410 |
Lowering the tone since the dawn of time
Posts: 1600
|
That might have been a more sensible idea, yes. There's still some tweaking I need to do to make the tracks look 'right' - things like discouraging it from producing tight loops or snaking sections just to get the shortest path, and discouraging it from building over road so that when the track supports are put in they can be placed with reasonable spacing (All the train tracks are elevated - something I haven't mentioned before, I think. Thinking further... is the map generator building any kind of terrain into its results?
The only random map generators I've ever done have been fairly simple - for the budget games I did way back when: essentially, nothing much more than mazes (eg Exeria: just walls and crystals, with the only real criteria being that each colour of crystal were inaccessible until the previous colour was cleared and that colour of wall was removed - and that was only done to test the code as I went; the released game had mazes that were hand crafted) - so I'm looking at this purely hypothetically and with little real or recent experience, but...
This might have been a good approach:- General terrain for the area - you could pre-specify minimum percentages of certain types of terrain, to ensure enough flat, solid ground for the main city to be bult on, and so on.
- With that in place, plot a railway - doing it at this stage means you could cut suitable trenches (what *are* the cutaway slices of land that railways are built through called?) through slightly higher ground (and later put bridges over it if the roads cross) and even make the lines as tunnels through hills.
- Add an initial smattering of roads and buildings (including railway stations, obviously)
- Add the main mission buildings as needed, with roads as necessary to access them from what's already there
- Finally, build the remaining city - roads and buildings - around what's already been done.
|
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #106412, posted by Phlamethrower at 12:25, 12/2/2008, in reply to message #106411 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Thinking further... is the map generator building any kind of terrain into its results? At the moment the only terrain it puts in are some hills, but at some point I'm also planning on adding support for rivers, cliff faces, etc.
The approach you describe is fairly close to the order I'd do things in if I was to move the railways to earlier in the algorithm - except I'd rather that they were added after the stations/mission buildings, to (a) ensure there's space for the mission buildings, and (b) give the railway somewhere concrete to go (How can you put a railway between two stations if you don't know where the stations are?). |
|
[ Log in to reply ] |
|
VinceH |
Message #106413, posted by VincceH at 14:04, 12/2/2008, in reply to message #106412 |
Lowering the tone since the dawn of time
Posts: 1600
|
(b) give the railway somewhere concrete to go (How can you put a railway between two stations if you don't know where the stations are?). I don't see a problem. Without doing any research whatsoever and checking my facts (it almost feels like usenet, doesn't it?) I suspect that (in real life) historically, railways have been laid between original start and end points, with main stations planned/build at the same time, with additional lines to other destinations added later, and additional stations along the existing lines also added later.
Although, being real life, that's a scenario where lines have been built to furnish existing requirements for travel, for carraige of goods, etc, so those stations and lines are built around pre-existing towns/cities etc, and the whole thing developed over a significant period of time. Not really game-practical.
Although, you could develop the map generator in such a way that it takes hundreds of years to run, for added realism... |
|
[ Log in to reply ] |
|
VinceH |
Message #106414, posted by VincceH at 14:05, 12/2/2008, in reply to message #106413 |
Lowering the tone since the dawn of time
Posts: 1600
|
Although, you could develop the map generator in such a way that it takes hundreds of years to run, for added realism... Actually, best make it billions - to get the terrain done correctly. |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #106415, posted by Phlamethrower at 14:39, 12/2/2008, in reply to message #106413 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
I guess it could be possible to lay some of the track before putting the stations in, but I don't think it offers any real advantages. Instead of running the risk of putting a station in which you then later discover can't be connected up to track, instead you run the risk of putting track in which you then later discover can't be connected to a station. And trying to write a track planning algorithm that will guarantee that stations can be placed at arbitrary, undecided locations along the track sounds a lot harder than writing an algorithm that places the stations and then puts track between them. |
|
[ Log in to reply ] |
|
richard cheng |
Message #106434, posted by richcheng at 14:04, 14/2/2008, in reply to message #106415 |
Posts: 655
|
You need to add bulldozers to your map generation implementation. |
|
[ Log in to reply ] |
|
Adrian Lees |
Message #106441, posted by adrianl at 11:02, 15/2/2008, in reply to message #106411 |
Member
Posts: 1637
|
what *are* the cutaway slices of land that railways are built through called?) through slightly higher ground Cuttings, prosaically enough:
http://dictionary.cambridge.org/define.asp?key=19175&dict=CALD |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #106454, posted by Phlamethrower at 16:11, 16/2/2008, in reply to message #106441 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Bah! I just mis-clicked and lost the message I was typing out.
Summary form of the bits I'd typed so far:
* New bi-directional planner = good. No more problems with the generator running forever, and it looks like it could be faster for the non-forever cases. * Train movement/physics code is in, so you can now drive a train around the track. No AI or proper spawning code yet, but I guess that will come soon enough. * Framerate = bad. Compared to just a few months ago the Iyonix now drops to 17fps at places at 640x480 (with DMA disabled). This is fixable, but most of the time the RiscPC only averages 10-15fps at 320x256, which has me far more worried. Actual writing-to-screen code isn't too bad (25ms/frame on the Iyonix and 22ms/frame on the RiscPC), but the remaining code seems to take around 4 times longer (25ms/frame on the Iyonix and 104ms/frame on the RiscPC), which is a bit odd concidering that it's (supposedly) CPU bound code running on a CPU that should only be 2.5 times slower. Looking at the function timings I can see that some functions are inexplicably 7 or 8 times slower on the RiscPC than they were on the Iyonix. A lot of this code is code that didn't exist (or was rarely used) 6 months ago, but it's still rather worrying that it takes so long considering that some of it doesn't really do that much. E.g. the incredibly simple "1. Turn to face target 2. Walk forward" ped AI takes over 7 times longer on the RiscPC than on the Iyonix. Luckily it's quite obviously my usage of atan2() that's to blame - and I can fix that quite easily - but unless I'm very lucky it's going to take me quite a while to work out why everything else is running quite so slow. Even if I do get the non-rendering code to run 2.5 times slower than the Iyonix, it would still only give me about 4 extra frames per second, so I'll still have a lot of extra optimisations to perform if I want it to run at a decent framerate again (and preferably at 480x352!)
I think to help with this I'm going to have to try automating the testing process some more. At the moment it's a bit of a hassle to compile the game, launch it, start profiling, drive around the train track (todays timings were all gotten from driving around the same train track at speed - causing the camera to zoom out quite far, giving a good indication of the worst rendering performance), stop profiling, quit out, and then copy the profiling results into a spreadsheet (and add the extra columns which compute some more useful values). With a little bit of time spent on automation I could have this all done automatically, and get results that are a lot more reliable. |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #106457, posted by Phlamethrower at 22:15, 16/2/2008, in reply to message #106454 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Some "fun" numbers now that I've got the automated profiler working: If I want the game to run at 25fps at 640x480 on an Iyonix, I'll have to get the code running twice as fast than it is now. But if I want it to run at 25fps at 320x256 on a StrongARM RiscPC, it will have to run almost 5 times faster.
[edit]
Luckily I've since discovered that I can't count. The Iyonix only needs to run 1.5 times faster, and the RiscPC only 3 times faster. And the simple optimisations I've done so far have already changed those values to 1.25 and 2.35.
Of course the bad news is that I'm now out of simple optimisations, so will have to start looking harder for things to tweak.
[Edited by Phlamethrower at 17:23, 17/2/2008] |
|
[ Log in to reply ] |
|
richard cheng |
Message #106474, posted by richcheng at 12:04, 18/2/2008, in reply to message #106457 |
Posts: 655
|
Sounds "good enough."
Ship it! |
|
[ Log in to reply ] |
|
Jason Togneri |
Message #106475, posted by filecore at 14:29, 18/2/2008, in reply to message #106474 |
Posts: 3868
|
Sounds "good enough."
Ship it! Yeah. He should look for jobs with Microsoft. |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #106477, posted by Phlamethrower at 18:20, 18/2/2008, in reply to message #106475 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Yeah. He should look for jobs with Microsoft. No thanks!
The RiscPC is now about 2.05x slower than it needs to be. I've got a list of things that I know I can optimise further, so that number will continue to come down - but whether it will actually reach 1.00x is still a bit of a mystery. |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #106501, posted by Phlamethrower at 01:28, 22/2/2008, in reply to message #106477 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Another update:
The numbers I've given above are still wrong, because they were taken with the profiling code running. The profiling code eats about 30% of the frame time. So without the profling code the RiscPC is (now) running at about 53.5msec/frame (18FPS), so it only needs to get about 1.3 times faster. The Iyonix is running at about 34msec/frame (29FPS), so should provide 25FPS or better in almost all situations. This fills me with quite a bit of confidence for getting the RiscPC back up to 25FPS - I hadn't realised that the profling code was taking quite so much time.
The optimisations I've made over the past few days haven't had a massive impact on the speed (only about 10% total increase), but that's mainly because I've only had the time to do a couple of them (and one of the more experimental ones only resulted in making things worse). However I've now got quite a good list of things to look at, some easy, some hard, so hopefully I'll be able to hit 25FPS sometime this weekend or next week. After that It'll be back to working on fixing up the map generator ready for the next engine release. I may also have a quick look into optimising it for the RiscPC (it currently takes around 90 seconds to build a map), but I doubt I'll put much effort in, since the generator isn't something you should be seeing every day when you play the game. It'll also probably take at least a day or two to get the help files and engine documentation updated, so that'll probably take away any time that could be spent on optimisation.
I've also recently built the 2000th build of the engine. Hurrah! |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #106513, posted by Phlamethrower at 22:52, 23/2/2008, in reply to message #106501 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
The RiscPC is now running at about 42msec/frame, which is within a stones throw of the 40msec/frame target.
Except that I can't seem to throw stones very well, because an optimisation I just tried ended up making things slower. And when I removed the optimisation things got even slower still, so now I've got no idea whether I didn't revert the code properly or I've changed something else without making a note of it |
|
[ Log in to reply ] |
|
VinceH |
Message #106519, posted by VincceH at 11:06, 25/2/2008, in reply to message #106513 |
Lowering the tone since the dawn of time
Posts: 1600
|
Except that I can't seem to throw stones very well, because an optimisation I just tried ended up making things slower. Okaaaaay...
And when I removed the optimisation things got even slower still Huh?
Are you certain there was nothing running in the background hogging any CPU time?
Or did you perhaps make another change at the same time as that optimisation, with that change slowing down the speed up, and slowing it down even more without it again? |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #106524, posted by Phlamethrower at 11:50, 25/2/2008, in reply to message #106519 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Are you certain there was nothing running in the background hogging any CPU time? Yes.
Or did you perhaps make another change at the same time as that optimisation, with that change slowing down the speed up, and slowing it down even more without it again? I didn't make a note of any other changes, so I don't think I did - but it's also possible I forgot to write it down.
It's possible that the profiling I did before I made the slow optimisation got some freak faster-than-normal results, which would make the optimisation look slower in comparison. But since I'm using the same random number seed each time, the game should run exactly the same each time as long as I don't change the game logic or data.
Despite my best efforts over the weekend the RiscPC is still slightly shy of the mark (40.7msec/frame IIRC). I've also realised that I've been running it without any music playing, so at some point I'm going to have to try it with music and discover how much time MP3 decoding takes.
I'm now running quite short on ideas for optimisation, and my changes have been resulting in speed increases in the 0.5%-2% range for the past couple of days. But last night I did have an idea for how to optimise the map rendering to make better use of the d-cache, which is to draw tiles which have the same texture all at once so that new textures don't have to be loaded into the d-cache all the time. I'm not sure of the exact numbers, but I'd hope that this has the potential for a 10-20% speed boost on the RiscPC - assuming the code to calculate the rendering order doesn't take longer to run than the stuff it's meant to be replacing. |
|
[ Log in to reply ] |
|
Adrian Lees |
Message #106525, posted by adrianl at 14:16, 25/2/2008, in reply to message #106513 |
Member
Posts: 1637
|
And when I removed the optimisation things got even slower still, so now I've got no idea whether I didn't revert the code properly or I've changed something else without making a note of it It's probably just wear and tear on the processor. It's a little known fact that the more cycles a CPU executes, the slower it becomes. This is the explanation for the fact that Windows boxes become slower over time, it's nothing to do with the software being crap. |
|
[ Log in to reply ] |
|
VinceH |
Message #106526, posted by VincceH at 15:23, 25/2/2008, in reply to message #106525 |
Lowering the tone since the dawn of time
Posts: 1600
|
It's probably just wear and tear on the processor. It's a little known fact that the more cycles a CPU executes, the slower it becomes. This is the explanation for the fact that Windows boxes become slower over time, it's nothing to do with the software being crap. Actually, I've already suggested an explanation for that phenomenon some time ago on usenet.
<searches>
Hmmm
The original very short comment is here.
However, somewhere around that time I wrote a slightly longer item, which involved older processors slowing down so much that they eventually went into reverse and became the first time machines. Or something.
Can't find that one. I'd quite like to, though, because it's been in the back of my mind for a while - it could be useful in my rarely looked at attempt at a novel (comedy science fiction - 's favourite subject: time travel).
Better to find what I've already written and flesh it out/adapt it, than rewrite it all over again. (Which is why I'd also like to find a copy of the piece I wrote about slow internet connections being caused by a band of radiation - giving the course the band follows as if it were driving around sight seeing, and ending with a daft remark about everything moving slower in water.) |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #106527, posted by Phlamethrower at 21:39, 25/2/2008, in reply to message #106524 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Despite my best efforts over the weekend the RiscPC is still slightly shy of the mark (40.7msec/frame IIRC). I've also realised that I've been running it without any music playing, so at some point I'm going to have to try it with music and discover how much time MP3 decoding takes. Decoding a 128kbps MP3 seems to eat around 11msec out of every 40 on the RiscPC. So basically if I want MP3 playback with the game running at 25fps, I'm going to have to do the seemingly impossible task of getting the game to run at 29msec/frame (i.e. 1.4 times faster than it is now). Wah!
Luckily for the Iyonix it isn't nearly as bad - taking about 3.5msec out of every 40, and not being a threat at all to the game running at 25fps.
But last night I did have an idea for how to optimise the map rendering to make better use of the d-cache, which is to draw tiles which have the same texture all at once so that new textures don't have to be loaded into the d-cache all the time. I'm not sure of the exact numbers, but I'd hope that this has the potential for a 10-20% speed boost on the RiscPC - assuming the code to calculate the rendering order doesn't take longer to run than the stuff it's meant to be replacing. I've now had a closer look at the possibilities for this optimisation. After hacking the tile plotters to only load the same pixel of each tile, I can see that I can stand to gain a 8.5% speed increase on the RiscPC if I were to magically get rid of the time spent loading tiles into the cache. So this isn't exactly in the 10-20% range, and since my actual gains will be somewhat lower than that value, I don't think this optimisation will be the miracle cure I was hoping for - especially if I'm still after MP3 playback.
Oh well - when I first started I said I suspected that MP3 playback could be too slow, so I guess it's not really an issue if there isn't enough horsepower to support it on a regular StrongARM RiscPC. Unless people want me to try making a version of the game that runs in a 256 colour mode instead of 16bpp - that has the potential to save the 11msec needed to get the game running at 25fps with MP3 music (or in higher resolutions without MP3 music). But it seems a bit of a cop out, and might be a bit fiddly to add support for. |
|
[ Log in to reply ] |
|
VinceH |
Message #106528, posted by VincceH at 23:22, 25/2/2008, in reply to message #106527 |
Lowering the tone since the dawn of time
Posts: 1600
|
Oh well - when I first started I said I suspected that MP3 playback could be too slow, so I guess it's not really an issue if there isn't enough horsepower to support it on a regular StrongARM RiscPC. Unless people want me to try making a version of the game that runs in a 256 colour mode instead of 16bpp - that has the potential to save the 11msec needed to get the game running at 25fps with MP3 music (or in higher resolutions without MP3 music). But it seems a bit of a cop out, and might be a bit fiddly to add support for. Perhaps a much simpler solution would be to use lower quality MP3s (which might still be too processor intensive) or a different - simpler - music format on RPCs? |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #106529, posted by Phlamethrower at 01:20, 26/2/2008, in reply to message #106528 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Perhaps a much simpler solution would be to use lower quality MP3s (which might still be too processor intensive) or a different - simpler - music format on RPCs? Possibly. I'll probably have a play around with different encoding options, and maybe try AC3/OggVorbis to see how they fare (specifically Vorbis since it's allegedly the best quality at low bitrates) |
|
[ Log in to reply ] |
|
Adrian Lees |
Message #106531, posted by adrianl at 05:56, 26/2/2008, in reply to message #106529 |
Member
Posts: 1637
|
Possibly. I'll probably have a play around with different encoding options, and maybe try AC3/OggVorbis to see how they fare (specifically Vorbis since it's allegedly the best quality at low bitrates) Er, surely your problem is the computational load of decoding the audio, not of merely shuffling the bytes... and lower bit rates are attained at the expense of greater computation generally. I'd have thought you should be heading in the other direction - (AD)PCM - to increase performance.
Perhaps another pair of eyes would help on the optimisation front... I'm willing to take a look at the source if you'd like and make any suggestions that occur. |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #106532, posted by Phlamethrower at 08:14, 26/2/2008, in reply to message #106531 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
and lower bit rates are attained at the expense of greater computation generally. I had a feeling you'd say that
I'd have thought you should be heading in the other direction - (AD)PCM - to increase performance. Yeah, I should probably try that as well. Except that I'm not sure if there are any (AD)PCM players available that support SharedSound, so I might have to write my own if I decide to go down that route.
Perhaps another pair of eyes would help on the optimisation front... I'm willing to take a look at the source if you'd like and make any suggestions that occur. Sure - although it will probably take me a few days to get the code ready for release, as there's a fair amount of documentation that I want/need to update. |
|
[ Log in to reply ] |
|
VinceH |
Message #106533, posted by VincceH at 08:26, 26/2/2008, in reply to message #106531 |
Lowering the tone since the dawn of time
Posts: 1600
|
Perhaps another pair of eyes would help on the optimisation front... I'm willing to take a look at the source if you'd like and make any suggestions that occur. I'd make a similar offer, but I'm really, really crap at reading other people's source code. |
|
[ Log in to reply ] |
|
Michael Drake |
Message #106539, posted by tlsa at 12:32, 26/2/2008, in reply to message #106532 |
Posts: 1097
|
What about the FLAC player, with DiskSample?
http://users.skynet.be/Andre.Timmermans/digitalcd/modules/disksample.htm |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #106540, posted by Phlamethrower at 12:47, 26/2/2008, in reply to message #106539 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Yeah, that would probably work.
I didn't suggest DiskSample as a FLAC/ADPCM/etc. player because I was looking at the docs for the version that I have installed instead of the one on the website
[Edited by Phlamethrower at 12:52, 26/2/2008] |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #106597, posted by Phlamethrower at 01:53, 29/2/2008, in reply to message #106540 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
...and the new version of DeathDawn is now released, along with a few other things. Hurrah!
DeathDawn WOUM (My little helpers will be wanting those two) New version of Pale (mainly because WOUM is now GPL'd, and Pale relies upon WOUM), much-improved version of fontinator, and spr2tiles, a handy little program for splitting large sprites into smaller tiles.
Major DeathDawn changes since last release:
* Day/night cycle * Much improved map generation, with hills, (rather unpredictable) mission buildings, and train tracks, and few tile painting/road surface bugs * Fixed game hanging on loading screen if CDFS isn't found/returns errors * Ped & car spawn & AI code * New damage system * New car physics with support for big tasty things like tanks and trains * A good number of sound effects (although not all of them are used at the moment) * New fonts * Various optimisations to make things go faster (although the amount of extra stuff added since the last release has resulted in a net slowdown) * Also a few nasty bugs, which are listed in the help file
Notes for Adrian/other little helpers:
You'll be needing the source & binary downloads, along with WOUM. Extract ddsource.zip so the source folder sits inside DeathDawn. Then it's probably a good idea to have a look at the source readme, since that will explain how to build the game and how to use the automated profiler thing (which will need some tweaks for your hardware setup). But once it's running it should run exactly the same test that it does on my machines.
About debugging: in debug.c there's debug_level, which controls how much stuff is sent to the error log (!DeathDawn.err), as well as what debugging features are available in game. At the moment it's at 0, which will disable pretty much everything. I usually have it at 2, but I don't think there's any particular reason for you to need to change it (especially since it enables some things like the mysterious 'D' key, and masses of on-screen text if you're in a car). But if something breaks, it might be worth turning it on to get a rough idea of what's gone wrong.
Also there's the NO_PROFILING define, which (as it says) will disable profiling of everything except the bare minimum that the log analyser needs to calculate the frame rate.
Also due to the way the profiling code messes around with the stack, I'm fairly certain that it will prevent stack backtraces, so if stuff starts crashing it's probably best to try running without profiling enabled if you can't immediately see what the problem is.
At the moment the only stuff I'm definitely going to look at optimising is trying out the new dcache-optimised tile plotting order, as well as optimising the font code (there's currently a horrible pause when a new font/colour is requested as it caches the 16bpp sprites - so I'll be swapping it to use 8 bit palettised sprites, similar to how the map tiles, peds and objects are now being rendered). So it probably makes sense for you not to look into how to optimise those bits of code.
The game should now be able to detect if it's running on an A9home, and default to a 640x480-ish resolution - so if anyone has an A9home handy it would be useful if they could report whether (a) it detects it and (b) 640x480 is anywhere near the 25fps target
Also I've noticed that when running on my Iyonix the game exhibits flickering, like it's failing to wait for VSync properly, despite the fact that it's calling OS_Byte 19 like it should do. Is this a problem you've seen at all? I'm still using the pre-final release of RISC OS 5.12 that came with the machine, so if you don't see any flickering on your FX5200-whatever then maybe it's about time that I updated.
And if anything in those uploads are broken, I'm now going to bed, so it will have to wait until morning
[Edited by Phlamethrower at 01:57, 29/2/2008]
[Edited by Phlamethrower at 09:51, 29/2/2008] |
|
[ Log in to reply ] |
|
VinceH |
Message #106598, posted by VincceH at 09:24, 29/2/2008, in reply to message #106597 |
Lowering the tone since the dawn of time
Posts: 1600
|
Correct URL for WOUM |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #106599, posted by Phlamethrower at 09:52, 29/2/2008, in reply to message #106598 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Bah!
Thanks!
[edit]
Something useful to put in this post, then:
There's a bug that I forgot to mention in the help file. Sometimes the map generator will fail to place the building that you're meant to start at, so you'll end up spawning underground in the top-left corner of the map. If you walk up and to the left then you should pop up and onto the surface of the ground so you can move around properly. (Jumping may also be required, I'm not sure).
Also if you see a load of train carriages sat around the top left of the map then that's because that's where the train ends up if the generator didn't place the track properly (train spawning is still a bit of a hack).
[Edited by Phlamethrower at 10:32, 29/2/2008] |
|
[ Log in to reply ] |
|
Pages (22): |< <
21
> >|
|