As I promised, a perfect Making Of JF. Actually, a bit less than perfect, but better than yesterday's disgrace. It's a side project that I dreamed up the other day. It'll be a dating sim game possibly in 3D and possibly involving a cellular phone. Actually, it'll definately involve a cellular phone, possibly much like this one. This is a seriously high-poly phone. Well, professionals would call this a low-poly phone since it would run in realtime by itself on a 4 MB video card (Riva TNT or Voodoo 1). That's another story*. What I want to say is that this phone has more polygons and texture size than a full human model. Isn't that sad? Well, perhaps I will take a 128x512 picture of the phone and make it a gui item. That is one of the few times that number of polygons and size of texture doesn't matter. But still I want to be frugal because frugal makes good models, no matter the usage. That is the lesson for today. Tomorrow you'll see another good picture which is a continuation of this picture.
Hello. I skipped two days in a row and I apologize. Tonight's picture is hardly artistic. I've finished tomorrow's artistic picture, but of course, I have to wait until tomorrow to post it. A lesson is hidden in this picture. That lesson is that compression is not compression at all. It is merely mathematical reduction of gross misappropriation. But wtf does that mean? It means that PNG is based on zlib. Zlib is a mathematical formula that creates an index of all the repeated strings in a picture. It assigns a number to them and puts that number in place of the repeated strings. That compresses it. The problem lies with the gross misappropriation that the mathematical reduction works from. Many artists use Photoshop or Paint Shop Pro. Some use Vector Graphics. I use 3D with textures made in vector graphics and Paint Shop Pro. All of these programs take input from the mouse. Lines are drawn. Rectangles, triangles, etc are made by digital clicks and analog mouse movement. They record this mouse movement and then throw it at a HUGE chunk of memory. That chunk of memory is exactly what is thrown at the monitor. Instead of recording the mouse movement, it records the brush stroke on a canvas. Vector graphics programs save the actual mouse movements as curves. That is very small bit of information. But if you turn that curve into a bitmap, it becomes huge. Even compressing it to a PNG is about 7 times as large as the vector graphics file. Do you see what I'm griping about? This resume is 2,457 Bytes uncompressed in HTML. Compressed, it would be less than 1 kB. But it is 14,117 Bytes as a PNG compressed. In jpeg format, it's lossy and it's 35kB! What do you get by saving it in PNG rather than HTML or a vector graphic in PNG rather than vector graphic format? Cross-platform and processor time. You see, vector graphics take a bit of time to render. Text does not and HTML takes very little also. But complex vector graphics can take a few seconds to load. Bitmaps always take the same amount of time and it's incredibly fast. Even mathematically compressed images are very fast. DivX is deemed slow, but it is very well-compressed video that runs at 30 fps on a 300 MHz. So what am I advocating? A cross-platform 3D medium that does from the ground up. It would be able to do 2D vector graphics with software rendering, 3D movies, interactivity, compression, and such. Shockwave is trying, but it's not cross-platform, just Windows and Mac. It is also very limited even though they try very hard to make it good for programmers.
I skipped yesterday, but it's for a good reason. I worked until 4 AM on something incredible. Sadly, you can't see all of it. This picture is just a taste of what I have hacked together. You see, this picture is made entirely of data that I hacked from the System Shock 2 data files. I'll tell you all about it here. If you'd rather not listen, find something else that is worth 20 hours of my time. So I start out wanting to do something cool with HTML. I wanted to use my handicapped computer to do something great. Since it crashes every five minutes (depending on the use), it has to be saved every sixty seconds depending on whether it's HTML, text, graphics, video, audio, or 3d (it especially likes to crash when I play video with audio or when I make progress on 3d). So I thought that a really good webpage would be the answer. But I've been known to produce really awful webpages in the past. What I need is a design that is awesome. So I think of the first thing that comes to mind when I think "awesome." That's System Shock 2. Why System Shock 2? I don't quite know what made me think of SS2 instead of Omikron, [it rebooted itself twice just now, btw] Dark Side of the Moon, Tomb Raider 1 or 2, Freedom Force, Urban Chaos, Oni, or one of my other fine video games. But perhaps it was the GUI. You see, System Shock 2 sports the most beautiful GUI in the world of gaming. No other RPG, strategy, FPS, or anything has as good a GUI as System Shock 2. But the thing is -- they use it! My goodness do they use it. Everything is GUI this or GUI that. You pick up logs like a cookie trail from Hansel and Gretel. Each of them has an awesome voice actor playing the role of a recently deceased or soon to be deceased person (except for two). Most of them give great hints. All of them add to story, humor, and/or setting. These are just a few of my favorites. They tell a tale of bravery, fear, evil, the seductive nature of collectivism, and a thriller of a space ride. It makes the game much more spooky and is half of the reason why I cannot finish the game. The first reason is because I don't have the time. But the other reason is that I'm too afraid of the ghosts onboard the Von Braun and Rickenbacker. Maybe I'm just a 'fraidy cat, but listening to the recordings of a person who you can see dead on the floor in front of you just gives me the creeps. So I decided that I'd reverse engineer System Shock 2 so that I can have the fun of listening to these people and not having to see their corpses. So my quest began. First I did a search on System Shock CRF files. I found a program that you put in your sshock2 directory and it does it. But it only worked 80% and it was proprietary. Even if it was open source, I can't edit source because my computer crashes, right? So I do another search and I found this little program called Dragon UnPACK. It does System Shock 2 files, so I download it and open it up. Sure enough it works like a dream. I grab a few pictures and a few audio files and they play. So I rip the entire data into a directory tree. There I have the data. Then I look and I find that the CRF files are actually just ZIP files. They are just renamed. ^_^ I didn't need any special software to get at the precious stuff inside the data files. Now just to load it into a browser. You see, I wanted to do something in HTML to advance my knowledge of design and have a finished product that was high quality. So I look at a few of the pictures. You can see there what I found. Actually, I had about 700 GUI pictures that I had to sort through. Not only that, but they are all PCX. IE doesn't support PCX, so I'm stuck there. I have to convert 700 files from PCX to PNG. I try using libpng. It doesn't do it. Why should I expect it to? If I had a libpcx I could link the two or something. No, I don't have my c++ compiler and I don't have a few days to make a quality program. So I go on the web to find a freeware converter. It seems that there is no freeware batch converter that will convert PCX into anything at all. So I download a shareware one. It does the batch conversion and I'm saved. Or I thought I was. The shareware producer wants to make money, so he/she puts a little watermark on all images larger than 128x128 until you pay them $25. So I look for one that doesn't do watermark, maybe a time restriction, but no watermark. I'll uninstall it in 24 hours and everyone will be mildly happy. I try and I fail. So thanfully, most of my pictures are less than 128x128. For example, everything except the far left thing is exempt here. However... the pcx files use magenta and cyan as sort of double "nuclear whipping boy". Where it is magenta and cyan, it is supposed to be transparent. We all know that PNG doesn't do transparencies in IE, so I'm in a bit of a bind. Thankfully, it works out just right so that if I put them in the right z-order, they fit together. Except for the nanites, cyber upgrade modules, health, psi, etc. So I did that all by hand in GIMP. It wasn't too hard, but it took a lot of time. Actually, I did that most of today. Last night was the big thing: converting the text files into HTML files. You see, all the audio in the game is supplemented by text. It's really sweet that the text file that goes for the game was so well formatted. I just did a multi-file replace and I replaced all the text file tags with HTML tags. I generated the portraits and icons along with the text into CSS styled HTML boxes. Using simple DOM, I made it exactly like the game interface. It's so similar, it's uncanny. The buttons click correctly, the scroll buttons look like the ones in the game and act like the ones in the game. Using a Windows Media Player Object, I was able to trigger the audio with a set of buttons. That's what I worked on a bunch today. I made it EXACTLY like the GUI. If I had a 3d world and a bunch of ugly monsters, there'd be no difference. So anyway, all last night I work and I work. At 4 AM, I think, "I'm not going to be able to show anyone this because it's all copyrighted work." Well, this is just an advertisement for the game. If you have a copy of the game, I'd be happy to show you how to unzip the files and convert the PCX files to PNG files. Then I can give you the HTMLs and it'll run. So, to end this story, I'll give you a few lessons. The first is that game developers are rarely going to use PGP encryption to encrypt their game. That is because PGP is slow and because you have to give the person the private key in order to play it. If they can play it, they can hack it. So people trying to hack games don't have too rough of a job. They have PAK files, WAD files, and zip files, but if they can do it fast, so can you. Often games even are forced to make dlls that do the unpacking for you. If they bought a certain engine for use in the game, the engine.dll will be right there. Of course, the libs are important, but all a hacker has to do is look on the net for thirty seconds to find how to extract the data. But what is wrong with a hacker extracting the data? Will they reverse engineer it and sell it? Will they give it to people who would not have bought the game anyway? Will they take a few screenshots of it and advertise your game for you? If a hacker is willing to put 20 hours into hacking your game, then your game has succeeded and you should have no problem with the hacking. Nude Raider is one example. Someone hacked Tomb Raider and made a little exe that replace's lara's textures with a nude texture. Very immature, but it fills a want in every horny teen's long list of shameless desires. But people liked it. Although the textures were terrible (the hacker obviously had never seen a naked woman) and simply owning it rendered your gameplay a bad habit (vision is an important thing, keep it sharp by keeping your eyes on pictures of clothed people). So you get the idea? Now on this computer that crashes day and night, I have learned design, hacking, and appreciation for a video game that I could not finish (on the easy mode, btw).
Gimp made this image possible. Not only did I resize it in Gimp, but I also made the sky gradient in Gimp. Both are subtle, but impossible without a very cool graphics program. Gimp stands for GNU Image Manipulation Program. GNU, as you may or may not know means that it is free. Some argue whether Gimp is free like speech or free like beer. There is a debate going on that many people in the open source software are only doing it for free beer. They say that they are doing it to preserve free speech. While I may be labeled gullible for it, I believe that one can judge a person by his/her actions and words. If the person says that they are for free speech, listens to people, and develops free products of their own, they must be a proponent of free speech. A person who says that they are for free speech (except for Marilyn Manson), flames people on slashdot.org and indymedia.org, and charges a fortune for the poor software that they help develop, is a person who simply wants free beer given to them. They do not want to see those who do good prosper. They want to see themselves prosper being served by others for free. But then there are people like me. ^_^ I am poor. I am very poor. I might pawn my computers, sell all my books, give my clothes to charity, sell my DVDs and CDs, put the rest on my back, and ride my bike to Canada if I don't get $320 for my rent check in a month from now. It's one of those starving artist things, I know. Instead of getting a job, I'm making free content to appease the internet dieties... and accidentally also for people to see. Of course, there are no internet dieties, so I'm making free content for people to see. But you see, I take and I give, right? I download 600 MB, I upload 50 MB. If 12 people visit my entire site, it would work out right, right? But some people want money. That throws the equation off. When some people do stuff for free and others get paid, some people want stuff for free and others don't bother (what you get is what you pay for). Except when people put up really cool stuff for free. Megatokyo is a very cool web comic that is free. There's advertising, so everyone is happy. But that only works for popular sites that are original. Something like translated Ruroni Kenshin scans cannot be popular or original, and thus no advertising. Some people pay for the translation and some people get it free, but there's a problem. The people who are supposed to get paid aren't happy seeing their work given away for free. While they're rolling in dough, they want more because more means that they won't have to work on another manga translation in the future and achieve the same wealth. Well, IExplorer.exe just crashed and I lost the finale that was going to change your life. Sorry. Have a fortune cookie instead.
Read more »