Friday, May 31, 2013

Corpse Run Console Edition

There has been a lot of hoopla over the Xbox One announcement. I think even governments are starting to get jealous of its monitoring capabilities and leering privacy concerns. I have been struggling with the recent announcement myself and figured I would rant about it a little. I am sure you won't mind.

The thing that disturbs me most is that I am not the target audience for the Xbox One even through I have stood in line for every version at launch and was a day one member of the service. When Microsoft announced the Xbox I knew they would be a force in the gaming industry, and supported the platform heavily. I am an older gamer with a family of gamers, and in turn have 3 consoles and 4 roaming profiles under my roof. I will admit this may not be a typical scenario, but I wager it is not rare and will become more common in future generations.

There are a lot things about the Xbox One that lead to major problems in my ability to use the device. First of which is I do not game on a large TV: whether PC or Console Gaming I play on my desktop monitor. Not to say it is a small screen, but there is competition on the many screens in my house whether someone else wants to watch TV, use a computer or play a console. Although we are in the same room, only in a small number of circumstances are anyone doing the same thing at the same time: sometimes we maybe even more than one.

This leads to use all being very close to our screens which is not what the Xbox One is designed for. All privacy issues aside mandatory Kinect is a killer in this situation. I own a Kinect and dig motion controls and other features, but it requires a certain environment. 99% of my game time is spent wearing headphone in a loud environment playing on a desk through a computer monitor. The only place I could put the Kinect would have it staring at my check and would block the bottom portion of my screen. The new Kinect would have to be a lot better than the current one to work like this: assuming I was willing to obstruct my view and wanted it monitoring me and the room I sit in. Although the features might be nice in the right environment making it mandatory just means I am excluded from using it.

The DRM issues with the Xbox One is another hurdle that I would need to overcome. Currently it sounds like games will be linked to your Xbox Live account which will be verified via Kinect. Hopefully there will be a "family" option because I cannot afford to buy 4 copies of a game so 4 different Xbox Live accounts in my house can play it. I will simply move gaming to another format that is more sharing friendly. If I did stay with Microsoft under these conditions I would definitely be buying less different games since I would have to buy multiples of the same games.

Then you have the internet phone home system where the Xbox will need to connection every 24 hours or so to make sure you still own your game. I already have issues trying to make content available to my family without having to purchase the same thing over and over. If someone buys an Xbox Live game or has a download code, then it will only work, for anyone but the purchaser, on 1 of the 3 Xboxes in the household. If the purchaser account is playing on any of the 2 Xboxes and the internet goes out for even a short time, the games boots them out usually without saving. Even full games will freak out if you have downloadable content. Because of this I rarely use download codes even if provided for free. Xbox One takes this up a notch and makes things far to difficult.

I think DRM is the coming death march for consoles. When PCs were expensive and hard to setup, Consoles were less expensive alternatives and approachable. Now tablets and phones fill this space which can sometime be free or very inexpensive, and most games on them are far cheaper. This is the first time a console generation has faced this situation, and even this generation has been facing dropping adoption. Making games harder to share and taking cheap used game out of the market will certainly chill sales and product innovation. No DRM has kept a pirate from his booty. The Xbox One and PS4 rounds of DRM will be squarely focused on the used game market. Publishers see used games are theft since you never owned the game anyway; you only license it. Cheap games lead to people owning more games which has directly helped the growth of the current console market. Stopping used sales and crippling sharing will only reduce exposure to games and shrink the market. Get ready for having "both kinds" of games: Halo and Call of Duty.

Ready for the smallest yet most annoying thorn in my side? Front, Slot loading Blu-Ray drive. Now with all the DRM and connective "features" there is no reason to really have discs at all, but a slot loaded player? Really? Even slot loader I have had ate discs for breakfast and I would only ever put copies of discs in them. Not to mention slot loaders cannot sit on their side, and if you remember I play at my desk. Even if you wipe everything complaint I have I am still locked out because I would have no place on my desk to put it without buying new desk.

For me this is all depressing. I put a lot of time and money into the Xbox platform. I have a gamerscore I am proud and a decent Xbox Live Arcade library (which by the way will be useless on the Xbox One). Everything about the new Xbox's design clashes which how I enjoy to game with very little benefit. I hope Microsoft plans on releasing some good information to counter my concerns, but it seems more likely this will be the first Xbox launch I will not be standing in line. Microsoft will loose an entire family of Xbox junkies if these issues are not addressed or the design modified before launch. Lucky for us there are plenty of alternatives, so not sure what Microsoft gains from this. GOG and Steam are very competitive on price and quality of games without many of these problems which don't mesh with my environment; however, I would much prefer to stay with Xbox if Microsoft decides to focus more on gaming and less on the living room.

