TightWire Adventures
Today is the official launch of TightWire Adventures and TightWire Adventures HD by iBright Studios! I developed TightWire Adventures for iBright and it is a really great spin on their very successful original TightWire game! TightWire Adventures offers 15 new unique 3D levels, and the hero now can ride a unicycle across the tight wire. There is also a new feature that allows you to earn and activate power-ups depending on your performance, which is really incredible. There is a version for the iPhone that supports retina graphics for the newer iDevices and a separate version titled TightWire Adventures HD for the iPad. The gameplay and UI are some of the best of the App Store, so please give it a try and let your friends know about it also! (You can click on any of the images to see a larger version.)
TightWire Adventures (for the iPhone and iPod touch)
TightWire Adventures HD (for the iPad)
Here is the description from iTunes:
"Yes, he’s back, and he’s more daring than ever.
TightWire and its unlikely hero return for a second round of face-smashing, gravity defying, TightWire walking. He flips, he dances, he rocks. Welcome to TightWire Adventures.
WALK, and now UNICYCLE through 15 incredible 3D levels of varying difficulty and length. Battle gravity and projectiles as you try to make it across the TightWire using the accelerometer. A fun-filled game for every age category!
-15 incredible, real world levels!
-Master walking and unicycle for each level!
-Interactive projectiles unique to each level!
-Multiple power-ups, falls and dances!
-Easy to learn but hard to master!
-High resolution Retina graphics!
-GameCenter achievements!
-Updates to come – More skills, more falls, more levels and more game modes in the works!
!!!!!THANK YOU TO ALL THE TightWire FANS ACROSS THE WORLD!!!!!"
Finished Crib
I built a crib back in 2007 for our first child out of undimensioned maple, which turned out pretty nice. I often receive questions or comments about the crib, but I recently realized that I had never posted any finished pictures. Here is a picture taken back in 2007 of the completed project.
The crib was build back in 2007 for our first child and is now being used by our third child. It has held up beautifully and looks as good as the day it was finished! It has moved from MN to TX and bounced between several rooms, but it is still in perfect condition. The next woodworking project will be a custom play kitchen!
Mazonaut
Today is the official launch of Mazonaut by iBright Studios! I developed Mazonaut for iBright and it is a really great original game! Here is the description from iTunes: "The object is simple - Using the accelerometer, swiftly move through the maze keeping ahead of the destructive forces the black hole imposes on the maze segments. The maze is pulled apart faster and faster according to how far you get, so you must get the Mazonaut through before he too is pulled into the black hole! Anticipation and forward-thinking are a must, otherwise the Mazonaut will become a causality just as the maze does! "
This is a really great game and a lot of value for the money! Mazonaut is $0.99 and is a universal application, so it will run on both the iPhone/iPod touch and iPad with graphics that are appropriate for all of the devices. Please pass along this news to all of your friends and let iBright know what you would like to see in future updates.
Sheeple Updates Now Available
The newest Sheeple (iPhone) and Sheeple HD (iPad) updates were both approved and released today. We are especially excited about the new Sheeple HD update as it was much needed and is a lot of fun to play. If you haven’t already tried out either game then please do! Sheeple | Sheeple HD
We will have more information about our new title that is currently in development over the next few weeks. There is a lot going on at Tomato Factory.
DesignYourOwnEyewear.com
A site that I recently developed for Indivijual was featured on Glamour.com today. Indivijual offers custom designed and hand made eyewear. They have a really quality product and are now offering anyone the ability to design their own eyewear on their new site that I created for them: http://DesignYourOwnEyewear.com. The site is simple to use and has a nice clean design. Technically the site is really awesome since it is basically a little 2D NURBS based CAD application in a browser. Give it a try and let anyone you know that would be interested in custom eyewear know about Indivijual's services. They can make eye or sun glasses that are 100% unique for you.
You can read the Glamour.com article here.
DPAPI
I wrote this documentation and project years ago and found it while looking through some of my archives last night. It probably still has some millage left and might be found useful to someone setting up DPAPI. You can download the binaries or source code below.
DPAPI Setup
1. Create the directory C:\DPAPI and copy the contents from the DPAPI directory (found in DPAPIBinaries.zip) into the new directory.
2. Create a local Windows account that will be used to run the Enterprise Services Application and Windows Service with the username DPAPIAccount. Make sure to uncheck the User must change password at next logon check box and check the Password never expires check box. Use the Local Security Policy tool in the Administrative Tools programs group to give the account the Log on locally and Log on as a batch job privileges.
You must log off with your current account and login as the DPAPIAccount user to create the user profile. Once you have logged in as the DPAPIAccount user you can then log off and log back in as your normal account.
3. Open a command prompt and run the following command to register the serviced component.
regsvcs C:\DPAPI\DPAPIComp.dll
4. Open the Component Services management console and navigate to the Component Services->Computers->My Computer->COM+ Applications folder. Right-click on the DPAPI Helper Application application and select the Properties menu option.
6. Click on the Identity tab and select the This user radio button. Enter the MachineName\DPAPIAccount username and password and then click on the OK button.
7. Expand the DPAPI Helper Application->Roles folder. You will need to add the users to the Roles\Users nodes that will need access to encrypt and decrypt. All users that need access to encrypt and/or decrypt must also be added to the Marshaler\Users node.
Add the MachineName\ASPNET ("NETWORK SERVICE" in IIS 6.0) user to all three groups for this example since we will test encrypting and decrypting through an ASP.NET application.
8. Open a command prompt and run the following command to install the Windows service.
installutil C:\DPAPI\DPAPIService.exe
Enter the MachineName\DPAPIAccount ("NETWORK SERVICE" in IIS 6.0) username and password and click the "OK" button.
9. Open the Services management console and start the DPAPI Service service.
10. Open the IIS management console and add a new virtual directory named DPAPIWeb.
11. Copy the contents from the DPAPIWeb directory (found in DPAPIBinaries.zip) into the new virtual directory.
12. Open http://localhost/DPAPIWeb/WebForm1.aspx in a browser and test encrypting and decrypting. Obviously, you would want to make sure that this application was not accessible outside of the local server.
Sheeple On The iPad
Like all of the other iPhone developers, I too have been scheming planning how I can take advantage of the iPad with existing and new applications. As for my company, Tomato Factory, we plan on going down the Universal Applications route discussed here. The lack of information in the current iPhone SDK 3.2 beta seed is a bit frustrating. Also, the lack of information around when developers will have access to submit iPad native or universal applications is frustrating. I am sure that Apple doesn't want a horde of overly eager developers to submit iPad native applications without having ever tested their applications on a physical device. As all experienced iPhone developers know, the simulator is not the same as the physical device. I typically do not even bother using the simulator.
I decided to see how my application Sheeple looked on the iPad simulator. Here are screenshots of Sheeple running in both native iPhone 480x320 resolution (left) and scaled 2x resolution (right).


(click image to view full size)
It really doesn't look so bad at first glance, but it won't be long before users will not accept this compatibility mode. As soon as developers are taking advantage of the additional pixels they have access to on the iPad, this compatibility mode will probably be something that we will see less and less of. I am developing several games currently and we are using vector graphics, so creating a universal application should be a very straight forward process.
Indie Appolis
I am excited to announce the launch of my new site Indie Appolis! Here is the information from our about page.
We know how difficult it can be to gain visibility as an indie iPhone developer and we want to help! Advertising is very expensive on the main iPhone review sites and they are so swamped that your little unknown indie game might never be reviewed. That is where Indie Appolis comes into the picture. We want to help give your app the visibility that it deserves and also focus 100% on the core of what we think has made the iPhone an incredible gaming platform, the indie developer!
I was able to interview some incredible developers for the launch of the site and have others in the works. Check out these great interviews.
Trenches: Developer Interview | Game Review
MiniSquadron: Developer Interview | Game Review
Compression: Developer Interview | Game Review
I also wrote a custom ad tracking/management application that is in use on the site currently. I will be packaging it up and then offering it as a product of daGrind called AdMan.
Tomato Factory
The past year has been extremely busy with the birth of my son, moving back to Texas, and getting into iPhone development. In July of 2009 I started an iPhone game development company. Tomato Factory released its first game Sheeple on September, 18 2009. It has been an incredible experience learning about both the development (easy) and the marketing (hard) aspects of the iPhone app marketplace! I have gotten to know some good indie iPhone developers and look forward to what 2010 has in store.
We are currently working on two other games and have some exciting plans for 2010. I will be posting regular development related news on this blog. If you haven't already tried Sheeple, then please do so. There is also a Lite version available.
CruiseControl.NET Continuous Integration Server
Overview
The CruiseControl.NET Continuous Integration Server allows for automated continuous builds. These builds are triggered when new source code is committed to the source code repository and the build process can include steps to perform unit testing as well as other various build related tasks. More information can be found at the CruiseControl.NET website: http://ccnet.thoughtworks.com. This article assumes that you are using CVSDude as your SCM provider, but using an internal provider will require few changes.
Installation Prerequisites
These are the installation prerequisites for CruiseControl.NET Server. http://confluence.public.thoughtworks.org/display/CCNET/Installation+Prerequisites
- Microsoft .NET Framwork 2.0
- ASP.NET enabled web server (typically IIS with ASP.NET configured)
CruiseControl.NET Server Installation
The following steps are required to install the CruiseControl.NET Server and Web Dashboard.
- Download latest release of CruiseControl.NET on the build server. http://sourceforge.net/project/showfiles.php?group_id=71179&package_id=83198
- Execute the CruiseControl.NET setup installer on the build server.
- Click on the “Next >” button.
- Click on the “I Agree” button.
- Leave all of the CuirseControl.NET Server, Web Dashboard, and Examples components selected and click on the “Next >” button.
- Leave the “Install CC.Net server as a Windows service” and “Create virtual directory in IIS for Web Dashboard” options selected and click on the “Next >” button.
- Leave the default destination folder as “C:\Program Files\CruiseControl.NET” and click on the “Next >” button.
- Click on the “Install” button and wait for the “Installation Complete” message.
- Click on the “Next >” button.
- Click on the “Finish” button.
CruiseControl.NET Server Windows Service Configuration
The following steps are required to ensure that the CruiseControl.NET Server Windows service is automatically started when Windows starts.
- Click on the “Start” menu.
- Click on “Run…”.
- Enter “services.msc” and click on the “OK” button.
- Right-click the “CruiseControl.NET Server” service and click on the “Properties” menu option.
- Click on the “Log On” tab.
- Click on the “This account” radio button.
- Enter the username and password for the account that is currently logged into the build server. This is required because subversion will not be able to verify the trust of CVSDude’s certificate. In a future step below we will permanently cache our decision to trust CVSDude’s certificate and that is why the user credentials must match since the cached server authentication is stored in a user director (i.e. “C:\Documents and Settings\Username\Application Data\Subversion\auth\svn.ssl.server”.
- Click on the “General” tab.
- Change the startup type to “Automatic”.
- Click on the “Start” button.
- Click on the “OK” button.
- Close the Services window.
CruiseControl.NET Web Dashboard Configuration
The following steps are required to ensure that the CruiseControl.NET Web Dashboard is property configured to run as an ASP.NET 2.0 application.
- Click on the “Start” menu.
- Click on “Run…”.
- Enter “inetmgr” and click on the “OK” button.
- Expand the “(local computer)” node.
- Expand the “Web Sites” node.
- Expand the “Default Web Site” node.
- Right-click on the “ccnet” virtual directory and click on the “Properties” menu option.
- Click on the “ASP.NET” tab.
- Ensure that the ASP.NET version is set to 2.0.50727.
- If there are other ASP.NET 1.x applications on this web server then you will need to make sure that the ASP.NET 1.x and ASP.NET 2.0 application use separate application pools for the different ASP.NET versions.
- Click on the “OK” button.
- Close the Internet Information Services Manager window.
- Open http://localhost/ccnet in a browser and ensure that the website displays without errors.
Subversion Installation
The following steps are required to install Subversion on the build server.
- Download the Win32 binary package of Subversion onto the builder server.
http://subversion.apache.org/packages.html - Extract the contents of the zip file’s versioned “svn-win32-#.#.#” directory into the “C:\Program Files\Subversion” directory.
- Download ThoughtWorks.CruiseControl.MSBuild.dll to the “C:\Program Files\CruiseControl.NET” directory.
http://ccnetlive.thoughtworks.com/MSBuildXmlLogger-Builds/ThoughtWorks.CruiseControl.MSBuild.dll
CruiseControl.NET Project Configuration
The following steps are required to configure CruiseControl.NET.
- Create a build directory (ex. C:\CruiseControl.NET.Builds).
- Create the project directory in the build directory created in step 1 (ex. C:\CruiseControl.NET.Builds\[PROJECT_NAME_GOES_HERE]).
- Run the following command from the C:\Program Files\Subversion\bin directory.
svn checkout https://[REPOSITORY_URL_GOES_HERE] c:\CruiseControl.NET.Builds\[PROJECT_NAME_GOES_HERE] --username user --password pass - You will be prompted that there was an error validating the server certificate. Press ‘p’ to permanently cache the authentication.
- Setup the IIS virtual directory for project.
- Open the C:\Program Files\CruiseControl.NET\server\ccnet.config file in a text editor.
- Add a project section to the ccnet.config file.
<project>
<workingDirectory>C:\CruiseControl.NET.Builds\[PROJECT_NAME_GOES_HERE]\</workingDirectory>
<webURL>http://localhost/ccnet</webURL>
<sourcecontrol autoGetSource="true">
<trunkUrl>https://[REPOSITORY_URL_GOES_HERE]</trunkUrl>
<executable>C:\Program Files\Subversion\bin\svn.exe</executable>
<workingDirectory>C:\CruiseControl.NET.Builds\[PROJECT_NAME_GOES_HERE]\</workingDirectory>
<username>username</username>
<password>password</password>
</sourcecontrol>
<tasks>
<msbuild>
<executable>C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
<workingDirectory>C:\CruiseControl.NET.Builds\[PROJECT_NAME_GOES_HERE]</workingDirectory>
<projectFile>[PROJECT_NAME_GOES_HERE].sln</projectFile>
<buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
<targets>Build</targets>
<timeout>15</timeout>
<logger>ThoughtWorks.CruiseControl.MsBuild.XmlLogger,C:\Program Files\CruiseControl.NET\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
</msbuild>
</tasks>
<triggers>
<intervalTrigger name="continuous" seconds="3600" buildCondition="IfModificationExists" />
</triggers>
<publishers>
<xmllogger>
<logDir>C:\CruiseControl.NET.Builds\Logs\[PROJECT_NAME_GOES_HERE]\</logDir>
</xmllogger>
</publishers>
</project> - Open the “C:\Program Files\CruiseControl.NET\webdashboard\dashboard.config” configuration file.
- Add the line “<xslFile>xsl/compile-msbuild.xsl</xslFile>” to the list of <xslFileNames></xslFileNames> section.
- Add a <xslReportBuildPlugin /> item.
<xslReportBuildPlugin description=”MSBuild Output” actionName=”MSBuildOutputBuildPlugin” xslFileName=”xsl\msbuild.xsl” /> - Restart the CruiseControl.NET Service (i.e. Start->Run…->services.msc).






