Showing posts with label dragon. Show all posts
Showing posts with label dragon. Show all posts

2010-11-16

Blue Dragon - XBox 360


Well, that was fun. Learned a few things too.

1. Mesh data stored in the XBox 360 is identical to all other formats that you expect in a high end graphics application; Specifically, large VA/IA arrays and a nicely formed VAO with a geometry shader system for handling matrix weighting/radial basis. No surprises.

2. Textures are still DXT1-5 style blocking, but arranged differently in memory. Uncompressed normal maps.

3. Meshes seemed to average ~10k polygons, and have ~170 bones apiece. Level of complexity requires on-GPU processing; may have special hardware for this, like OpenGL 3.0 or DX 11.

I like the style for this game. Internally, it's fun and NPR; high enough resolution to some really cool animations. It was hard to find a lot of information about it though.

Also, I found out my older ripping technology had a bug; and now all of my models are 100% spot on with weights, which means it's identical to the in game data for just about everything else I have. Which is really neat, now I can learn a whole lot about how Monster Hunter 3 animated their creatures so well, and how poorly some other games did the same thing

It's like having the coolest action figure collection ever!


-Z

2010-06-12

Dream - Flying n' Dragons n Stuff'

Dream 2010-06-12

There was some buildup; apparently something like a generic medieval fantasy plot; some random magical overlord type creature was taking over the generic kingdom and enveloping it in generic darkness and distributing generic dark villains over the generic lands. Generically.
Well, me, mike, reed and zach were armored up to fight these things (These cool black-obsidian armor suits with colored light beams), and went about doing so. Running around the countryside, slaying doom-like demons and monsters with powerful weapons; well eventually we got into a castle, and ran through it mario galaxy style, eventually finding the end boss and kicking his ass easily. As a reward, it dropped this strange silver hang-glider looking apparatus; which, allowed you to glide-fly.
So, you don the thing, and it spreads out like a pair of batwings/batman style. At that point, if you get a good running start, you generate enough lift (somehow) to go airborne, then you hand glide to gather height and momentum. I believe it had some sort of futuristic scram-jet on the back of the unit, because you were propelled quite fast, fast enough you would actually fly (airspeed) even in real life.
Since I happened to be the plane guy, I tried it first. It was amazing.
No dream about generic flying could beat this; I could run, jump and take off into the air, gliding with minimal effort, flapping my wings if necessary for a quick change in course. It was like being a bird, you could soar over landscapes, dive down through rings and even shoot your enemies down while flying. With practice you could gain altitude in any condition as well, so there were no gliding limitations.
Well, we had to go onto level two, so I was designated "dragon-man" because I could fly + shoot plasma via plasma rifle. Level two was much harder, and required some tricky aerial switch throwing, IE dropping bridges and the like to allow the companions time to maneuver over. At this point, things got difficult, and we were forced to split up, I solo, and the other three as a strike force on the ground. I flew on ahead, taking out defenses and barriers from above, fighting some of the larger sky-predators as well. The ground team pressed down into the caverns to destroy the generators powering the evil machines that created force fields and creatures.
Eventually, I got bored of being a human with a flying suit, so I typed in a cheat code and just became a dragon instead. A big red cartoony looking one, was pretty strange. (Kinda, I have a model I made of the exact creature) Technically, no abilities changed, except that shooting plasma/fire was much more powerful and much faster, although I had a shot-cap, so I couldn't fire more than 8 fireballs at a time, like old arcade games.
Being the dragon, I could maneuver in the air way easier, and hover if I needed to, plus gain a free attack bonus on everything I did, and intimidation for lesser enemies. After assaulting the tower, I flew down into the caverns to rejoin my team; turned out they were doing just fine even without flying ability, so when I met up with them they kinda freaked a little, but figured out it was me pretty quickly. (cue mustache gesture)
Then, we tag teamed moving up this complex twisted tower, full of odd gravity puzzles like super mario galaxy, moving blocks, fighting vastly upgraded iron knuckles, hitting switches, fending off mobs, solving puzzles... It had just about everything you like to do in video games, but a flexibility in approach that was unmatched by any. You could kill all the enemies, use the environment to your advantage, negotiate, threaten, or even just slip by unnoticed. There was no set "objective" to complete except the main one, although every decision had consequences. Eventually, after winding up this long tower, we came to an impasse; The only way to go was up, and I couldn't carry anyone thanks to load restrictions (wasn't THAT great of a dragon).
So I grabbed an extra gun, and went upward to fight the boss myself. Turns out, it was some generic lich demon that had no real purpose in taking over the world. I'm sure it explained some crap to me, but I just shot at it instead of wasting time talking. It ran around like the end boss (The Campaigner I think) in the N64 Turok game; Was very hard to hit. Eventually he went down, but then morphed into this giant darkness form; And began the generic projectile-pause-claw swipe-pause-vortex loop of attacking. However I was privy to physical knowledge, it never was able to even hit me in that form, and eventually gave up on it and morphed into it's TRUE form, which was some weird looking alien-dinosaur skeleton with rotted flesh dripping off it (think Odin Sphere's King Gallon). That made the fight hard, since I had trouble determining the weak spot without an obvious bright red heart to pummel. Eventually I gave up because plasma and fire was useless, and just physically tackled the thing and tore it's head off; instantly killing it but making me lose dragon powers and flight wing just like mario when he collides with an enemy.
So there I was, atop the tower splattered with rotted blood, rifle scattered on the ground, darkness turning to light again, and no friends nearby (they can;t get up the tower, lol). I just looked off into the distance wishing I could fly again, because that was freakin awesome.


I was *about* to re-don the flight suit, but then, horror of horrors:

The cat woke me up. I took every measure to prevent this from happening. But it still meowed and woke me up anyways.

$@#^*(#$& Data.

-Z

2010-05-31

Fencing - Problem Solved

4 days of brain bashing of a very complex error to track it down and slay it.

At first, the program would crash if run outside of debug mode.

"Okay, so it must be a memory overrun, and I'm writing past the end of the array, because the debugger puts padding for detection against clobbering memory"; which looks like this:

uchar myarray[ 10 ];
myarray[ 10 ] = 60; //WHOA, myarray holds 10 ELEMENTS, so position 10 is the 11th element.

Often called a fence, I couldn't find it. What was weirder, std::string was throwing errors. std::map was having kittens. and ntdll seemed to vomit all over the floor at this party from hell.

As I burrowed into the code, seething rage ignited; was I being burned by out of date compilers? Was my code wrong? What had I done? What had THEY done wrong?

This project had it all, nested complex templates, deep inheritance heirarchies, large blocks of data and nasty C algorithms. Luckly, most of my (good) code has __debug_regression defined, so I was able to quickly rule out very large segments of code against error with a single look back at passed test dates.

But my mind was going, Dave.

I ignored the fact that if my code worked in debugging, then only the heap allocation method would cause 0xc0000005 errors thanks to ntdll 's nice memory bounding protection (mainly protects it from 0xBAADFOOD but yeah)

So, I eventually upgraded my compiler, my debugger, brought in the help of my custom designed memory heap manager (igtl_MMHeapSystem; I love you, I LOVE YOU! OH GOD YOU'RE SO SEXY MMMMM*codepronz*) and tracked down the offending bug. Hours of poking and prodding landed me with a really surprisingly simple conclusion.

I was off by one.

I'd been accused of being off kilter, off base, and not even on this world, but one? Off by one causes these insanely weird errors? Why did the debugger not detect the stack corruption? Why did the heap manager skip telling me I was writing one integer past my array? Why did absolutely none of the tools find this till I made my own?

Here's why:

When my array was writing past the end of it's detection, it wrote (coincidentally) over the bad food word. But, in the running of the program, that error PROPOGATED until some time later, when the error detection actually scanned memory; because no one in their right mind scans every single memory allocation (super slowness). By the time a scan actually occured, it was too late and bizzaro values had multiplied. But only in a small well contained region. That is, inside of a system dll I don;t have debug points in. Ironically, since the error affected nothing else in MY code, it really screwed up ntdll, and cause it to throw weird errors all over the place.. So, my code was just missing a +1, but the stack was being blow to pieces thanks to trying to protect itself.

Moral of the story?

Make sure to take a nice drink if you run into a hard problem. Usually, it's just something stupid. I use High Gravity Steel Reserve.

-Z

Here's some preliminary results with a nifty 3 instruction toon shader I made: (<3 Mecha Dragon)

2010-05-28

CURSES!

I've been fighting some errors for a while now with my importer code;

Eventually (2 days of brain bashing) I figured this out:

0xC0000005 errors are normal; But they're a good hint into memory over-walking.


Turns out, you can;t do this anymore (used to be able to; I'll figure out the fix):

struct myvec{ float x,y,z; } //Nicely packed struct takes up 12 byts, 3 floats in order.

float myfloats[9] = { 0, 0, 0, 10, 15, 10, -5, -10, 0 };  //Nicely packed float coordinates.

myvec somevecs[3]; //Make some vectors

memcpy( &somevecs[0].x,  &myfloats[0], sizeof(float) * 9 );  //Copy them in!


Before you scream at this; Note that this works perfectly lots of times. Apparently, there are some rare cases you can cause this to break and GDB is helpless in figuring out you just walked passed the save/writable zone in an array. It's really hard to get this kind of thing detected, especially when using pointer casts.

Basically, if you run into a situation in which you find yourself doing this; Please stop and redesign your code so you do not have to do this. Unfortunately, there is no "fast" solution without redesigning some kickass wrappers and C-style code; but if you OOP this, you run into massive overhead and ultra slowdown from all these specialized copy operations; So, what can you do.

In my testing, caching blocks of floats seems to work best, then just forcing your user to slowly copy them into their structures. Although, I don't do that, because I redesign my structure to WORK with a float * internally so this can be as fast as possible and still lexically coherent.

What a $(#@^& problem.

-Z

Here's a picture. .TED files contain a lot of information; Once I clean up this stupid problem I'll post more goodies. By the way, these are models from the PC game "I of the Dragon" because I don;t want to show my models until they look somewhat decent. Obviously, again, I'll never use these; They're only good test sets to play with.

2010-05-14

TED file format; Restricted XML

Ever notice how awful XML documents are?

Well, I upgraded my model exporter from blender to 2.49b; so now, instead of the annoying variety of formats I used to use (obm, arf, brf arf2.0, brf3.0, grf, iRF) I decided to spec out a more logical, easier to understand but far more byte/size inefficient DXML format.

I call it "TED" (Text Extracted Data).

The goal of TED files is to export the maximum usable, useful information out of Blender 2.49b+.
  • This includes Meshes, Armatures, Animations, Objects, Materials, Textures, and some scripting and logic elements. Meshes should contain enough data to be GLSL renderable (IE normals, tangents, uv layers, parameters).
  • TED files must also conform to a very strict file standard, so there will be NO allowed coordinate systems other than the default universal correct system (RHR, +X forward, +Y left, +Z up; This is universal for ALL transforms. Matrices also have a standard definition of Xx Xy Xz Yx Yy Yz Zx Zy Zz where X is the forward axis, Y is the left axis, Z is the up axis. Quaternions follow these definitions as well.) 
  • TED files must be easy to read in; Though they are not (byte) efficient, they should contain "hints" for a loader so it may allocate elements beforehand; for example declaring the number of elements in an array before reading it in. You might notice .TED files can be
  • TED files must maintain a logical and render-system friendly data model; And must encapsulate all data elements; No element can have differing types of data; ergo a tag can store an array of strings, an array of ints, an array of floats, or other tags ONLY.
Why TED files? Because my old exporters did not generate shader code or export tangent vectors. Also, the old exporters somewhat obsfuscated the data, and did not present it in a correct hardware manner; There are fixed graphical paradigms in working with 3D polygonal data; TED files will adhere to them strictly and yet maintain enough data to be edit-friendly.

What TED files should NOT be used for:
  • Final game data (you should convert to your own or local host format)
  • Final Level descriptions (TED files do not provide hashing or optimizations or portals of scenes)
  • Replacing something you already understand (unless it has something you need; just make a converter to convert TED to whatever)
TED files could possibly be placed in direct competition with other formats, such as "OGRE XML", "COLLADA", "Alias Wavefront .obj", "Direct X 8.0 .x" and other such lexical, human readable formats. None of those formats contained all of data I wanted to use, therefore I made .TED files. It would be a trivial exercise to convert FROM TED files to those formats, but the other way around is much more difficult due to those other formats inefficiencies and shortfalls in dealing with hardware level data. Yes, I've used all those formats before, and yes I have used and loaded .3ds, .mshp, .md2 .md5 and many many others. So no, the format you are thinking of also sucks.

I have not made the exporter for 2.5.2 yet because I have been burned many times by blender changing specifications mid-stream on me. Luckily, the ted exporter is written to avoid this as much as possible; but when more alpha versions come out I will snap one in easily. Until then, 2.49b it is.


If I could show you a .TED file I would; but HTML can't understand < > signs.

Have a dragon instead (All credit goes to DragonBlade from the Wii; Obviously I'll never use this model, it just happens to be the first example I picked)


Blender on the left, mingl without GLSL on the right (in-game)

-Z

2009-09-28

Dream blog - New Mexico Bones?

Odd New Mexico Dream

WEll, not like my usual ones that are action oriented with a lot of violence, killing, and superpowerful weaponry. this one had a much stronger emotional feel, touching on some complex areas.

I don't remember how it really began, but a lot of familiar faces from the Palace showed up, and apparently we were somewhere in New Mexico for a festival of some kind. It seemed to be a wine deal, yet there were plenty of activities for the families to participate in, such as rail-carts, carnival games and the regular fair businesses. The palace guys all split up, and I remember messing around with skee ball and some other generic novelties before we met up for some authentic New Mexico chile in the food court. Times were pretty normal seeming, plenty of razzing and videogame discussions.
What was odd though, was that the camera and point of view would be switching from first to third person frequently, and there were two odd characters dressed in 1800 style pinstripe suits and black tophats, looking exactly like corporate fat villians, complete with monocle, white stache and that smug grimace associated with so much pork. Apparently these two kept having heated discussions on some topic, but only appeared in the background as whoever was filming was pretending to be a art student and making really nice framed shots of multiple things at once for a good composition in film.
Anyways, eventually we all got up to this little stadium deal for the rail karts, which was a short series of solid steel tubing and carts that sat on them, just like any old toy rail cars you have seen; Except these were ridable, and people were taking races on them (4 at once could compete) but generally the lightest person would win.
So, after watching them talk about this for a while, I went on the kart thing and so did amanda, we raced, but the jerk giving us the start cue made me lose a lot of time by declaring start before I was even in the cart. But I caught up, popping wheelies on the rails to gain speed coming down hills. But I slowed and let her win; Was pretty fun to have a lot of people cheering for a rigged event.
The camera was also noticing the two tophatters in the front row, constantly speaking to eachother about something that was getting noticeably more grim, people overhearing their conversation looking worried and confused at the pair. Cue montage; And as the camera goes to listen to their conversation and I was dismounting the kart, we see a zoom out of New Mexico and a small story unfolds.
Apparently, there were gold mines in new mexico at some point; And the man on the left (Chesterfield? I can;t remember his name) had been a descendant of the family that founded one of the mines; Now the mines lay in secrecy so that the US government could not track the gold incoming and would basically be a black market deal; The business was run successfully up until Chesters era; His father had always explained that one of the mines was never to be investigated or opened; and declared that any man found entering or exploring the area would be killed on sight. But he explained that he and a buddy snuck up there, assuming that it was to hide the largest gold deposit; And they snuck up there near dusk, and upon entering this small hole in the ground, they saw a extremely heavily boarded and partially caved in mine with no markings at all, and a large supposedly tool shed on the right, the roof was covered in dirt so as to be invisible to aerial spies. Though, the damn fools decided to open the shed in hopes of discovering more about the hidden gold stash.
Well, far be it from my dreams to exclude the paranormal, but inside was a fully assembled dragon skeleton. As stupid and generic as that sounds, it wasn't the fact that a perfectly assembled set of bleached bones was there, or that it looked very menacing, or even that it was a generically creepy setting; There was a completely different feeling, similar to the kind that you get when you know someone is watching you; When you feel a spiderweb drape across your neck even though you weren't moving; And especially that horrible sensation you immediately get when you know something is very very wrong and your life is in grave danger; both boys were not scared; This wasn't anything to be afraid of, yet they instantly whitened from fear. The camera did a nice pano-zoom behind them, and this eerie noise began to creep in as the two freaked out and slammed the shed shut, forgetting to place the lock back on the doors. The noise sounded like the whispers and moans of a thousand dying people, including children.
Snap back to present day times, the two continuing their conversation. However, as I was chatting it up and helping someone's kid get on the go-kart, you could overhear Chester say something to the effect of ìand I'd never seen so much gold in my life!î The other man nods, but immediately everyone in the crowd got that feeling again, looking up and around wondering what was happening and why everyone suddenly got chills.
Without any warning, this deep growly voice emanates from the ground as a large skeleton dragon claw emerges, and pulls up (you obviously guessed it) that same dragon skeleton; with a few aesthetic differences. Mainly, instead of bleached white bones, they were slightly yellow, some with reddish strips in them as if the creature was rebuilding it's body piece by pieces. If you are familiar with the concept of ìlichî think that. It screamed at the men, lifting and staring down the two yelling multiple things in multiple voices, something no living creature can do; ìThat is MY GOLDî ìYou traitors killed your father!î ìlying sleaze bags!î and other random pitched sounds, but the primary voice was well understood. The men got up and both pulled regular saturday specials and fired round after round in to the skull; to no effect.
I, meanwhile, was rapidly moving to scoot the kids away from the rails, but they kept screaming like everyone else. I managed to shuffle them to safety as everyone else seemed to run away. I looked at this monster and arrogantly figured I could take this; Wouldn't be the first dragon skeleton I killed. Well, ìkilledî meaning broken. Just before the beast was about to rend the two to ribbons via claw swipe, I grabbed a rock and baseball bat and hit the rock into it to get it's attention.
Whooops.
It turned to glare on me, full force of it's psychological pressure bearing down on me; But luckily, since I had meet the real ìsatanî face to face before, this was peanuts. I stood there and yelled some generics at it to make myself feel better. ìLeave us alone! Go away!î I felt pretty good about the situation, I had plenty of space to run around in, and a weapon, and this thing was made of brittle bones. If I could get a strike in I'd be okay.
But, the creature was a tad more powerful than your average physical entity; I guess the fact it was a living skeleton should have queued me in on that. IT looked at me, then looked at it's target getting away, then smiled, looking at me again and began to try and crush my spirit. ìYou would lose your own life to save such evil men? You truly are a fool...î It leaned down, and reached out for me. So I bashed one of it's complex wrist bones with the bat, jumping out of the way. It reacted like I had hurt it's wrist, and looked at me again as I retorted. ìIt doesn't matter who, as long as they're people I'll do my best!î
the dragon looked at me with a quizzical, yet mocking glance, smirking as it leaned down and folded it's arms, still mostly in the ground at this point; Stared directly at me, hollow eye sockets suddenly aglow with a dim orangy red light. ìDo your worst.î
I Ran in, and bashed it's skull as hard as I could. The shock rang through my wrist like hitting a concrete pillar, and I knew I was good as dead. The thing didn't even move, no flinch, no crack... and from personal experiments, I know that that hit is good enough to show damage on any material I had ever encountered. But this didn't show any at all... nothing moved. I backed up, and the dragon began pulling itself out of the ground slowly, showing that it was a complete skeleton. I lost it at this point, and began rapidly hitting it's head over and over, backing up, trying to do something to stop it; but it kept it's skull low, and continued glaring at me as I began to run out of ground, it's newly extracted tail whipping about like Ridley's, smashing up the bleachers and rail karts; which had surprisingly been untouched the whole time; I guess whoever made the movie set wasn't sure how long these scenes would take.
I didn't drop the bat, but the dragon finally stood on all fours and shook some dirt off, it had some pieces of flesh clinging to it's thighs and waist, but not much. Oddly, the flesh was complete, not rotting or in disrepair at all, as if it was a complete being that was simply ìnot all hereî. It looked at me with a neutral expression, declaring ìI want your spiritî before snatching a claw at me, which I expertly dodged via a low roll; though, I guess it had other powers because it's other hand came out of the ground and got me.
After being yanked under the ground and back to the surface, which hurt like hell, getting indian burns on your neck, legs, and scalp; it held me in front of it's face, I struggled to get out of it;s grip, but it held on correctly; Just enough to barely suffocate me, not enough to kill me. I wasn't sure at this point what it was trying to do, but I had a strange feeling it wasn't intending to flay me quite yet; Why I wasn't sure, I tried to hurt it, but with zero success. And those bastards that caused this ran away, the chickenshits. I could see police officers running out with shotguns to start blasting this thing, but I doubt they understood what the people were screaming about.
Anyways, without any real warning, the thing opened it's jaws and lowered me legs first into nothing; I mean, it's a goddamn skull, we've all seen the classic ìskeleton drinks wineî gag right? Well, turns out something like this isn't exactly the same, and to my own horror, it had a complete body internally, I could see it but only from certain angles, as if it's outwardly transparent body had disguised it's organs and real muscular tissue.

This part gets a little... squishy, so if you don't want to know, don't continue.

I'm not one to be unfamiliar with dragon gullets; and being swallowed alive and whole was at least thankful, minus the fact that in reality this would be one of the most horrible deaths conceivable; Asphyxiation with an acid bath + being rubbed with grinding stones. Sounds great, right? Fuck people who enjoy that. I hate em. But, lucky for me, as I tried my damndest to escape, but with obviously no success, everything kind of faded out, as if some sort of static field was creeping up my body, eliminating random pieces of existence one at a time. Luckily no pain was perceived, but being dissolved like that instantaneously is rather frightening. And not fun at all.

Well, maybe this part was not squishy. That's ìVore Liteî for ya.

The camera at this point looked as the police began to shoot at the skeleton, doing nothing of course; And the monster obliged them by spitting out my clothes onto the bleachers, which contained my ID and other information they could use to confirm who was lost. The monster then sank into the dirt again, slithering back to where it came, leaving the crowd with a odd event to sort out.
Fast forward to some time later, apparently my funeral was had at the edge of some lake somewhere, there were a lot of people cause my family loves to use family events as excuses to hang out; More power to em.
But, after doing a generic sad walk showing my folks and sister discussing my death, the two men with hats approached them and had a conversation. Skip forward to a large laboratory, in Area 51 style where some scientists were trying to summon that demon; Which is stupid, why would you need to summon it if you knew where it was? Obviously it wasn't going to rest until it's gold hoard was complete again. Jeese, what a stupid cast. Either way, I wasn't dead, I guess the creature could see through people just as good as it could totally destroy people. It's a little hard to explain, but it ìsharedî it's existence with me, basically absorbing the essence of what I was including my physical state and other attributes; Much like Raesir can do, only not as good. So, it and I had a lot of talks, and I grew to respect this demon; It had a lot of personality and stories to share; It led quite a sad life, something like Snake from MGS.
Anyways, we kinda ghosted up to the lab to watch and make fun of these losers trying to understand something they can't, simply because they didn't have enough materials to make a judgment call on what to do. Science always works because of the repeatability and applicability of tests; That's why you can trust it; You can prove a lot about gravity anywhere on the earth, just as you can basic newtonian physics. The more we know the more we are allowed to construct new hypothesis and test them. But anyways, being a part of another organism is kinda like being a satellite for a spaceship in a video game; You don't really get to leave ever, but you do get to hover around your owner. It also turned out that every single person that this dragon had eaten during it's lifetime was inside it, so there was a plentiful hoard of people there, that spoke some language I couldn't understand well at all, but eventually could figure out. Kinda 13th Warrior-ish.
So, we watched them try and built a primitive particle accelerator in order to create a channel for the thing to appear in. I suggested to the dragon that we should make it electrocute that fat guy, but he declined. He would get his dues, that tophat motherfucker. But it did let me go over and whisper at my folks this was bullshit and they should leave asap. Maybe Kelly is right, and ghost powers are awesome...

Alarm goes off. Groggily wake up, glad to be alive again.

Of curious note was the overlay of the map of new mexico; I need to draw it and figure out where it was located; If it does exist it would be a interesting trip to go there, although I must say that there are some seriously scary things out there in this world that do require lots of explaining. Dragon skeleton was really cool though.

2009-08-16

Pics, as stated

One, we have the lovely 'Ryuou' / 'Valgirt' from Dragon Quest Swords (11k poly, 272 bones):



Two, we have the awesome robotic 'Kiryu' / 'Mechagodzilla' from Godzilla: Unleashed (6k poly, 69 bones):



These pic's don't show much except that the importing is pretty near flawless into blender, including weights and other nifty things.

Side note, I'm using the GLSL display option in blender, and have a script that converts I8A8 normal maps into RGB = XYZ normal maps, so that blender can use them in the shaders it has. Also, the light setup is a new one I'm experimenting with, that has two hemispherical lights always 180 degrees apart, but only one is applying specular components. It is similar to a ambient light, but seems to be a little nicer. Once I finish my CIE Lighting model shader, I'll try making that mess happen.

And, of course, both of these models are copyrighted to their respective owners. Go buy the damn game(1)(2) if you want them yourself!

-Z

2009-04-28

Dream; A Better Japan

I went to japan with Brien an John.

But this wasn't old or new japan, this was Eden japan.

After we got out of our plane, and walked into the airport terminal, it was obvious that Japan was no longer like it's former self; they had mastered use of space and eliminated building ridiculous amounts of structures for ridiculous amounts of people. All of the advertising nonsense had gone away, the airport was very small, because it only needed to have the airstrip large.
So we take a walk instead of taking a taxi or bus, and walk right into the middle of this city, that, unlike current japan, isn't full of skyscrapers and people congestion, but rather a very clear air to the place, no trash anywhere, the density of the population was reduced heavily, there were trees, parks, and lots of green things all over the place.

Interestingly, we get to walk by this water park thing on the corner, near the ocean. This part of the dream more or less catered to my interests, so skip if you want. There was this large quarter circle wave pool, at least 200 some feet radius, and in the middle it had this pretty awesome water slide, which was naturally decorated like any typical asian dragon should be. The only interesting mechanical aspect was the slide was tethered and stable, so it could actually move around, which changed the slide as you were sliding, kinda a cool design, made it pretty intimidating, though the graphics were cute and funny, so it wasn't too terrifying. The way it moved was unusually organic though, and like all waterslides of this type, you start at the tail and come out the mouth. I asked a local about this craziness, and they pointed to a holo-prompter, which played a little holographic video detailing the history (faked) of the slide itself. Apparently, back a long time ago, there was some great conflict over this portion of the sea, and two warring families were causing so much bloodshed, that it angered one of the great dragons enough to come and destroy the commanding officers (this is accompanied by a nifty animation where the slide morphs into it's real form and devours all the warriors at that point in time, yay.) before settling down into the form you see now. Knowing that transformation ideals weren't uncommon in japan, I dismissed this mess and moved on, so we walked toward the city again.

On first glance, we get to see that most of the buildings aren't much taller than 14 or so floors, and appear to be made of bricks and glass, adhering to earthen tones and less harsh colors. There were hardly any steel buildings to be found, and every mile there was at least 2 acres devoted to a green park, where most of the people were milling about, talking, or, as the case was, riding the little carnival rides and buying stuff from street vendors. It looked in spirit a lot like the first part of chrono trigger, really. In either case, we were trying to find where Elena was, and we wandered onto the highschool campus, which had some very ominous prison like brick buildings, with darkened glass. School was always in session, and their highschool was not just that, but also a university, implying that education could be learned on a college level if you so desired. The campus had a few buildings too, and spanned a good chunk of space, with plenty of park inbetween it, much like OU's mall areas, but much greener and more well maintained, which is easier for a place that doesn't have the kind of weather we do.
So after talking about the high school, we began to walk toward main street and all the commotion, nothing much fantastic happening yet, there was a giant ferris wheel in the middle of the town and some sort of festival going on, with generic fair foods and booths, people were in general having a great time; so we got some sake and joined up. Although, the japanese people were different this time, they would make eye contact and greet, though I believe this is a function of alcohol rather than culture.
Eventually, after walking around this city for a bit, we found the building we were looking for, and the camera is forced to undergo a fade till we arrive at scott's new lab, which is larger than his current one but still just as messy. We talk to him for a while, and hang out talking about some disease that had occurred, as if there had already been a life cleansing tragedy that occurred naturally, and he remembered he had a time capsule somewhere in the ceiling (raised ceiling) so that the government wouldn't find and destroy it; Apparently the japanese government destroyed their history in order to maintain order or something stupid like that. So we much around trying to find his box, a maintenance guy comes over and asks what we're trying to do, scott makes up an unbelievable lie, the guy doesn't care, and tells us he'll do what he can. About this time the alarm goes off, so that ended that.

Nothing fantastic happened in this dream, it was pretty tame, not much more than a elated feeling of walking around this happier, more dense world. I think what really struck me was the cleanliness, things weren't like in america where we sacrifice our planet for speed and profit, it was emphasized with nature, temporary materials were all rice paper variants, there was no trash at all anywhere, all of the greenery was well maintained and practical rather than just looking pretty, sporting herbs, air cleaners, fresh smelling flowers and fruit trees. All of this would have failed if the people have been fucking it up, as they usually do, but that didn't happen here. Something had these people trained, or no longer living in fear. I'd like to believe it was that waterslide.

2009-04-22

Brawl models and dream

Man, I burned myself out yesterday trying to figure out textures.

As a result, I haven't slept well since I started this, I keep having crazy dreams, and I was able to remember most of this one:

Dream was odd.
I remember going through a 1st/3rd person shooter where there were unusual zombies, not like normal zombies but something more similar to crazy possessed demon people. I remember one room I got too where I kept getting killed, it was a large room, with a small cubby on one side of it and had a stairway at the back, but to the side of that stairway was a small windowed room with metal walls, and a sealed metal door where the special weapon I was supposed to get was. The entire look ot the scene was dark and grimy, like RE5, but better looking. The lighting was sometimes dynamic, but the walls dripped with rust and grime, as if there had been blood but it dried. The smell was bad too, though I think was was psychologically imposed via my imagination. So I ran pas this guy in a plaid shirt with a large broken pipe, who was some crazy lumberjack like dude, and past this other kid with the typical NY punk ass look who had a knife, got into the room, grabbed this special weapon, but when I did, those two turned into these much larger bug mutant monsters, walking with reversed legs from their back and having 4 spindly ones in front with gnashing teeth and large red eyes. Not particularly scary or anything, but they were really fast and had a sort of mantis mentality, if they got close to you, their legs snapped out and yanked you into their jaws for a kill bite. Not much you could do there, but this special weapon was a wired plasma arc discharger, think of it like a gun that can shoot chainsaws. It was very effective, but you had only milliseconds to get off two EXACT shots to kill these bugs before you had to exactly run upstairs and barricade the door, which saved, then you turned around and blasted more human zombies and some ceiling bugs.
Of course, sinec it took me enough tries to get past that room (There were lots more before it, somewhat like a Super Half-life or something) the dream took a different turn, and I noticed I was in a restaurant. I ran through hit the first time though, noticing that there were odd pictures on the walls, but after I had ran through it, I found a pool of survivors, who, weirdly enough, were all the buddies I knew from Eka's, even some of them I had never met in real life. That stuck me as odd, and apparently there was some sort of crazy furry convention or something going on and they just happened to congregate there. I talked to them for a moment or two, being slightly blood splattered and worn from intense combat. Two of the wanted to help, but they had no weapons, so I had them go get some while the safe room music queued. I went back to the restaurant and it clicked; Apparently, the wall pictures were of a toon-Kami, which immediately raised my mental threat level to max, at least until I saw Ted sitting at a table with two other people I knew. I went over and sat down, and we had some sort of funny conversation about the restaurant, it kinda looked like a Captain D's which was equally ironic. The information I gathered there wasn't too useful, but it was greatly entertaining.
After a few drinks, I went back to the convention, and it was, of course, empty, they didn't make it. There were much stronger bug monsters, some that could fly, and I said 'aw fuck it' and saved the game and went back to the restaurant to get some food. Needless to say, in that particular establishment that's not exactly how it works, but goddamnit I tried.

I can't seem to remember too much of it, I've had long strings of dreams lately that involve me missing my good friends a lot, mostly goathouse members and lots and lots of drinking involved. I conclude that I must be severely depressed, and I can't blame me for that.
I guess you can't really be friends until you've seen the fires of hell as a team, eh?


Update on the format converter; Still trying to sort out textures, but guess what? Blender doesn't like the 394 material MetalGearRex model because it can only handle 16! So f***.

Here's a stupid screenshot with MetaRidely, King K. Rool, Mario, Luigi, Peach, and Link.

Sortof.



For those of you that care, I'm still getting the hang of the transforms down; They don't seem as bad as figuring out how to find which textures and which blending modes to use. Obviously it's a snap to manually assign textures, but this should do most of the job for us, right? I do seem to have the polygon data down perfectly, I am not trying to get any particular model, just reverse engineering their format so I can improve my own. It's bizzare, there is no good reason I can think of why this file needs to be this complex. You can do the same thing or better with a GRF/BRF setup, or hell, any other normal linear file. Honestly the only complex thing WOULD be the materials, and that's what I'm having trouble with...

Also as a side note, blender's bone system is SHIT, because you cannot have zero length bones or infinite length bones. Come to think of it, hardware only uses matrices, so what the hell DOES a bone have length for?!?! This is very very stupid, as the convention makes no sense for any real application. Obviously you can display bones as octohedrons in reverse child->parent mode. This is trivial to do and would eliminate this horrid 'length' idea. Also, why the fuck is bone space so bizzare? What ever happened to consistent in +X forward, +Y left, +Z up? I really miss that idea, since it's correct for the hardware and avoids any confusion if it's all the same.

I don't think I'll ever stop being amazed that the more you know about something, the more flaws you can find.

! Oh shit, an icecream truck! GTG save it!

2009-04-19

Super Smash Bros Brawl model format

So I have been exploring Brawl.

I've learned a little more about constructing armatured models, this is primarily useful for my art team in assisting their understanding of how professional projects handle their game media. Using references is extremely informative when you create your own models, as you get to learn from others mistakes more quickly, and see new ways to make special joints and features.

I'm doing this out of pure academic interest, as I found out there is not much difference between this and the melee formats. I hacked both, but brawl models in general look better.

So here's the Ridley Trophy in Blender, definitely not something desirable to wake up to:



And yeah, I still have that awesome little plastic Ridley figurine that Kelly let me have. He's quite happy guarding my desk!

Peace!

-Z

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-02-03

Well, goddamnit!

Well. I still am having a hell of a time getting my GRF exporter to cooperate.

For some reason, it works fine for models with less than 24 bones. However, models that have more than that (all of mine do) it screws up something with the vertex data, or maybe the bones, because suddenly, and irrationally, the bone groups dissociate and the neck will move when you bend the tail.

I'm at a loss here, as I've checked the algorithms a hundred times, checked and verified the DATA ITSELF, so that I know that the bones are correct, faces, everything is correct... checked the C++ code, which reads it EXACTLY as the file, so I know the C code works since it is general case... so, where is the error?

My guess is it lies inside of python somewhere.

Maybe a stupid screenshot will cheer me up:

Whoopee... old school poser models. yay.

Also, I have the fragment program and vertex program working fine. Tested, verified, fun to play with and easy to work with. I'll be much happier when I can GLSL this mess, although these programs are just about as fast as it can get, so not much reason to yet.

Blender is cooperating fine, I've had no problems from it, aside from this list of annoyances:
1. No bone weight keyframes available, I need to be able to save weights in vertex groups as a keyframe
2. No UV keyframes available, I need to be able to save UV layer keyframes
3. Actions are not tied to anything, and they are still difficult to use for making a movie, most people just use the 'one large action' to do it. Make actions work like actions, not scene animations. Make the NLA mean something, dammit.
4. No support for mesh keyframe animations that makes sense. Why can't I just IPO a list of keyframes, instead of making 1 ipo for each keyframe (which is hell without a script, by the way)
5. More materials. I need more than 16 materials. try 127? or 255?
6. Much improved curve support. I should be able to hook curve verticies ONTO anything, like armatures and objects and verticies, without having to use the vertex hook <-> empty <-> curve thing.

and so on.

Hopefully I can get this $@#*( problem solved. This isn't a specialized problem, it's general, so it works for any matrix-palette system, including the coveted iPhone, PS3, and the PC.

Peace folks,

-Z

2008-07-06

More Adventure Nonsense

Well, I was sick and got bit by a pretty nasty spider (brown recluse most likely), so I was sick all this week. And still am, a bit.

But! It gave me a lot of time to acquaint myself with my porcelain god, and contemplate my career decisions. In fact, if a little bitty itsy teensy spider can kill me, I might as well do what I like. So I'm changing jobs.

On the other note, I certainly played with the blender game engine a whole lot, trying a lot of things, until I remembered I'd better look at the sourcecode to make sure I wasn't shooting myself in the foot with a shotgun. Turns out, I was, and "reinstancePhysicsMesh" from the python docs for the blender game engine does this:

void * reinstancePhysicsMesh(){
return 0; //Oh yeah, we didn't implement this. Who uses this anyways?
}

Needless to say, I was a little miffed, but I'll write a patch and submit it. I'm probably the only wingnut who wants to make a model and a low polygon shell so I can put other physical objects on/in/around it (making a 3D adventure transition a little less painful...)

Either way, I'll be using my temp server to post content. Here's a screenshot of the original Adventure maze traced out, (thanks Warren Robinett!) along with the current (revision 6) of the game itself. Yes, the dragon is quite animated, but I'm redoing how I handle everything to make it much more flexible. ...(link removed 2009-11)


 Peace out!

-ImaginaryZ