Halloo again!
I guess I'd like to start of with the little story about what happened when I tried to contact Harkal, the developer of Sylphis. No, nothing here'll be a great long thing stringing on without end; I'll keep it as short as I possibly can, but I do still think you should all hear what happened.
When you (you as in a person/anyone. Not you as in the person reading this you... register Sylphis, you are given access to a special registered users forum in which you must sign up for a user account and wait for the administrator -in this case, Harkal- to activate it. I did all that, figured that it would take a few hours -maybe, at the very most a full day- to become active. But those few hours went by, then that full day and I had still received no reply from Harkal. After a while of only slightly avoiding panic, I noticed that he hadn't even posted anything in the public forums or on in his blog since May (at the moment of writing, it is July... I think). "Abandoned project" was my first thought. But then, why didn't he say something about it and why was he still accepting registrations? Perhaps -no, certainly not- a car wreck? Not any longer alive and able to say anything about it? (although, it is a fantastically amusing picture: this corpse/skeleton sitting up in his casket like a kid under blankets with a comic book, furiously typing away, posting in his blog, adding HDR, particles, and other awesome features to the engine, don't you think?) To be quite honest my reaction, knowing that Harkal's real name and that he was from Greece, I did searches on Google like "harry kalogirou greece death records." Nothing though. Not dead then apparently, then what? Another email to Harkal and still nothing. By this time, I had pretty much given all hope for Sylphis up and I began to search for other engines that could even come close to the quality and ease of use of Sylphis. Didn't find a whole lot I'll just say.
Finally, right when I was about to start learning the other engine that I had chosen, Panda3d, an email appeared in my inbox from Harry Kalogiru. How thrilled I was! He apologized greatly for not getting back to me more quickly, but explained his reason: he had been called to train in his country's army for a month and was not able to leave the base or access the internet. Well, I personally thought he could be excused for that... ;)
He also told me that I hadn't missed anything, not being able to access the private forums because none of the registered users of Sylphis used them at all -they all emailed Harkal directly. In some ways, it is fairly discouraging that Sylphis currently has a such limited community support, but at the same time, being able to contact and get help from the developer directly is quite an unusual thing for a program like Sylphis. Hopefully, with time and more users, the Sylphis community will grow to become a useful source of information and help.
So I'd like to conclude my little story by saying that although my initial attempt to contact Harkal was disappointing, every time since then, he has been prompt and friendly in replying. Each time I have contacted him with a question or problem, he also has been very helpful in providing a solution. (an example of which I'll talk about in my next post.) My opinion so far of Sylphis' support is that it is excellent. Being able to contact the developer directly is an incredible resource and with a community that will surely grow, it can only get better.
Alright, 600 words isn't exactly the shortest all that could have been, but, umm... That was 600 words -you didn't have to read it. ;) On then to what I've discovered in my learning.
Trying to think back to after I first downloaded Sylphis... I installed the exe. That was tough, I mean, exe -they don't get much harder to install than that. So, after much struggles on my part, Sylphis installed perfectly. Sylphis installs two programs in the Start Menu (at least in its current version .92): Sylphis3D and its map editor which is a modified version of Quark. (Alright alright, if you really want to count the Readme.txt and the Uninstaller, go ahead. I'm not going to though, because we all know that Readme's are generally useless and that you would never want to uninstall Sylphis. Right?)
Map editors are all fine, but after just downloading Sylphis and installing it, the map editor is not really what I cared most about seeing. I wanted to see Sylphis in action, 'live and kickin', so that's what I did, started Sylphis. It ran absolutely perfectly -smooth frame rates, nice graphics, audio, and everything it was supposed to do- except for the little fact that nothing had any textures. I remembered though reading somewhere that for copyright reasons, the textures could not be included in the SDK but could be installed from the Sylphis demo. Fine, you got me. The readme was where I'd read it. So it did serve a purpose... ;) So, I downloaded the demo, and to preserve the original files of the SDK, installed it to C:\Sylphis2 instead of C:\Sylphis. As I expected for not installing into the same directory as the SDK, the textures still didn't show up. What a great first task I thought, to install the textures by hand. So, that's what went about doing.
First thing that seemed logical was to take a look at the two install directories. C:\Sylphis had four folders in it and six files.