Tuesday, April 23, 2013

Tale of the Underworld: The Freehand (Fiction)

This is an entry in the "Tales of the Underworld" fan fiction contest for Shroud of the Avatar. It has been a long time since I wrote anything let alone Ultima Fan Fiction. Hope you enjoy it. The monster in this story is a rare appearance in the Ultima series. Can you guess its name?


 
Torches crackled and spit as the group hustled down the tight cavern passageway. Discovering the series of fresh openings into the Underworld is what gave birth to such an ingenious plan. Positioned perfectly to prey upon the passing caravans that traveled along the road to the city all it took was a quick strike, a snatching of loose pouches and killing the strongest guards, to be followed by a fainted run back into the darkness. Always as predicted, those that remained would give chase to recollect their losses only to get turned around among the array of twisted tunnels. From there the band of thieves need only pick off their number, one by one, so they could return to plunder and kill whatever or whoever was left behind.

This time one of them was able to lift a handsome sack of gems, but it was also host to a stronger contingent of people who were not so keen with its parting company. Such luck would now find them frantically darting toward plan B which led into a larger chamber buried along the interconnecting tunnels. With their loot stashed behind a small waterfall, this room contained many crevices and crannies in which to hide until their pursuers tired and gave up chase. The plan was perfect and had never failed.

They were almost upon the cache when the first of their number began to scream. The scout's torch hit the wet cavern floor with a hiss. Just before it fizzled out the torchlight laid bare nothing but a severed arm. The mage among them quickly muttered a spell only for it to fail with a comedic popping sound and a harmless flash. Those that remained scattered into hiding wincing at the eery, wet mashing sounds they hoped was only the currents of the subterranean stream.

The thief with the gem pouch gripped it tightly under his tunic, and ducked quickly into a small fissure along the cave wall. He could hear his comrades die one by one, like that of their past victims, only for the cavern to be drown in an ominous silence. Frozen with fear he struggled to control his breathing and remain as quiet as possible. As he waited and listened, the available light in the room slowly died as the last of the discarded torches lay sputtering on the dank cave floor. In the final flickers of light, he witnessed the gray stone of the wall before him slowly shift into a deep blood red. In horror he flinched as the wall cracked open in a large gape of teeth. Quickly, and in utter desperation, he plunged his dagger into the wall mouth and twirled the blade. There was a short yelp, like that of a kicked dog, as the mouth simply vanished into a puff of dust tainted by the strong odor of sulfur.

The event was so bizarre he might have believed himself insane if not for the fact his hand and forearm were now encased within the fissure wall. As soon as he tried to move the pain overcame him. He could feel where his bone and flesh meshed with the rock, and even the smallest movement was agony. It was then, with perfect timing, that the cavern filled with the footsteps of his latest pursuing victims as he struggled to remain hidden and endure the tortured kiss of stone.

What in the name of compassion happened here?” a voice echoed across the large chamber along with clanks and creaks of armor.

I don't want to find out,” another voice boomed out in reply.

Valor be with us, what a mess,” someone cursed. “Let's search what's left of them and get out of here.”

The room filled with the rebounding echos of chaos as the guard frantically searched the area. Beads of sweat curled off his face as the bone in his arm fractured slightly with every movement no matter whether a breath or shiver. He flirted with consciousness as the squad gathered their spoils and prepared to depart.

No sign of the gems, but look at this,” he heard one say followed by the screech of twisted metal.

That a breastplate?” quizzed another.

I think so. Damn thing looks like it was gnarled by something.”

Just keep moving,” murmured the echoes that faded as the company drifted away. “We're going to get gnarled ourselves for losing that pouch.”

He took some deep breaths and waited for his former dupes to gain some distance from his hiding spot. The bone had broken away from the stone while he had struggled to stay alert. Stumps of his radius and ulna rattled inside the flesh of his forearm as they grated against the rock. Carefully he reached for his other dagger and placed the sheathed blade in his mouth to allow him to grit through the pain. With a chuckle wrought from agony and fatigue, he pondered which was the greater loss, his hand or his primary weapon, both of which were buried within the wall before him. Biting down on the sheath he tore a strip of cloth from his tunic and twisted it around his embedded forearm. Slowly he positioned the dagger above his arm he took a moment to gather his strength. Sadly he was never good at carving harvest turkeys.

So began Tom's journey in mastering the arts of the lefty, and the moment that would forever mark him as The Freehand. Returning with wealth only attainable as a sole survivor, he would become one of the first great pioneers of the Underworld. His enduring legacy, The Freehands, would become known as some the best sources of strange and rare oddities that the great darkness would have to offer.



