Monday, February 1, 2010

The Future of Manned Space Travel

Most people who think they know me are going to be surprised by this:

Bravo to President Obama and the administrators at NASA for the new direction they are now taking!

Now, some advice: Take it further!

The manned space program is a waste of time and money.

Hey, I'm a Trekkie. I want to see people in space, but for the time being there's really no good reason to have us there. All we're doing is farting around in low orbit the same way we've been doing for the last half century. We're not really learning anything anything any more. All the great scientific discoveries that NASA has made in that time have been made by unmanned spacecraft.

Sorry. I know I'm bringing down some serious hate on myself, but going into space just for the sake of going into space is a frivolous waste of money.

NASA's concentration needs to focus on exploration and scientific discovery. Technology being what it is just now the best way to do this is to concentrate on development and deployment of unmanned probes. We can't continue to support manned space flight when that same money could launch 10 unmanned probes, especially when each probe will generate far more scientific data. If 90% of unmanned probes failed, crashing into the sun or spinning off into space, the program would still provide more valuable scientific data than an equally financed manned program.

Down the road, as technology improves and space travel becomes safer and cheaper it will also become more practical, but we're a long way from the type of engineering leaps that will make manned space exploration competitive with unmanned probes, or commercial exploitation of extra terrestrial resources practical.

It's possible that these probes may find a reason to send men into space, in which case all bets are off. Even with current technology this there is a resource that would justify the expense of space travel for commercial reasons. Helium 3 is a compound that very likely exists in small amounts throughout the universe, but it can't be found in significant amounts on earth. If a source of He3 could be found just about anywhere in the solar system it would be worth mining at just about any cost. It would be quite literally priceless. Engineers could use it to create a controlled fusion reaction and even a small amount could provide virtually unlimited energy.

There is no other (known) resource in space that justifies the expense of retrieving it, and there is no valid scientific reason to waste valuable resources with manned space flight if there is a cheaper, safer unmanned alternative.

Saturday, January 30, 2010

Star Trek: Rest in Peace, Old Friend

Personally I thought Star Trek The Motion Picture was the best of the TOS movies. I realize that's not a terribly popular opinion, but the whole franchise went downhill from there. What made Trek unique was that it was thoughtful and intelligent. Trek was "smart" science fiction (although Gene Roddenberry, Trek's creator, preferred the term "Space Opera" since there wasn't a lot of scientific basis for Treknology).

I'm the first to admit that thoughtful and intelligent doesn't sell. Roddenberry wasn't an idiot. He knew that, too, but that didn't stop him from fighting tooth and nail to make Trek what it was... Smart.

Hell, NBC threatened to kill the project entirely if Rodenberry didn't make the First Officer a man! Truth be told they wanted him to get all the women off the ship.

Unfortunately Gene's dead now, and the franchise is now corporately controlled.

There are a lot more stupid people than smart ones, so if you want to sell something you market to stupid. Paramount doesn't care about Star Trek. Paramount is a corporation. It's their job to make as much money as they can for their stockholders, so that's what they're doing. There's no money in asking people to think. "Whiz-bang" sells movies; gun fights and gasoline explosions; and that's pretty much what Star Trek delivers now.

Star trek is no longer smart Sci-Fi. Smart Sci-Fi is pretty much dead in mass media now. I think Firefly was pretty much it's last gasp. Thank God for SyFy. Without it we would never have seen the Battlestar Galactica redux, Dr. Who, Caprica...

So how do I respond to NuTrek?

Easy. I don't.

A lot of younger trekkies tell me that I'm just old and afraid of change. Maybe, but it seems to me they're the ones that are afraid of change.

The ultimate change awaiting all of us is the passage from life to death. All things die. The people who rail on about my fear of change seem to be the ones least likely to accept this.

Star Trek is no longer Star Trek.

The reaper has come and Star trek is dead. The franchise died with The Great Bird of the Galaxy. The franchise is now completely controlled by the same people that told Gene Roddenberry to "Get rid of the guy with the ears" after screening the pilot.

What Paramount's trotting out now and calling "Star Trek" is a painted lady. She's hot, sure, but Star Trek is just her street name. She's really just a sad little whore being pimped out by her corporate daddies.

