12 faces/building * 20 buildings/row * 20 row/neighborhood = 4800 faces/neighborhood. 2 * (32-1)^2 = 1922 faces/terrain. Why 32-1? That's because of the whole world of bitmaps. If I made 32 rows of faces, there'd be an odd number of verticies per row and column. That is where the bitmap comes into place. The vertex get it's height from the bitmap which is a power of 2 (512x512 in this case). If I had an even number of faces, I'd have an odd number of verticies which would mess up the mesh. It's so crazy that it took me hours last year to figure that out. Finally, 4800 + 961 = 6722 faces. That's how many faces are in the scene. However, not all of them are being drawn. Half of the buildings' faces are being "culled", which in computer terms is to hide things unseen. We don't have to render them if they aren't going to be seen. A further improvement would be to hide things behind me (unseen, of course) and hide or simplify things far away (continuous level of detail). Of course, this takes a lot of work and is only worth it for projects that require certain types of scenes. For JF, no problem. Even if the scene is 5 frames per second, I still just take a picture. It might as well be 500 fps, because the user never sees the fps. Also, I have a Asus GeForce2 GTS 64 DDR 7700 Deluxe as you can see in the upper right hand corner. That means that my fps stays high up until the faces goes up to 20,000. The Jav model is 456 faces. Add in ten DA models at 534 each and the terrain and you get around 12,000 faces. My fps stays at 30 even then at 800x600x32. But then you add lighting and it goes down to 15 fps. Static lighting of the buildings and terrain would help. A simple solution would be to cull whole characters. Doing a dot product between the view vector and the displacement vector of the character from the camera would give a definitive answer to whether it is visible and would save a bunch of fps. How many characters will be in the viewfield at a time? Only four or five max. But the thing is that if you ever want to have more viewable, it'll lose fps fast. Another possible solution would be vertex shaders. Even though I'm fairly well versed in assembly as well as the mechanics of vertex shaders, there's no way that I'm going to use a vertex shader within a year. I may eat my words soon, but not without a huge step towards ease of use. The lesson? Well, I guess given all this information, we see how pessimistic a person can get. A bunch of ugly buildings costs a GeForce 2 at 800x600x32 at 45 fps. Well, don't dispair too much. I was reading a review for a video game the other day and they said how the buildings were terrible, ugly as arse, really. I looked at the screenshot and the buildings looked beautiful. I wondered if the reviewer was blind. But he explained how the buildings were so monotonous that it drove him mad. The engine allowed for a very non-linear gameplot with a city ten kilometers across, beautiful with amazing sights to see and wonderful scenery. The level designer forgot it completely. Driving around the huge town where every building was exactly the same height, same texture, same color, and same spacing was impossible. A person could get lost so easily because there was only a radar that told you where your destination is. Your enemies' AI acted monotonously, the adventure was bland, and the story was a solid line from start to finish. You can see that the problem is that monotony does not quite save performance. In fact, take a thousand faces and make a bunch of squares out of them. Not very inspiring, huh? What if you make no two buildings look alike? Then you'll have yourself a beautiful scene. I didn't do that in this image. You can see that this is extremely monotonous. When I put in the lined-up streets like in JF, you will probably say the same thing as the reviewer did. But I'm going to make sure that JF and UAV:RR will not be monotonous. I'm going to stretch the UV map in LithUnwrap to make boulevards, I'm going to make rotated neighborhoods such as in real life Seattle, different colors and textures for almost every building, street lights, a static lightmap for the city, and parks.
Today's lesson is to stand your ground. Why? First off, you know that you're right. If you're right, your enemies will fall, run, or attack. Thus you will know that they are wrong. If your enemies attack, you have the defensive posture. Of course, if you're shot to death while standing still or lying on the ground twenty feet from twelve attackers, then you're fucked. Even then, I say that justice will see you through to heaven and your attackers to a terrible demise. I'll give you a few good examples. Today I was at the bus stop, running very late. I looked at the next stopping time: 7:02 and then at my watch: 7:04. Should I head three blocks east to another bus stop or should I wait? I'd say that I had equal chance of either good or bad outcome. I wait and in sixty seconds a bus drives up and picks me up. Standing my ground saved me from being very late. Another beneficial outcome today, citizens of the U District wanted to protest the murder of Shawn Maxwell. When they got to 50th and University Way, a police officer told them that they would have to walk on the sidewalk since they didn't have a permit. Instead of shouting obscenities at him and blocking the street (to be unjustly arrested and abused), a friend from Socialist Alternative told the police officer: The First Amendment is the only permit we need. By disallowing unplanned protests, the city is breaking the First Amendment. We will march in the streets no matter what you say or do. So the police officer talks to his colleagues and decides that they don't have the time, patience, or legal expertise to argue the intent of the founding father's in writing the First Amendment. He told them that a safer route guided by a police escort would be possible, taking only one lane of two lanes and blocking the Ave and Brooklyn instead of the Ave and Roosevelt. Roosevelt would have been more populated, but would be very unsafe since it's one way with few lights (and thus more evil traffic). The thirty protestors democratically agreed and we peacefully did our thing. We shouted the good old chants: "What do we want?! Justice! When do we want it?! Now! Why did cops have to kill?! An innocent black man, Shawn Maxwell?!" Many people were supportive. I'm sure that cars trapped in the protest weren't entirely happy, but they didn't make too much of a scene. One problem I had was a couple people scowling at us. One said, "Obviously, we need more police." Of course, I'll forgive them because they have no idea that an innocent man was murdered before my very eyes by people whose salaries I pay.
Fear of success is not a good thing. You may have this phobia and not know it. Often people do not think of their own irrational behavior instead looking at other people's "worse" irrational behavior. A symptom of phobia is lack of a steady job. If you cannot stand any project (no matter how fun) for more than three months, count yourself in. Another symptom is a large resume. If you have a dozen schools in a dozen states, forty jobs in twenty states, and ten jobs in different countries, but are only twenty years old, you are a wanderer and likely fear success. Of course, many very successful people wander, so don't be afraid if you have a bunch of projects that all turned out fairly well. I myself suffer from this fear. I don't know when it started, but all the time I find myself avoiding doing fun stuff. Such as Javantea's Fate. My brain makes up excuses to justify not doing JF tonight. "I'm tired and I need to go to sleep." "It's already 2 AM and you have to get up at 7:30 AM tomorrow, skip JF tonight." "No one reads JF, why bother?" "Skip it tonight and do two tomorrow and say that it must be a problem with your ISP." "Copy something from the JF Dev pages, no one will think less of you!" "Give in a bit tonight and you will thank me tomorrow." Have you heard yourself or someone say stuff like that? It's excuses that destroy your creativity and productivity. A person who strives to do their best only when it suits them will lose every time against a person who gives their all everytime. So tonight, I faced my fear of success and messed around with two of my programs: AltSci3D Terrain Works 2 CPP and AltSci3d Manga Producer 3 CPP. You can see the result of eight hours of work this weekend there. It's not much and I've been slacking, but only when I forget my fear can I do stuff like this.
Today's lesson is: do not assume that your enemy does not have info that you can use to it's demise. In fact, your enemy is your best source of destruction of your enemy. That assumes that you have enemies. I have one enemy and I'll put his name here: Joel R. Voss. He is an evil, untrustworthy, unintelligent slacker and he is me. You might remember six days ago when I said that if I were to make a non-violent RPG, I would make the antagonist and protagonist be the player. It makes for a fun game if you give it an interesting plot. But back to destroying your enemy. I am often referred to as an enemy of the state. Sure I am innocent of any crime that is not protected by the Constitution, but I have trouble with authority. I dislike when some idiot says something stupid and people expect me to do what the idiot says. Take George W. Bush, he says that North Korea, Iran, etc are our enemy. They are not my enemy. As I said before, my only true enemy is myself and thus it exempts every country from my hate list. But when I say that North Korea has done nothing wrong, people expect me to take George W. Bush's advice. Fuck him! He doesn't mince words, I won't mince words. A second war with North Korea will end with the destruction of the US. Period. Note that we lost the first Korean War. Note that South Korea hates Bush for good reason. Note that the US will not survive the next dozen years without a war against the rest of the world. That is what Bush is proposing. He assumes that the military force of the US can attack indeed all of the world including America. Domestic threats are far worse than any foreign threats. So what is my plan to use this picture? This is a topo picture of downtown Seattle. It was created using dlvg32 Pro by the USGS, a government agency. The data was provided by GIS Data Depot, a free service. My home is pictured five blocks north of the I-5 Bridge. This map will be used to generate heightmaps for Javantea's Fate as well as for UAV: Rebel Rage.