tag:blogger.com,1999:blog-54038890501115911032024-03-20T02:48:22.399-07:00Chair Warming FacilityUnknownnoreply@blogger.comBlogger20125tag:blogger.com,1999:blog-5403889050111591103.post-53192279030319744982015-06-28T13:11:00.000-07:002015-06-28T13:11:19.014-07:00Catch Up TV Film Guide - Advanced CustomisationVersion v1.01 of Catch Up TV Film Guide has an advanced mode that allows you to write your own config to retrieve and display TV listings from many services. This article aims to tell you how to do this.<br />
<br />
<a name='more'></a><br />
<br />
To enable Advanced Mode press the Menu button in the bottom right, followed by selecting Advanced Mode.<br />
<br />
To update the config, open the Menu and select Update Config, enter a the URL to the config and wait it to be downloaded and processed. If all goes well tapping Refresh in the bottom left will display the TV listings.<br />
<br />
If you don't have your own webspace a paste bin website with a "raw" download mode will do, <a href="http://pastebin.com/">http://pastebin.com/</a> works at the time of writing.<br />
<br />
Here's the basic file format structure:<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;"><AdvancedConfig><br /> <IndexUrl>http://www.example.com/</IndexUrl><br /> <UserAgent>Example</UserAgent><br /> <IndexConfig/><br /> <ShowConfig/><br /> <EpisodeConfig/><br /></AdvancedConfig></span></blockquote>
The UserAgent field is optional. The IndexConfig, ShowConfig and EpisodeConfig blocks represent different levels of detail and all the follow the same format. The ShowConfig and EpisodeConfig are both optional. Here's the basic format:<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;"><BeginMarkerRegex>EXAMPLE REGEX</BeginMarkerRegex><br /><EndMarkerRegex>EXAMPLE REGEX</EndMarkerRegex><br /><ParserConfig><br /> <ContentConfigs><br /> <ContentConfig><br /> <ContentRegex>(.+)</ContentRegex><br /> <GroupFieldTypes><br /> <GroupFieldType>ItemName</GroupFieldType><br /> </GroupFieldTypes><br /> </ContentConfig><br /> </ContentConfigs><br /></ParserConfig></span></blockquote>
Note, you will need to escape XML values (angle brackets, quotes and such in the regexes) to make it valid XML. You can use an online converter like <a href="http://www.htmlescape.net/htmlescape_tool.html">http://www.htmlescape.net/htmlescape_tool.html</a> for this.<br />
<br />
The BeginMarkexRegex and EndMarkexRegex fields are optional and indicate the portion of the webpage to apply the ContentConfigs to.<br />
<br />
Each ContentConfig block is 1 regular expression. You can have as many ContentConfig blocks as you like, together they represent a single content item. You'll want to use multiple ContentConfig blocks if the content name and link are in different parts of the page then. The content configs will be applied repeatedly until either the EndMarkerRegex or the end of the page is reached.<br />
<br />
The GroupFieldType defines how to interpret the regular expression groups. The valid values are None, ItemName and ItemLink. Here's an example how you would use this:<br />
<br />
Example webpage:<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;"><a href="episode1.html">Episode 1</h1><br /><a href="episode2.html">Episode 2</h1><br /><a href="episode3.html">Episode 3</h1></span></blockquote>
Example regex:<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;"><a href=\"(.+)\">(.+)</h1></span></blockquote>
Example partial config:<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;"><ParserConfig><br /> <ContentConfigs><br /> <ContentConfig><br /> <ContentRegex>&lt;a href=\&quot;(.+)\&quot;&gt;(.+)&lt;/h1&gt;</ContentRegex><br /> <GroupFieldTypes><br /> <GroupFieldType>ItemLink</GroupFieldType><br /> <GroupFieldType>ItemName</GroupFieldType><br /> </GroupFieldTypes><br /> </ContentConfig><br /> </ContentConfigs><br /></ParserConfig></span></blockquote>
<div>
<br /></div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-15750553522501513712015-06-11T15:08:00.001-07:002015-06-11T15:09:02.722-07:00Catch Up TV Film Guide - Bug and FixAnyone using Catch Up TV Film Guide may have noticed the Refresh button had stopped working recently. I've looked into this and submitted a fix, hopefully this will be available to everyone as a patch within the next few weeks.<br />
<br />
I've also added an Advanced Mode, which allows the app to download the latest definitions for gathering the programme data. This way no one has to wait for a patch to be prepared and released, the latest definitions can be downloaded at will.<br />
<br />
By default it will fetch definitions for films, same as the regular mode, but this is user configurable and I'll share more details about updating the definitions at a later date.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-25407489911671143472015-04-23T11:11:00.000-07:002015-04-23T11:42:54.463-07:00About Turn Out NowAbout Turn is a game where you have to line ducks up in a row against the clock.<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Play by tapping on the ducks to turn them around. When a row of ducks all face same direction the row is cleared and points are awarded.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipDVyyHQrkj_RqBUsPOGm5XxAur0whuckja19UgvdMCWKBwU8TI8ZdqtIh6TDHwr4D7hdgaNpUIfdsuBEAev2iXezSCef9q5shAiN4S4MgjW3pVlO04GHhPBMF9nKtR2y9B9NXTgQpX0DV/s1600/screenshot_02_720x408.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipDVyyHQrkj_RqBUsPOGm5XxAur0whuckja19UgvdMCWKBwU8TI8ZdqtIh6TDHwr4D7hdgaNpUIfdsuBEAev2iXezSCef9q5shAiN4S4MgjW3pVlO04GHhPBMF9nKtR2y9B9NXTgQpX0DV/s1600/screenshot_02_720x408.png" height="226" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
About Turn for PlayStation®Mobile-compatible Devices is out now in all supported regions.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://p0.dl.playstation.net/p0/psns/psnschk.htm?a=psns%3Abrowse%3Fproduct%3DEM0243-NPOA00254_00-0000000000000000&type=psm" target="_blank"><img border="0" src="http://www.playstation.com/promotion/badge/PSM_badge_en.png" /></a></div>
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: left;">
Letting the ducks swim into the diamonds will increase your score. And letting the ducks swim into the bomb will decrease the remaining time, so watch out!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Test your skills and try to beat your high score.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-pwxRCC1lCJHUoHoQ4NWMJXgPY1ArBNyqbL8I3KFo14kUsTgWpItYiQncyijFU_69yWNgjm2E8JtbTQYOIjTNaWlNsaAUlrL_Uuc6KAYyVdNLwtYdsIeXk_-TDbTqR7Hes36x9r0uXZ9D/s1600/screenshot_01_720x408.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-pwxRCC1lCJHUoHoQ4NWMJXgPY1ArBNyqbL8I3KFo14kUsTgWpItYiQncyijFU_69yWNgjm2E8JtbTQYOIjTNaWlNsaAUlrL_Uuc6KAYyVdNLwtYdsIeXk_-TDbTqR7Hes36x9r0uXZ9D/s1600/screenshot_01_720x408.png" height="226" width="400" /></a></div>
<br />
There are two different game modes. Easy mode makes it more obvious which way the ducks are facing. High scores are stored separately for normal and easy modes.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-bw0oBhu238LGby7sl5qu408cvaqDdlf4Po_gPGnRzq9NO4eOytMA21Dq-LjSbtyij2Sc5t_xWzy0KVcsjdU0Ci9etsbPqna9ufZF57ZAmDyF1s_5Vzkutly8EgsaoRCHcj1JQHDoJLMg/s1600/screenshot_03_720x408.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-bw0oBhu238LGby7sl5qu408cvaqDdlf4Po_gPGnRzq9NO4eOytMA21Dq-LjSbtyij2Sc5t_xWzy0KVcsjdU0Ci9etsbPqna9ufZF57ZAmDyF1s_5Vzkutly8EgsaoRCHcj1JQHDoJLMg/s1600/screenshot_03_720x408.png" height="226" width="400" /></a></div>
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-44543005172174099472015-03-25T11:26:00.001-07:002015-04-23T11:37:09.495-07:00Catch Up TV Film GuideCatch Up TV Film Guide for PlayStation®Mobile is out now on the UK PlayStation®Store.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizmyLGAEHX-I8Qef4pwWR878WOFPwncOYlUU0ewDY6VimyDow9j-yzLsBCMtnVNxM5KK1eIV3K4ae66NnO4mavvssev0OTFZ3tk2w7_6v_pgZqOtrD-vkoO4Ua3fl9nWUh5Lchuzc7Hr1U/s1600/screenshot_01_720x408.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizmyLGAEHX-I8Qef4pwWR878WOFPwncOYlUU0ewDY6VimyDow9j-yzLsBCMtnVNxM5KK1eIV3K4ae66NnO4mavvssev0OTFZ3tk2w7_6v_pgZqOtrD-vkoO4Ua3fl9nWUh5Lchuzc7Hr1U/s1600/screenshot_01_720x408.png" height="226" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://p0.dl.playstation.net/p0/psns/psnschk.htm?a=psns%3Abrowse%3Fproduct%3DEM0243-NPOA00248_00-0000000000000000&type=psm" target="_blank"><img border="0" src="http://www.playstation.com/promotion/badge/PSM_badge_en.png" /></a><span id="goog_5716557"></span><span id="goog_5716558"></span><a href="https://www.blogger.com/"></a></div>
<a name='more'></a><br />
Here's the store description:<br />
<blockquote class="tr_bq">
An electronic programme guide for the Films category of a certain British TV catch up service. Designed for simplicity and speed, ideal for those too lazy to get out of bed to check the official listings by other means. </blockquote>
<blockquote class="tr_bq">
Features:<br />
- Useful search buttons for finding more information on a particular programme.<br />
- Sort results by name, length or expiry date.<br />
- Indicates which results have been newly added. </blockquote>
<blockquote class="tr_bq">
Please note the following:<br />
- An internet connection is required for this app to function.<br />
- This app relies on multiple third party services outside of the developer's control, some or all features may stop functioning without notice.<br />
- This is an unofficial app, please do not contact the third parties for support.<br />
- Only displays results for the Films category.</blockquote>
And another screenshot of the search options:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglGOOFd6twUzYr-GKRWIIxaxnLf_ckIeCfbuo5mY3_KmT0PEovgr22YuklGjDMGaLzEXPaL7GKnOInam_oBeFKTd9PW-rcGSRw3iM0_s0emd_N2v65DzUUEHgpW3tQ_pjNDwzFUMtjrImF/s1600/screenshot_02_720x408.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglGOOFd6twUzYr-GKRWIIxaxnLf_ckIeCfbuo5mY3_KmT0PEovgr22YuklGjDMGaLzEXPaL7GKnOInam_oBeFKTd9PW-rcGSRw3iM0_s0emd_N2v65DzUUEHgpW3tQ_pjNDwzFUMtjrImF/s1600/screenshot_02_720x408.png" height="226" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
And for those viewing this page on a compatible device here's a link to it on the store:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://p0.dl.playstation.net/p0/psns/psnschk.htm?a=psns%3Abrowse%3Fproduct%3DEM0243-NPOA00248_00-0000000000000000&type=psm" target="_blank"><img border="0" src="http://www.playstation.com/promotion/badge/PSM_badge_en.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-43734673129299426912014-08-28T13:45:00.002-07:002014-08-28T13:45:52.008-07:00PSM Development: Shovel Shuffle Regional Downloads BreakdownSo I was going through the sales figures for Shovel Shuffle, which includes the number of downloads since it's free to play and I made another chart. It shows downloads per region as a percentage, where all regions combined make 100% and a region relates to where in the world the game is available.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGEkEuacseirpLK63vaSow6Xo1ZE8AumnGArNR-p4aOz7NRfdS1PfIJJhxcV9CoFeP09IKjw7Bl9IuR6mNxcqwH7bedn2JJnwjCn68qKF4MlfZrkc5ejZXgr7j76Eql6J6dCS4aRF6bUs3/s1600/shovel_shuffle_region_downloads.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGEkEuacseirpLK63vaSow6Xo1ZE8AumnGArNR-p4aOz7NRfdS1PfIJJhxcV9CoFeP09IKjw7Bl9IuR6mNxcqwH7bedn2JJnwjCn68qKF4MlfZrkc5ejZXgr7j76Eql6J6dCS4aRF6bUs3/s1600/shovel_shuffle_region_downloads.png" /></a></div>
I've compared it to each region's population and it looks fairly consistent. The only exception being GB, FR and ES regions having higher than normal download rates for their population. This could just be down to noise, or perhaps western Europeans are just more into games than the rest of the world.<br />
<br />
As of June 2014 Shovel Shuffle is also available in Austria, India and Switzerland. I haven't include these in the chart since it would skew the results. Unfortunately players in those regions were never able to taste success on the scoreboards because they were patched out in the same month.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-80138965451764836602014-07-27T07:20:00.001-07:002014-07-27T07:20:34.586-07:00PSM Development: Shovel Shuffle Time BreakdownI thought I'd make another development time breakdown post <a href="http://chairwarmingfacility.blogspot.com/2013/07/psm-development-time.html" target="_blank">like I did last time with Touch Treasure</a>. Overall it took nearly a year of occasional evenings and weekends to get Shovel Shuffle to where it is now.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZij2kG9FAGwrWfDopxt7OdY4oF1bWMVhitgeU8jvphX3mjxmS-hA6aggUZk6kaA6mjoCnyKRk2i-tnfCNrETlshy4VWkKLbv2RGdu8poWiD6jvVqr_fkHmIj0pmHzit731Omdza_b_TyO/s1600/shovel_shuffle_time_breakdown.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZij2kG9FAGwrWfDopxt7OdY4oF1bWMVhitgeU8jvphX3mjxmS-hA6aggUZk6kaA6mjoCnyKRk2i-tnfCNrETlshy4VWkKLbv2RGdu8poWiD6jvVqr_fkHmIj0pmHzit731Omdza_b_TyO/s1600/shovel_shuffle_time_breakdown.png" /></a></div>
<br />
<a name='more'></a><br />
Rather unsurprisingly it didn't take that long to complete the core gameplay. I was able to build on the framework from the last game. The majority of the time was spent writing a UI framework from scratch followed by creating and tweaking each of the UI screens.<br />
<br />
I'm hoping on my next game I can spend less time on UI, or rather be able to add more UI screens by spending less time on each one.<br />
<br />
I thought it'd be interesting to see how much time I spent as the project grew older.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3prDhOtt81BVzTb2mPmZ7A6LBNRYIUAFbK1Kf5W3aHFH2-kMzVhQTogDvSiCaT13L2ukTIjUdKcJzA9wyt8LkEvid-S9U8wKwj_xXZ2AR8rIGq6f5QMvRRBLtjKvXC7WpM2ReWHDVRLOn/s1600/shovel_shuffle_changes.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3prDhOtt81BVzTb2mPmZ7A6LBNRYIUAFbK1Kf5W3aHFH2-kMzVhQTogDvSiCaT13L2ukTIjUdKcJzA9wyt8LkEvid-S9U8wKwj_xXZ2AR8rIGq6f5QMvRRBLtjKvXC7WpM2ReWHDVRLOn/s1600/shovel_shuffle_changes.png" /></a></div>
A lot of submission woes with Xperia Z (exact variant unknown), I'm still not sure what was wrong. I'm thinking it was either memory related (differences between Vita and Android garbage collection and/or system API memory usage) or the Android PSM Runtime was silently patched to fix the issue.<br />
<br />
I'm currently pondering if my next game should be on SDK 1 or 2. It's a trade off between a larger install base and potential new features exclusive to SDK 2. At the same time I've learnt adding unplanned features (like scoreboards) can be a huge time sink.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-78432896551457320262014-04-29T10:02:00.003-07:002015-04-23T11:35:34.730-07:00Shovel Shuffle ScoreboardsUnfortunately the scoreboard feature is going to be removed from Shovel Shuffle in the next month or so for reasons beyond my control. I don't have any plans for providing a replacement at this time.<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-49223824978341575902014-03-19T11:58:00.001-07:002015-04-23T11:35:41.796-07:00Shovel Shuffle Stage SizesShovel Shuffle is a free download from the PlayStation®Store. You can play the smallest stage for free.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9MBKPph7bp4doJBSE2lL1TFwT_f4EQQ8ANFgLYAenEkzngrLekEwJ_B-s_BhNjO3jLU23R7-rm6-Docv3RrCcHjaF_Kkc1nZWyw-RwQdf147y4qliK09MYmFFT-xcZv-7y_2C5a6E992T/s1600/shovel_shuffle_puzzle_game_for_psm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9MBKPph7bp4doJBSE2lL1TFwT_f4EQQ8ANFgLYAenEkzngrLekEwJ_B-s_BhNjO3jLU23R7-rm6-Docv3RrCcHjaF_Kkc1nZWyw-RwQdf147y4qliK09MYmFFT-xcZv-7y_2C5a6E992T/s1600/shovel_shuffle_puzzle_game_for_psm.png" height="181" width="320" /></a></div>
<br />
<br />
There are two more stages, medium and large, available as a single in-app purchase.<br />
<a name='more'></a><br />
For anyone curious as to what they look like here they are:<br />
<br />
<div style="text-align: center;">
<b>The smallest stage (11x6)</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIkHjY6TO3qbOuqXw9RU64b9VuMZmm3duPWW1MsFlXYD-sINLmXK96qupz6TE-tDbpdtnSAhZKsAuYq_2bgmqnc1VUjt5Gp_78mOuCGLA-Imf7s87K5hPbLulFZlWa-_1hG7NJPhOirHA_/s1600/shovel_shuffle_size_comparison_small.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIkHjY6TO3qbOuqXw9RU64b9VuMZmm3duPWW1MsFlXYD-sINLmXK96qupz6TE-tDbpdtnSAhZKsAuYq_2bgmqnc1VUjt5Gp_78mOuCGLA-Imf7s87K5hPbLulFZlWa-_1hG7NJPhOirHA_/s1600/shovel_shuffle_size_comparison_small.png" height="181" width="320" /></a></div>
<br />
<br />
<div style="text-align: center;">
<b>The medium stage (13x7)</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffRYsgdbLNVHz2qxEO_fYoks8oPcxQr2KwcGiKialW8Kz9eb9GmolW7vqcBRMdNYDDfqSiJW9ARwkcCXjwOxH54twBIah4Rxvhsc7Ne4PfevUh0nA1meoN_ayfS6_xSDXJmDP6kG953ic/s1600/shovel_shuffle_size_comparison_medium.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffRYsgdbLNVHz2qxEO_fYoks8oPcxQr2KwcGiKialW8Kz9eb9GmolW7vqcBRMdNYDDfqSiJW9ARwkcCXjwOxH54twBIah4Rxvhsc7Ne4PfevUh0nA1meoN_ayfS6_xSDXJmDP6kG953ic/s1600/shovel_shuffle_size_comparison_medium.png" height="181" width="320" /></a></div>
<br />
<div style="text-align: center;">
<b>The large stage (17x9)</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUZKSmtmlq6mSKJIqtuFJUP6y5uBB1vHK80FOaDQm_5bpBTHyjlfOCDKOlBlVtYtDuAWNp6eLhxEVF_yDVCYzFAmkAVYPP2B6q9_WsTwxKtEcQJphHEPCY-7lOv7ipPHcC5vjpCDxVh6sh/s1600/shovel_shuffle_size_comparison_large.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUZKSmtmlq6mSKJIqtuFJUP6y5uBB1vHK80FOaDQm_5bpBTHyjlfOCDKOlBlVtYtDuAWNp6eLhxEVF_yDVCYzFAmkAVYPP2B6q9_WsTwxKtEcQJphHEPCY-7lOv7ipPHcC5vjpCDxVh6sh/s1600/shovel_shuffle_size_comparison_large.png" height="181" width="320" /></a></div>
<br />
Anyone playing on a device with buttons can use the left analog stick and face buttons to select which direction to move in. This is useful if you have trouble accurately tapping on the squares.<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-54150292570326578482014-03-12T11:03:00.001-07:002015-04-23T11:35:54.453-07:00Touch Treasure Region UpdateBetter late than never, since December 18 2013,<br />
<br />
Touch Treasure for PlayStation®Mobile is now available in Belgium, Ireland, Mexico, Netherlands and New Zealand. This brings the total number of regions to 14.<br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY6cwdLYSEwBlQiXus7ABY7hTa4qd2X5IpvkNy-26dm3N0ih4WpVMRbr-LafbwFtUaIYx1tRvl3kUcKJ2A6iGc4Gx46knK3Oz-j3AahfNzdl269KclmHly6SUyzMHC1p_pss25YyQaObI1/s1600/touch_treasure_ingame.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Screenshot of Touch Treasure" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY6cwdLYSEwBlQiXus7ABY7hTa4qd2X5IpvkNy-26dm3N0ih4WpVMRbr-LafbwFtUaIYx1tRvl3kUcKJ2A6iGc4Gx46knK3Oz-j3AahfNzdl269KclmHly6SUyzMHC1p_pss25YyQaObI1/s400/touch_treasure_ingame.png" height="225" title="Screenshot of Touch Treasure" width="400" /></a></div>
<div style="text-align: center;">
<br /></div>
If anyone can help provide Danish, Finnish, Norwegian or Swedish translations please get in touch. Corrections to the existing translations are always welcome too.<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-68060300274201822522014-03-12T10:54:00.003-07:002015-04-23T11:36:02.159-07:00Shovel Shuffle Out NowShovel Shuffle for PlayStation®Mobile has been released. It's a number puzzle set in an underground mine. The objective is to dig as much as you can without crossing your path.<br />
<br />
You dig by selecting a square in the direction you want to travel. The distance you travel is the same as the number written on the square.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCCMyHe6XTtqbLrpODX7mCzO149fjq422xuikQhorUU_IG6nTxSwJwWZ9O7T67qFCwBqn2Fq6JgbHFKnkwY9A9IPIGOSCfatJT_YXcQwHlqHb1nWNEIjscCxXuBlXnx_wReirkWlETanjN/s1600/shovel_shuffle_puzzle_game_for_psm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCCMyHe6XTtqbLrpODX7mCzO149fjq422xuikQhorUU_IG6nTxSwJwWZ9O7T67qFCwBqn2Fq6JgbHFKnkwY9A9IPIGOSCfatJT_YXcQwHlqHb1nWNEIjscCxXuBlXnx_wReirkWlETanjN/s400/shovel_shuffle_puzzle_game_for_psm.png" height="227" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
It's available in Australia, Belgium, Canada, France, Germany, Ireland, Italy, Japan, Mexico, Netherlands, New Zealand, Spain, UK and US for PlayStation®Mobile-compatible Devices.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<strike><a href="http://p0.dl.playstation.net/p0/psns/psnschk.htm?a=psns%3Abrowse%3Fproduct%3DEM0243-NPOA00159_00-0000000000000000&type=psm" target="_blank"><img alt=" Download Shuffle Shuffle for PlayStation®Mobile" border="0" src="http://www.playstation.com/promotion/badge/PSM_badge_en.png" /></a></strike></div>
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-76725142312063631582013-12-19T11:15:00.000-08:002015-04-23T11:36:11.067-07:00Shovel Shuffle: Dev. UpdateIt's quite obvious now that Shovel Shuffle won't be released this year. It failed submission last month and there hasn't been much movement on a solution. It may or may not be scoreboard related.<br />
<br />
If I can't get it sorted out by the end of January I'll consider taking scoreboards out, which is a shame because it took about 10 evenings across about a month and a half to put it in. I was making improvements to other parts of the game at the same time, so it's not a total loss.<br />
<br />
On the flip side there's time for the art to be changed. Does anyone want to make a little bit of 2D art? I don't think I have anything of value to offer in return.<br />
<div>
<br /></div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-73237723764801658202013-11-25T15:54:00.000-08:002015-04-23T11:36:18.514-07:00Introducing Shovel ShuffleI can now reveal my second PlayStation®Mobile game is called Shovel Shuffle. It's a number puzzle set in an underground mine. The objective is to dig as much as you can without crossing your path.<br />
<br />
You dig by selecting a square in the direction you want to travel. The distance you travel is the same as the number written on the square.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCCMyHe6XTtqbLrpODX7mCzO149fjq422xuikQhorUU_IG6nTxSwJwWZ9O7T67qFCwBqn2Fq6JgbHFKnkwY9A9IPIGOSCfatJT_YXcQwHlqHb1nWNEIjscCxXuBlXnx_wReirkWlETanjN/s1600/shovel_shuffle_puzzle_game_for_psm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCCMyHe6XTtqbLrpODX7mCzO149fjq422xuikQhorUU_IG6nTxSwJwWZ9O7T67qFCwBqn2Fq6JgbHFKnkwY9A9IPIGOSCfatJT_YXcQwHlqHb1nWNEIjscCxXuBlXnx_wReirkWlETanjN/s400/shovel_shuffle_puzzle_game_for_psm.png" height="227" width="400" /></a></div>
<br />
<br />
I think this is a game for all ages. You can try it for free. If you like it, consider buying the larger stages.<br />
<br />
Stay tuned for more details.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-1839341323603439172013-11-05T13:19:00.000-08:002013-11-05T13:19:52.470-08:00Next Game Progress UpdateGood news, I've got to the point where my next PSM game is almost ready for release.<br />
<div>
<br /></div>
<div>
Bad news, I jumped on the scoreboard bandwagon and like a few other developers I'm sitting on my hands waiting for the next SDK update because <a href="http://community.eu.playstation.com/t5/Announcements-Events/Scoreboard-data-storage-issue/td-p/19962539">scoreboards are slightly broken at the moment</a>.</div>
<div>
<br />
<a name='more'></a></div>
<div>
There are a few more changes I can make to the game, but they're not essential. I managed to convince myself not to play any games until it's done, so it's starting to get monotonous working on this all the time.</div>
<div>
<br /></div>
<div>
I'm tempted to start the release going right now without scoreboard support. At least that way I might get some feedback on the game that can go into a scoreboard patch. Or I could just cut my metaphorical losses and push this thing out the door, the SDK 1.20 scoreboard API isn't as complete or robust as I would have liked.</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-7767266597661053922013-10-06T07:50:00.000-07:002013-10-06T07:54:20.339-07:00Text Rendering OptimisationI finally got round to optimising the text rendering in my PSM game. I was seeing around 75 ms frame time on my text heavy stats screen because of the large amount of text, it's now down to around 3 ms.<br />
<br />
<a name='more'></a><br />
<h3>
Text Rendering Introduction</h3>
<br />
PSM comes with a Font class that lets you load TTF fonts. To get them on screen they need to be drawn to an Image object, which is then copied into a Texture2D object, which can finally be displayed using a draw call and vertex buffer of your choice. Drawing to Image and copying Image to Texture2D are both slow operations.<br />
<br />
You need to use an Image and Texture2D that's big enough to contain your text. You can use the Font class to find out how big a piece of text will be. Querying the font class like this can be slow when called many times in a single frame.<br />
<br />
<h3>
Before</h3>
<br />
My initial implementation created 1 texture for each string I wanted to render. This also had a cache so duplicate strings in the same frame used the same texture. The cache was used across frames too.<br />
<br />
The downside is this resulted in 1 draw call per string. The draw call count was the only problem I was aware of before I started optimising. In hindsight I should have spent more time profiling to find the bottlenecks before starting on the optimisation.<br />
<br />
<h3>
After</h3>
<br />
A lot of the things I draw generate a bunch of filled rectangle and font draw calls all mixed together, which leads to a lot of renderer state changes and draw calls. I decided to put these into a custom display list where they could be sorted into batches while preserving the order of overlapping objects. If two things overlap then whatever was drawn last should always appear on top.<br />
<br />
This reduced all the rectangles to a few draw calls. The worst case for the text still needed 1 draw call per string because my shaders need a new draw call each time you set the texture. The next change was to put all the text into a single texture atlas so text could use fewer draw calls. I used a similar cache as before, duplicate text shares the same space in the texture and the texture can be re-used across frames.<br />
<br />
These changes got rid of most of the draw calls, but didn't reduce the frame time as much as I hoped. After more profiling the culprit was Font.GetTextWidth. My display list needs to know the extents of each object so it can handle overlapping objects, which means calling Font.GetTextWidth a lot. I could have cached the entire display list but decided to cache the result of Font.GetTextWidth because it was easier than modifying my UI rendering code.<br />
<br />
For the final touch I turned on vertex buffer buckets in my renderer. If a draw call only has a few vertices you don't want to be uploading a massive, mostly unused, vertex buffer to the GPU. I had left it off for development because it increases app startup time, but it takes so long now I probably won't notice any difference.<br />
<br />
<h3>
Conclusion</h3>
<br />
With enough caching all the really slow things can be moved from the regular frame update and into initialisation time, in other words, when moving between UI screens.<br />
<br />
Using the correct size vertex buffer and batching things into fewer draw calls helps too.<br />
<br />
I suggest reducing the number of times you call these functions:<br />
<br />
<ul>
<li>Font.GetTextWidth (~500 us per call)</li>
<li>Image.DrawText (~1.5 ms per call)</li>
<li>Texture2D.SetPixels</li>
<li>GraphicsContext.DrawArrays</li>
</ul>
<br />
I found that calling Texture2D.SetPixels a few times on large textures is about 10 to 100 times more expensive than calling it lots of times on small textures. I might have done something wrong but I've reached my target frame time so will look at it another time.<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-22860624107988159082013-09-21T13:22:00.001-07:002013-09-21T13:22:26.575-07:00Still hereI'm continuing to make slow progress on my next game. All the core game mechanics have been completed.<br />
<br />
I'm now trying to figure out the best way to display scores and various other stats for the user while making it as simple as possible to develop. I thinking of some kind of split between online/offline stats like Vita's trophies app. Fiddling with UI placement is so time consuming. In comparison the UI in Touch Treasure only lets you choose the game mode or proceed to the next screen.<br />
<br />
The game is quite ambitious for my attention span but I think it's still possible it will see a release. There's so much left to do. I was going to list it all but ended up deleting that part of the post because it looks like too much work.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-14671401636986702902013-08-14T11:29:00.000-07:002015-04-23T11:36:31.601-07:00Touch Treasure: One Month OnOne month has passed since Touch Treasure was released. It's definitely exceeded expectations and higher ones will be set next time.<br />
<br />
Progress is slowly being made on a new PSM game. It's not feature complete so there isn't much to show yet. It will probably be freemium. A timed trial sounds nice, but it's probably unenforceable because this is not built into PSM and the system clock can be changed by the user.<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-66698961637534910972013-07-15T13:15:00.000-07:002013-07-15T13:15:23.379-07:00PSM Development: TimeI've seen some people describe PSM games as "looks like it took less than a month to make". Well, the "looks" part is probably true for <a href="http://chairwarmingfacility.blogspot.com/2013/07/introducing-touch-treasure.html">Touch Treasure</a> but it did take longer than a month to make.<br />
<br />
Here's a breakdown of where the time was spent making Touch Treasure.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwneCcOGPRiy_7mo3siGeeMae8GqoB0YmybjXTTTwtn3IHjkM6HSlQyarOG74lkzvXltxPYq-j0fQiAd6zxjMSnWvV__vD2UrBAl6zDW43kMqwwPPuD-fRELJEw6SXUN5INEXiyhvTzYKC/s1600/touch_treasure_time_breakdown_piechart.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwneCcOGPRiy_7mo3siGeeMae8GqoB0YmybjXTTTwtn3IHjkM6HSlQyarOG74lkzvXltxPYq-j0fQiAd6zxjMSnWvV__vD2UrBAl6zDW43kMqwwPPuD-fRELJEw6SXUN5INEXiyhvTzYKC/s1600/touch_treasure_time_breakdown_piechart.png" title="Proportional development time breakdown" /></a></div>
<br />
<br />
You can see a small proportion of time was spent on creating and tweaking the actual game play Putting together all the supporting elements like results screen, mode select screen, statistics tracking and save data took longer when combined together.<br />
<br />
About half the time was spent on the framework and optimisation. Not particularly surprising since it was my first PSM game. The framework should make a good starting point for future games.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-74520191827238686312013-07-08T05:38:00.000-07:002015-04-23T11:36:43.687-07:00Introducing Touch Treasure<div style="text-align: left;">
Touch Treasure is a simple touch-only game where you have to touch as many treasure boxes as possible while avoiding the bombs.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
You can play against the clock or for as long as you can before you run out of lives.</div>
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY6cwdLYSEwBlQiXus7ABY7hTa4qd2X5IpvkNy-26dm3N0ih4WpVMRbr-LafbwFtUaIYx1tRvl3kUcKJ2A6iGc4Gx46knK3Oz-j3AahfNzdl269KclmHly6SUyzMHC1p_pss25YyQaObI1/s1600/touch_treasure_ingame.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Screenshot of Touch Treasure" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY6cwdLYSEwBlQiXus7ABY7hTa4qd2X5IpvkNy-26dm3N0ih4WpVMRbr-LafbwFtUaIYx1tRvl3kUcKJ2A6iGc4Gx46knK3Oz-j3AahfNzdl269KclmHly6SUyzMHC1p_pss25YyQaObI1/s400/touch_treasure_ingame.png" height="225" title="Screenshot of Touch Treasure" width="400" /></a> </div>
<div style="text-align: left;">
Touch Treasure will be released Summer 2013 for PlayStation®Mobile in Australia, Canada, France, Germany, Italy, Japan, Spain, UK and US.</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-4562255980653974482013-07-08T05:25:00.000-07:002013-07-15T13:17:26.448-07:00Post titles are so hard to think ofMy first game for PlayStation®Mobile-compatible devices should be appearing on the PlayStation®Store shortly.<br />
<br />
In addition to announcing games I'm thinking of using this blog to share some of my progress with PSM development.<br />
<br />
To begin with I'll explain where I'm coming from. When I came across PSM it looked like a good way to have some fun making games and sharing them with others all while making good use of my PS Vita.<br />
<br />
I'm more interested in the programming side of things and from my experience this usually ends up with lots of unfinished ideas and projects that never get a public release. So for my first game I tried to keep it as simple as possible so it stood a chance of getting released.<br />
<br />
Hopefully at least one person can have as much fun with my games as I do making them.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5403889050111591103.post-48927272079532491282013-06-15T09:50:00.002-07:002013-07-15T13:17:34.308-07:00WelcomeHello! You've managed to come across my blog. I'm not quite sure how this thing works yet so please be patient!<br />
<div>
<br /></div>
<div>
I'm going to be using this as part of the <a href="http://en.wikipedia.org/wiki/PlayStation_Mobile">PlayStation®Mobile Developer Program</a> (a website is required to publish).</div>
<div>
<br /></div>
<div>
I plan to release something simple on PSM soon.</div>
Unknownnoreply@blogger.com