2008-07-12

Hacking And GUtil

So, I find out after playing with the Blender Game Engine, that no matter how long I fight with it, I cannot get past it's harsh limitations. So, I decided that there must be a better way to win against this. Now, this isn't to say that with a hammer you can smash a piece of rock into something like a statue, but I prefer when a computer and LASER CAD system can cut it for me and I don't have to get out of my chair.

Enter GUtil (Game Utilities), where I started in the game engine, knowing it was lacking a large amount of fundamental vector mathematics, matrix mathematics, and all the normal utilities used. I should go in and fix all this, but that's for later. GUtil provides these, just coded in Python (gag) and wrapping a lot of the functionality. For example, you cannot add or delete objects in the game engine. This is normally done by adding a property, and sticking it on an actuator that goes to a "EndObject" controller. GUtil demands you place specific objects in certain layers (which you pick), so that on the game startup, it can automatically load, link, sync and run the game as you wish. It isn't like a "game engine" because it wraps basic functionality (BGE isn't a game engine either, so you know) with higher level commands, and allows you the lower level access to direct BGE functions.

Most importantly, it makes making a game much easier, and flow WAY better than "hacking it out" with common brute force techniques. Some nice things it supports, like armature positions and rotations (including specific bone rotations), animation controllers, adding and deleting anything, spawning and saving, and some basic color and environment details (maybe shaders, working on it!) as well as a multitude of code features for putting whatever you want together!

So, GUtil is a silly project, I'll just do it in C++ myself, and save the python time for when I make exporters.

In other news, I again downloaded some crazy games from TatsuSoft. If it wasn't for them, I probably would never have gotten into Electrical Engineering, game programming, or my job and career. I just hope they don't get any funny ideas about payback... or maybe that is a good thing?

Either way! I always wanted to Hack into Multimedia Fusion files. Ever since I was able to steal the models and textures from Super Smash Brothers Melee and Pokemon XD, as well as Colosseum, I figured I could give this a shot since it would be nowhere near as hard. (Yes, that's right. You can steal 3D model data from the gamecube. It's not easy though.) Turns out I was completely right. (most data was either direct PCM audio, or embedded files, like MIDI. Graphics were simply scanline alpha-plane raster uncompressed images...)

Basically, the process would go like this: (from Goats n' Goblins)
  • INGAME: You play the game or find something you would like to steal/examine
  • HEXEDIT: You open the original game data in a hex editor, and apply all your knowledge of hacking, binary coding, programming, and logic to deduce what it means (requires a degree), and then write a program to interpret it.
  • RESULTS: Then, you sit back and sift through the images, sounds, music, and other data you get!

Now, for those of you freaking out right now about the fact that digital information is never secure, remember I do this for educational purposes, specifically, in order to further increase my own security protocols. It is sometimes very handy to learn by example, although I find more things NOT to do rather than advice in my hacking adventures.

Some notes about this, if you want or are interested in hacking, stealing this kind of information, or other ILLEGAL activities, the information will never be public; do not bother me unless you are also doing this for your own benefit (or just curious). The resultant data obtained from stealing should not be shared as it violates copyrights held by original media creators.

However, all code, algorithms and technology should be public knowledge, so knowing how to steal is different from actually doing so. (Content should be the only thing copyrighted)

As a result, go download Code::Blocks and learn C++ for free, legally, and begin your own game programming career!

Peace out.

-Imaginary Z

No comments: