Site Maintenance

March 20th, 2011

Did some minor site changes and maintenance, if you visited earlier and noticed really strange issues it was due to that.  The major change was I have setup URL rewriting for the main site to replicate how WordPress is doing it. So the URL’s on the main site look cleaner now and are easier to remember.  There will be on going changes with the site for a couple of weeks as I update it.

BlackOut 1.1

February 15th, 2011

BlackOut 1.1 was sent to Microsoft earlier today, just have to wait for it to get approved.  I wanted to get theme support out as soon as possible, so a lot of the new features mentioned in the previous post will trickle out in the next coming updates.  All of the bug fixes are in this release, and full theme support.  Expect another release shortly…

I will also be working to get the product page up for BlackOut, so expect it to show up under products soon as well!

BlackOut Theme Support

February 9th, 2011

Been working on the blackout theme support. I had to do some modifications to some of the storyboard animations on the board since they didn’t play well together.  Overall, I think I will release this next version with three themes, and build out further from that point.

Aqua Theme

The first them is Aqua —  Aqua is my own twist on an Apple look, it has some nice gradients, a  bit of fireworks in the background and some nice gloss on it.  I did keep it pretty dark, and muted it down a bit though so it doesn’t stick out too much on Windows Phone, it still fits right in if you ask me and it looks great!  I might even make it the default theme…

LED Theme

The second theme is LED — This one kind of borrows from the old school marquees where they had a bunch of LED bulbs and would scroll text in front of restaurants.  It’s very basic, but has just enough texture to it to make it stand out.

Metro Theme

The third theme is Metro — This is the current existing theme, which is basically no theme at all.  It’s the flat 2-d squares that we have all come to know and love about Windows Phone!

As a bonus, every single theme will still let you change the color to your choosing the same as before.  The color will blend into your theme and what you get is just absolutely stunning.

If you have any theme requests, please post them in the comments below!  I am open to any suggestions, even feedback on the existing themes, to bright, to dark, etc.

BlackOut Released!!

February 6th, 2011

BlackOut v1.0 is now available for Windows Phone 7 on the marketplace. You can download it now for free!  BlackOut is a lights off game for Windows Phone 7.

The following is a list of features in the current version:

Version 1.0

- 338 Custom Tailored Levels
- Intelligent hint system to help you along
- Metro theme with customizable colors
- Fast and stylish animations to transform the board
- Score system to keep track of your scores

Now that version 1.0 is out, I have begun working on version 1.1 features.  Below is a list of the features that are slated for version 1.1:

Version 1.1

- Theme support
- Custom Level Designer
- Random Level Generator
- Leader Boards
- Various bug fixes

Theme Support

In addition to being able to select a color for your board, you will also be able to select a theme!  Below is an example of the aqua theme that is already complete and working in the game.

Custom Level Designer

The level designer is the same level designer that was used to create all 338 levels. It is being fixed up so it can be used by the public, currently it is not very user friendly and needs some UI work done on it.

The custom level designer will tell you how difficult the level is going to be, whether the level has a winnable solution, will allow visualization of hint patterns, will check for duplicate boards, and offers you the option to randomly generate a board using the random level generator.

At some point I would like to be able to build support so people can build their own levels, and share them online with other people, but for now that is in the future.

Random Level Generator

The random level generator will build unique and random levels. Currently when you get to the last level in the game (338), it will go back to level 1.  In version 1.1, it will ask if you would like to continue using the random level generator.  The random level generator will always builds a board that has a solution, and it will build up 300 unique boards back to back without ever repeating a previous design.  If you were to play a game using the random level generator, you are guaranteed at minimum 300 unique levels.

Leader Boards

The leader boards will store your high scores in our database so you can compete against other people from around the world.  I am unsure if this will make it into version 1.1 or if it will be in 1.2 at the moment. I am still working out the details.

Bug Fixes

- Fixed a bug where the board would flicker– this is only noticeable if you are using the lighter colors for your board.  It can be very distracting though and this has been resolved!
- Replaced the Microsoft ads with a new ad provider.  This one is a bit better and less resource intensive.  For whatever reason, the Microsoft one would cause an occasional hiccup in the game animations. This one does not so everything seems much more smooth.  Additionally, this one is supported around the world so it will show up in countries outside of the United States.
- High Scores will now only update if the previous score was worse than your new score. This was broken and the score would always update in the past. Also renamed the screen from “Scores” to “High Scores”
- Drastically improved the help screen based on user feedback– it now offers substantially better verbiage.  It also offers reference guidance from around the web on strategies for playing the game.

Leader Boards for Hanoi