Going into each one, base\ had a whole mess that I didn't want to look at for the moment. stdlib\ had a bunch of Python source code .py and .pyd (not sure exactly what that is... anyone?) files. system\ had 3 .pyc files (guessing compiled Python because when I opened them in a text editor, it looked like a binary file with a bit of text strung on at the bottom.) The one file in system\ that looked potentially interesting, at least to know where it was, was sylphis.pyc. I'm just guessing, but I think that's where most, if not all, of the the actual engine code of Sylphis is. On that actually, off the the side a bit, it is important to note that the Sylphis SDK does not include the engine's source code. It includes everything you need to make a game and use the engine, but not the specific rendering, physics, importers, sound, etc code. Back to the directories... The final directory, tools\ contained a bit of interesting things, such as a QuArK\ subfolder containing the level editor exe and support files. Also in tools\ was a command prompt exe called mc.exe which turned out to be the map compiler. Finally is a subfolder called Exporters\ full, guess what, exporters for various 3d programs. The six files in the C:\Sylphis directory all seemed pretty self-explanatory, but if you really want me to talk about readme.txt and uninstall.exe, let me know. I'll personally email you about it. ;)
In my search then for where the texture files ought to be, nothing but the base\ folder seemed right. Another look in there and the names of the folders seemed to verify what I'd thought:
I mean, what else could the textures folder be? If Harkal had really wanted to be strange about it, I suppose that textures\ could hold maps, maps\ could hold the ui files, and the 1kb system.cfg could contain a procedural script generate all the textures. But, with textures\ containing several .png and .jpg files, I was going to learn against the Harkal being strange scenario. Textures\ definitely seemed the directory to hold exactly that, textures. (Are you proud of me, I found it! Well, I certainly was proud. :D )
While in the mood to look at file sizes (like I did for the 1kb system.cfg) I noticed base1.col. Now, at the time, when I first installed Sylphis, base1.col had the Windows icon that says, "I don't know what the heck this file is!" I've noticed that people -especially game programmer people- really like to rename .zip files to try to prevent the average gamer from peeking into the files. So, when Windows asked me what program I wanted to use to open .col, I chose 7zip. To my great surprise (well, not really, because I was kind of expecting it) base1.col was in fact a zip file that contained several more folders, some exactly the same as the base\ folder. (Hmm, you're going to laugh, but I just realized the obvious connection there: base\ and base1.col contain very similar folders and seemed to serve almost the same purpose. I told you you'd laugh.) By this time, I had the theory that base\ and base1.col served exactly the same purpose: to hold the files need by a project using Sylphis. To test my theory, I copied all of the directories in base\ into base1.col and deleted the originals, then ran Sylphis. It ran just fine, just like it had before. A new test then, I extracted all of the files from base1.col to base\ and then deleted base1.col and ran Sylphis. That too worked. So then, my theory had been correct; base1.col is a way to hide-ish the game files from a user and servers exactly the same purpose as the base\ directory. I figured that for development and experimenting, leaving all the files in the base\ directory would be better, so I didn't bother recreating base1.col.
Figuring that I had a decent grasp of where files belong -or at least just texture files- I decided to take a loook in C:\Sylphis2, the directory containing the Sylphis demo files, and theoretically the missing textures. It was surprising similar, with the same four directories and exe's as C:\Sylphis. Tools\ did not contain QuArK\ or Exporters\ but only mc.exe. Mostly everything else was the same, except for base\. Instead of the many folders, this is all I saw:
base1.col and base0.col? What's this? When I opened base0.col in 7zip, it seemed to most of the folders that base\ had contained in C:\Sylphis. Okay the, base1.col... Yes, this seemed a little different. Going through the different directories, I eventually came to textures\.
A whole lot more textures that the SDK had. Surely that was it. Confident that I'd found the missing textures, I was just about to extract the contents into the SDK's folder when I had a funny idea. (You're welcome to giggle if you'd like, but probably I'd advise against it...) What if I were to just move the base1.col file into the SDK's base\ folder? I tried it, sure enough, it worked -the missing textures appeared! Another of those gigglish ideas: rename base1.col to base0.col. That also worked. What about base4563456.col? And, prepare for a massive giggle that might even be considered a boisterous laugh, that too worked. What a lovely feature was really my only thought. It seemed that Sylphis searches the base\ directory for any file with starting with "base" with the extension .col for the game files, as well as the base\ directory itself. That way all textures could go into base0.col, all models into base1.col, etc. Or perhaps .col's for specific levels. As lovely as .col files are, I again thought that just having the files extracted into the base\ folder would be best for now, I did that and deleted the .col.
Now with the missing textures installed, Sylphis looked fantastic with fully textured, bump mapped, and per-pixeled walls and objects. Oh, and I mustn't neglect the motion blur... In other games or mods, like Garry's Mod for Half-Life 2, I had seen motion blur attempted by blending previous frames on top of the current frame. That, I'm afraid, always frustrated me, because it didn't look anything like the motion blur of a camera or human eye, and it always made me fairly dizzy. Sylphis' motion blur, however exactly it works, is the first motion blur I have ever seen in a game (other than the videos of Project Offset) that looks right and is actually usable in a game. It blurs things just right and dissipates quickly enough that you're only sure there actually is motion blur when you compare the different with it on and off. It makes the scene look almost cinematic and really helps remove the constant reminder that you're sitting at a computer playing a game. Now, if we could only get a 3-point color corrector and 24 frames/sec with a little film grain, then we'd be set. (Yes, I do actually mean 24fps. As a quick little explanation of what I mean, wandering entirely off-topic: You know when you're watching a tv show and all of a sudden a shot or two looks really home-movie-ish and out of place? That's because they had to re-shoot just those few shots with with video -29.97 frames/second- rather than film -24 frames/second. Aside from a number of other minor things like the grain and massively shallow depth-of-field, the frames/second is the primary thing that makes film look like film and video look like video. A number of modern pro-sumer video cameras are adding an option to record in 24f/s, targeting them specifically at indie filmmakers. I'm always very curious why games always feel the need to get such high frame rates -I mean, the human eye can't even see that fast. Just a little thing to consider, my whole observation about frame rates...) Where was eye -I mean I? Motion blur, right. Looked awesome.
There was just one more thing I wanted to try with Sylphis before I moved on to other things: I wanted to figure out how to change from running in a 640x480 window to running it fullscreen and high resolution. Since all the game files seemed to be in base\, that's where I started looking. (This time, of course, in the C:\Sylphis directory of the SDK) Benchmark.py seemed a nasty mess of code that didn't say anything about screen resolutions. That left the logical and obvious system.cfg. And, of course, there it was:
(I've been experimenting with different text editors lately, so you'll probably see some files open in SciTE, others in Crimson Editor, some in Notepad++, and others even in plain Windows Notepad...)
Unfortunately my specific native resolution for my 19" widescreen lcd -1440x990- wasn't in the 1-5 list, so chose the largest that would work on my monitor: 1152x864. I set r_videomode to 4, r_fullscreen to 1 (true) and ran Syplhis. Although a little slower (coming a few fps down, closer to the 24 that I want in the first place ;) ) it was still very playable.
With all that done, I was about finished for the night (alight, not really, but...) and with all that typed, I'm now about done for the night. :) Next time I write, I'll talk about what I figured out about the level editor and how Sylphis deals with entities. Perhaps a few other things too. ;) Then, after that, how to use different tools like Blender, Milkshape, and gameSpace with Sylphis. Until then though, here's a few screenshots of Sylphis running with textures. Also, check out especially the last one as a preview of one of the things I'll talk about next time. Yup, that certainly is bloom! Thanks for reading.
-=Derek
P.S. Any questions, or comments, or anything else (like, "you need to talk less. I just wasted a half hour learning how to install textures because of you!") are welcome. (and, I'll try to shorten these things and put a bit more content into them from now on. Really, I promise.) ;)