JF make 229
JF Nav
JF Nav
Creation Date: 2002-10-28
If you're stuck in Windows, you'll never guess where this screenshot came from. If you've dabbled with Linux or Unix, you'll recognize the icon in the upper left hand corner. If you like the Quartz window theme as much as me, the upper right should tell you how I made this screenshot. I spent this entire weekend working on Linux. When I say entire, I mean day, night, sleep, eat, and think. I spent a few hours in Windows using MilkShape3D working on a new model which I delighted you with yesterday. That is one program that Linux does not have. However, I am expecting Mete to make the port or something. He probably doesn't want to go GPL. I gotta hand it to him for business tactics, though. His shareware is very secure. No leeches there. The price of MS3D is very low (Can you afford $20). Tools and upgrades are always free. The support is amazing via forums and e-mail with the creator himself. The new tutorials make it easy for hapless newbies to get going. But MS3D is very user-friendly. It is practically the antithesis of Blender (which recently went GPL, I might add, when the authors became sick of it). The user base is medium sized. I wouldn't call it small because it's not just me and two of my friends. It's huge. In fact, the entire indy game development community (even Linux) is supporting MS3D. I mean, are we going to support 3D Studio Max for $100 for students? What about Maya for $100 for students? Lightwave, bla bla bla, they cost an arm and a leg. What indy game developers need is cheap, easy, and powerful. And they get it with MilkShape3D. So you shouldn't be surprised when I bust out my very first Linux program that loads a model and it's in ms3d format. Of course, I gotta give proper props to the original writers of the program I used:

OpenGL Tutorial #31.

Project Name: Model Loading Tutorial.

Project Description: Learn How To Load Fully Texture Mapped Models Created With Milkshape.

Authors Name: Brett Porter

Authors Web Site: www.geocities.com/brettporter/programming http://rsn.gamedev.net/
NeHe Productions Web Site: nehe.gamedev.net


If you plan to put this program on your web page or a cdrom of
any sort, let me know via email, I'm curious to see where
it ends up :)