February 1st, 2011

When I originally released Hanoi in September I promised world wide high scores as coming soon!  Well I am glad to let you know they are nearly done, it’s not nearly as easy as it sounds!  I had to setup my own server side database, web services, and high score system to get all of this to work.

I also would be introducing an element of instability into the game where it will now be reaching out onto the network to fetch data, there are lots of use cases around this where the server could be down for maintenance, the internet connection on the phone could be not working, airplane mode, etc.  So I have to take that into consideration when developing the platform, with that said, here is a screen shot of how its going to look on the game.  The server side piece is done, the client side piece is done, and I am working on finishing up some testing and some final details.

I should have the final push out very soon!  The lite version will have read only Leader Boards, while the Full Version will let you participate in the leader boards.

The below shot contains test data:

Importing Visual Studio Themes

January 20th, 2011

I had a dilemma today, I needed to use Visual Studio 2008 but I have been using Visual Studio 2010 for so long that I have highly tailored the colors, and themes to a degree where they are exactly how I like them.  I simply can not work without my dark Visual Studio theme anymore, and my color scheme, its like my new religion.

First thing I tried to do was import my trusty .vssettings file that I have on my DropBox account, I exported this taking care to only export the color settings and I always keep the latest copy of it on my DropBox account just in case I need it.  When I tried to load it into Visual Studio 2008 it immediately complained that its from an unsupported version of Visual Studio.  Dang!

But, wait!  What if I open this file in Notepad and just simply change the version number? Will the importer ignore the settings it doesn’t support or will it fail miserably? I open the file, change the following line:

<ApplicationIdentity version=”10.0″/>

to

<ApplicationIdentity version=”9.0″/>

… and, it worked! Awesome!

Start of a New Year

January 7th, 2011

Well its the beginning of a new year, and I am very happy with the progress I have made with Elucidsoft!

Let see what I have accomplished:

  • Version 1.6 of Hanoi was released
  • A lite version of Hanoi was created and released, and broke 1000+ downloads in 3 days!!
  • Nearly ready to release “BlackOut” for Windows Phone 7, which I think will be a very cool addition to the growing products offered.
  • I have begun working with very cool company in doing a Windows Phone 7 application that will be integrated with their excellent and very cool service.  Its still in the early stages, but based on the exchanges with them I have very high hopes, and can’t wait to work on it!!
  • The Elucidsoft website has gone through a couple of versions, the latest version that was uploaded right before this post is one updating the graphics to reflect Hanoi v1.6 and making the site compatible with 1024×768 resolutions.   It also looks much better when viewed from a WP7 device.  Its still got a slight issue where text overlaps when viewed on the iPhone, but thats on the ToDo list for 2011!
  • Another addition to the site is GetSatisfaction is now integrated into the site, a Feedback tab will show up on the right hand side of the site that will let you add feedback for products…

There are quite a few things already on my ToDo list for 2011, I would rather not list them out anywhere since my list is pretty dynamic I tend to change it nearly every day as I prioritize things based on whats going on around me, the world, the news, the industry, etc.

Sneak Peek at Next WP7 Game and the future…

December 28th, 2010

Been working very hard on a new Windows Phone 7 game, and at the same time I have pushed two new versions of Hanoi.  I have to admit that I am not doing a very good job at keeping this blog in the loop on what is going on with everything.  With that said, I am going to make 2011 my new attempt at trying to keep things more updated.

To the left is a sneak peek at the new game, it should be out very shortly.  Its about 75% completed, its fully functional, I only need to add some polish to the main menu, etc. If you can guess what it is from that then you definitely get some brownie points! ;)

This will be the last game that I write for a bit, I am going to focus on productivity and business applications for Windows Phone 7  at which point I may switch back and forth between the two of them.  I am also looking into Appcelerator to do some Android and iPhone work.  I have done Objective-C iPhone work in the past, but its pretty time consuming and I have been an Appcelerator beta tester for as before the company even existed but never really used any of their products.

Windows Phone 7 User Agents

November 19th, 2010

I ran into an issue where I needed to check for a Windows Phone 7 user agent, turns out however, each device has its own unique user agent.  Here are the following user agents I have been able to muster up so far, as of 03/24/2011:

Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0) Asus;Galaxy6
Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0) HTC;WP7
Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; Microsoft Corporation; CEPC)
Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0) LG;LG-E900
Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; LG; GW910)
Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0) SAMSUNG;SGH-i707
Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; SAMSUNG; Taylor)
Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; TOSHIBA; TSUNAGI)
Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; SAMSUNG; SGH-i917)
Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; LG; GW910)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; XBLWP7; ZuneWP7)
Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0) LG;LG-E900h)
Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; LG; LG-E900)

If you find any additional ones, post in the comments and I will add it!

Update: For Mango devices and for best practices around using the User Agent string from Windows Phone 7 please read the following Blog post from Microsoft.

WP7 Lessons Learned Part 1: Using IsTrial() Properly

November 12th, 2010

If you are developing for Windows Phone 7, and planning on publishing to the marketplace it is a good idea to support a trial mode of your product.  You will get a much wider audience if you support trial than if you don’t, Microsoft themselves said they found it increased sales and drove further demand.  In this post I am going to discuss how I went about implementing IsTrial following the Microsoft best practices, how I setup my development environment to make it extremely easy to switch between testing my game in trial mode and paid mode and other best practices to follow.

First and foremost, when using IsTrial() you should be aware of the Microsoft best practices as follows are some generalized ones:

  • Do not rely on usage time limited trials to protect your application’s value.
    Typically, it is best to protect the value of your full mode application by limiting trial access to key code paths. A user may uninstall and retry an application without restriction so a trial design that offers full mode behavior for a limited time provides only inconvenience as a barrier to reuse.
  • Cache license state if you check trial state frequently.
    Note that the IsTrial() and the Guide.IsTrialMode methods are designed to be event-driven. A typical call takes approximately 60 milliseconds or more.
  • Check the IsTrial() state when your application loads or resumes.
    You can avoid some potential trial design flaws especially if you cache the IsTrial() state.
  • Provide a way for users to buy your trial application before the end-of-trial.
  • Make sure that you help users understand why they want to buy your application, perhaps, by implementing your trial limit at a point in the application where they will naturally want more.
    For example, let users experience the first level of game play and require them to purchase the application to play higher levels, retain points, or to connect to a gaming service.

See the Microsoft site for more details.

One of the most important things to pay attention to here is where they state you should “Cache the IsTrial() state..”, since each call to IsTrial() could take up to 60 milliseconds if you call this in a loop or if you call this method often it could potentially affect performance of your application.  It may also cause your application to fail certification if they later enforce restrictions on calling this method a number of times.

For instance in my applicaiton Hanoi, I call IsTrial() one time on startup, and one time on resume.  That’s it, the rest of the time I am reading a cached value and I have found this to be extremely useful.  Here is how I have implemented my version of a Cached version IsTrial().

Here is the following code snippet for how to set it up in your App.cs:

public partial class App : Application    {
public static bool IsTrial = true;

private static void LoadIsTrial()
{
IsTrial = new LicenseInformation().IsTrial();

#if DEBUG_TRIAL
IsTrial = true;
#endif
}

private void Application_Launching(object sender, LaunchingEventArgs e)
{
LoadIsTrial();
}

private void Application_Activated(object sender, ActivatedEventArgs e)
{
LoadIsTrial();
}
}

Now in my opinion, this is very elegant because to access the cached variable all you need to do is App.IsTrial and you are accessing the cached version of IsTrial instead of calling the method, and you are guaranteed to have an up to date value.  Next as you may have noticed is I have some #if #endif statements in their, which is what makes debugging this a breeze, also note that when this gets compiled in release mode anything inside those lines will get optimized out of the final code, so theres no chance it will ever run.  I also assumed the IsTrial cached version is equal to True, I do this to play it safe in the event that something does go wrong the user will get the benefit of the doubt.

Below is how to setup Visual Studio so you can easily switch between Trial and Paid:

Note: If you are walking through you may notice I have already setup mine called “Debug_Trial”, just ignore that and follow along with the screen shots.

The first thing you need to do is open up the Configuration Manager in Visual Studio, so click on the drop down where it says “Debug” or “Release” and click “Configuration Manager”

Next, in the configuration manager there is another drop down listing all of the Active Solution Configurations, click on “<New…>”

Next, change the “Copy settings from:” drop down to “Debug” or “Release” whichever one you are creating.  If you are creating a profile to test IsTrial in debug mode than select debug and vice versa, then give it a name. I chose Debug_Trial.

Last but least, since this probably the most important step.  Go to the properties of your project, click the “Configuration” drop down and select the configuration you just created.  Then paste into the “Conditional compilation symbols” box “DEBUG_TRIAL” as it appears above, make sure there is a space between SILVERLIGHT and no leading space.

Now when you need to test your Trial mode, just go to the configuration menu select the “Debug_Trial” and then hit F5 or click Run.  If you want to test the paid, just change it to “Debug” and do the same.  This is the easiest way to implement this that I have found.  Requires nearly zero code, and once you have this setup you never have to touch it again!