2009-03-28

Dream; Lots of weird things

not sure exactly what was happening but... it was in three parts.

Part 1, seemed to be me walking around this sort of zoo place, and, I've never been in a zoo like this, I should draw out the floor plan, but it was kinda like a seaworld thing, lots of concrete walls and pats, large open areas and exhibits. It was a normal zoo however, but I was confronted by one of the managers who wanted to ask me some questions.
Apparently, Apple had setup some sort of shitty mac exhibit, which was in a reasonably large place, and, well, being apple, it was just a bunch of people gawking at things they don't understand, and the people who do just avoiding it or earning commission.
So I walked around, looked at ipods, apple SERVERS (wtf?! nightmare!), and some neat aural displays that combined synthaesia with touch/movement interface for media browsing and editing. I played with apple equipment, there were lots of people here, kids, adults, it was a real zoo.
So, apparently, I went over and leaned on a concrete wall and talked to the zoo rep, she was a cute brunette, about 28, real nice, so it was cool. We got to talking, and then a fade out and fade in, aaaand,
apparently, we had changed the exhibit from 'Apple' to 'Dragons', which, makes NO fucking sense in a zoo, unless they were promoting their reptile house or something (which was the case). Somehow, in that lapse, we move the apple exhibit out, and replaced it with these styrofoam/inflatable dragon-mockups, explaining history of those mythological beasts, and performing scientific analysis for comparison with real animals that have similar traits. Personally, it was stupid, but the value here was using a generic 'catch' to draw people in, then let the kids screw around with interactive games and simple question and statements that make them think, rather than just telling them things. For example, comparing one of the eastern dragon exhibits with snakes and some sort of salamander made sense, common observation about how such a creature could move without legs, and stuff like that. Using non-real things was more interesting that using real things, plus you learn about both.
Anyways, it was a pretty kickass exhibit for kiddos, and for adults too, it had some in depth information as well as light stuff scattered about, neato virtual simulations and videos, the works. So, I had hooked up with this chick and we did a good job.
Well, that was the first part of the dream, and suddenly it began to go downhill. After work, I had gone home, but stopped at a local bad, and now the world looked like 'The Watchmen' or 'Sin City', and I had my trenchcoat and a gruff face. I went into the bar, and talked to this one guy who was freaking out about treasure and apocalypse, talking about some sort of horrible event and the death of everyone. I ignored him, but, I went to a game machine at the bar and played 'Popeye vs. Satan', the game, no lie.
the game played a LOT like Mario Galaxy, but minus the gravity. You were the plucky hero Popeye, trying to save olive oyl. There were lots of worlds, and mostly context sensitive 2 button controls (context and other) so at first, I was watching this river flow, with lots of big fish in it, but it was boring, however, there was this large dam-gate that opened and closed every 2 minutes, flushing the current fish and anything in the water to their death. So, I explored up the mountain, into this cave which had some old machinery. Popeye was apparently adept at mechanics, and I told hm to 'wut? whoa! akacacaca!' the gate machine so it wouldn't open again, which stopped the fish flow so he could get the materials across the lake to fix the elevator lift which took him UP the cave in the mountain, then suddenly the elevator would drop, him straight into generic hell, full of fire, where you had to jump and perform all these cartoony moves (This game played like a really fun Dragon's Lair) to avoid getting burned. Eventually, after platforming through demons and spinach punching the hell out of them, we reached Satan himself, who told us Olive Oyl was in another dimension, and throws popeye into the jungle world! Jungle world was the same idea, but much harder platforming elements, wire sliding, tricky moving jumping and more insta-death traps. Anyways, I quit playing and walked out to go home, buuut,
When I did, it went to phase 3 of the dream, which was 'RyonaSaga' but toned down on the ryona. (which I hate) So, I turned into an anime character like me, and banded up with a bunch of tough anime chicks (yay Fran!) The RPG was very generic, I think it was just fanservice for all sorts of kinky stuff, but still, we started in this town, that had been catoonized, and apparently this dragon lord (generic! bleh.) had been devouring townspeople and resources for a while, it was obvious, but represented as hilarious shark-like bites taken out of buildings. so, we geared up and Xenogears'd our way out of the town, fighting genetic soldiers, machines, and some monsters. After getting out og the town, we did the desert level, fought sandworms, birds, super sand tanks and some flying sandmonsters. Then, we get to the port town, talk to a few people, take a ship out on the ocean to find the lord to kill him, but at this point we had acquired some sort of bear as a sidekick, and had much better armor and magic stuff. However, as all RPG's require, seamonster eats our ship, cue jabu-jabu style level, get treasure out of it that is awesome weapon, doesn't kill the monster, it becomes a summon, make it to other shore, now armed to the teeth.
What happened next was not-RPG style, suddenly it became Resident Evil style in the dragon lord's castle, with traps and sneaking taking precedence of fights. There were heavily armored bears guarding the place, which was pretty damn scary, somewhat reminiscent of 'The Golden Compass', but with no anthropomorphic features. Eventually, we snuck into the lord's chamber, and we confront this generic chinese emperor, who talks to us for a while, before opening a dark gate and escaping, leaving us to feed his pet, which was this odd 4 legged 2-armed mutant beast creature, looked pretty cool, but wasn't big enough to take us on, I shot it with seamonster-gun once, and we chased the emperor onward, the entourage of purple and green haired chicks still giggling and talking in high pitched voices following. Yuck.
After that, things got fuzzy, I was out in the backyard at my old house digging up a pipe or something with Zack, Scott and Caleb. Who knows.