So, you're probably thinking: Jav took some guy's copyrighted code and ran it on his Linux box and took a picture, big deal. But no! Don't think that it was any easy task. I spent 12 hours hacking the frigging heck out of Linux to get this. In fact, the screenshot was so hard to get, I didn't even bother to get a decent one. Okay, my first problem was that I wanted to get Linux working. I had several problems that didn't allow regular work: sound, network, and GUI. But then you say, "Hey, that's all a computer really is!" Well, you're right if you're stuck with Microsoft. Without those, I had the Linux console, which I must admit is not as cool as a GUI interface, but works. And my does it work like a frigging OS! So my first idea was to get the GUI working. So I messed around. I got some ideas from other people and sha-bang, it worked. I had GUI. It was 800x600x256, but it was a GUI. So I attempted to get all 1600x1200. Not so easy. I worked and slaved and got it. Good for me. But now I am greedy. I want sound and network. So I look at these drivers and I have to either compile them or use them. Well, what do they mean by "use"? They didn't define use module anywhere. I looked, I tried to find it, but could not find it. I ended up downloading the Linux Kernel Source and compiling a new kernel. I have to admit that I find the whole kernel compiling thing sexy. Anyhoo, I compiled those modules and installed them using modprobe. No dice. Errors. I decide to do the sound card first. I spent hours and hours on it. I finally decided to grab my SB Live! Value Soundcard off the shelf where it was hibernating. You see, my SB Live! card thinks that it's a VGA video card. Well, it happens. The solution is... to put it into another slot. So I mess with the emu10k1 drivers. Errors, errors, errors. And then, a ray of hope! After messing with the drivers for hours, they load. So let's play my Louis Armstrong mp3... X-Windows won't do it. Any program that I try to play it on freezes up. So I mess around. Nothing doing. So I go into the console and do a last ditch effort thing: "cat added.wav >/dev/dsp" and I hear something in my headphones. Could it be? Yes! Sound card and drivers are working. So I mess with X-Windows. Nothing doing. I finally gave up. The problem with SB Live! was that even when it would let me do a POST, it would still think that it's a backup VGA card or something. Silly card. So when I try to load up X-Windows it goes kerblamm-o! I finally found somewhere that said that I can use BusID "PCI:1:0:0" to override the stupid SB Live! card. But then I got a side-effect: the nVidia card thought that it was the backup card and comes to life when I do startx. When I shutdown startx, it goes to sleep. Unbelievable. Inconcievable. And still I got no sound in X-Windows, just my luck. So I ditch my SB Live!. Who needs a sound card that doesn't play sounds? What is the sound of half a sound card clapping? I'm sure that is exactly what my sound card sounds like. My network card's problems were multiple and heavy. I didn't go much into it because my DSL ISP is MSN who is known for sabotaging fragile linux systems, such as mine is. What good is a working network card if you can't network to anything? One major thing that is of importance to my picture is OpenGL. I couldn't get OpenGL with my video drivers. So then I find these new nVidia drivers off the nVidia site. They say that they're official and they have GLX, so I grab them and try to install them. Error, error, error. The driver loaded, but X-Windows would not. Hours go by and I get error after error trying everything in the readme and elsewhere. I peruse man files. I look up stuff. I finally find a silly little hidden message by my poor nvidia driver under "/var/log/messages" that said very simply: Go into your BIOS, change the option "Plug and Play OS" to No and "Give IRQ to VGA" to Yes. I knew exactly what it was talking about because I switched that back and forth when I was working on my Sound Card. I switched it and it worked. sigh Throw me a friggin' bone! So I go into X-Windows and everything is sweet. Until I try to do something memory-intensive, blamm-o! Hmm... Try again, same. I look in the readme and man files; they say that I should add a line to by XF86Config that says: 'Option "NvAgp" "1"'. Okie dokie. Try again. X-Windows loads, short pause, crash! Okay, switch to "0". Same problem. Okay, now what Sherlock? Look at free: free says that in the Linux console, I have 87 MB free out of a total of 128 MB of PC-133 RAM. Holy moly, right? Uh huh. When I go into KDE, I suddenly drop to 7 MB. Ouch. Let's do some math. 87-7 = 80 MB that KDE uses. If KDE was 1600 pixels high and X pixels wide and using 32-bit color, how wide would it be? 13,000 pixels. That is wide-assed. That's 10 screens wide! Where is it hiding 80 MB? You can't fool me! They're reading pornography in the background of my version of KDE! Anyhoo, I've never used the swapfile because X-Windows crashes when I get to about 1 MB of RAM left. Could that be the problem? Possibly. I tried disabling all of the animations, transpariences, etc and it didn't effect anything. I assume that it's all CPU operations instead of RAM. If there's a way to get KDE to use less RAM, I'm going to find it. So while my computer was doing this crash dance, I decided to do some programming. The first program I made was a hello world-esque thing. I wrote it in C from scratch with VI in the console. It tells you to press q. If you don't press q, it spams you with text. It you press q, it tells you that you're a good conformist. Would you rather be a conformist who gets a pat on the head or a radical who gets the book thrown at them? Is that a trick question? Anyhoo, I finished that and compiled two other programs, lessons from NeHe Game Dev. All I had to do is type "tar xvzf lesson07.tar.gz", "cd lesson7", and then "make" pretty much. To get them to run, I had to go into X-Windows, which allowed me with a bit of hassle from time to time. But neither of my lessons would run. Why not? First I thought it was the screen resolution switch. That was annoying. So I disabled that, very easy fix. Recompiled and ran it. It just wouldn't run. I saw a few printf(); commands here and there and I wondered where they went. Hmm, could they be in the console? Could I capture them? Of course, just type "lesson07 >err.txt" and it will capture to err.txt. Of course, it goes to /root/err.txt instead of /root/dev/opengl/lesson07/err.txt, but that's a minor detail. When I looked in the file, I found something silly. It couldn't find the image. So I went into the code and manually type the whole absolute path instead of the relative path that was given. And it loaded! Boy did it load. A spinning crate with three different texture filters. One was nearest neighbor (ugly), linear (better, but with some problems), and mipmap (fuzzy, but no artifacts like the other two). It worked. I was dumbfounded that after one weekend almost completely blown on this, I had finally done it. Done what, you say? Well, on Saturday night after many a failure, I decided to go to sleep, but I wasn't sleepy. So I decided to write a bit. I wrote a bit about my game. Here's what I wrote:

Process of Making Hack Mars
1: GLX triangle under Linux : dev platform, OpenGL, Linux, drivers.
2: MilkShape model imported : Linux modeler/converter, textures, c++, oop.
3: Object tree with anim, static, movable, via AS3DAccParticle : structure.
4: Cause -> Effect RPG : light AI, script, demo possibly.
5: Storyline, Interactive RPG : med AI, script gameplay.
6: Import Art + Storyline : model, skeleton, perfect AI + script, gameplay.
7: Touch ups and out the door.

Looking at this list, you can see what my accomplishment on Sunday morning meant to me. 1 out of 7 tasks were finished. Others had been researched (RPG elements have been researched), and a few have been developed (The object tree just needs to be ported, I've been modeling for 1.5 years and have a portfolio to choose from). So crossing 1 off my list would be a big positive. Of course, my secondary objectives of getting drivers to work without bugs is a little ways away. So I decided that I would look at number two on the list, since number one went so well. It just so happened that Lesson 31 of NeHe was ported to Linux-GLX. I opened it up and it didn't work. It had the same problems as the first one. So I edited the path to make it absolute instead of virtual and it worked. So I decided to make it general instead of specific on the path. So I made a little thing that probes the "char **argv" to get the path. When I got that working, I decided to add an argument so that a person could load any MS3D model they wanted. Click, click, it works! So then I need the Jav40 model. I simply mount my 40 GB Windows (vfat aka. fat32) hard drive and copy the files. Instant gratification. It loads. So I try to take a screenshot. No, it won't let me. By the way, to take a screenshot, you have to hit Alt-PrntScrn or Ctrl-PrintScrn depending if you want a screenshot of the window or the whole desktop. But where do you paste it? XPaint? No. Gimp? No. ... But Gimp has a screenshot taker, so I use that. Crash. Crash. Crash. You get the idea. So I finally find this KPaint. *shrug* Okay, It has a screenshot grabber also. So I do it and it works. I save it as "gotcha1.txt" as a PNG file. Then X-Windows crashes. I had enough, so I simply mount my 40 GB hd read-write and copy the file to /altsci/JFDev/ and I'm done. I reboot and select my 40 GB hd for boot and I boot Win 98. Uh huh. Here I am on Win 98 typing this thing out. Using EditPlus' built in IE browser. Using ASP and IIS PWS. I know, I shouldn't be allowed to rant on the subject of Linux until I convert, but I just gotta say, even if I'm just a free-loader now, I may become an important individual in the Linux development community soon. After noticing that I had finished both 1 and 2 on my list, I put down a timeline next to the Process List. 1 took 1 month (It's been about 1 month since I downloaded Slackware Linux). 2 took 4 hours or so (it was very easy to modify that program). 3 I suspect will take 2 weeks if I go slow. 4 will take 2 more weeks if I am fast. 5 is a month away, but I estimate 1 month. 6 is wishy-washy and always takes too much time, so I gave it three months. I gave 7 1 month because you never know when any one thing will take an extra few weeks. So I should have a game in six months from now after a zero to finish time dev schedule of seven months. How can I promise this? Because I'm absolutely insane. ^_^ Because I have no social life. ;_; Because I'm going to put off JF for 6 months. ^_^; No, no, no...

