Virtually an Unreality

22 08 2008

One of the biggest disappointments of my rise into adulthood was the lack of spread in Virtual Reality. I was, and still am, an avid technophile for all things virtual. I owned Edimensional 3D glasses when they first came out, and was sure, you know, just sure that Sony, or Microsoft, or Nintendo would bring me the virtual reality experience I desire. So far though? Utterly disappointed!

The state of Virtual Reality today is not all that different from where it was a few years ago. It’s used by the military and medical, or for expensive boondogles at companies like sony. There is no use of Virtual Reality in a consumer level entertainment product… Period.

Now, don’t get me wrong, I’m loving the direction that  video game consoles are moving in. We have the Wii demonstrating that tracked control mechanisms are truly a wondrous input system and the PS3 showing (in Eye of Judgment) that interacting with real objects to effect virtual environments (the game world) is a lot of fun too! Now add to that the impressive rendition capabilities of the PS3 and Xbox360 and I’m thinking, Bring on the 3D displays!…. or not.

You see that’s the whole issue. While 3D is so cool, it’s really still at the level of a gimmick. You can’t get a display that looks realistic and doesn’t cause headaches at a user level.. period. Caves are becoming more and more popular, but only amongst enthusiasts.. I mean really, caves take up a LOT of space, essentially you’re building your own low tech holodeck and even if you do that, you need software that will run in a cave environment, and don’t expect to get that from the major game makers, as a matter of fact, the only ones that are available are homebrewn mods of major software titles like panoramic unreal tournament and cave quake.

So, I sit here, frustrated that I can’t play with the toys of the future. Who knows, maybe I can start a trend.. I just need to invent a head mounted 3D display which is ultra clear , smaller than the lens of a pair of eye glasses, and lighter too. No problem right?

Some day, we will be visiting each-other across the world in Virtual Reality, until then, I’ll just keep playing Eye of Judgment.



Working toward a solution

22 08 2008

I’m currently in the midst of so many different efforts that it was amazing to me how freeing it felt to spend an hour off at lunch today. Lately I’ve been skipping lunch, or working while eating, and then working on other projects as soon as my day’s work schedule is complete. In essence I have been working and when I’m not working I’m supporting my company, and when I’m not doing that I’ve been entertaining guests, and when I’m not doing that I’m drained to the point where watching TV is about all I can do mentally.

Today I decided to do something different. My wife is out of the house with my nieces going shopping and doing “girl stuff” so I tossed some egg-rolls in the microwave, and sat down to work on a hobby project while watching a really bad scifi/action/super hero movie (Blade Trinity anyone?).  Having only watched for an hour I can already say that it has markedly improved my mood. I’m getting back to work now, but the break definately lifted my spirits.

Hope you’re all going to take some time for yourselves as well.

-AG Strout



Managing Classes

19 08 2008

In AS3 one of the biggest benefits is the increased ability to manage classes. Quite literally you can manage classes as Class type objects. I do find the Class type to be a little restricted from a lot of the functionality one might want. For example, why can’t you get the class path from a Class object?

That aside, being able to pull classes out of a loaded SWF has great potential. There are many ways you can use this to your advantage such as loading fonts, something which was infinitely more difficult in AS2. The ApplicationDomain class is the key to this, and I suggest anyone aspiring to work in AS3 take a thorough look at it.



Omniture.. I hate you

18 08 2008

I rarely make a post just to complain, especially about a technology, so believe me when I say that Omniture deserves my ire. Omniture or Site Catalyst depending on how you label it is one of the worst tracking utilities ever for JavaScript and is even worse for Flash. My biggest problem with it? The total lack of planning when creating the interface. Essentially Omniture offers a single “Page Name” and about 26 (twenty six) numbered variables.. that’s right, numbered.

Now…. I’ve been working in programming unofficially for about nineteen years. In that time I’ve seen all of the development of major programming language, from machine language to ASM, to BASIC, to Pascal, to C/C++ and on to Java, Ecma, Etc. In that time the transition has been away from enumeration and toward abstraction, in that sense Omniture fails miserably. Essentially it requires the user to have a sort of table of contents to describe what the properties on the call “mean” worse yet, rather than passing an object to a method that makes the call, the properties persist from call to call, so if you set a property for one, but don’t set any for another, the property will still be there when the next call is made. This can lead to a lot of confusion especially if setting a property is contingent on some state. For example, if you only set sprop1 to “yes” when the user holds the letter P while clicking a link (forget practical application for a second) The user can click a link while holding P, and when they click on the next link, the same tracking will occur.

In short, if Omniture wants to compete it needs to do a couple of things.

A : Make each call unitary, don’t allow any information to programmatically persist between calls unless the user explicitly does this themselves.

B: Use the object structure to pass custom properties. This allows the user to create their own properties or pass no properties at all (this is a big inefficiency in Omniture’s current system)

C: Create a REAL SWC library for Flash with stub classes. Let calls be made entirely in flash in a purely programmatic fashion without the need for the ExternalInterface being available, and without the need to place a component on the stage, or export a component in the library. Components have a purpose, to package a User Interface with a code package. Omniture has no user interface so having a component is extremely illogical, except to provide an easy way for non-programmers to add tracking to their Flash.



AS3 CS3 Symbol class definitions

22 06 2008

I was unaware until a couple of days ago that in your export settings for an AS3 flash file you can actually specify a nonexistent class-name and a custom class to extend. I’d been using concrete classes for the export class, and when doing this flash will error if you put a custom class in the “extends” box. If you put a nonexistent class name as the export, you can extend anything.



Legends of Gaeth

25 03 2008



In case some of you have been wondering where I’ve been and why there have not been more posts from me regarding AS3 type stuff. The company my wife and I operate has been gearing up for the release of our first internet TV series, “Legends Of Gaeth”. The trailer, of course, is above. You can check it out on YouTube, or visit www.stroutsink.com for more information, and a lot of fun games.

-AGStrout



My Bad - BulkLoader Fix Update

14 01 2008

I was corrected by a few of the members of the FDT forum that the second correction line should really read differently. My assumption that since Array() had been changed to behave like a constructor regardless of if a “new” operator preceded it, was incorrect. Therefore the line should read as follows:

var res : * = item.content as type;

This is less useful than the previous version of the declaration which was intended to cause a casting error in the flash player if there was a problem. The line above won’t do that, but if you follow it by a line like:

if(res==null) trace(”Error in casting content to the identified class type in BulkLoader”);

You should be golden in most cases. That is, if you really must have an error thrown.

-AG Strout



BulkLoader Fix for FDT3 users

8 01 2008

I’ve been using FDT3 since it came out in beta and have found it to be such a helpful tool that I wouldn’t dream of working without it. Recently on one of my projects I started using the BulkLoader package from GoogleCode which is a very nice package (though the coding style is far different from my own). The first thing I noticed when I started using it was that I instantly had 83 new errors in my “problems” queue… hurrah.

After scouring the internet for a solution I finally found a reasonably accurate description of the main problem on the google code ticket for the problem. Unfortunately, rather than considering a few -MINOR- changes to the BulkLoader code it would seem that the thought is to wait until FDT3 receives an update which allows for the (albeit odd) syntax used in BulkLoader. I didn’t want to wait and so I fixed it myself. Here’s a list of the changes needed to make it useable under FDT without errors. This won’t remove the warnings, I’ll leave that to all of you :).

On line 201-207 of LoadingItem.as remove all of the quotation marks. These lines should now look like so:

private static var classes : Object= {
loader: Loader,
xml: URLLoader,
video:NetConnection,
sound: Sound,
text: URLLoader
};

In line 958 of BulkLoader.as add a “new” before “type”. This is better practice in my opinion anyway. I personally find the change of ClassName(statement) from a casting role into an implied constructor very annoying! Should look like:

var res : * = new type(item.content);

With these changes made your FDT3 install should now find no errors in BulkLoader, allowing you to use it in your code without getting even more residual errors.

Let me know if anyone has any thoughts.



TOTT 2: AS2, And Dashed Lines

7 11 2007

ActionScript 2, my old friend, I’ve been ever so very happy to move on to AS3, but before I do that, I though I’d take note of the fact that even though I love AS3, a good portion of my web work is still done in AS2. As such I’ve had to create a couple of things to help AS2 out. One of those things is a little method I created for drawing dashed lines. Now, it may not seem like much, but it can be pretty difficult to draw a dashed line in AS2 because despite the fact that the IDE lets you drop down dashed lines like there’s no tomorrow, there is no way to create them in code. As such, I’ve created this little method I like to call dashedLineTo, and to make way for future additions to my arsenal of AS2 code for drawing functions, I’ve wrapped it in a class as a static method.

It can be pretty handy to understand the math behind this too, as it’s very useful for creating things like homing missiles in video games, and whatnot.


/**
* com.ssink.utils.GraphicsUtil
* @author Arne G Strout
* Created : Nov 7, 2007
* Description : Simple methods for performing drawing which is not readily available
* from within the AS2 api as distributed by Macromedia / Adobe
* Usage : Simply call the static methods on the class.
* import com.ssink.utils.GraphicsUtil;
* GraphicsUtil.dashTo();
*/
class com.ssink.utils.GraphicsUtil {
public static function dashedLineTo(
m:MovieClip,
xa:Number,
ya:Number,
xb:Number,
yb:Number,
space:Number,
dot:Number
):Void{
if(!space)space=5;
if(!dot)dot=3;
if(dot>space)dot=space-1;
m.moveTo(xa,ya);
var dx:Number=Math.abs(xa-xb);
var dy:Number=Math.abs(ya-yb);
var d:Number=Math.sqrt(dx*dx+dy*dy);
var ax:Number=dx/d;
var ay:Number=dy/d;
for(var i:Number=0;i+space<=d;i+=space){
m.moveTo(xa+i*ax,ya+i*ay);
m.lineTo(xa+(i+dot)*ax,ya+(i+dot)*ay);
}
}
}



Gamer Programmer’s Log

6 11 2007

Star-date 11/6/07: Just completed Metroid Prime Corruption

Here are my thoughts on Nintendo’s latest smash hit release for the Wii.

Metroid Prime Corruption (AKA Metroid Prime 3) worked much in the same way that the previous titles did for the Game Cube. The mechanics are almost identical to Metroid Prime 2: Echoes, which is one of the best games made for the Game Cube. However, it would seem to me that there were a few things that the great minds at the big N seem to have overlooked, and with passion.

Firstly, the Metroid Prime series is an expansion of the original Metroid series and as such, there is a lot of tribute paid to the original. All in all, this is great for people who, like me, have played all of them (guilty of not completing the original for the NES though). However, it seems to come at somewhat of a cost. Some of the characters from the old series are thrown in (like Ridley, for the fifth time) in such a way that they don’t really make an impact. Now, the first appearance of Ridley in the game (what I like to call the tunnel fight) is awe inspiring, but the last appearance is so similar to other battles you’ve had that you don’t really give it much thought. To illustrate my point, Omega Ridley (his last form) is the same as the Metroid Hatcher (shoot something to reveal a weak point, use the grapple to expose said weak point, shoot said weak point) which is the same as the final boss, which is the same as about four other bosses in the game. At some point I find myself wondering what happened to the spider ball battle in the second game, or crushing your enemies under things etc.

If you want to look for original concepts for boss battles, I’d look at God of War.

Now that may have just been me being a retrogamer and feeling somehow hurt on Ridley’s behalf Ha, but there are a few places where the game gets it wrong.

Firstly, the game designers were in it for a quick buck, they wanted a game that could ship quickly despite having a massive amount of content. Almost all of Metroid Prime is exploration, and so the massive environment models probably took up most of the time during development. When all is said and done though, Metroid Prime is really very lacking in some blatant areas. There are three seeds that must be killed, and rather than having a uniqueness to each, the end of each seed battle is exactly the same. Samus gets overwhelmed by phason from defeating the “boss” in the seed, then the seed’s “Head” comes through the roof, and Samus can then release this phason to destroy it rather than being corrupted (Why the other hunters in the game couldn’t? Who knows).

A lot of the exploration, just like the previous game, is to find items. The designers made the mistake (again) of not diversifying the items. Almost the entire exploration experience is to pick up a missile tank or energy tank. Given the limited use of Missiles in this game (metroids can dodge them for example, and most of the later bosses/enemies are impervious practically) after about 50 missiles, you don’t really need anymore. Nonetheless, 250 are hidden throughout the game, and since each missile tank only holds five missiles.. well you get the picture. The energy tanks have obvious uses, but at the end of the game, when you fight the boss, your energy tanks are eliminated, making your scouring the face of every planet for them a bit less than effective. Mostly, I think gamers end up finding them all to get the game’s best ending (which I haven’t seen yet, but can probably find a video of on YouTube to save myself 10 hours).