Of interesting notes,
Popeye worked really well as a 3D platforming character, because his cartoony universe was perfect for a 3D catoony universe. That gameplay was well done too, it felt like Mario64, because you had freedom to go around, and context controls to to logical things all the time.
The characters in the RPG died a lot, and didn't come back. Luckily, there seemed to be an infinite supply of anime girls, which always had the same equipment your team died with... how strange.
Graphics were PS2 style, not PS3/HD. It kinda fit for both games this time.
There was a lot more to the zoo parts, but it's kinda fuzzy. I could draw it out I suppose.

Peace out.

-Z

2009-03-24

More nonsense

So, working on more things, lots of things. 'Sys' is the new IGTL system namespace, which provides all the utilities that you could need for memory, data structures, file/directory IO, mathematics, 3D mathematics, algorithms, and all the basic stuf every system should have. Basically, it's a new version of cstdlib, that uses C++ stuff (like STL, but not junky) for some systems. Specially, it has a lot of very common math and algorithms in a very clean and not junky C-style system, so you don't have to freak out over overhead.

It's coming along awesome, and I love it. It makes so much more sense now, getting the base code out of the way. Although, it does prove that the C++ crap is near useless, which by extenstion makes most all languages that are not python a$$. And all other languages are useless for realtime stuff.

So, I also learned how to do 'Hemispherical Lighting', which is a simple little trick in your good ole shader math:

float dp = light_vector dot normal ;
float schemi = hemi_scale * pow( hemi_power, 0.5 * dp + 0.5 ); //Light factor to use

And, again in GL_fragment_shader_arb lingo,

DP3 temp2.x, nNorm, -mvp[2]; #Dot view normal (curr view) with vertex normal to get generic light intensity

#---Hemispherical lighting--- Req: K.y = 0.5, LK.z = light_pow, LK.w = light_scale
MAD temp2.y, temp2.x, LP.x, LP.y; #t = t*0.5 + 0.5 (hemispherical lighting = cool)

#---Scale the light to be the hemisphere
POW temp2.y, LP.z, temp2.y; #t = pow(t, hard), flip this to halo (A^B)
MUL temp2.y, temp2.y, LP.w; #t *= spec

#---Calculate final hemi diffuse color
MUL temp1, temp2.y, fragment.color; #Interpolate color to black (mult op)

And, some examples, but I don;t have comparison shots because Blender uses hemi lights, you can easily see the difference.

Hey, it's delgadosaur again, and it looks less plastic, more daylight plastic.

And a new member of the crew, this purple-dragon thing that's more friendly and low poly. But that's what textures and sub-surface models are for, right?


Anyways. Peace out.

-Z

2009-03-23

Dream; Goodbye tasty humans