Tuesday, January 26, 2010

South Park's Take on Obama Fever

I didn't really become a South Park fan until I saw "Bigger, Longer Uncut". I thought it was one of the most brilliant examinations of profanity in America I've ever seen. My wife hates it, so I don't often get to see new episodes, but I continue to watch it eagerly every chance I get. I've been grossly offended by the show on many occasions, but loving South Park is a lot like loving Monty Python, if you watch it long enough it will eventually seriously offend just about anyone with an IQ over 65.

This episode, "About Last Night", first aired right after the last election.

I know, I've been away for a while.

Take a half hour and behold one of South Park's most inspired moments of genius.

Where I Stand on Pot: Legalize it


I openly grew and smoked marijuana for many years. I even announced this on Vermont Public Radio while debating this issue with the state police Public Information Officer. I invited arrest and made it clear that it was my intention to challenge the constitutionality of the law.

The officer I was debating was demoted, the radio host was fired, and both the state and Burlington municipal police passed down orders that under no circumstances was any law enforcement officer to ever enter my home. I can only assume that the feds received similar orders as the federal building was less than two blocks from my home at the time. The only possible reason that I was never arrested is that the cops knew that I was serious, and they knew that if some nut case was willing to spend enough time in jail there's a very good chance he... I... would win a constitutional challenge.

To suggest that alcohol prohibition required a constitutional amendment while drug prohibition does not is to perpetuate the myth that alcohol is somehow not a drug. I'm sorry, but there's no nice word for "stupid". This is a stupid assertion.

Well I'm married now, and I'm no longer in a position to play fast and loose with my life, I no longer smoke or grow, but I still care deeply about this issue.

Now, a quick history lesson:

The English word for marijuana is "hemp". Until the 1930's the word marijuana didn't exist in the English vernacular. Hemp smoking was never adopted by european culture, and most European strains of the plant are completely devoid of THC. Psychotropic strains of hemp were used medicinally, but not recreationally (except by slaves for whom a glass of beer might as well cost as much as a house, hemp leaves were considered garbage and traditionally were left in the fields to fertilize the next seasons crop).

The vast majority of European hemp crops were tall, straight, fast growing strains of cannabis that had no intoxicating value. It was used as a raw material. Hemp fibers could be used to make all manner of textiles and it was hemp, not parchment or vellum, that produced the vast majority of western and middle eastern civilization's paper. Until modern chemistry came along paper could not be made from wood at all.

Hemp was also a food source. Modern mythology would have you believe that "gruel" was some sort of oatmeal. It was not. Gruel was boiled crushed hemp seeds. Hemp was the food of the poor for thousands of years, and saw millions through times of hardship and famine who otherwise would have starved. It's a good thing that the problem of global starvation has been solved or legalization would be a no-brainer.

While all references to hemp were removed from the Smithsonian Textile Museum under the administration of Bush I it was also, in fact the most important textile in history. It clothed the poor, sure (wool and cotton were reserved for the wealthy), but it was the strength of the textile that made it such an indispensable part of our history. No other fiber could even come close to it's strength and durability. Navies in the age of sail were completely dependant on hemp. All the ropes, sails, and even charts had to be made of hemp. No other material could withstand the rigors of the sea. The salt air would turn other materials to rags in a single voyage. Cotton sails are a myth. In reality anyone desperate enough to use a cotton sail would soon regret it. It would absorb water in the rain and rot. And when it tore, it tore like a modern nylon sail. It would suddenly split from end to end like a zipper opening. Hemp, on the other hand, would last voyage after voyage and when it started to wear out it would do so slowly. The individual fibres were so strong that tears could actually patched!

The hemp plant is deeply ingrained in western culture and to this day the term "hemp" is still used to describe all kinds of course fibres. But the jute that we now call hemp is a pale shadow of the real thing. The word "canvas" is a direct derivation of the dutch word for "cannabis". So vital was Hemp that one of the first laws in colonial Virgina required all landowners to grow it. Even through the industrial revolution hemp remained an important crop. Even after it had been prohibited in 1937 hemp prohibition was suspended and farmers were encouraged to grow it during WWII with posters like this one. The navy still relied on hemp for cordage, and it was vital for making combat and parachute webbing.

The downfall of hemp was its use as paper. Hemp was historically a very labor intensive crop. The process of growing it is easy enough, but harvesting it is a back breaking job. First the hemp is cut and left to rett in the field for 3 or 4 weeks. Then it needed to be broken. Hemp breaking was a ridiculously hard job, but this was the process that separated the fibers from the hurds in the stalk.

In 1838 a chemical process was uncovered to allow wood to be used to make paper. As the process was improved it pretty much replaced hemp. The product was inferior, but it was so much easier to make, and therefore cheaper, that it's tendency to tear easily, rot quickly (eaten from within by the acids used to make it), and dump toxins into the air and water was readily forgiven (ever driven past a paper mill?).

Over the next century wood completely replaced hemp in the paper industry. Then, in 1936 a machine was invented called the decorticator that would break the hemp automatically. What would take a man hours to do a decorticator could do in a minute. The pendulum was ready to swing back to hemp. With the decorticator taking over the labor of breaking the fibers hemp paper would not only be stronger, longer lasting, and cleaner, it would soon be cheaper as well.

Enter William Randolph Hearst. Hearst was a newspaper baron. He's still very famous. In modern journalism circles he's frequently refferred to as "the father of yellow journalism". He had papers all over the country in every major city.

Now one would normally expect a newspaper man would welcome lower paper prices, but Hearst didn't just own newspapers. He owned the logging companies that provided the pulp, he owned the mills that made the paper, and he owned the railroads that moved the product all the way from the deforested woods to the printing presses.

Before you read on I need to point out that Hearst wasn't just doing all this for the money, although he certainly had a vested interest. Hearst sincerely believed he was doing the right thing. After all, he was a white supremisist. He hated non whites with a passion, and above all else he hated Mexicans after having lost hundreds of thousands of Mexican timber acres to Pancho Villa.

Every Hearst paper in the country was touting the evils of a new drug called "marijuana".

It was a brilliant act of journalistic manipulation. Nobody had any idea that the "evil weed" he was lobbying against was really hemp. The campaign was one of pure unabashed racism. I'm reluctant to repeat the specific allegations in this venue. The gist of it is that it made non-whites insolent. Stories concentrated heavily on non-whites raping white women, or seducing white women who were themselves under the influence of the drug. In a modern context the headlines are just funny, but keep it in context people... blacks were being lynched back then. It was not uncommon for a black man in the deep south to be lynched for acts of insolence as minor as stepping on a white man's shadow. There's nothing funny about it.

Hearst found powerful allies. Henry ford was pioneering new ways to polymerize hemp hurds, and a wealthy family named the DuPonts wanted to shut his experiments down. After WWI they had been given German patents in an act of shameless nepotism that would eventually allow them polymerize petroleum by-products and they didn't want to compete with clean plastics made from a renewable resource like hemp. He also teamed up with Harry Anslinger, a former prohibition agent. Ansliger was appointed by his father-in-law, Andrew Mellon, a Dupont Financier and at the time Hoover's secretary of the treasury, director of a newly created agency called the Federal Bureau of Narcotics. The primary function of the Federal Bureau of Narcotics was to give the Secretary of the Treasury's son-in-law (and select other prohibition agents) a job after alcohol prohibition collapsed, but the public justification was to assist in enforcing existing laws against opium which had been enacted to keep chinese railway workers from trying to unionize.

I'm proud to say I pissed on Anslinger's grave once when I happened to be in the neighborhood.

Their campaign was an outrageous success. They drove hemp prohibition through before anyone even realized what was going on. It's late.

There's a lot more but I'm tired. We all know what happened then.

It sickens me that these laws passed. It sickens me that they still exist. And it sickens me that the veneer of legitimacy bought and paid for so many years ago by a wealthy, racist elite still lingers. It is a shameful legacy and I have very little tolerance for the ignorance and self-righteousness that allows it to flourish.

BigPoint's "Dark Orbit" Review: My first try at one of the new "free" MMOs


If you don't want to pay, dont play.


Me and My Peanut

I really wanted to like this game. It's a good try. It even held my attention for about a week, but in the end it's just badly designed.

I'm not going to get into the difficulties I had signing up and the poorly designed and programmed BigPoint.com home site beyond saying, "don't bother trying". Just log in through SyFy.com's gaming center.

I will take a moment to say that they've recently "upgraded" the client. The game graphics are MUCH slicker and the client itself is much less prone to lag, but the "HUD" was designed by a baboon. It's not even a HUD. A hud is supposed to be transparent so I can see the information without obscuring my view of the road, right? I mean look at that mess! It's almost impossible to click on the screen without accidentally hitting a control.

Why do so many idiots get jobs redesigning perfectly good GUIs?

Anyway... Let's talk about game play.

Free players are not going to enjoy the game. If you want to have any fun at all you'll need to drop some bucks. You need to use real money to buy "Uridium" for good equipment or you're just cannon fodder for the PKers. All told for enough equipment for a good, survivable ship you'll need at least 150,000 uridium. In real money that's about $60.00 US.

It's theoretically possible to grind up enough uridium in-game to compete, but not practically (unless you have no life at all and are willing to be bored out of your wits for several months).

The game isn't really that interesting. You gather resources. Some appear as random pickups, but mostly you accumulate them by killing aliens and salvaging the materials from the wreckage. After 20 or so hours this gets a little dry.

The big problem you're going to run into are the PKers (Pkers, or Player Killers, are players who play the game mainly to kill other players). In most MMOs there are safe areas. Nearly all games allow newbies "haven" zones where they can learn the game basics and "grind" a few levels, and most allow for the simple reality that not everyone likes PVP (Player vs. Player). This game has no safe areas at all. It's very frustrating getting killed over and over and over. Be prepared to be PK'd 2 or 3 times a day. If that doesn't sound like fun... well... it's not. In all fairness the point of the game is to make money. Getting PK'd 2 or 3 times a day will either drive you away or get you to dig into your wallet. Frankly, the folks at BigPoint don't care which. The whole point of allowing free players into the game is to give easy kills to the premium players.

Cough up a hundred bucks, buy a goliath, fill it with the best drives, weapons, shields, and "boosters" and you may have some fun. Spend another hundred bucks and add a squadron or two of battle drones and you can run with the big dawgs. Lastly, be prepared to cough up 5 bucks every now and then when you run out of money. The problem, of course, is that the game isn't worth that much money.

Sunday, January 25, 2009

Aurora Engine: The Easy Way to Add Secret and Placeable Doors to Your NWN Mod

It is shocking to me that the Bioware builders page on this subject is so absurdly out of date and incomplete. After extensive trial and error I've managed to document at least enough of the procedure so that Noobs like myself can quickly and easily set up secret and placable doors.

Placeable Doors:
Placeable doors are easy. You cannot use a "Hidden Wall Door" or "Hidden Trapdoor" from the miscelaneous interior standard pallet. Instead go to "Secret Object" and select a door from there. Now give the door a unique tag (For example "DoorPlaceableTag"). Under most circumstances you may want to remove the word "Secret" from the name so only the word "Door" will come up in-game if the player mouses over it.

Finally you need to place the waypoint. This waypoint will be the door's destination. Place the waypoint at the point where you want the door users to teleport to when thy go through the door and give it the same tag as your placeable door with the prefix "DST_" (for example "DST_DoorPlaceableTag").

Optionally you can use any door placeable and a waypoint using the naming conventions above and simply change the OnUsed script to x0_o2_use_wdoor.

If you open the OnUsed script you will see that the comments tell you to use a "LOC_" prefix. This is wrong. It is nothing shy of sadistic that this has never been corrected in any of the patches.


Secret Doors
How it works:
A secret door is simulated by putting an "OnHeartbeat" script on an invisible "trigger placeable" object. Every heartbeat (about once every six seconds) this script checks the skills of nearby players and rolls to see if the most skilled searcher has spotted the secret door.


When one of the players spots the door the trigger placeable destroys itself, spawns in a door at it's location, and sets it's Tag name as a string variable on it.

The door has an OnUsed script that uses the string variable to teleport anyone who uses it (along with henchmen and pets) to a waypoint with the same name.

