"Look at you, Hacker. A pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you challenge a perfect, immortal machine?" |
TSSHP News archive
ff1-19.mar.16 Apart from all the news about an official remake of the original System Shock 1, as well as the announcement of a System Shock 3 (search the internet for details), there's also some news regarding the state of the documentation - specifically the ss-specs.txt file. The file has become superseded and is now obsolete. Throughout the years, there have been several SS1-related fan projects. For about a year now, there has been the project Inky Blackness in the works, which has a dedicated subproject to document the data files.
As per today, their subproject
has imported, corrected, and expanded on all the information from TSSHP. Please
refer to that project in the future for up-to-date information. For further information on current projects have a look at the System Shock Modding Community.
ff1-04.feb.08
ff1-17.jan.07
Don't get too excited. All this 'news' entry states is that the work on TSSHP has
stopped - several years ago, but some people might find it informative to have
it written out. jim-21.apr.03 And here's another! TSSHP 0.2.10f is mainly a bugfix release, though there have been some behind-the-scenes changes to the exit mechanism. You can now no longer see objects through doors in System Shock. (well, except in certain very rare conditions, but that's a problem with object sorting rather than with doors per se). Keybindings are not lost on exit if there is a problem with the configuration. And music now follows levels properly. We've also cleaned up a bunch of memory leaks on shutdown. Get it while it's hot ... jim-13.apr.03 The wheels of TSSHP grind slow, but they grind exceeding small. TSSHP 0.2.10e is here at last! Get it from Sourceforge at the project page. Improvements too numerous to mention (we haven't been entirely idle these last months), but see the change log. (Hint: PageUp and PageDown are your friend)! jim-09.apr.03 No, we are still not dead! (And no, there hasn't been an update in months). This latest hiatus was largely caused by my leaving university (again) and entering what it's probably best to describe as gainful employment ... I've not had regular net access all year, however this has now changed with the advent of ADSL to chez jim. Now if I can just get CVS to talk to SourceForge we might have a chance at an update ...
jim-13.aug.02 I'm more or less keeping up with my task list at the moment. TSSHP 0.2.10d adds Gouraud shading to the OpenGL renderer, mostly, so you'll get lighting in glshack! It looks nice. Dynamic lighting (for Underworld) is still done in software. I've moved over to linear rather than inverse-square lighting, but I'm not sure whether it's actually better ... I've left it as a compile time option just in case. For any 3D hackers out there, TSSHP now uses the quadtrees to generate its list of drawable tiles in the "real world" as well as in cyberspace; when running in OpenGL it doesn't do any of the clipping itself, thus reverting to a painter's algorithm type approach (after all the blood sweat and tears I spent on the clipping, yet). This actually improves the framerate in most cases, but there are a couple of sorting problems with objects still, and some bleed-through on the flight deck (I think one of the textures is actually transparent; no problem in software, which ignores transparencies for wall texs, but OpenGL honours them).
jim-05.aug.02 TSSHP 0.2.10c is here! This improves the OpenGL renderer, more-or-less completing 3D model support (notably flat-shaded faces are present, so the camera "red-eye" is watching you), and adding sprite objects. I've also had another look at sprite positioning and scaling: sizes "look about right" (this is the only justification I have for the scale values used, I have no idea where they actually come from). Critters now have their feet firmly on the ground, and don't jump about as you view them from different angles as the bitmap size changes.
jim-02.aug.02 Oops! That's what happens if you don't test thoroughly. Yesterday's release incorporated a nasty bug which meant it wouldn't run at all on Windows 2K (and probably NT too, come to think of it). It's now fixed, and version 0.2.10b is released. How's that for promptness? jim-01.aug.02 For once, a treat for you Windows users out there. Music! Thanks to Bryan for that, see his note in the README. Sound now uses the SDL_mixer library, so you will need to get a copy of that too. Make sure you have the version appropriate to your SDL. Linux support is in the pipeline.
jim-20.jul.02 However, before going down the pub I also managed to fix a couple of bugs in TSSHP. Today's snapshot puts back animated wall textures, which were accidentally disabled in the last couple of releases, and also attacks the garbled textures bug with 3D object models, which has been lurking in the bug list for way too long. There are still problems with a couple of objects, but at least the textures now line up properly on the CPU nodes. Plus, firefreak found out why transparencies on decals weren't working in OpenGL(yes, it was a boneheaded mistake of mine, how did you guess), so the black backgrounds on all the stains are now gone! Enjoy ... jim-12.jul.02 TSSHP 0.2.10 is here at long last! Those of you who've been following the project will know what this means: I've now hacked together basic OpenGL support for texture mapping. So all levels now display in hardware, if you've got it. This is good.
jim-10.jul.02 Today's snapshot is hopefully the final step on the way to the long-awaited 0.2.10 . Apparently (firefreak discovered) the HUD problems stem from an unfavourable interaction between OpenGL's texturing and pixel plotting features: when texture mapping was enabled (which it has to be for, er, texture mapping) OpenGL was trying to modulate the HUD with either a texture or the main scene (I'm hazy on the details) and things would crawl. The workaround, of course, is to disable texturing while rendering the HUD and reenable it afterwards for the 3D engine. This seems to work, and is incorporated in the snapshot. When that's properly tested we'll have the release proper. jim-09.jul.02 The observant among you might have noticed that we seem to have released verson 0.2.9d without telling anybody. For that you can blame me and my hacker's reluctance to write anything in natural language rather than C ...
ff1-11.jun.02 Years ago we all spent hours trying to solve the puzzles around Citadel - Now we were spending hours on how they actually work.
jim-15.may.02 Today's source snapshot has quadtree support, selectable at compile-time over the BSPs for cyberspace. Since the System Shock and Underworld maps are 64x64 grids of square tiles, a quadtree is ideally suited for sorting them (compare the code in bsp.c with that in quadtree.c if you're of such a mind). The next incarnation of the TSSHP rendering engine will probably sort by quadtree and clip by portal.
jim-08.may.02 Back to sensible headlines, or at least more sensible than before. TSSHP 0.2.9c is out. Maybe it'll work with Win2K NOW ...? I've fixed another couple of bugs, and fixed the clipping also on sprites and 3D models so they don't appear through walls any more. Doors is another matter though, blerh. They're sort of intermediate between objects and surfaces at the moment, so aren't correctly sorted. Will fix at some point.
jim-25.apr.02 Honest, I didn't screw up the news headlines for the last n releases just for the sake of that one dreadful pun. Well, not entirely, anyway. Lots of bugfixes this release: go fetch 0.2.9b now, particularly if you were running 0.2.9a on Windows 2000 and wondered why it kept crashing. (Floating-point exceptions in the lightmapper. I could tell you weren't really interested).
jim-11.apr.02 Version 0.2.9a is here! I said it wouldn't be long, and for once was telling the truth. Bryan has added support for the FMOD sound engine, which is much more powerful and has cooler features than the native SDL or OSS drivers. Check the source and sound Makefiles for compile options; it should be easy enough to get going. In future FMOD will be the main sound library used by TSSHP, though we will continue to support SDL sound as a legacy system.
jim-03.apr.02 Now that version 0.2.9 is out of the way, work can begin on 0.2.10. In fact it already has: firefreak has made a big update to the HUD/MFD, which very much improves the speed and adds "clean" project files for Visual C++ 6.0. There's also now accelerated support for the HUD via OpenGL! Source snapshot is available from the downloads page, as usual. Windows types will have to wait till 0.2.9a for the executable, which shouldn't be that long. Go firefreak!
jim-29.mar.02 To paraphrase Avon, rumours of our death have been slightly exaggerated. However, I'm now going to add "sorry it's late" to my list of things I'm not going to say any more, because you can practically take it as read. Anyway, we're all so busy with other commitments at the moment that "when it's ready" is the only release strategy that makes any sense.
jim-21.dec.01 Just time before Christmas to release interim 0.2.8d. It's not all that precious, to be honest, but does add the cyberdog and the cyber cortex reaver (the fragmented red faces). They look a little weird because the fragments aren't yet properly depth sorted, but basically they are there. Colours for most cyber objects (not softs or critters though) are correct modulo a bit of shading, as I have finally found where the colour schemes are stored (right under my nose as usual). They will be handled properly in due course.
jim-12.dec.01 Interim release 0.2.8c goes up today, and adds depth cueing for cyberspace, so that the geometry fades into the distance somewhat. Oh, and it also adds ... ... accelerated 3D support via OpenGL. Well, to an extent. The only thing that works with acceleration is the basic wireframe for cyberspace. In particular, the texture-mapped realspace engine will give a blank display. But it's a start. Those of you who get the executable release, just run glshack.exe instead of shack.exe. If you're compiling from source you'll have to fiddle in the Makefile (accel/Makefile.linux) and in src/defines.h . It's a little bit rough and ready at the moment, I'm afraid. I'm aiming to bring OpenGL support gradually up to speed over the next few versions, with full acceleration early in 0.3 .
jim-04.dec.01 A very brief note today. Interim release 0.2.8b is up, adding colour to the cyberspace wireframe. Next on the c/space list is depth cueing. jim-30.nov.01 All those of you who thought that System Shock was a fantastic game with the one exception of cyberspace, which you found illogical, blocky and hard to navigate, will hate this one. Yes, TSSHP now has basic architecture support for the cyberspace levels. They are drawn wire-framed, as is proper, but not yet coloured in or shaded. Ordinary 3D models are rendered but again, not correctly coloured and shaded, and fragmented models (e.g. the cyberdog) are absent altogether.
jim-27.nov.01 Work on cyberspace continues. The BSP tree is now compiled, as far as I can tell correctly, and is used for cyberspace instead of the portal system as for the "real" world. Walls in cyberspace are now not textured, or indeed drawn at all, so it doesn't look terribly exciting. The snapshots (source and Windows exe both) are up on the downloads page as usual. You should get the latest snapshot even if you aren't interested in cyberspace because it also fixes a nasty bug which was causing shack to crash occasionally. jim-21.nov.01 Nothing too momentous to report today, except that I have made a start on a BSP tree-based engine for cyberspace levels (why fight it, I knew I'd end up implementing one sooner or later). The current snapshot represents the state of play; its practical effect is to print out reams of diagnostics when run on a cyberspace level, but hey, it's progress.
all-09.nov.01 Yes, it's 0.2.8! You know where to go by now, I hope. A lot of work has been going on on all fronts this last month, so I'll let each of the team describe it in his own words. firefreak: Two things from my side: Reconfigurable keys and a HUD that features the mouse! See readme on further details on the key configuration - the system is very powerful! Also the mouse (under SDL or windows) is being used - the default configuration TSSHP features two mouse modes: MouseLook and MouseCursor (similar like SS2). Hit TAB to switch between the modes (the first time you'll have to hit it twice - a minor bug ;) .
Bryan: 0.2.8 marks many new features in TSSHP, not the least is my first news post :) SDL audio support as been added into the code (it is still undergoing testing and so may sound a little strange....) just read the README file in the sound subdirectory for usage info. jim: As for me, the new clipping and lighting systems are in place, although there are still a few bugs. The Underworld fans among you get a treat: multiple light sources! The lighting engine now supports multiple static lights as well as the Avatar lantern, so I've made campfires into light sources just as a taster. Check it out. jim-02.oct.01 Just when you were least expecting it, along comes TSSHP 0.2.7! What do you mean, about bloody time? Oh all right then.
jim-28-sep.01 I've started on 3D doors for the Underworlds. Currently only the doorframes are drawn, textured to match their tiles as is proper, but not shaded to blend in with their environment. (See the hackers' forum for info about that). They look a little weird because they aren't yet scaled according to the roof height; this also means that the textures don't align properly between the top and sides. That's next on the agenda. There's a source snapshot, and I also managed to debug sufficiently to get a working Windows zip. Happy hacking! jim-26-sep.01 A minor update today. Underworld gravestones are now correctly textured (though the sides are still pink), as are most bridges. As with System Shock, Underworld bridges may be textured as ordinary floors, and such bridges are not yet properly textured. There is a source snapshot available.
jim-24-sep.01 It's been a while, hasn't it? The usual excuse I'm afraid: we're all far too busy with Real Work. That's not to say that nothing at all has been going on on the TSSHP front; firefreak has redone the control system (that'll be really cute) and hacked about with the MFD, as well as adding partial transparencies for the invisible mutants in System Shock. Bryan has added sound support ... the only driver currently supported is the "silence" driver, but don't despair, FMOD support is almost there, and OSS, SDL etc. is in the pipeline. On the other hand, we need to have things to make sounds first ...
ff1-15.aug.01 Some news from the 2 dimensional side: First is the new MFD
System. What does it do? Imagine the days when you played
original System Shock - with time you got used to the settings
you had with your MFD (eg: Map to the left, Weapons centered
and Target list to the right). When something happened that
changed the content (email, sensaround, ...) it quite often
was the case that your previous settings weren't restored.
Our new MFD system keeps track of what you had - and even
where you like events to show up: You now can define what
should be displayed if an event happens (eg: Weapon empty).
See README and mfd.cfg for further details.
jim-07.aug.01 I added the orientation-based correction factor to object positions as I mentioned, to force decals flush with their walls. And what do you know, it seems to work, at least as far as I can tell by eye. I have checked the positions of bridges and they are all precisely centred in their tiles, after correction, whatever their heading. Which is as it should be. So until I get definite proof of bogisity I'm leaving the correction in for all objects. In fact I'm wondering whether to apply the equivalent correction for System Shock objects as well, since they exhibit the same problem to a lesser degree (having 256 possible values rather than 8 for in-tile positioning). Get the current snapshot and check it out.
jim-06.aug.01 In some cases, the writing floats in midair near the wall, but that's a bug with object positioning. Yes, the current snapshot adds decal support for Underworld levels (only tested on the first game, mind you), so not only do you get writing but also switches, levers and chains, and the Special TMAP Object as well. Yes, stairways show up now. You know the drill.
jim-27.jul.01 Guess what? New version! It's been 2 and a half months in the making, but TSSHP is now up to version 0.2.6 . This adds crates, bridges, lighting for objects, surveillance and other screens, and banishes the "pink C" placeholder bitmap from 3D models, plus a whole slew of cool MFD stuff from firefreak. Check it out: Source Windows executable.
jim-26.jul.01 Just a brief note as it is fast approaching the time for me to go to the pub :) Today's snapshot adds lightmapping and Gouraud shading to decals and doors, so System Shock levels no longer have any anomalous full-bright bits in darkened areas. Now I just need to enable dynamic dark suckers for Underworld and we have 0.2.6! Barring major disasters, that should happen some time next week. Fingers crossed eh? jim-24.jul.01 A new snapshot! This is from my pre-release branch of 0.2.6 and adds the remaining special-effect screens, viz textual displays, and also those code screens in the level 6 lobby that randomly switch between ordinary displays and 3-digit codes. That pretty much wraps it up for screens, so one TODO to do!
jim-02.jul.01 Just in case you thought that TODO list would remain inviolate until the end of time (I know I did on occasion) I've now implemented proper bitmap fetch functions for 3D models with variable textures.
This means (hopefully) that the "pink C" placeholder texture is banished forever from the screen.
The existing bitmap fetch hook for screens worked fine for pedestals / big TVs etc ... once I'd cleaned up and given screens and decals their own map_surface.
Check the latest snapshot.
jim-25.jun.01 I've got crates and bridges figured out and code to render them. Note that you can't yet walk on bridges ... the physics system is not in place and you will fall through them. This includes "false floors" such as the area north of the central hub on the medical level and the crossover tunnels on Research and Engineering. Snapshot, you know the drill. jim-19.jun.01 I know, I know, I've been busy with real work.
This isn't so much an update as a note to let you know I haven't died or given up or anything.
There is a new source snapshot with SHODAN screens, better directionality for orientable sprites and the beginnings of some code to handle crates and bridges.
Nothing particularly to write home about, but I am attacking that TODO list, honest.
ff1-14.may.01 The HUD and MFD get a nifty update: the map. Walls, doors, critters and security devices - all within your view. On the not so brighter side: some objects aren't mapped correctly. Currently you might end up shooting at a microscope because according to the map it's a cam ;) Also some walls are missing because there are none. How this works? By a trick of the level builder - but we're working on it (the problem - not the level builder ;) jim-13-may.01 Just a brief note to say that I've been working on screens this weekend, and have put up some new screenshots to show off remote surveillance screens. These render into a bitmap on the fly and are then mapped onto the screen surface. They look quite cool, particularly that one on level 6 where you can see the screens within the screen as they cycle through their animations. I've also implemented screens which display nothing but static, but not yet those where the static fades in and out of SHODAN's face. They're next. Get the latest source from the downloads page as usual. jim-09-may.01 Another month where I've had little time for hacking, I'm afraid.
I've basically been working my way through the bug list on SourceForge prior to the new release.
They're now all clobbered (at least the ones which have made it into the tracking database) so it is with great pleasure that I announce TSSHP 0.2.5.
This includes static and dynamic lighting (it isn't applied to objects and wall decals yet, so looks a little odd).
I've also added Underworld font support though it isn't yet used by default.
0.2.5 also fixes several bugs of varying degrees of deadliness.
jim-20.apr.01 Those of you who have looked at the screenshots page recently will have noticed something.
Darkness!
I hadn't put up the announcement until now because it took a little while to get the code into a compilable state following some fairly heavy development by both firefreak and myself.
However, it now seems to be working, so I've made the code available on the downloads page.
And in a dramatic break with tradition, there's a preview Windows release as well.
Enjoy!
ff1-11.apr.01 A big 'Hi to all' in my very first news post.
09-Apr-2001 Not much work got done this weekend, for reasons I shan't mention on a family website, but I did manage to fix that bug that caused textures with sharp corners to be blanked out some of the time. I'm starting to like the bug tracking database on SourceForge ... somewhat to my surprise (cynic that I am) seeing all that red every time I log on provides a real incentive to fix stuff, especially as I know that everybody else can see it too. Never underestimate the productivity value of embarassment. Anyway, there's a new snapshot of the current code including the fix. Source only; as usual the executable download will be available come 0.2.5. Or you can get it direct from the CVS repository on SourceForge. 04-Apr-2001 Version 0.2.4 adds transparent textures (force doors and bridges) MFD support (not very much in the MFDs yet, though) and 32 bit colour support, all due to firefreak (that's him on the right). There's also a Windows executable release as usual. Many thanks to firefreak for his excellent work, and also congratulations to him on his new job. Best of luck ... 30-Mar-2001 Version 0.2.3 is here!
This is a bugfix release; I've sorted out the bad texture mapping on 3D object models and also fixed the divides-by-zero which were causing constant crashing under Windows and wacky texture effects under Linux.
27-Mar-2001 Those of you who've visited this site in the last few days might have noticed the SourceForge logo above.
Yes, TSSHP is now registered with SourceForge; you can access the project details at http://sourceforge.net/projects/tsshp/.
Well, it was that or implement my own secure access / public CVS / bug tracking database / etc.
Releases and snapshots will still be made available on this site; releases will be uploaded to SourceForge as they come out, but snapshots won't; you can always access the CVS database, when it's ready.
20-Mar-2001 The TSSHP team has abruptly increased in size!
Firefreak is on board, and is currently beavering away at the HUD, as well as finding lots of nice bugs for me ;-)
He's also crafted some very cute transparency code, which can be used for snazzy MFD backgrounds, as well as giving us force doors and force bridges pretty much straight off.
Welcome aboard o freaky one!
13-Mar-2001 Yup, you wait ages for an update, and then two come along at once.
The latest snapshot adds orientable bitmap support for critters and corpses ... those of you who were feeling lonely wandering around Citadel Station, it's not so deserted now.
(Although, of course, they don't do much yet, just stand there).
Interesting to note that corpses and skeletons have the full 8 directional bitmaps stored in the resources but the original Shock doesn't use them, treating them as ordinary billboarded sprites.
I'm not doing the directions properly yet, just subtracting the angles, so they will get wronger as you move further away.
12-Mar-2001 Many apologies to those of you to whom I promised a new version last week; we were due to go live with a BSCN update and all sorts of things were going wrong at the last minute. Anyway, TSSHP 0.2.1 is now available; this adds partial Ultima Underworld object support! (Cheers, hurrah). When I say "partial" I mean that all objects are drawn as sprites, including 3D models, decals and things that would normally be invisible e.g. traps. It does make UW levels look quite interesting from a hacker's perspective, though, to see all the traps etc. Oh, and there's a Windows release as well, though you'll still need to provide your own SDL DLL. 01-Mar-2001 Thanks to Saam once more for the mention at TTLG, I'm feeling glad of my 10MBit JANET connection today. I don't have much to report, but today's source snapshot has some improvement in the texture mapping for 3D objects. (That surgery machine looks a lot better for a start). There are still big problems with non-orthogonal u and v vectors, though, which shouldn't be happening. I haven't had a chance to compile a new Windows release yet either, so you'll have to stick with the existing one for now. Or make your own. 26-Feb-2001 Went shopping at the weekend and bought the Hardline album, and then settled in on Sunday for an afternoon's hard-rock-fuelled hacking. Have you any idea how hard it is to play air guitar and code at the same time? Anyway ...
TSSHP has now reached version 0.2.0! No, this doesn't mean that we are a fifth of the way towards a working playable game; there are a lot of numbers left.
I've added support for configuration files, which has in turn enabled me to provide an executable download for Windows. Yes, you read that right.
You will still need to download the SDL DLL v1.1 and put it where Windows can find it (either in the TSSHP directory or your Windows System directory); I'm not distributing the SDL along with TSSHP yet because I need to do a couple of extra things to comply with the GPL.
You'll also need to edit cyb.cfg to include the paths to your System Shock CD and HD installation and/or your Underworld installation.
20-Feb-2001 Right, for all you Microsoft weenies, the latest snapshot compiles and runs under Windows!
After a fashion, that is.
I've finally got round to folding Damian's SDL interface back into the main code, though not yet the autoconf stuff. Sorry Damian!
Those of you who want to try compiling for Windows will need the Borland free command-line compiler (or the commercial C++Builder, of course) and a Windows release of the SDL.
You need to edit Makefile.borland to point to both of these, and src/resource.h to point at your Shock/Underworld directories.
Then just `make -fMakefile.borland'.
There's no binary version as yet ... until I get support for configuration files into it there wouldn't be much point unless your CD and games directories were the same as mine. Soon.
07-Feb-2001 Another long hiatus, and not really that much to report.
I've put up a new snapshot with some minor improvements.
Notable amongst these is that I move to a system of configurable hook functions for fetching object bitmaps.
This cleans up some of the mess in object rendering and removes the necessity for fixture.c to maintain its own separate bitmap cache, which frankly was a bit of a crap way to be going about it.
The real power of this technique comes when we start supporting Underworld objects, of which I now have the format details thanks to Alistair Brown and his rather good Underworld II editor.
We can do the object mapping at load time without buggering about with the rendering code and still have dynamic loading of object bitmaps, which is a Good ThingTM.
16-Jan-2001 No, not the sort of virus that turns your computer into a malevolent AI bent on taking over the world through genetic manipulations (not that I don't sometimes wonder what it does when I'm not around), that old-fashioned, familiar, messy virus known as the common cold. Why do I always catch cold at the weekend, never during the middle of the week so I can have time off? Who knows. Anyway, there's a new snapshot of TSSHP available; this adds texture mapping for 3D model objects but it doesn't work properly yet. Some of them look quite weird. There's also a naïve attempt at depth-sorting for objects within a tile. It doesn't work correctly in all cases, but fixes a couple of problems. Oh and I've made a start on an unofficial specs document for Ultima Underworld, though it doesn't amount to much yet. 11-Jan-2001 Those of you who follow the System Shock discussions on TTLG will remember Glen Sawyer's sterling work on programmatically importing System Shock levels into System Shock II using Tels' CoW project (automatic generation of Thief levels) and ShockED.
Circumstances have left Glen without a working website at the moment, so he's passed the stuff on to me and I'm hosting it for the time being. Get it at Glen's Pile O'System Shock Junk, along with some stuff to extract textures and sounds.
I'm thinking of having a go at incorporating it into TSSHP proper, but for now I've just dumped Glen's original page onto madeira.
It shouldn't be too hard, with some of the new stuff from TSSHP, to hack it to e.g. get Underworld levels into Thief. Many thanks to Glen for lending me his stuff.
03-Jan-2001 Merry Christmas all, and I hope you had a good one. (I've taken the silly Santa hat off SHODAN, I'm not sure she appreciated it).
20-Dec-2000 Damian has sent me a new version of his SDL port; this one is based on my snapshot dated December 15, and so will have sprites. I haven't tested it myself yet, so if you have problems getting it to run you should mail Damian. General comments, abuse etc. about the TSSHP engine should go to me as usual. 15-Dec-2000 I've had a hack at adding sprite-based objects to the TSSHP engine. You can get the first draft in the usual place. Some (all?) sprites are mis-positioned; there's clearly a field in the object properties I haven't found yet. Scaling isn't quite right; objects seem to change size as you turn around. This might just be an illusion due to field-of-view, I'll need to do some more tests. Objects aren't sorted properly (or indeed at all) by Z-order. Apart from that, it looks OK - see the new screenshots. 14-Dec-2000 Today's snapshot slackens the bounding-box calculations for portals to get rid of the annoying black lines on the display, and adds decals and doors back into System Shock levels. I've also moved the texture extraction stuff into the main program source; use the -extract and -extract-sub options to specify chunk and subchunk to extract. Don't try to compile textex stand-alone, it won't work. 13-Dec-2000Yes, you got it, we've up to version 0.1.4!
The new geometry is in place and is working, though it isn't yet quite bug free, and there's still room for improvement particularly in the optimisation department.
12-Dec-2000 The new geometry representation seems to work OK, modulo a texture mapping bug for triangular floor/ceiling surfaces.
The engine has now been adapted to use it, so I should be able to get rid of a lot of the messy rendering code that was cluttering up the old versions.
Get it at the usual place.
I haven't added objects back into the renderer yet though, so you won't see doors or wall textures.
That's pretty easy to do in the first instance, though I shall probably convert oriented-bitmap objects to map surfaces so that they can be drawn in one go with the main architecture.
11-Dec-2000 I managed to do a little bit on TSSHP in between hangovers this weekend (hey, I'm trying to have a life too). The new geometry representation is now complete; floors and ceilings are added and all internal surfaces are properly texture-mapped. The only thing it doesn't do is actually use the new geometry in the renderer. However, that shouldn't be difficult; it's just a case of backface cull, transform, clip, queue texture, recurse. (Yes I know I ought to clip before transforming, this is work in progress, remember). I've updated the current snapshot with today's code. 07-Dec-2000 Phew! The level geometry converter turns out to be trickier than I thought.
I've got all the vertices and wall surfaces done, which is the difficult bit as it has to work out where the aperture between two tiles is for all possible intersection cases.
It seems to work. Next floors and ceilings, which should be straightforward enough, then texture-mapping information, and then we can see about getting the renderer to use it ...
./configure should be called with --enable-sdl or --enable-x11, and it will build the appropriate `libgui.a', which will be linked into shack. There's might be a bunch of broken links in the tarball, but they're all files deemed ``necessary' by automake, and can be ignored. Run ./bootstrap.sh if you want to regenerate the auto* stuff.Many thanks to Damian for his contributions. 05-Dec-2000 I ATEN'T DEAD. I'm just ... er ... resting.
(For values of "resting" including writing telemedicine software for EEG and setting up secure web sites, that is).
Right now I'm working on some rather hairy code to convert the level geometry from System Shock's own archive format to a form more convenient for the renderer (I hope).
You can get the current source here, on the off chance that you're interested.
It doesn't do anything much different from the previous, but you can get it to give you a list of vertices if you poke about in the right part of map.c .
31-Oct-2000 Hallowe'en release! (well I had to, really). tsshp-0.1.3 is a hackers' release, with some code rearranged to get OS-specific stuff squirrelled away in its own directory. Hopefully this will make porting easier, as there's been some interest in porting to Windows. Non-hackers probably won't be too interested in this one. 24-Oct-2000 OK, it's been a month in the making, but tsshp-0.1.2 is out now. (Before you get too excited, though, the long delay wasn't so much hugely great things in the making as because I didn't have much time for hacking). The renderer is improved, the code is nicer, it's faster and some bugs are fixed (and some bugs are introduced, but then isn't that always the way?) I've also posted some more screen shots with the latest version. And as if that wasn't enough, you can marvel (laugh, anyways) at the current bugs. Happy hacking! 19-Oct-2000 Wow! Fame! Many thanks to Saam of TTLG for mentioning me on the front page. My hit rate has gone up sharply today, I tell you. Is this by way of being a virtual kick up the butt as I haven't posted an update for a month? 8-) Speaking of which, I've got a rewrite of the texture mapper but it is still rather buggy. I'm out tonight and Friday so you won't get an update this week, but I'll have a hack at debugging it this weekend. Enjoy! 10-Oct-2000 Just a note to let you know I haven't forgotten about the entire thing although I haven't posted any updates lately. My Copious Free Time is anything but right now, but I'm working slowly on a(nother) big rewrite of the texture mapping code. After that I want to revamp the internal map geometry representation as it's a bit of a mess right now. So not many cosmetic changes going on for a while. Oh, and I fixed the bitmap bug with hospital doors but forgot to post an update, apologies for that. With a bit of luck there'll be a new version some time this week. 18-Sep-2000 An almost-productive weekend, that. tsshp-0.1.1 is out, adding doors and the rest of the wall decorations. There are a few problems; the one you'll notice first is that hospital doors aren't loaded properly. I think this is a bitmap bug. Object bitmaps are calculated to sub-pixel accuracy (however, walls aren't yet, so doors appear offset slightly) so they don't jump around as you move, but there's a small amount of shimmer at the bottoms of things due to floating-point inaccuracies. Doors and decorations don't block the 3D search, and so slow things down considerably up close as the scene behind is still drawn. Oh, and while I'm slagging off the project, I'm not sure that font scaling is correct in all cases. 13-Sep-2000 Long time no update, I know; I've been busy again. However, TSSHP has reached version 0.1.0! I've finally figured out how objects map to their associated bitmaps in the main sprite resource, and we now have most wall decorations and switches. It makes a big difference to the station look. Those interested should check it out. However, clipping and texture-mapping of objects is still rather buggy. I hope to have that sorted out soon. 29-Aug-2000 I finally finished Thief Gold, it's been a long weekend and my PhD supervisor is away. You guessed what that means ... tsshp-0.0.pre5 is up. I've improved the renderer so it hates open spaces rather less now. Still very slow though. Objects are on the way; they're loaded up and cross-referenced with the map but not actually drawn yet. 17-Aug-2000 OK, I found a floopy which worked this time. tsshp-0.0.pre4 is now up for download. You should probably get this one as it mostly fixes the annoying auto-repeat bug (only if you ctrl-C out of it from the console, though, bloody X). There are also some new clipping routines in clip.c, though they're not actually used as yet, and some more command-line options, see option.c for details. In related news, I've finally got round to putting up some new screen shots. 16-Aug-2000 Argh. A bit of PhD burnout I fear, I'm getting no Real Work done this week, and yes I still have a deadline to meet. I was going to bring in a mini-update, but the floopy was knackered. I've made a bit of progress on the 3D clipping stuff but haven't incorporated it into the engine yet. The 3D model format in obj3d.res is slowly giving up its secrets to me ... I've added what I've so far figured out to the unofficial specs. 14-Aug-2000 This week's excuse: bolshie TAPI (modem) code, 4 file formats sat on my desk waiting to be incorporated, still no timing results and Thief Gold. (how the hell do you get into the shrine on the Haunted Cathedral level anyway?) I have managed to get a couple of 3d clipping routines for the renderer update, though. Oh and I've put up a few musings about the new engine. It's very incomplete right now. 03-Aug-2000 You know I said I'd have had time to do some hacking by now? I lied.
I need to get timing results for digital EEG data transmission over analogue and ISDN lines with varying levels of compression in the next week and a half.
I've passed one deadline already and the code is still very flaky. 19-Jul-2000 Mini-update, pre3 is available, adding a comand-line option parser and fixing a couple of minor bugs. The new 3D algorithm is pretty much fleshed out in my brain now but lacks code. Soon ... 14-Jul-2000 How do you like the new update format then? I had a devil of a time tweaking the colours into something that worked OK with the System Shock palette.
On the plus side, it makes me look like I have rather better complexion than the photo on my home page does. Who needs expensive creams when you have PaintShop Pro? 12-Jul-2000 Having said that, I spent yesterday at home with a nasty cold, so while I didn't feel up to recoding the 3d algorithm I did find out a couple of new things. The table mapping objects to their classes and subclasses (see specs), which I've been seeking for some time in the various resource files, turns out to be hardcoded into the executable (bleah). pre2 was supposed to go up today (minor update to the compression code, simple logplayer and texture extractor) but I cocked up the packaging so it won't be till tomorrow. I have to go now, more later. 08-Jul-2000 Sorry for the long delay between updates. I'm afraid that Real Work has been intruding into my life rather lately. I probably won't have much time spare for hacking for the next couple of weeks, either. However, 2 things:
23-Jun-2000 I was going to put source code up today, but I find that the floopy with the code on it has last night's version, not this morning's. Did I type tar xzf instead of tar czf? I hope not, but I'll have to wait till I get home to see. Either way, release won't be till next week. Which might mean I get a couple of bugs sorted out. 19-Jun-2000 Did some more hacking at the weekend ... I now have proper projective texture mapping. And boy is it slow! 14fps at 320x240 on a K6-2/350 isn't really up to scratch. Mind you, it looks very pretty.
13-Jun-2000 I've put up some screen shots I took last night using my 3d renderer. No objects or lighting and distorted textures, but still ... 12-Jun-2000 Phew! I get more admiration for the guys at Looking Glass every day. They designed some really gorgeous maps which are a complete bitch to render.
Prototype renderer still isn't ready ... it draws all textures but there are still some glitches and it needs optimising. Badly.
I might have to rethink the algorithm. Besides which, you won't see much nastier C this side of Redmond, Washington and I'm embarrassed to show you all 8-)
07-Jun-2000 I think I've finally figured out the heights. The log(2) of the number of height units per tile unit is stored in the first chunk in the map. This means that for really tall levels like the security level the heights still fit in 1 byte at the cost of some vertical resolution. 06-Jun-2000 Well, turns out ceiling heights weren't as complicated as that after all ... they are just measured in units down from the total height. However, some regions of the map still have the wrong heights, and some slopes look too shallow to me. Perhaps there is a region chunk I haven't yet found with base floor/ceiling heights for various sections of the map. Oh, and diagonal-wall tiles are wrong. This is probably a typical bonehead error. 05-Jun-2000 I managed to spend a goodly chunk of Sunday hacking, and I now have a rudimentary 3d engine! Don't get too excited though (as if); when I say rudimentary, I mean it. Not all of the textures are drawn, and those that are drawn distort really terribly because I'm using linear interpolation for the texture mapping (hey, it's a first draft). Plus, I haven't quite figured out the map format fully, as you may read:
|