Achievement points were also a big let down. In MP3, there are a lot of ways to earn extra points that accumulate. Unfortunately the game doesn’t seem to have a feature to allow you to -DO- anything with these points. They just pile up, kind of like a score. Personally, I think giving the users something they can do with the points, like unlock models in a model viewer even, or interviews with the crew who worked on it, even if they’re subtitled, would be great.

The main letdown for me though, was the lack of an “OMFG!” weapon or item. Every single weapon in the game except the missile is a beam, and they’re all practically the same beam. There’s a “Lightning Ball” proximity attack for samus in her morph ball mode, but to use it you have to expend your life force. By the end of the game, you’re left wondering if the creators are ever going to come up with another idea for a weapon (like .. oh, a FLIGHT SUIT?). The majority of the items are throwbacks to earlier games. You have the morph ball, bomb, boost ball, spider ball, varia suit (under a different name), missile, super missile, swarm missile, space jump, grapple beam, etc. All in all, Samus seems to have been downgraded as most of her most powerfull attacks actually spend LIFE, and are not accessible until the end of the game without dumping an entire sub-tank to start. - an entire subtank! - worse yet, when in the “hyper mode” you will begin to go corrupt if you don’t switch out within five or so seconds, and that, of course , can kill you.

What did they do right though, because there is a lot to learn about design from this game.

The use of Samus’ ship to allow the player to jump from area to area without needing to -WALK-. In fact I would say I’m very annoyed that the game doesn’t let you call down a “pickup” from any place with an open ceiling. In the original Prime, for example, you have to go everywhere on foot EVERYWHERE, so the endless walking from place to place to pick up this or that item is extremely tedious. The use of the ship was great, but of course leaves the player feeling a bit upset that they’re never allowed to control the ship and go take down space pirate ships starfox style.  Still, the ship added a lot of strategy (it has a grappling hook , and can do bombing runs) to the game that wasn’t otherwise going to be there, and broke up the monotony of trolling through the stages looking for spider rails and what not to get the next item.

As with all Metroid Prime games, I would say, for a 100% game, use a guide.. it’s going to make it a lot more fun, and take a lot less time.

19 hours - 97%






ameoba 2ky maxxim riptides 97-7 penta paroxysm allpoetry rifles bootvis fotolog cinnamon zodiak a-fib 19young torn starlix bsi transpiration cockapoo ringworld heli cribs pawlowski rooter mojitos troma fondant gloc-9 thiomucase pronovias longchamp trigosamine dessin girlie narus tormovies photo50 in-n-out ricami strat inrs infringement enchantment sobibor vagisil on4khg tennessean benzene roto minou bodybuilder amitriptylin retinue heartsong bloover homebound adeco pocketbook phaedra copes chiclids megaspider ronaldiniho blackjack jumpsoles shisha philodendrum deeann ladyhawke ferruzzi onesource justification randstand bago niaaa roadkill berm ekklesia rosiglitazone paho bartok wfsxpress mastitis windshields vitesse persing eopinion exiles interventions otan wickcade miscanthus vendex peopleware mindfreak hypersensitivity far_east_media nouvel spambots pheresis itar serco methylone polypropolene weigel pixmania thevenard canopy coctail cotyledon batch polybriteled smartdrive credit graders pushing cruchfeild portmanteau boathouse aquascapes rote baptist dull brahman storytelling furosemide conkers andron landa awia zonegran snk economy peckers oldsmobile hosa aspirator grec erolog rhinothumbs michal nudies sportka faca superbikes perduretas kosice chilitech met-art dr-laura complicated hydrophobia hepatica pyrazole andrew kartika jedmics protest issch dunks dunoon dependent brydon ohsone snagglepuss rus birdguides necronomicon malecamp sarcoinc buproban intermec altay kirsch buzzlighter abdlsk 1970-1979 lycophyta silvertown mkeonline eqao oxidation trilobites banality peggy blind snurf mmbop toyger nfcu acoustic barbwirex hermorphadite abes sena perm-a-mulch dreamfields[Thu, 21 Aug 08 01:40:13 +0000]