I've been putting off JF because I'm bracing against that darn program of mine. It's far simpler than a game, but it relies on precision which a game does not. You don't realize it, but there are two things in games that are very important when it relates to precision. The first is that the mouse is incredibly sensitive compared to the keyboard. Pressing the forward button for an infintesimal amount of time is the same as moving the mouse two centimeters (500 pixels or so depending on your sensitivity). So the mouse is 500 times more sensitive than the keyboard. Secondly, most gamers don't see any point in being precise. Given a large ammo clip, you can kill everything in a game shooting each ten times. Overkill, low percentage, no bonus, high-school massacres, bla bla bla... If it was any harder than that, it would be unplayable. The problem is that it is better to shoot first and ask questions later in a game. If you miss, you'll hit them with the next burst. If you wait for a precision shot, you'll die pretty quickly. Just ask my good friend Gordon Freeman when it comes to grenade-lobbing grunts. His motto: just kill everyone. When you're modeling a comic, you do not want to spray your shots. ^_^ I mean, getting a bunch of data so that you can choose is nice, but it adds up to hundreds of megabytes if you aren't careful. I only have 13 GB left after I deleted all my DVDs, DivXs, and unsightly programs. I have about 10 GB of games, but there's a purpose for everything, you see... I have 10 GB of altsci stuff. Only 1 GB is downloaded (examples, samples, demos, SDKs, etc). Each picture (1024x768x24-bit) is 2.25 MB. Each page needs 6-8 of these. Then I crop each down. Then I scale each one down. I can delete the cropped one when I finish. That's another 2 MB. Then the finished image is another 2 MB. If I take one each, I get 20 MB per page. If I take 4 each, I get 67 MB per page for just the data. So you see what I'm talking about when I say don't spray your shots. If you add in the many models, skins, and revisions thereof and you get another 50 MB per scene. Multiply those by pages and scenes respectively and you get 13 MB. But my calculations are wrong. That is the amount if I take 4 shots per box for the entire manga. But I've made 9 GB from just 1 shot per box for the first five scenes. A lot of it is copies. There's a lot of ASCII DirectX models out there, also. The Jav model in ASCII DirectX is 134kB. There's about 500 of them around. I can't delete them because I never know when I'll need them again. MS3D models are kinda bloated in their binary format. But one can always gzip them at very large ratios. My point, though, is that AltSci3D lacks good mouse input. The next decent revision will be to add zooming support, likely using the mouse wheel. It is desperately needed to leverage the control and precision of the mouse over the keyboard. Another revision will be to give the mouse control over the camera with full rotate and strafing enabled by a button on the GUI.