Not sure how the whole mess got started, but I do distinctly remember driving in the car with dad, mom, and sis. I think we were driving somewhere in Kansas, but the landscape was hilly, but that was because of some sort of natural disaster. Spanning a light gray sky, swirling with slow moving clouds, you could see occasional lighting flashes and sections of hazy dust and rain. It seemed grayish blue, there were no trees, only a soft diffuse light coming from what we assumed is the sun, the landscape looked like it had been melted by intense blasts of heat, clawed out by something much larger than a earth mover. Of course, some parts were still intact, it seemed that random damage had occurred, but there were no plants. Just yellow straw grass here and there.
So we drive into this thing that looks like a tow, I guess we were escaping the carnage, and stopped to look around. This place looked the same, all of the buildings looked like they had been sandblasted, and were somewhat moved, indicating a large shockwave had come from a specific direction at some point. There were some skeletons scattered about, but nothing too severe. After poking around the town, looking for any survivors, I decided that we had to go to the university. For some reason, we had to go to KU, being that it would be least affected by whatever crazy thing happened here. I went solo, as there were lots of supplies unused in that town, and drove a broken highway to KC. there were lots of cars along the way, damaged, tossed, something like the cloverfield movie, lots of evidence, no picture of the thing itself. Eventually I made it near one of the larger buildings, which was guarded by many heavily armed folks.
Apparently, John was a well known professor there, so I was able to get in, and waited in a holding/detox room so I could figure out what happened. I scribbled nonsense on the whiteboard, and this creepy old teacher came by and was all 'I like vectors too' and made some stupid math joke, I scowled at her and tried to explain my problem, but she cut me off so I tuned her out. That happens a lot at work too. Then john came by, and we began talking about what the hell was going on, apparently, no one remembers what happened, just kind of waking up after the fact. All infrastructure had been damages, radio signals are destroyed, no working ionosphere thanks to the dust (must be aliens, this is something that the Reconi do to sentient planets...) so no way to communicate.
Course, this is where things got acid-y. I was sitting down, and John started to talk to that math lady, I guess I was tired and nodded off, but only half asleep, and the world became a cartoon, and that lady morphed into this weird demon chick with a flowing cloth behind her, and john morphed into this goofy pink&lavender dragon monster, and after laughing at both of them, I watched this little cartoon short where the dragon danced around, trying to impress the demon lady, who matched the dance skill or something, then they both ran to a starting line and had a footrace, which was weird...
I snapped awake at the mention of my name, but there was some word there that woke me up in real life, it was only 2:30 or something, which sucked, it was being Oklahoma outside, so I went back to sleep, or tried to.

I'm not sure what kind of disaster would entirely kill the planet like this, but I imagine it wasn't traditional weaponry. It really looked like some giant monster had gone around and scooped up whatever piece of the earth buffet it wanted, and just cauterized the rest. If I were to guess, probably some sort of sleeping gas was used first, and then harvester's were dropped to clean up. That way they could avoid any 'moral' obligations by claiming death was painless to all those killed. Perfectly valid, actually. Not a bad idea at all. Sounds like my next doomsday project, make everyone fall asleep, release natural predators. Done.

In more detail, I suspect this was a three stage attack. First was the normal detonations of sleeping gas, then metallic dust as chaff for communications and missile guidance and all other earthly forms of retaliation, and finally some EMP bombs for good measure. Then, drop the harvesters down, scoop up all the goodies, pack up, and leave the planet to fix itself. Sounds like something we could use today, honestly.

And, sorry John, I dunno why you got such a weird representation, but at least it didn't have a purse.

Oh yeah, I remember distinctly talking about going back to school, and really wanting too. Must be some sorta premonition.

2009-03-15

Masao Parody

Masao Parody Test 1/2

Masao Parody Test 2/2

Well, that Masao guy is awesome, so I tried making a parody of his style of videos. This is kind of a test of doing a parody, more or less improvised.

Enjoy!

-Z

2009-03-05

Quick Post

Alright.

Quadtrees using proxy indicies are too slow (because if you don;t define them carefully, AKA if you don;t enforce data always being in the leaves, well, it goes to hell. Draw it out to see what happens.)

Quadtrees using leaved index lists seem to do OK, however, their performance is not that good. It certainly costs a lot of memory and speed to handle space, and they are conformal space limiting.

Thus, we are required to develop a better, more efficient structure. In this case, I choose a interval list. However, you immediately scream "O(n)!" and to that, I say "Balanced Binary Tree"

Of course, you mutter about "2 log2(n)" but you;d be right for deletions. Additions are worst case log2(n).

Actually, if you think about it, given a random set of any data, the absolute fastest way to sort and store that list IS clamped at a maximum of log2(n). You might think that hashtables can beat it, but come on peoples, hashtables are application specific optimization. Sure, if you know your inputs are bounded you can hashup your memory and get a hashlist of B-Trees, but is that step actually going to save much? And besides, looks like you still HAVE TO MAKE THE GODDAMN TREE!

In summary, this is the current problem. If you think you are smart, solve this problem. When you find out you're an idiot, don't complain to me:

Given a random set of intervals (minimum (float32) and size (float32), create a data structure that can store these intervals sorted by the minimum value, and be able to quickly determine interval queries, AKA stabbing queries. The structure should have as minimum a memory footprint as possible, and you can assume you have Alloc, Realloc, Free working properly. Also, the structure cannot use hidden operations internally (No OOP or C++ tricksies internally), however externally it may operate as a class interface. It must support insert( proxy ), remove( proxy ), and get( float min, float size. ProxyList & ). A proxy contains at least unsigned int user, which contains the user data for what the proxy is in user memory. It cannot leak memory. It must work in practice and be implemented.

Practical application? Pretend you are building a 2D game that uses edges for level collisions, which can be added and removed every frame, on the fly. (in the editor) Once the user is happy with their setup, obviously we use a static BVH for static data.

Good Luck!

-Z