Friday, April 5, 2013

The History of Britannia...

From Wikipedia:
In Ultima, the player takes the role of the Avatar, who embodies eight virtues. First introduced in Ultima IV, the Three Principles and the Eight Virtues marked a reinvention of the game focus from a traditional role-playing model into an ethically framed one.

Ultima was one of my first experiences with computer games. I am a big fan of the series if you cannot figure it out by my use of the Codex of Ultimate Wisdom as my profile picture. When I heard Lord British ( +Richard Garriott de Cayeux ) was trying to Kickstart a spiritual successor to the Ultima series, I was beyond what you would call excited.


From the Shroud of the Avatar Kickstarter page:
Shroud of the Avatar is the “spiritual successor” to Richard’s previous work in the FRP genre. Our primary objectives are to tell a story even more compelling than Ultimas IV-VII, create a virtual world more interactive than Ultima VII, develop deep rich multi-player capabilities beyond combat akin to Ultima Online, and offer a bold new approach to integrate them with “Selective Multi-Player”.
If you like old fashion single player RPGs like Ultima or MMORPGs like Ultima Online, you should go pledge on this game. With 60 hours to go and fully funded this Kickstarter campaign includes stretch goals including a serialized SOTA prequel novel by +Tracy Hickman. If you don't pledge before the end of the Kickstarter you could loose out on some of the loot-eriffic rewards like exclusive pets, item, houses and more. GO PLEDGE NOW!

Ultima was a great influence in my life and took up a good part of my childhood. I was never known for the best in the ways of long term memory, but as I remember it I was given a Commodore 64 after moving to a new state when I was young. This was soon followed by a visit to one of my Dad's coworkers with a bunch, and I mean a bunch, of blank 5.25 floppies. A couple of those disks came back with Ultima II and Ultima III. There not many places for buy software or games where I lived back then, nor the internet for that matter, and large department stores were usually your only chance at scoring anything; if you actually wanted Math Blaster or Word Processing programs. I would be well into my teens before an Electronics Boutique opened at the local mall, and on my first visit where I "bought" my first game: Ultima IV.

I give Ultima credit for saving my life, and on more than one occassion. As a young, nerdy kid, back in the days before it was cool, and bullying was just "boys being boys" and ignored by most adults, I contemplated suicide quite often. Thankfully those thoughts were always fleeting because there was NO WAY I wanted to miss playing the next Ultima!. Good thing I was able to go to an art school to escape the bullies and get some solid, real friends long before EA bought out Origin and killed the series.

In addition, running computer games like Ultima on a PC in the early days required a lot more than they do now. A little bit of knowledge and config file/boot disk magic was needed to squeeze memory enough to run them. Sometimes you would need to choose between "optional" things like using a mouse or having sound. This would eventual lead me into the IT industry and allowed me to support my family. Just another way Ultima saved my life.

Always incredibly shy with very low self esteem, my computer skills did not help much when trying to get out of dead-end jobs. However, after helping my father install his new modem and setup Prodigy I found a wonder thing:  the Ultima Dragons. I joined the group immediately and ran out to get my own modem and Prodigy account. This community was the first time I could share my love of computers and games with other people that understood. In my day I knew very few people that had a computer. Using a computer for school work was considered cheating, and I got a lot of zeros for using a computer to complete assignments. The Ultima Dragons connected me to people that shared my rare hobby, and bred in me confidence as well as the valor to speak up for myself. Even today I feel their touch on me, and is the last way Ultima saved my life.

Because of this I have pledged on Shroud of the Avatar. Richard Garriott's games have been a great inspiration to me and  responsible for any success I have to this day. I know he gets a lot of heat for the lack of quality in the EA Ultima games (U8 and U9) and the problems surrounding Tabula Rasa, but his vision for this new game is brilliant. The ability for developers to reach directly out to their players and avoid the influence of big publishers can definitely be seen in the outreach shown by his new company Portalarium during the Kickstarter. I urge you to, quickly, check out Shroud of the Avatar and pledge. Who knows? With 5 games in the series maybe this will have the chance to save others' lives as well.









Monday, October 29, 2012

First Sale Doctrine at risk

The Supreme Court is hearing a case that could affect whether we are all allowed to resell products we bought, or even customize or personalize them. The First Sale doctrine allows you to sell items you bought after they are have been sold by a retailer or manufacture. Without this you would need to obtain permission from every individual  manufacturer if you want to modify or sell something you legal bought and paid for.

Sounds crazy, but its true.