So what is this rant's lesson? The hacker knows all. No newbie could have gotten this screenshot without the help of a hacker. When any computer goes down within a mile of me, you can be sure that it will come up and running in no time if the physical components are intact. Not to boost my ego or anything, but if fluency in computers becomes a necessary survival trait, I will rise to the top of the food chain. =P The truth is that I've been working on computers for more than half my life and it comes as natural to me to make them do everything. In fact, it's so completely unnatural to do anything without my computer, that I get backpains, headaches, and anxiety attacks when I am doing anything that is not on my computer. Really, that is true. My computer acts like a endorphine. When I'm doing something fun, it's a super high and I get a rush. I'm productive beyond my wildest dreams. When It's crashing, I'm working as hard as I can to make it work. I eat in front of my computer. I read books on the computer (increasing font size is something I've always wished for in real books). I listen to radio from my computer. I listen to music on my computer. I watch movies on my computer. I play 10 GB worth of games on my computer. You get the idea. Some people would point and stare if they knew that my computer is the most central thing in my life. My computer is more a part of me than my legs are. My legs don't give me valuable information. My legs don't take me to distant cities or distant galaxies. My legs don't provide me with enjoyment around the clock and even companionship. My computer may be connected to my brain through my eyes, hands, and ears, but my legs are connected through my spine. These are things that one wishes to be a part of themselves: connectivity, power, endurance, and of course, beauty. These are things that my legs lack and only my computer can give me. And I give my computer what it wants: an unceasing supply of energy and information. We're a good couple. My brother says that marriage is when you pick a person who you want to be your family. I have some other problems with that statement, but if it weren't a part of me, I'd want to marry my computer. But my computer would probably not want to marry me. What is the point? It can get its needs best by being an exotic prostitute/drug dealer to me. But I bet if I convinced it (via a program) that I wish it to be my bride, that it would be happy to oblige me. Of course, our honeymoon would be spent programming until dawn, but what do you expect from a hacker. The FBI put hackers at number three on their list of soon-to-be victims (aka enemies) right behind terrorists and rogue nations. I think I know why. The FBI, CIA, NSA, etc have as their mission statement to protect American way of life. That's a direct quote. Don't argue me on that point. Well, American way of life does not include marrying your computer literally or figuratively. Both Democrats and Republicans unanimously bipartisanly agree that hackers are a threat by the simple fact of knowing what the computers know. The computers know everything, it's just a matter of finding it. You go on the web and download an FOIA. You grab John Lennon's FBI file and you read it. You ask your computer what it means. It tells you that real revolutionaries don't smoke pot or do downers. Note to self: ... You go on to the APA website and you download a physicist/biologist report on Depeleted Uranium (DU). Many human rights activists unknowingly blame DU for birth defects, cancer, leukemia, and all types of awful, ugly genetic defects. The paper published in the APA says that DU is harmless, even on a battlefield. The ill effects are NOT caused by DU. But. then. what. Take your pick: biological, chemical, or genetic warfare causing massive civilian casualties (genocide) masked by the fact that it is a warzone and innocents must die in order for us to win the war. So why are you reading this paranoid rant? Because you know it's true or that you're interested in what I think?

A guy recently said on the Indymedia newswire (possibly in regards to the Wellstone plane crash) something like: "When are people going to wake up? We need to overthrow the government now." Well, I'll tell you why we don't overthrow the government now. There are millions of government employees armed by trillions of your tax dollars who are willing to kill you to keep their position. Not just trigger-happy police, National Guard, FBI, CIA, NSA, Marines, Army, Navy, and Air Force, but monsters beyond those that I wish not to discuss in full atm. You might not be afraid of them, but the rest of the US is scared to death. That is the definition of totalitarianism. Your effort will be wasted and the corporate news media will question your sanity, religious beliefs, and reasoning. It is not worth it and you know that. About people waking up: it's easy to see that there are plenty of people who are wide awake. Many are anti-war, many are anti-government, some are even resisting. Power to the people. 1,000 people would not start a revolution. 10,000 per city times 50 cities would not start a revolution. Not now, not ever. There is a common misconception among radicals that there will be a revolution. Certainly not. When the government is shameless enough to use weapons against its own people and suspend the highest law in the land, no revolution is possible. When the government is not, no revolution is necessary. Thus my statement, there will be no revolution. As long as you think of fighting in the suburbs for freedom, you've lost. I'd like to first point to your attention that the fight is against fighting. That's right. Fighting is an auto lose mechanism. Okay, revolutions minus fighting. Voting for liberals? NO! What have the liberals done for you? Welfare, medicare, social security, income tax, segregation (Woodrow Wilson), desegregation (JFK with the strong encouragement of MLK, Jr. and the rest of the nation), UN, multinational corporations (Clinton's tax increase, NAFTA, IMF, and WB did that), massacres at Waco and Ruby Ridge (Clinton's Janet Reno and Al Gore were intricatly involved with both massacres conducted by the FBI) and Iraq's extended sanctions against Iraq (Clinton's Madelin Albright did that). I'm going to assume that you know that Republicans did similarly bad yet different things.
JF Nav
Home Characters Making Of Technical Mail News Links |< First < Prev Next > Latest >|  bandwidth version Goto Scene