How to set it up:
Place a "Hidden Trapdoor Trigger" or a "Hidden Wall Door Trigger" where you want the door to appear and give it a unique tag (for example "SecretDoorTag"). You will find the "Hidden Wall Door Trigger" and "Hidden Trapdoor Trigger" in the standard pallet under "Miscellaneous Interior". Place the trigger object in the center of the desired detection radius.

Next you need to place the waypoint that will act as the door's destination. Place the waypoint at the point where you want the door users to teleport when they go through the door to and give it the same tag as the Hidden Door Trigger object with the prefix "DST_" (for example "DST_SecretDoorTag").

I am referring to the "Hidden Trapdoor Trigger" and the "Hidden Wall Door Trigger" as "trigger objects" to avoid confusion, as they are not technically "triggers". In other words... they are not painted from the "trigger" pallet. They are placed from the "placeable" pallet. They're just called "triggers" in the placeable menu.

Hidden door trigger objects use the "invisible object" appearance. When the door appears it will be facing the same direction as the placeable.

To set the secret door's properties change the following fields:

  • Reflex Save: Determines the distance at which a PC can search for this door in meters.
  • Will Save: Determines the DC of finding this door.

Wall Door Placement Guidelines:
When placing wall doors be careful to place the trigger so when the door spawns it will be flush against the wall. Place the "hidden wall door trigger" so the arrow faces away from the wall and the back edge of the invisible object placeable is flush with the wall.

Wall Doors must be placed where they can be accessed by the players in-game. This can be problematic sometimes. For example, when using the city interior tileset the walkmesh often does not extend all the way to the wall, especially in the alcoves. If you spawn your doors so they appear flush against these walls they will be too far off the walkmesh for the players to fire the "OnUsed" event. A few placeable walls can go a long way towards solving this problem. There's a great selection of placeable walls in the Community Expansion Pack. Also... Door Placables set as "static" objects and placed backwards, with the doors facing the wall, can make a reasonable looking wall placable. As a rule if you cannot click-select the door in the toolset's graphic window it's too far off the walkmesh to be usable by the players.


Changing the Door Spawned by Hidden Door Triggers:
You will need to create a new door blueprint and modify the OnHeartbeat script if you want a door other than the default door to spawn.

Before you ask... No... You cannot use the secret doors under "secret object" in the standard pallet. The OnUsed script is wrong. The door placeables in the "secret object" pallet are for use with the Secret Object Triggers in the standard "Triggers" pallet. Use of these triggers is beyond the scope of this post.

  1. First... create a new blueprint for the door appearance that you want to spawn. For example... the default wall door has a wooden appearance. To create a stone door select the Hidden Wall Door and "Edit Copy". Change the appearance, for example, to "Wall Door Stone". I also like to change the name to "Secret Door" (it just looks cooler than the default name). Make a note of the new placeable resref for the next step, modifying the hidden trigger's OnHeartbeat script.
  2. Now place a Hidden Wall Door Trigger or Hidden Trapdoor Trigger placeable object where you want your custom secret door to spawn.
  3. Copy and Paste the below script into the script editor. Change the area highlighted in red (around line 116) to the resref (not tag) of the placable object that you created in step one. Give your new script a unique name. Now go into the properties of your hidden door trigger and replace the OnHeartbeat script with your new script.
  4. Set the destination waypoint the same way you would if you were using a default door. Just place a waypoint at the point where you want the door users to teleport to and give it the same tag with the prefix "DST_" (for example "DST_SecretDoorTag").
The OnHeartbeat script for your Hidden Door Trigger object:
Copy and paste everything in black. The red font you will replace with the resref of your custom door placeable.

//::///////////////////////////////////////////////
//:: nw_o2_dtwalldoor.nss
//:: Copyright (c) 2001-2 Bioware Corp.
//:://////////////////////////////////////////////
//
// This script runs on either the Hidden Trap Door
// or Hidden Wall Door Trigger invisible objects.
// This script will do a check and see
// if any PC comes within a radius of this Trigger.

// If the PC has the search skill or is an Elf then
// a search check will be made.

// It will create a Trap or Wall door that will have
// its Destination set to a waypoint that has
// a tag of DST_

// The radius is determined by the Reflex saving
// throw of the invisible object

// The DC of the search stored by the Willpower
// saving throw.

//
//:://////////////////////////////////////////////
//:: Created By : Robert Babiak
//:: Created On : June 25, 2002
//::---------------------------------------------
//:: Modifyed By : Robert, Andrew, Derek
//:: Modifyed On : July - September
//:://////////////////////////////////////////////

void main()
{
// get the radius and DC of the secret door.
float fSearchDist = IntToFloat(GetReflexSavingThrow(OBJECT_SELF));
int nDiffaculty = GetWillSavingThrow(OBJECT_SELF);

// what is the tag of this object used in setting the destination
string sTag = GetTag(OBJECT_SELF);

// has it been found?
int nDone = GetLocalInt(OBJECT_SELF,"D_"+sTag);
int nReset = GetLocalInt(OBJECT_SELF,"Reset");

// ok reset the door is destroyed, and the done and reset flas are made 0 again
if (nReset == 1)
{
nDone = 0;
nReset = 0;

SetLocalInt(OBJECT_SELF,"D_"+sTag,nDone);
SetLocalInt(OBJECT_SELF,"Reset",nReset);

object oidDoor= GetLocalObject(OBJECT_SELF,"Door");
if (oidDoor != OBJECT_INVALID)
{
SetPlotFlag(oidDoor,0);
DestroyObject(oidDoor,GetLocalFloat(OBJECT_SELF,"ResetDelay"));
}

}


int nBestSkill = -50;
object oidBestSearcher = OBJECT_INVALID;
int nCount = 1;

// Find the best searcher within the search radius.
object oidNearestCreature = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);
int nDoneSearch = 0;
int nFoundPCs = 0;

while ((nDone == 0) &&
(nDoneSearch == 0) &&
(oidNearestCreature != OBJECT_INVALID)
)
{
// what is the distance of the PC to the door location
float fDist = GetDistanceBetween(OBJECT_SELF,oidNearestCreature);

if (fDist <= fSearchDist) { int nSkill = GetSkillRank(SKILL_SEARCH,oidNearestCreature); if (nSkill > nBestSkill)
{
nBestSkill = nSkill;
oidBestSearcher = oidNearestCreature;
}
nFoundPCs = nFoundPCs +1;
}
else
{
// If there is no one in the search radius, don't continue to search
// for the best skill.
nDoneSearch = 1;
}
nCount = nCount +1;
oidNearestCreature = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, OBJECT_SELF ,nCount);
}

if ((nDone == 0) &&
(nFoundPCs != 0) &&
(GetIsObjectValid(oidBestSearcher))
)
{
int nMod = d20();

// did we find it.
if ((nBestSkill +nMod > nDiffaculty))
{
location locLoc = GetLocation (OBJECT_SELF);
object oidDoor;
// yes we found it, now create the appropriate door, EDIT THE LINE BELOW TO CHANGE RESREF OF SPAWNED DOOR
oidDoor = CreateObject(OBJECT_TYPE_PLACEABLE,"NW_PL_HIDDENDR01",locLoc,TRUE);

SetLocalString( oidDoor, "Destination" , "DST_"+sTag );
// make this door as found.
SetLocalInt(OBJECT_SELF,"D_"+sTag,1);
SetPlotFlag(oidDoor,1);
SetLocalObject(OBJECT_SELF,"Door",oidDoor);

} // if skill search found
} // if Object is valid
}







Monday, July 28, 2008

NWN 1.69 is Out

Bioware has just released the last ever patch for Neverwinter Nights 1, and OH WHAT A PATCH! Ridable horses, amazing new tilesets, and outstanding new models. I especially like the new armor models... very western European.

The downside, of course, being that I now need to completely rebuild Rel Mord in the new system.

Sadly I must bid a fond (and hopefully temporary) adieu to the Community Creature Pack.

Picking the CCP creatures out has been a major headache, but it needed to be done anyway as the newer versions were not compatible with the version 4 I was using anyway. I will be re-adding it as soon as it's up to speed with 1.69.

I'll be running out my new mod for NWNCon4.