Check out an article from the EFF about the issue:

https://www.eff.org/deeplinks/2012/10/your-right-own-under-threat

Or take action and contract congress and let them know how you feel about this!

You've Been Owned: Stand Up For Digital First Sale

Wednesday, August 1, 2012

Gamespot is the Devil

I am pretty sure I have been a registered Gamespot.com user longer than some of the Gamespot staffers have been alive. I liked the site at one time: enough to pay annually to use it, which was required when it went live in the early hours of the internet. I still like their coverage of the news and events as well as their reviews. Although the site has taken a huge dive since Greg Kasvin left as the reviews became more generic and there has been assholery in droves related to them holding more regard for their advertisers than their users or staff.

So why are they the Devil? I just happened upon a message I had received a while ago notifying me how bad a person I am for making a cardinal sin and violating their terms of service. I didn't notice the thing because I mainly use RSS to get news, and I only still login to the site for the "Dark" color theme. I stopped using the "social" features of Gamespot a long time ago after getting these messages daily. I loved posting comments on news articles and that was how I spent most of my time on the site back then. However, I had a guy basically start following me around and hassling me. When I finally reported him he made it clear that he was friends with many people at Gamestop and sure enough every post I made after that equaled a TOS violation even though no one at Gamespot could tell me why other than the one word category it was classified as; nor could they tell me what I needed to do to not get flagged other than to stop posting, so I did.

My worse offense that had a good portion of the stupid "points" I was awarded for using the site taken away? Be prepared and shield your children because this is pretty bad. It was an article back when the PSN got hacked, and was not the first article about it. The story was about how much Sony respected its users by not upgrading their server software nor encrypting passwords. What did I comment? What heinous and cruel statement won me my harshest punishment in the "Trolling" category? Are you ready? It was:

LOL

Yep, just a laugh. Sure that might be insulting for anyone that trusted a company that made a track record of this behavior, but I am sure every other person in the world had a giggle. It was not directed at any body nor meant to offend. It was an honest reaction to the story, but someone that did not like me knew someone at Gamestop and I was punished. I never try to be a dick. Very often my opinions are not in the majority or may seem strange to some people, but I always try to be respectful and usually have more regard for other people's dissenting positions than they have of mine.

The worst part is Gamespot rewards people for reporting others by way of these "points". Being a fan of XBL and Gamescore, I can understand the appeal; however, gaining achievements involves a little more dedication that responding to surveys, commenting on news and trying to get people in trouble. Like it is possible to not piss off SOMEONE when you post to the internet. Its a bad system and why I have never been a fan of sites like Reddit or Digg where the system can be gamed for personal gain: even if the reward is something stupid like Karma points or Bozo Buttons.

What was my latest offense? I happened to mention a Kickstarter project in a post. SPAM/Advertisement they said. I guess. Although it did not benefit me, it was not my project and the only thing I would have gained is money being withdrawn from my bank account when the project succeeded. It was in topic, in the proper forum and very polite, but I guess someone was offended because I used the word Kickstarter. Probably their advertisers which should be threatened by the possibility developers could get money without them thus cutting them out of the market. Of course, this was only one of many posts I made about other Kickstarter projects, and none of the others were flagged or deleted. I even defended users who were pro-Kickstarter against those that used cursing and death threats. None of those users posts were removed; nor any of my other posts. Just one lone post about an iOS/Android game people in the topic might be interested it. Maybe I should have sprinkled some profanity and insults in so it would get lost among the others.

But oh well. I don't pay for an account now (since they ended up giving the privilege I paid for away for free), don't care about their points and don't get more than a color scheme for my account. So they can just shove it. However, its another example of how closed sites and communities chill free speech and spit on the foundation the internet was built on. I am all for allow users to ignore or filter content, but as a user-content provider/maintainer I think you have a responsibility to allow people to speak their mind; especially if they are being decent members of the community and are only guilty of offending 1 person. In the end, it is up to us to respect each other, live peacefully with one another and try not to be offended because someone thinks differently.

END RANT

Access SPListItem Attachment in Sharepoint 2010

My scenario was simple. Our company uses a financial vendor which has a web service for retrieving our Stock information and republishing it on our Sharepoint 2010 Intranet site. I successfully built a Timer Job that runs every 5 minutes during market open and close (deleting items older than a few days when market is closed) and it adds an item to a Sharepoint list attaching an XML file containing the results of the web service call. Working with past Stock applications in other languages I have found having the original, archived XML results is important to debug issues with the data provider.

The Timer Job works great and saves the files perfectly. Now I needed a Visual Web Part the user could add to their pages which would consume this XML file for the most recent entry, parse the information necessary then show the Stock Price in a pretty fashion per our marketing company's design. Honestly, I did not expect it to be difficult as I have done this a lot outside of .NET and Sharepoint. I setup the code to connect to my list, query the most recent item so I could grab its attachments. All good. With plenty of examples on the Google-nets, I quickly discovered how to get the URL of the attachment and could pass this to an XmlDocument object via Load() which lead to this code:


However, my code would not work and I continually received 404 errors trying to load the document via URL. I could take the same URL I was generating and put it in a browser window and successfully get to the list, but the code did not see it. I looked through logs, used Fiddler and even tried using HttpWebRequest and the LoadXml command as well with nothing shedding light on why this was erroring. I could not find any information from other people having this problem and even posted on MS' forums with no replies (although I was impatient and did not give it long).

My Timer Job was able to access urls outside the network, but this took some tricks by our Network and Server guys due to proxy issues. As such, I assume that maybe there was some permission/proxy issue hiding the list from my code, so I dug for other ways to try and load up this attachment. I found some references to people doing the same type of thing in Sharepoint 2003. Although I hate using old code since you never know what problems may exist using it in newer versions of Sharepoint and .NET, I was racing against my vacation and did not want to leave this hanging for weeks before I got back to it. So I replaced my code with the following which appears to be accessing the file in the list by its local folder structure and passing the binary stream to the XmlDocument Load command.


So far this is working and I have been able to use XPathNavigator to get the nodes I needed from the XML file. As is my MO, I posted this hoping to help anyone running into this issue and to get feedback from anyone that might have a better understanding of what is going on or a better way to accomplish this.

Monday, July 23, 2012

Sharepoint 2010 and List Picker Custom Web Part Property

One of the frustrations I have learning to code for Sharepoint is that the amount of information available is miserable. Either you get incomplete or unhelpful information in the way of sterile Microsoft Documentation, or any fool with a blog that has the potential to understand just as little as the reader about the subject matter. And YES I do - in fact - understand I fall into that category as well, but at least I try to be open about my ignorance and only try to post information which was helpful to me and my process of learning. So if you are learning to code from me, I sincerely apologize and hope you have some other resources at your disposal.

In any case, even when you find some one knowledgeable you also run into the fact that they may not specify whether they are talking about Sharepoint 2003, 2007 or 2010 (I ONLY deal with Sharepoint 2010 on my blog) or maybe leave off information they deem too complex or too simple. As was the case when I needed to have a custom webpart property that allowed a users to search for a List. I found DOZENS of ways to accomplish this that ranged from super simple (and useless) to absurdly complex. I tried many of these and most did not work properly or how I would expect. MS has several webparts that to do this (i.e. Content Query Web Part), so why is doing it yourself such a mystery?

As some background, for my project I needed a web part that would take a list, read in the rows and items and display this in a branding friendly manner for our publishing sites. As such, I wanted Content Owners to be able to add the web part and select a list they created somewhere in the site for it to use. I called this web part "QuickLinks" so keep that in mind as you read my code.

First off, you should understand a bit about adding custom properties to a web part. Here are a few links I found very helpful:
http://morshemesh.blogspot.com/2011/05/adding-custom-properties-to-visual-web.html
http://www.lamber.info/post/2010/05/21/How-do-I-create-custom-properties-in-Visual-Web-Parts.aspx
http://naimishpandya.wordpress.com/2012/01/12/how-to-add-custom-web-part-properties-to-visual-web-part-in-sharepoint-2010/

Once you have a handle on adding a custom property then a List Picker will not contain many surprises. The main difference is that you have to (for lack of a better term) build your picker before it can be added as a functional control. Even though you are calling a built in tool that MS uses and has available, you have to set the stage and provide some code before you add it. This seems like a little overkill to me, but I guess MS likes to make us developers sweat a little.

Here is my code for the ListPicker. As a note, I pieced this together from a variety of sources. Many of which served other purposes, so please forgive me if there is something weird in there.


Now you have your ListPicker ready for use, so we will use the other tricks to add this as a custom property. Next make sure your webpart.cs file defines the ToolboxItem as IWebEditable. I have included my entire QuickLinks.cs file below for an example.


Finally you will want to add the few lines to your main webpart code behind to so you can use the custom property. I have a stub of code below to demonstrate how I added it:


If this works for you like it worked for me, you just spent less time adding the List Picker than searching for how to do it. One thing that bothers me is I have seen this code for 2007 and it is not much different, so hopefully this is a supported way of doing this. However, if it works maybe its worth the risk.

Happy Sharepointing!