tag:blogger.com,1999:blog-60974534934029168902024-03-13T03:55:07.704+00:00Suisoft GamesRamblings of an Indie Developer.Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.comBlogger61125tag:blogger.com,1999:blog-6097453493402916890.post-9725028196280117372016-02-05T09:29:00.003+00:002016-02-05T09:39:34.044+00:00Releasing a game with Xamarin Android and Google Play (and... I'm back, again!)It's been a year and a half since I updated my blog. The last update has me with a working prototype of my Inertia game (now 'Retro Rat Race').<br />
<div>
<br /></div>
<div>
During that time I have done a mixture of spare/part time game development (contract work for a business in the day times) then full time for a couple of months to get finished.</div>
<div>
<br />
You can read my initial thoughts of Xamarin and my choice of OpenTK over Mono Framework in my <a href="http://suisoftgames.blogspot.co.uk/2014/05/xamarin-and-im-back.html" target="_blank">previous blog post</a>.<br />
<br /></div>
<div>
Just before Christmas I rounded off the first release of Retro Rat race (for Windows) and put it out there as shareware. The reception has been generally positive but it is even harder to get noticed than before. I reckon it's a good little game but just doesn't have enough of a hook to be noticed in a big way.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.suisoft.co.uk/retroratrace/screenshot001.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.suisoft.co.uk/retroratrace/screenshot001.jpg" height="360" width="640" /></a></div>
<br />
<br />
<br />
From watching videos that players have recorded (including the supremely helpful and enthusiastic YouTuber Seth Logan - <a href="https://twitter.com/Hayes1571" target="_blank">@hayes1571</a>), I can see the die/repeat pattern works well. It's certainly not an easy game but seems to elicit the appropriate "Arg, What, Arg, YES!" responses like the great games in the tough/short play genre such as Super Meat Boy.<br />
<br />
It's funny with the Internet, in that I didn't know Seth until I started following him on Twitter and we established a rapport. He lives in Canada (about 3500 miles away) but somehow we've become friends and enjoyed some good banter on Twitter.<br />
<br />
You can check out one of Seth's videos <a href="https://www.youtube.com/watch?v=aTj1J9-3pqY" target="_blank">here</a>: (if you don't mind a bit of friendly swearing!)<br />
<br /></div>
<div>
<br /></div>
<div>
You can check out the Windows demo here: <a href="http://www.suisoft.co.uk/retroratrace/">www.suisoft.co.uk/retroratrace/</a></div>
<div>
<br /></div>
<div>
After that I pressed on with finishing the Android version using Xamarin (Indie). That went pretty smoothly, despite a couple of hiccups with compatibility (almost resolved!)</div>
<div>
<br />
The Android version lives here on <a href="https://play.google.com/store/apps/details?id=co.uk.suisoft.RetroRatRace_Android" target="_blank">Google Play</a>.<br />
<br /></div>
<div>
Here are some hints/tips and experiences for those interested in game development.</div>
<div>
<br /></div>
<div>
<h2>
Xamarin Game Development for Android</h2>
</div>
<div>
<h3>
DO buy a good Android game development book</h3>
In order to learn about Android game development, touch controls, OpenGL ES, sound etc. it's really worth investing in a good book.<br />
<br />
<b>Beginning Android Games</b> by Mario Zechner and Robert Green is excellent. It's in Java but Xamarin and OpenTK's clean wrapping of the Android API's makes conversion very easy.<br />
<br />
<h3>
DO consider 'Thunking'</h3>
<div>
Like the old days with 'DOS Extenders' allowing 32-bit applications to be used on 16-bit DOS, Xamarin Android passes control between the .NET virtual machine and the Java virtual machine. This obviously has some overhead (like passing between 32-bit and 16-bit).</div>
<div>
<br /></div>
<div>
This is most noticable, performance-wise when you are using Streams on top of Java objects. Every stream operation results in a 'thunk' between VM's. This caused me some trouble with map load performance, particularly on my Galaxy S3 phone. The fix is pretty simple for small files like game maps - just load it into memory then stream from there.</div>
<div>
<br /></div>
<h3>
Don't try to create a batch build procedure with Xamarin Indie</h3>
I wasted the best part of a morning trying to get Xamarin's MSBuild to work following an example on their deployment documentation page. From what I can gather from scouring the Internet the build tools cannot be used directly with Xamarin Indie due to the licensing controls.<br />
<br />
Instead, just use 'Project / Create Android Package...' from Xamarin studio and create a batch procedure you can run manually to sign & zip align from there. Signing and zip aligning steps are documented in the Xamarin guidance (link below).<br />
<br />
Note that you can cancel the final dialogue box after 'Create Android Package' as the APK (Android package) files will already be in your BIN folder.<br />
<br />
<h3>
DO read the Xamarin deployment guidance</h3>
Xamarin's deployment guidance gives you a nice list of checks/tasks to perform. I recommend distilling these into a bulleted release procedure (as described below) to save time with future projects and releases.<br />
<br />
<a href="https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/publishing_an_application/" target="_blank">Xamarin Deployment Guide</a><br />
<br />
<h3>
DO write a release procedure</h3>
This one applies to ANY software project.<br />
<br />
I always write a release procedure when I build software with new tech. It saves so much time with future releases and projects. You won't miss things or keep thinking 'what did I do last time'.<br />
<br />
You may need to split your procedure down into 'first release / major release' sections. The former includes the things you should only have to do once or occasionally after major changes. The latter is the tasks and checks you need to do every time, even if you're just releasing a patch (e.g. updating version numbers).<br />
<br />
<h3>
DO test with emulators as well</h3>
A trap I fell into with the first Android release, was an irksome bug where the keyboard didn't pop up, even if you pressed the 'text box' area on the screen.<br />
<br />
I remember it took a fair bit of research and experimentation to get keyboard entry working, due to the game using its own user interface controls.<br />
<br />
The functionality worked flawlessly on the physical devices I tested it on - several Samsung phones and tablets, a HP tablet (belong to a friend), a Kindle.<br />
<br />
The issue was due to quirks in the behaviour of different flavours of Android. Specifically when calling '<span style="font-family: "courier new" , "courier" , monospace;">ToggleSoftInput</span>' I used the '<span style="font-family: "courier new" , "courier" , monospace;">Implicit</span>' flag, which worked fine on the test hardware. That flag needed to be '<span style="font-family: "courier new" , "courier" , monospace;">Force</span>' to work on some HTC/Nexus devices.<br />
<br />
I could have avoided this problem by testing on a Nexus emulator. I'm actually still (at time of writing) looking into another problem for one player where the keyboard pops up and doesn't respond to key presses. I haven't pinned that one down yet - which brings me on to the next point...<br />
<br />
<h3>
Have a workaround in place for keyboard API issues</h3>
There are so many devices, tweaked versions of the Android operating system and custom keyboards out there, it's impossible (for a small Indie) to test everything effectively on real, physical hardware. I know Google and Xamarin have test cloud functionality but on initial reads, that seems more focused on Apps than games. If/when I explore that some more, I will post about it.<br />
<br />
With a game, getting consistent keyboard behaviour appears to be a challenge (from recent experience!) To avoid this, make sure to remove the dependency on keyboard.<br />
<br />
A mistake I made was requiring entry of a player name upon game start. If the keyboard doesn't pop up or can't be used it's 'game over'.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-hq-WAK179OY/VrRqT9idyNI/AAAAAAAAAKU/isQg5OoAJc4/s1600/gameover.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="208" src="https://2.bp.blogspot.com/-hq-WAK179OY/VrRqT9idyNI/AAAAAAAAAKU/isQg5OoAJc4/s400/gameover.jpg" width="400" /></a></div>
<div style="text-align: center;">
"That's it, man. Game over, man. Game over!"</div>
<br />
I attacked this from two angles with a patch:<br />
<ul>
<li>Skip the player entry entirely. Default to a 'Me' name that can be changed later</li>
<li>When entering the first player name, have a 'Skip' option that defaults to 'Me'<br />(this handles the situation where a player has deleted the default profile)</li>
</ul>
<h3>
DO test with other languages</h3>
Another compatibility issue I hit was a Portuguese (speaking) player who found the game crashed at the end of the first proper level. This was due to the medal time in the level being a float (e.g. <span style="font-family: "courier new" , "courier" , monospace;">1.5</span>) stored as a string in the XML level file.<br />
<br />
When C# parsed it back to a float, it expected it to be Portuguese format (i.e. comma decimal place, rather than period/full stop). <b><span style="color: red;">"SPLAT!"</span></b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.suisoft.co.uk/retroratrace/screenshot002.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.suisoft.co.uk/retroratrace/screenshot002.jpg" height="223" width="400" /></a></div>
<br />
I normally consider this angle with applications, as I've encountered it before. With my games written in C++ I haven't hit any localisation issues and missed it completely. Lesson learned!</div>
<div>
<br />
C# and the .NET framework have localisation features built in. This is great, because dates, numbers etc. are shown properly. The Portuguese speaking player saw "<u>1,5</u>" (1 comma 5) on the medal screen. The downside, is if you persist something into a text file under one locality (i.e. English, Great Britain in my case when creating maps) and read it back in a different locality with different number formatting rules. <b><span style="color: red;">"SPLAT!"</span></b><br />
<b><span style="color: red;"><br /></span></b>
<br />
<h2>
Google Play Store</h2>
</div>
<div>
<h2>
<b>DO consider the application naming convention</b></h2>
</div>
<div>
When I first uploaded my APK (android package) to Google Play it complained about the package name being invalid. It's talking about the package name in the manifest - NOT the name of the APK file (although I have adopted the same convention for that).<br />
<br />
The package name is in the Android Manifest:<br />
<span style="color: #0b5394;"><br /></span>
<span style="color: #3d85c6; font-family: "courier new" , "courier" , monospace;"><b><manifest package="co.uk.suisoft.gamename"</b></span><br />
<br />
To get a unique name, the convention is similar to your domain + the application name.<br />
<br />
i.e. <span style="color: #3d85c6; font-family: "courier new" , "courier" , monospace;"><b>com.company.gamename</b></span><br />
or <span style="color: #3d85c6; font-family: "courier new" , "courier" , monospace;"><b>co.uk.company.gamename</b></span><br />
etc...<br />
<br />
<h3>
Don't worry about age classification</h3>
Before setting up my first application on Google Play I expected to be slowed (or blocked) by a requirement to assess the age rating of my game.<br />
<br />
Google have actually made this very easy. Just a simple questionnaire that takes a few minutes to fill out. That becomes a set of classifications for various countries / regions.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-mtV4hn4l58Q/VrN0JEnlvKI/AAAAAAAAAKE/sxDbQRiyj6Q/s1600/classifications.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://2.bp.blogspot.com/-mtV4hn4l58Q/VrN0JEnlvKI/AAAAAAAAAKE/sxDbQRiyj6Q/s1600/classifications.jpg" /></a></div>
<br />
<h3>
DO consider the Goole Play Beta Testing functionality</h3>
You can pre-release to a closed set of beta testers. In an uncharacteristic moment of courage, I chose to 'Just go for it' (based on the current climate meaning slow uptake).<br />
<br />
In retrospect I would have done a beta group, as per the Windows version of Retro Rat Race.<br />
<br />
<h3>
DO reply to reviews</h3>
The first three reviews I received for the game were negative - 1 and 2 stars. Some players immediately found the keyboard bug I hadn't picked up in testing. This was pretty gutting.<br />
<br />
I replied to the reviews, apologising and informing the players I would look into it. Within a few hours I had a workaround for the problem allowing them to play the game. Two of the reviews were changed to 4 or 5 stars with a bonus couple of reviews praising the support.<br />
<br />
Examples:<br />
<ul>
<li>Respect for this developer - Ridiculously fast support update and the game is pretty awesome</li>
<li>Thanks for the quick fix to the keyboard problem</li>
<li>Good fun - Smooth game play and fun to play. Quick turnaround on the initial problem</li>
</ul>
I think gamers have become so accustomed to crap tech support. It's something special when you actually help them and give a damn. This is easier when you are small/solo/human without the bureaucracy of a corporation.<br />
<br />
<h2>
Summary</h2>
Overall, the process of getting a game onto both Windows and Android from the same C# codebase has been pretty smooth.<br />
<br />
The game code doesn't contain a single line of platform specific code. The behaviour differences for devices are handled by a 'PlatformFeatures' class that I use to ask 'IsDesktop' to switch certain features on and off or adjust sizing / positioning.<br />
<br />
The engine codebase is also mostly non-platform specific. There are specific subclasses for OpenGL, OpenGL ES and sound. Conditional compilation is used to keep them from bloating the other platforms.<br />
<br />
Hopefully porting to iOS should be straightforward due to game code being 100% platform agnostic and the engine using the OpenTK OpenGL ES interfaces that should be compatible. The majority of the porting time will be the main game loop, storage and possibly sound (although I'm hoping my Windows OpenAL code may be OK).</div>
Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com1tag:blogger.com,1999:blog-6097453493402916890.post-90667923732307954002014-05-24T15:42:00.001+01:002014-05-24T15:42:52.815+01:00Xamarin (and I'm back!)<h2>
Skip to the End...</h2>
<div>
I originally started writing this post chronologically. Since the most interesting stuff is from this week, I will start at the end. The history behind it is at the bottom if you want to use it as an alternative to counting sheep.</div>
<div>
<br /></div>
<div>
Onward...</div>
<div>
<br /></div>
<div>
<div>
I spent most of this week installing and setting up Xamarin (plus the Android Software Development Kit) and coding up touch and graphics functionality (OpenGLES - the baby sibling of OpenGL used by most mobile devices).</div>
<div>
<br /></div>
<div>
I now have a working prototype of the game running on Kindle with touch controls, albeit with placeholder boxes for the sprites (that bit of OpenGL ES code not done yet).</div>
<div>
<br /></div>
<div>
Pretty pleased. I honestly didn't expect to get this far so quickly, particular as it took me almost a full day of downloading to get Xamarin and the Android SDK installed (5-6 hours).</div>
<div>
<br /></div>
<div>
Screenshot below.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-WRi9KERT8xk/U39vzlTJbyI/AAAAAAAAAJI/MRPOV6P6lkM/s1600/20140523_165049_9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-WRi9KERT8xk/U39vzlTJbyI/AAAAAAAAAJI/MRPOV6P6lkM/s1600/20140523_165049_9.jpg" height="300" width="400" /></a></div>
<div>
<br /></div>
<div>
The game is now working on PC and Android (on our Kindle Fire at least!) I have yet to crash headlong into PC style driver compatibility issues as yet.</div>
<div>
<br /></div>
<div>
The PC version looks like this currently: (i.e. with proper graphics, rather than temporary coloured boxes)</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-z8NVg8m0vMU/U39zfE3wdnI/AAAAAAAAAJU/FEq5jce1D80/s1600/PC+Game.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-z8NVg8m0vMU/U39zfE3wdnI/AAAAAAAAAJU/FEq5jce1D80/s1600/PC+Game.jpg" height="300" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
It's very early days with this game. I do plan to stick with the vector style but a ton of visual effects and level complexities are still to be added.</div>
<div>
<br /></div>
<div>
My next job is to finish the graphics code then get sound working. The latter will hopefully be quite simple.</div>
<div>
<br /></div>
<div>
<br /></div>
<h2>
Xamarin - First Experiences</h2>
This part is only of interest if you're a game programmer (aspiring or investigating .NET / Xamarin).<br />
<br />
<h3>
Starter Edition</h3>
<div>
I downloaded the free starter edition from Xamarin in January. This enabled me to evaluate the tools and have a play around. The starter edition only allows small, trivial applications to be compiled due to a size restriction on the compiled binary.<br />
<br />
I compiled a few test versions and ran them on my little lad's Kindle then set about building my prototype game in C# (via Visual Studio on PC).<br />
<br />
Shortly after downloading the Xamarin starter, I received an email from one of their development team (James). He was extremely helpful and answered my initial questions. I found this to be a good approach from Xamarin as it cleared a few things up for me.<br />
<br /></div>
<h3>
Indie Edition</h3>
<div>
This week (May 2014) I purchased the Indie license for Xamarin (Android, iOS and Mac). Initially I'm targeting Android as that's a natural fit with my PC development. When I have everything working satisfactorily on Android I'll port to iOS.<br />
<br />
Again, like the starter edition, getting everything set up was pretty easy.</div>
<div>
<br /></div>
<h3>
Thoughts on Xamarin Studio</h3>
<div>
Because I bought the cheaper Indie version (which fits my requirements for now), I am using Xamarin Studio for Android development. Visual Studio plug-ins are available with the Business and Enterprise editions.<br />
<br />
As a Visual Studio (2010) user, getting into Xamarin Studio was extremely easy. I created a project in a subfolder of my Visual Studio project and added in the files. There's an option to link instead of copy which makes code sharing very easy and simple.<br />
<br />
A book I found most helpful in getting started was 'Xamarin Cross-platform Application Development' by Jonathan Peppers (available on Amazon). It's short and straightforward book that gets you started on Android and iOS.<br />
<br />
I had already designed the codebase so that platform-specific code (OpenGL, Sound, Window handling) lives in separate subclasses that can be excluded from the project (in my case via #if).<br />
<br />
Before long I had all of the code compiling, albeit with lots of TODO comments and empty functions.<br />
<br />
Unlike the C++ projects I have worked on, I encountered practically zero compiler differences. C# seems to be much more consistent across Microsoft .NET and Mono than the various dialects of C++. Also, I had no need to drop into Objective-C(++) as with my 'Starfire Ares Assault' project that used C++/SFML.<br />
<br />
<h3>
Android Development Thoughts</h3>
After getting the codebase to compile I gradually converted my OpenGL (via OpenTK library) code over to OpenGLES (1.1). This was pretty easy - just some subtle differences in syntax and the necessity to get rid of GL.Begin and GL.End blocks, replacing them with vertex lists. That's the main difference between OpenGL and OpenGLES for straightforward applications.<br />
<br />
Another extremely useful book is 'Beginning Android Games (Second Edition)' by Mario Zechner and Robert Green. It's an Android/Java book but figuring out the Android way of doing things and OpenGLES coding is easy enough to switch to Xamarin.<br />
<br />
Finally, I added a bunch of touch handling code to my engine. Again, with help from the Android Games book this was pretty easy. The main thing that tripped me up initially is the fact that events contain the current location of every pointer (finger) in an array. For example for a 'Down' event indicating a finger first touch, the coordinates and other information are provided for the 'Down' along with coordinates for every other finger that's already down.<br />
<br />
In addition, the array of pointers contains an Id that identifies the individual finger, i.e. every event related that finger includes the Id. That's one to watch out for!</div>
<div>
<br />
<h3>
Summary</h3>
</div>
<div>
In summary, coming from a C# and OpenGL background, using Xamarin tools to build a game that works on PC (Windows) and Android has been very easy. I haven't investigated deployment or deeper subjects yet but my experiences so far are good.<br />
<br />
Xamarin have created a set of tools that are very easy to get along with, particular if you're familiar with .NET already. I look forward to using the tools to build some apps in addition to games.</div>
<div>
<br /></div>
<h2>
<b>Background / History (zzzzzzzzzzzzz)</b></h2>
<div>
My blog has suffered rather badly for more than a year, largely due to a 15 month contract to develop business software for a client.</div>
<div>
In the meantime, I have been investigating technologies to build cross-platform games and applications (i.e. PC, Mac, Android, iOS in the first instance).</div>
<div>
<br /></div>
<div>
I played around with Monkey and had a decent prototype of my current game working, however I began to realise that my skills were being too diluted by the use of another language and Monkey is only suitable for games. I would like to port my kits database application to multiple platforms and don't want to have to learn two cross-platform technologies. Also there's no synergy between Monkey and my business development (predominantly .NET - C#, Visual Basic, SQL etc).</div>
<div>
<br /></div>
<div>
The final nail in the coffin was the main advantage of Monkey over other technologies is the HTML5 support. Unfortunately, the sound doesn't work on iOS due Apple's restrictions.</div>
<div>
<br /></div>
<div>
The logical conclusion is to use .NET (C#). I looked into MonoGame but that seemed too heavyweight and I read mixed reviews of its reliability. Under the hood of Mono, it sits on top of OpenTK (a cross-platform wrapper around OpenGL, OpenGLES, OpenAL and various O/S bits) and SharpDX (a Direct-X wrapper).</div>
<div>
<br /></div>
<div>
Thus, I decided to investigate OpenTK (SharpDX maybe later) and Xamarin. Xamarin is required to code against Android and iOS using .NET (even if you use MonoGame).</div>
<div>
<br /></div>
<div>
In January, I downloaded the free Starter edition of Xamarin and had a play around. I managed to get a demo OpenGL application onto our Kindle Fire, but that was about it. In the meantime, I've been porting my game prototype from Monkey to .NET (C#) using Visual Studio on my PC with a view to using Xamarin.</div>
<div>
<br /></div>
<div>
Anyhoo...</div>
<div>
<br /></div>
<div>
Having finished my contract work, I bought an Indie license for Xamarin iOS/Android/Mac and set about porting. My C# codebase was set up to be cross platform, therefore adapting it to interface with Android functionality (OpenGL ES - the embedded systems version).</div>
<div>
<br /></div>
<div>
... and the rest is at the top</div>
Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-3990363207664010262013-01-09T10:52:00.001+00:002013-01-09T10:56:48.916+00:00Windows 8 Initial ImpressionsShortly before Christmas, I installed Windows 8 on the compact Sony PC in our lounge (known as 'the biscuit tin').<br />
<div>
<br /></div>
<div>
It is one of these things: <a href="http://www.amazon.co.uk/Sony-VAIO-VGX-TP3Z-Cylindrical-DVD-RAM/dp/B001CNT99M">http://www.amazon.co.uk/Sony-VAIO-VGX-TP3Z-Cylindrical-DVD-RAM/dp/B001CNT99M</a></div>
<div>
<br />
<div>
My primary motivation for this was to give me a test machine for games and KitBase (scale model database). A few people have started asking about Windows 8. As it turns out, both work OK (except for a driver-caused bug in Starfire full screen).</div>
</div>
<div>
<br /></div>
<div>
I used Microsoft's Upgrade Assistant and downloaded the ISO DVD image (Windows 8 Pro 32-bit). This was all pretty painless and only cost 25 quid, which isn't bad value.</div>
<div>
<br /></div>
<div>
I completely wiped the machine and re-installed. Installation was pretty painless and the O/S was up and running in no time.</div>
<div>
<br /></div>
<div>
The fun really started when I tried to get hold of some video drivers. I already had a record of the video card type and headed over to nvidia's website to get the appropriate installer. This is where the fun started. The drivers would not recognise the video adapter. After much headbutting the keyboard and reading forums it turns out Sony have twiddled the hardware ID's so that you can only use their tweaked drivers.</div>
<div>
<br /></div>
<div>
Off to the Sony website then. Windows 8 drivers - nada. The only drivers are for Windows Vista. As some folks on forums recommended installing these I did so. They installed OK but they are clearly not 100% compatible as Steam crashes in 'Big Picture Mode' (their gamepad friendly interface) and Starfire has a weird scaling problem when run full screen.</div>
<div>
<br /></div>
<div>
Thanks Sony! Very helpful using standard video hardware then crippling it by preventing the installation of the latest standard drivers. Apparently, the same problem occurs with various Sony laptops. I won't be going to Sony for a PC again.</div>
<div>
<br /></div>
<div>
Anyhoo... Sony idiocy aside, here's my summary of the Windows 8 experience. Bear in mind this is from the perspective of use with a TV for internet browsing, gamepad gaming and NetFlix. I suspect I will have more confusion and niggles using it as a main development O/S.</div>
<div>
<br /></div>
<div>
<b>Pros</b></div>
<div>
<ul>
<li>*Extremely fast boot up. Much faster than Vista.</li>
<li>*Extremely fast log in.</li>
<li>Start screen with tiles works well on a TV</li>
</ul>
</div>
<div>
<b>Cons</b></div>
<div>
<ul>
<li>Desktop and Metro switching can be confusing, e.g. accessing a PDF through desktop Internet Explorer causes a switch to full screen Metro</li>
<li>Having two Internet Explorers is a bit odd (one is traditional desktop, the other Metro)</li>
<li>Pop-up side bars are not very intuitive initially. Watching Microsoft's short introductory videos is recommended. This seems a bit poor design-wise as you don't need to watch videos to figure out Apple devices running iOS. I can't imagine the swipe on touch screens is any more intuitive.</li>
<li>Driver horrors (largely due to Sony's dumb tinkering)</li>
</ul>
</div>
<div>
<br /></div>
<div>
* I appreciate boot time and login time are dependent on installed applications and config. Both the Vista and Windows 8 configurations had minimal software. Just drivers and Open Office.</div>
<div>
<br /></div>
<div>
So, in summary, I quite like it. The chunky new Start screen works well on a TV and the lack of Start menu isn't really a problem if you pin applications to the desktop taskbar and get used to the pop-up sidebars.</div>
<div>
<br /></div>
<div>
I have already bought a license for my current development box. I will be upgrading it and will most likely connect it to the older TV we're keeping in the study/office.<br />
<br />
<i>Edit:</i> This post doesn't express any of my thoughts on the whole App Store / Lock Down mentality that Microsoft are drifting towards (in line with Apple and their money making machine). As with other developers, I do worry about the openness of Windows being eroded and Microsoft's ability to censor and control software that is developed for their platform. That's for another day...</div>
Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com2tag:blogger.com,1999:blog-6097453493402916890.post-48562148181974043632012-12-31T11:34:00.000+00:002012-12-31T11:39:49.930+00:00Synology Part IIThe new Synology NAS box has been ticking over for the last few weeks.<br />
<div>
<br /></div>
<div>
On the whole, I'm pretty pleased with it. Having docouments and files centralised is a boon, even with a single user business.</div>
<div>
<br /></div>
<div>
A few of the good things I've found:</div>
<div>
<ul>
<li>Playback of music through the iTunes interface is pretty easy. The Audio Station application is OK but I prefer iTunes on the whole.</li>
<li>Having PHP and mySQL on the network is very handy for testing websites and PHP functionality.</li>
<li>The Wiki (Media Wiki - the basis for Wikipedia) is great for tasks lists and notes, as it can be accessed easily from any machine with a web browser. Having it centralised means I can bob on and write down an idea from the iPad/iPod or lounge PC.</li>
<li>Setting up automated mySQL backups is a bit of a pain. I will need to get my hands dirty with config files and the Linux command prompt to get this working.</li>
</ul>
<div>
I few problems I've encountered:</div>
</div>
<div>
<ul>
<li>Copying photos onto the DiskStation directly is a bad idea. The thumbnail process is hideously slow. Make sure you install and use the Synology Assistant on your PC. Your PC is much faster at converting images.</li>
<li>Moving folders around from Windows Explorer can cause them to lose permissions and become inaccessible. The workaround for this is to move them from the DiskStation web interface. I haven't yet tracked down the pattern of behaviour for this or found a solution online.</li>
</ul>
</div>
Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-17470874590330768062012-12-06T10:31:00.002+00:002012-12-06T10:33:58.576+00:00NAS Box SetupMy Synology DS213 arrived yesterday afternoon (yay!)<br />
<br />
<b>Installation Notes:</b><br />
(If you are easily bored or don't want to read the gory details, skip to Summary at the bottom of the page and see the spoiler of how it went).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-CLz0QsNXKv0/UL8wLZdQnqI/AAAAAAAAAII/0CuvmZKBUAM/s1600/IMG_2647.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="http://3.bp.blogspot.com/-CLz0QsNXKv0/UL8wLZdQnqI/AAAAAAAAAII/0CuvmZKBUAM/s400/IMG_2647.JPG" width="400" /></a></div>
<br />
<br />
It's now unboxed and I am setting about fitting the drives. I opted for two 2TB Western Digital Red drives (WD20EFRX) as these are aimed at NAS boxes and about half the price of 'Enterprise' (server) drives. I checked compatibility on the Synology website before ordering.<br />
<br />
The front cover comes off easily enough allowing the drive caddies to be removed. Fitting the drives is very straightforward using the screws provided. The screw holes in the caddies have rubber washers built in, presumably to reduce vibration.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-GFUpZifkRII/UL8wWyTbAOI/AAAAAAAAAIQ/2aTmDz22n6Y/s1600/IMG_2650.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="http://4.bp.blogspot.com/-GFUpZifkRII/UL8wWyTbAOI/AAAAAAAAAIQ/2aTmDz22n6Y/s400/IMG_2650.JPG" width="400" /></a></div>
<br />
<br />
The caddies slide back into the box with a satisfying 'clunk'. So far so good.<br />
<br />
Following the very short quick start leaflet I switch on the box and navigate to http://find.synology.com/<br />
<br />
The first step is to download the Operating System (DiskStation Manager). You can choose to do this automatically from the web or use a PAT file downloaded from the website. I'm not using the files from the CD-ROM as they may be out of date.<br />
<br />
In a fit of paranoia I have downloaded the latest installation file and burned it straight onto a DVD. I'll use the download file to install.<br />
<br />
After setting up an Admin password, the next step is to configure the storage. The default is to 'Create a Synology Hybrid RAID (SHR) volume'. After a bit of Googling and a play with the RAID Calculator on Synology's website I concluded that this is the simplest and best option for my needs as my main concern is redundancy. If a drive fails, I don't want to lose my data.<br />
<br />
After proceeding from the final installation step, the box only takes about 5 minutes to configure and reach the login screen. After login, a status screen is displayed indicating that the drive volume is still being created. The web interface is very slick.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-idX6SJdGlq0/UL83KPZrJ4I/AAAAAAAAAIg/5jWlg9FLavk/s1600/DS213.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://1.bp.blogspot.com/-idX6SJdGlq0/UL83KPZrJ4I/AAAAAAAAAIg/5jWlg9FLavk/s400/DS213.jpg" width="400" /></a></div>
<br />
After another five minutes the box is ready to use, although the verification process is still going on in the background.<br />
<br />
While doing this, something I've noticed (or not noticed) is the sound made by the box. It is very quiet. Just an occasionally whispered chunter. My main PC (which has quiet components) covers the noise almost completely. +1 for WD Red drives and the fans in the DS213.<br />
<br />
As an initial test I have dumped some files onto the drive into a new share. I also set up some users and permissions. This was very easy using the Control Panel.<br />
<br />
Accessing the shares worked fine from Windows and Mac. A good start!<br />
<br />
<b>Summary:</b><br />
<br />
<ul>
<li>Very easy to install drives and software.</li>
<li>Administration is very slick through the web interface.</li>
<li>Very quiet operation due to Western Digital Red discs and quiet onboard fan.</li>
</ul>
<br />
So far so good. When I have tried out the music and photo functions I'll post again.Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-84264621765679218462012-11-30T15:31:00.000+00:002012-11-30T15:31:17.647+00:00Rounding OffAlong side my DIY activities, I have been working my way through a list of fixes and enhancements to Starfire. Most of the changes are engine-related and will be useful for the next game.<div>
<br /></div>
<div>
To aid with cross-platform development, I am investing in a NAS (network-attached storage) box. This is fundamentally two hard drives attached to a low powered box running a Linux based O/S (called DSM). This will allow me to centralise my development files (source code, images, sounds, documents etc) so that development from Mac/PC and ultimately Linux is easier.</div>
<div>
<br /></div>
<div>
As I work more on iOS code, I will spend more time using the Mac. I have found that accessing Windows 7 shares from the Mac is troublesome and there are various discussions/blog entries about this but no real solution.</div>
<div>
<br /></div>
<div>
Additionally, having a Linux based NAS gives the following other benefits:</div>
<div>
<br /></div>
<div>
<ul>
<li>Website development server environment (PHP / mySQL)</li>
<li>RAID for important files</li>
<li>Access to documents and files from mobile devices (if PC is switched off)</li>
</ul>
<div>
I could do some of these things on my main PC or a secondary PC but having them central is a boon.</div>
</div>
<div>
<br /></div>
<div>
I'm sure some other benefits will be discovered as I familiarise myself with the box. I would probably have the box in my sweaty paws by now if not for my bank's anti-fraud measures blocking my order. Should be sorted now...</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Another avenue I'm exploring is an alternative version control solution. Currently I use SourceSafe which is:</div>
<div>
<br /></div>
<div>
a) awful</div>
<div>
b) Windows only</div>
<div>
c) awful</div>
<div>
<br /></div>
<div>
I've read about various alternatives including Subversion, GIT and Mercurial. I am swaying towards Mercurial at the moment as it seems to be the most cross-platform (being mostly Python) and supposedly has a relatively easy learning curve. GIT seems to have poor Windows support and Subversion seems like overkill for a single developer scenario.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Next steps - finish next Starfire version for PC/Mac and get it released, then polish up the website.</div>
Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com3tag:blogger.com,1999:blog-6097453493402916890.post-13959952407242486312012-10-11T13:21:00.000+01:002012-10-11T13:21:01.677+01:00StrategyWow, I didn't realise that I hadn't blogged for a whole month. Things around our house have been crazy with our conservatory being fitted and tiled then bathroom replacement. Currently the kitchen is being ripped out and tiled, ready for new units. It's pretty hard to concentrate on development or anything else when your house is being destroyed and rebuilt around your home office.<br />
<br />
I have managed <i>some</i> game development work, along with marketing of my other product <a href="http://www.kitbase.com/" target="_blank">KitBase</a>.<br />
<br />
The main focus of my gamedev activities has been performance options in Starfire. I had set out to fix the screen resolution the same as desktop but this leaves little video memory and results in poor performance on machines without gaming-oriented graphics cards. So... I've had to relent and add a choice of resolutions.<br />
<br />
The other niggle has been Vertical Sync. Some video card drivers kindly ignore the request to switch this on, leading to horrible jerky/shimmering video (known as tearing). To remedy this there's now a Vertical Retrace option in the Video menu. The options are On (use OpenGL if video card allows), Off (yuck but helps performance) or Force (uses Direct-X to wait for the monitor sync for those OpenGL drivers that ignore the request.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-WvVOLMbIQEo/UHa5m6QdNuI/AAAAAAAAAH0/k8uhZa-nuQo/s1600/Starfire+Redux+2012-10-11+13-19-38-00.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://4.bp.blogspot.com/-WvVOLMbIQEo/UHa5m6QdNuI/AAAAAAAAAH0/k8uhZa-nuQo/s400/Starfire+Redux+2012-10-11+13-19-38-00.jpg" width="400" /></a></div>
<br />
I've also added some sliders for the nebula effect, starfield and particles. Again, this allows smoother play on slower machines. The nebula consists of 100 layers of sprites all moving at different speeds. Looks pretty but can tax some graphics cards.<br />
<br />
<br />
<br />
All of this should be released in the next few weeks.<br />
<br />
<br />
Another thing I have been pondering is my next game. Like most developers I have a ton of ideas and a limited amount of development time.<br />
<br />
The game I would really love to make is a First Person Shooter. If I have any hope of achieving this, I'll need to buy in some models/media and use an engine. I will be investigating Unity for this purpose initially and creating some prototypes.<br />
<br />
Now that our little boy (nearly 2) is taking an interest in bashing keyboards and twiddling thumbsticks I would like to make a few little games for him. My SFML based engine should be good for the PC versions but I would also like to add code to support iOS. Unity would be an option here also, but I would like to keep a C++ codebase going for total flexibility and so that every game product isn't tied to commercial third party software (SFML is OpenSource with an nonrestrictive license). If I can make these polished but casual they might also provide welcome further income.<br />
<br />
Hopefully the next blog post will arrive in less than 30 days!Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-6934638827568380152012-09-12T14:23:00.000+01:002012-09-12T14:45:12.468+01:00Steam GreenlightFinished all of the mailing list functionality today. I just need to finish sending through batches of confirmation requests for exisitng mailing list members.<br />
<br />
<br />
<strong>Steam Greenlight</strong><br />
<br />
A lot of game developers, games and pundits have been discussing Steam Greenlight recently. A lot of negativity has been aimed at Valve over this and personally I think it's pretty unfair.<br />
<br />
<br />
<strong>"Greenlight isn't Democratic and $100 is Evil?"</strong><br />
<br />
First of all, I'm not sure it's supposed to be democratic. It's there to help Valve make business decisions (which games to publish and make money) and allow game developers to prove to valve their game has support. This seems better than the old process:<br />
<br />
if ((rand() % 10000) && isMoonWaxing) gameGoesOnSteam = true;<br />
<br />
(sorry, fell into code there)<br />
<br />
The $100 donation to charity seems to have raised a few hackles. Personally, I think this is a good thing as it dissuades posting of projects that aren't intended to be commercial. If you're pitching a game on Greenlight, you are expecting to make money from it, hopefully via Steam. Worst case scenario, a kid's charity gets some money and you get some exposure for a very small outlay.<br />
<br />
If we're talking democracy as a metaphor, nobody gets to stand for political office without thousands of dollars of financial backing for their campaign. $100 is not much.<br />
<br />
From an entreprenuerial standpoint, if you're intending to make money from any business venture you need to put some in. Even if you're cleaning cars you need to buy some sponges, a bucket and some cleaning products (probably $100).<br />
<br />
Personally, I had considered putting Gravity Core on Greenlight just for a laugh. As anyone reading my ramblings for a while knows, Gravity Core wasn't a commercial success for me (it made peanuts). The $100 dissuades me, at least until I have another game to pitch.<br />
<br />
<br />
<strong>Downside</strong><br />
<br />
The downside to Greenlight seems to be that it opens up the way for griefers and haters to attack games just for fun which isn't great for the morale of small (or one man) teams. Unfortunately being attacked by anonymous folks on the Internet seems to be an occupational hazard for game developers and the only solution seems to be to develop a thick skin.<br />
<br />
<br />
Aim aiming to get a game onto Greenlight in the future and do think I have a better shot with that as opposed to emailing Steam and hoping the game gets accepted.<br />
<br />
There's a misconception out there that you can just put a game on Steam. Players often say to indies 'Have you ever thought of putting your game on Steam?'. At least now it should be clear that it's not like Apple in that you submit and 'just' have to pass a quality test.<br />
<br />
Overall I think Greenlight is a good thing and will be interested to see how it evolves over the coming years and months.Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-72455722932754815922012-09-05T11:48:00.000+01:002012-09-05T11:48:00.649+01:00Confirming Mailing List JoinsFollowing my move to HostGator for hosting, I have some work to do on my mailing list software. HostGator have a policy around mailing lists that requires double opt-in. Essentially, this means that users will receive a confirmation email after joining the mailing list. A link must be clicked before any emails will be sent to them.<br />
<br />
This is creating some work for me but the end result will be a mailing list process that is less open to abuse (e.g. submitting someone else's email address).<br />
<br />
The new server code is written and working, I just need to test it thoroughly. Next I need to figure out what to do about the existing mailing list, collected before the double opt-in was in effect.<br />
<br />
On a side note, I'll be installing Linux (Ubuntu) soon. My intention ultimately, is to use my current machine as a Linux box and buy a new machine for Windows. There are several good reasons for this:<br />
<br />
1) I can test my web server code offline<br />
<br />
2) I can build and test my games against Linux<br />
<br />
3) Steam are making moves towards Linux / Ubuntu<br />
<br />
4) It doesn't hurt to learn something new, every now and again<br />
<br />
Hopefully I'll be getting some game code underway shortly. The freeby shooter needs rounding off (bug fixes and bonus content) then I can start work on a new game using the same engine code.Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-89743850417722315642012-08-29T11:19:00.001+01:002012-08-29T11:19:40.757+01:00Web HostingEverything seems to be ticking along nicely on the HostGator server. Spent some time changing my stats database so that I can track downloads and referrals from other websites. The old host provided AWStats (summed up) files that I could use, whereas HostGator provides raw logs. These contain much more detail but I needed a new process to make sense of them.<br />
<br />
The EasySpace account has now been killed off. In my opinion they are best avoided as a company due to the following experiences I've had:<br />
<ul>
<li>Tech support is only core business hours and they are slow to respond, sometimes taking hours and thereby causing the issue to continue into the next day. HostGator are 24 hour and respond in minutes to chat requests.</li>
<li>When I changed to a cheaper package of theirs they were unhelpful and did nothing to avoid downtime. I encountered disruption even though ultimately I stayed on the same server and didn't benefit from newer version of software (e.g. PHP).</li>
<li>They publish prices for hosting on their website, but increase this by 15% + £2.50 year on year. The terms and conditions do not state this, saying instead "at our discretion". This effectively penalises existing customers and gives no incentive to stay with them as well as being underhand.</li>
<li>Cancellation of an annual package requires 12 months notice. I am still waiting to be stung for another year's payment for a service I won't be using. This will teach me to spend more time wading through their unintelligible Terms and Conditions.</li>
</ul>
<br />
Onward and upward. Hopefully HostGator will continue to impress me with their responsive technical support. They only take a couple of minutes to respond to chat requests and thus far have answered all of my questions and were very helpful when I moved everything across.Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-64880099567642541222012-08-21T16:30:00.003+01:002012-08-21T16:30:48.413+01:00Website and Email MovedThe website has now been moved to HostGator. So far, so good. HostGator have been helpful when contacted and everything seems to be set up correctly.<br />
<br />
The building work at the back of the house is progressing slowly due to the wet unpredictable summer we're having. We have some brickwork down today and hopefully the concrete floor will be in tomorrow.<br />
<br />
I'll post some more next week about my experiences with EasySpace and HostGator.Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-23081139920923675052012-08-15T09:58:00.001+01:002012-08-15T09:58:13.321+01:00Ads, Hosting and Building WorkFollowing the release of the KitBase (scale model database) update last week, I have been tied up with arranging ads (finally) and getting the emails out to customers, press and model clubs.<br />
<br />
This week building work started on the house. We're having a good size conservatory put on the back to give more space for us and the small person who is taking over. This will free up our lounge to become a study/office for yours truly to spread out a bit.<br />
<br />
The work is progressing nicely. I get on well with the builder, which is good. He does take a bit of care and is minimising disruption, even taking the time to put our gates back up at the end of each day. We had a bit of a faff with brick matching but hopefully we're all sorted now.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/--douMvROHoE/UCtj7om37aI/AAAAAAAAAHY/GNofv5dNaR8/s1600/IMG_2530.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="http://3.bp.blogspot.com/--douMvROHoE/UCtj7om37aI/AAAAAAAAAHY/GNofv5dNaR8/s400/IMG_2530.JPG" width="400" /></a></div>
<br />
<br />
Aside from finishing off the advertising for KitBase, I'm moving my hosting in the next few weeks. The new company is likely to be HostGator as I've heard good things from some other Indie developers and they are a lot cheaper than my current EasySpace hosting. EasySpace inflate their prices by %15 + £2.50 every year which is not stated explicitly in the T&C's - just says 'at their discression'. This gives me no incentive to stay with them as you are penalised for loyalty.<br />
<br />
My first experience with HostGator has been a bit poor though, in that I emailed them 2 days ago and still haven't had a response.<br />
<br />
If the hosting change doesn't cause me too much work, I may be able to crack on with some of the enhancements to the game engine next week.Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-67679203972961353062012-08-02T15:12:00.000+01:002012-08-02T15:12:08.047+01:00Gamedev mode again soonHoping to be in gamedev mode again soon. My other product upgrade is code complete. I just have final testing to do.<br />
<br />
Starfire - Ares Assault is still being downloaded and played. Around 10% of the downloads are Mac which is good to see. Makes the effort creating a Mac version worthwhile.<br />
<br />
Still playing and enjoying Trine. Well worth a look if you want a nice hack and slash / puzzle platformer.Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-53792223255510856182012-07-26T16:58:00.001+01:002012-07-26T16:58:28.361+01:00TrineHave been playing Trine for an hour or so every day as a bit of light relief from database coding. It's a great game with sickeningly beautiful scenery and animations (I am green with envy). Gameplay-wise it blends together physics gaming and platforming in a way that works. Switching between characters on the fly makes for some nice moments, such as rope swinging onto a platform as the thief then immediately transforming into the knight to smash up some skeletons.<br />
<br />
It reminds me of a few games I've enjoyed in the past such as Ghosts 'n' Goblins, Imogen (and old BBC puzzler with a transforming character) and Spherical. The physics puzzles are reminiscent of Half Life 2, albeit in 2.5D.<br />
<br />
This is very different to Frozen Byte's previous games (aliens-esque shooters: ShadowGrounds and ShadowGrounds survivor) but shares an attractive approach to lighting.<br />
<br />
I hope to be working on the game again in the next couple of weeks. Coding is complete on the latest release of my database for scale modellers. Just testing to complete - bah.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-oZwRpKQ6wxM/UBFo9v00_YI/AAAAAAAAAHA/xsoZgkqBH2g/s1600/trine+2012-07-26+16-53-54-83.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://2.bp.blogspot.com/-oZwRpKQ6wxM/UBFo9v00_YI/AAAAAAAAAHA/xsoZgkqBH2g/s400/trine+2012-07-26+16-53-54-83.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-DEkf54vRSk4/UBFo-rtLRGI/AAAAAAAAAHI/Jkp1aVBin_k/s1600/trine+2012-07-26+16-54-24-94.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://1.bp.blogspot.com/-DEkf54vRSk4/UBFo-rtLRGI/AAAAAAAAAHI/Jkp1aVBin_k/s400/trine+2012-07-26+16-54-24-94.jpg" width="400" /></a></div>Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-5374655223544722622012-07-17T14:46:00.002+01:002012-07-17T14:46:53.707+01:00Game development on hold...The development of Starfire phase 2 is currently on hold. I need to finish off some work on my other product for scale modellers.<br />
<br />
Should be able to work on the next phase of Starfire in the next few weeks. Performance still needs to be improved and I want to add some bonus content for folks who join the mailing list.<br />
<br />
When the new version is released, I'll issue some press releases and try to drive more interest. Even though I have done little in the way of promotion, the game seems to have taken on a life of its own in non-English speaking countries. A lot of Brazilian gamers seem to be downloading it at the moment largely due to it being included on a Brazilian gaming site. More than a thousand people have tried it out so far overall.<br />
<br />
I have been surrendering money to Steam again now that they are tempting me with their cheap games. My collection now contains Metro 2033, Trine 1 + 2 and Portal 2. So far, I have played Trine a bit and really like it. Kinda Ghosts 'n' Goblins meets Imogen (an old BBC Micro game).Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-82928922559835651852012-07-04T21:14:00.002+01:002012-07-04T21:14:20.716+01:00Starfire - Ares Assault, Version 1.01 ReleasedI spent some time over the last week rebalancing the difficulty of the game, following feedback. Largely this has made the bosses move more slowly sideways, allowing easier escape and reducing enemy damage and speed on Easy and Space Slug settings.<br />
<br />
Hopefully this will make the game more accessible and remove the frustration factor when fighting the first boss.<br />
<br />
The latest version of the game can be downloaded from here:<br />
<a href="http://www.suisoft.co.uk/starfire/index.htm">http://www.suisoft.co.uk/starfire/index.htm</a><br />
<br />
<em>(if it doesn't say v1.01 on the download link, you will need to refresh your browser)</em><br />
<br />
You can read the full release notes in the 'Suisoft / Starfire - Ares Assault' Start menu folder (under Windows). The release notes are in the resources folder in the APP file on Mac.<br />
<br />
The work for the next release consists of:<br />
<br />
<li>Screen resolution choice</li>
<li>Performance settings - nebula density and shrapnel density</li>
<br />
I also need to spend some time on the website to make it more attractive and show off the game with videos and screenshots.Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-36949512910929334812012-06-28T10:00:00.002+01:002012-06-28T10:00:09.996+01:00Mac Version and Future PlansThe Mac version of 'Starfire - Ares Assault' was released yesterday. So far, not many downloads but it has only been pushed out via a few forums. Anyone with a Mac - please let me know if it works OK and feel free to leave comments.<br />
<br />
From initial feedback it's clear that my strategy of always using the desktop resolution isn't working. Think I was being a bit overly optimistic there!<br />
<br />
Also, quite a few players have criticised the difficulty. This is a trap I've fallen into previously with Gravity Core.<br />
<br />
Based on this, the development tasks for the game are:<br />
<ul>
<li>Difficulty level rebalancing</li>
<ul>
<li>Settings from 'Normal' difficulty will be moved to 'Hard'</li>
<li>Slower enemies (on lower difficulties)</li>
<li>Less damage from enemy bullets (ditto)</li>
<li>Smaller groups of enemies (ditto)</li>
</ul>
<li>Longer invulnerability when respawning</li>
<li>Warning message when destroyer is approaching</li>
<li>Screen resolution choice</li>
<li>Performance settings - nebula density and shrapnel density</li>
</ul>
Hopefully these changes will make the game more accessible in gameplay terms and variety of machines it can be played on.Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-77884485397187038142012-06-26T09:36:00.003+01:002012-06-26T09:36:42.414+01:00Starfire - Ares Assault has been released for a few days now.<br />
<br />
Players seem to like it generally and have complimented the visuals and music. I still seem to be falling into the trap of making games that are too hard.<br />
<br />
The consensus seems to be that the first boss in Starfire is too tough. Not very scientific as no-one has said it ISN'T too tough!<br />
<br />
If you're playing Starfire, please let me know whether you think the first boss is too tough... and please let me know if is ISN'T.<br />
<br />
Any other comments are also welcome.<br />
<br />
Thanks!Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com3tag:blogger.com,1999:blog-6097453493402916890.post-49783448406272470362012-06-21T13:33:00.002+01:002012-06-21T14:15:36.985+01:00Game Released Live - Phew!The game is now released live:<br />
<a href="http://www.suisoft.co.uk/starfire/">http://www.suisoft.co.uk/starfire/</a><br />
<br />
Only the Windows version is available at the moment. I still need to complete final testing on the Mac build and package it up for release.<br />
<br />
The website still needs a lot of work. It is rather cosmetically challenged at the moment.<br />
<br />
Comments are welcome. If you like the game please 'Like' it on Facebook or follow me on Twitter:<br />
<ul>
<li><a href="http://www.facebook.com/#!/pages/Suisoft-Games/101606456600507" target="_blank">Suisoft Games Facebook Page</a></li>
<li><a href="https://twitter.com/#!/SuisoftGames" target="_blank">@suisoftgames on Twitter</a></li>
</ul>
I have a difficult decision to make soon - which game next?Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-68817240852937967162012-06-19T08:29:00.001+01:002012-06-19T08:29:14.232+01:00Soooo CloseGetting painfully close to release now. The installer for PC is built and the company/game logos have been added into the game. The game also has a final name, which is a bonus!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-cI9GIufmDb0/T-ApWUSJToI/AAAAAAAAAG0/NFoWrZwlP2w/s1600/StarfireAresAssault+2012-06-19+08-17-58-33.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://4.bp.blogspot.com/-cI9GIufmDb0/T-ApWUSJToI/AAAAAAAAAG0/NFoWrZwlP2w/s400/StarfireAresAssault+2012-06-19+08-17-58-33.jpg" width="400" /></a></div>
<br />
The subtitle of the game (Ares Assault) is derived from the piece of music I have used as a basis for the game (Holst's Mars). For those of you not into ancient mythology, Ares is the Greek God of War, whereas Mars is the Roman God of War. The power of the music certainly gets your pulse pounding when you're playing the game. The swooping attack of the Dreadnought near the end of the game still gives me the willies!<br />
<br />
The task list is now down to 5, except that I'm about to add 3 minor issues that require fix before release :-(<br />
<br />
Just Mac installation package, documentation, website and more testing after that. Releasing this game has been much easier than <a href="http://www.suisoft.co.uk/gravitycore/" target="_blank">Gravity Core</a> as I already have everything in place and can 'borrow' installer scripts and the like.<br />
<br />
When this game is complete, I have some non-game work to do, then I have the difficult 'next game' decision to make. The next game will be more complex than 'Starfire: Ares Assault' and will be shareware like Gravity Core.Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-78787371093306191322012-06-14T17:53:00.002+01:002012-06-14T17:53:30.587+01:00Pox and the Finish LineThis week's development time has been somewhat curtailed by our little boy having Chicken Pox. The small person seems to be pretty much better now. I managed to get in a few hours work thanks to family taking up some of the sprog watching duties.<br />
<br />
The majority of the work completed has been around balancing. The game was still pretty brutal on the easier difficulties. There's still some work to be done in this area.<br />
<br />
The issues/tasks log is now down to 8 items. Most of these are tweaks, balancing and website/documentation.<br />
<br />
Hope to have the beta version of the game released next week... hope this isn't developer optimism.Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-5496719487376203212012-06-07T17:07:00.000+01:002012-06-07T17:07:04.508+01:00Scoring, Lives and Game Over (Man)Most of the scoring, lives and game over code is done. I still have some animations to implement as well as bonus lives and score bonus for lives left at the end of the game.<br />
<br />
After this, the majority of the work is testing, balancing and getting the website, documentation, installer etc. done.<br />
<br />
No matter how many pieces of software I build, I always forget how much work is involved in crossing the finish line! Nearly there...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-ii0aYHg6bSk/T9DRaiAIJdI/AAAAAAAAAGY/oS0TEOg_Jok/s1600/Starfire+Redux+2012-06-07+16-58-08-57.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="http://3.bp.blogspot.com/-ii0aYHg6bSk/T9DRaiAIJdI/AAAAAAAAAGY/oS0TEOg_Jok/s400/Starfire+Redux+2012-06-07+16-58-08-57.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-2ujo4JrkFJI/T9DRdCQaOeI/AAAAAAAAAGg/9zRiKCBnwnE/s1600/Starfire+Redux+2012-06-07+16-59-10-57.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="http://1.bp.blogspot.com/-2ujo4JrkFJI/T9DRdCQaOeI/AAAAAAAAAGg/9zRiKCBnwnE/s400/Starfire+Redux+2012-06-07+16-59-10-57.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-r8DOMemdS9A/T9DRgVbCY4I/AAAAAAAAAGo/ELI8E4TPNF0/s1600/Starfire+Redux+2012-06-07+16-59-21-56.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="http://3.bp.blogspot.com/-r8DOMemdS9A/T9DRgVbCY4I/AAAAAAAAAGo/ELI8E4TPNF0/s400/Starfire+Redux+2012-06-07+16-59-21-56.jpg" width="400" /></a></div>
<br />Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-46420609473887857162012-05-30T10:53:00.001+01:002012-05-30T10:53:18.803+01:00Beating Down Final TasksPlugging away at the final tasks this week. The issue/task list is now down to 13 items. Unfortunately, sometimes new ones get added if I spot a bug or unexpected feature.<br />
<br />
The game now has a brightness slider and the collision detection performs ten times better now that I have implemented the heuristic algorithm I developed for Gravity Core. The collision system changes were considerably fiddlier than I anticipated but it's done now and there for the next game.<br />
<br />
Some of the remaining tasks include:<br />
<ul>
<li>Scoring System</li>
<li>Lives and Game Over</li>
<li>Documentation and In-Game Instructions</li>
<li>Website</li>
<li>Installation Packages</li>
</ul>
I just need to keep plugging away then I'll release the game as a beta. The last few steps over the finish line always seem to be tough.Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com0tag:blogger.com,1999:blog-6097453493402916890.post-78392824358240622592012-05-22T16:10:00.002+01:002012-05-22T16:10:47.956+01:00Attack Waves CompletedFinished working my way through the music to design the attack waves. I have a set of around 30 tasks / issues to work through before the game is fit for release. After that it's website work and spreading the word.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-R0jcGzQ9_Rk/T7usUMAVtSI/AAAAAAAAAGM/OSjFo1tbzVk/s1600/Starfire+Redux+2012-05-22+15-51-51-56.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="http://2.bp.blogspot.com/-R0jcGzQ9_Rk/T7usUMAVtSI/AAAAAAAAAGM/OSjFo1tbzVk/s400/Starfire+Redux+2012-05-22+15-51-51-56.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-b8WT3Wgc1pE/T7uqp1l08vI/AAAAAAAAAF8/Z0EvOpTIqII/s1600/Starfire+Redux+2012-05-22+15-51-32-56.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="http://2.bp.blogspot.com/-b8WT3Wgc1pE/T7uqp1l08vI/AAAAAAAAAF8/Z0EvOpTIqII/s400/Starfire+Redux+2012-05-22+15-51-32-56.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-oyX6RgxPGZA/T7uqo51tRKI/AAAAAAAAAF0/k46j9BSg25o/s1600/Starfire+Redux+2012-05-22+15-50-23-55.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="http://2.bp.blogspot.com/-oyX6RgxPGZA/T7uqo51tRKI/AAAAAAAAAF0/k46j9BSg25o/s400/Starfire+Redux+2012-05-22+15-50-23-55.jpg" width="400" /></a></div>
<br />
Now the music analysis is done, I can listen to some music while I'm coding. It's really hard for me to keep motivation and momentum without music.<br />
<br />
My music of choice when 'in the zone' coding, is metal - Devildriver, Machine Head and Slayer are current favorites on my playlist.<br />
<br />
Do you have any musical preferences when coding or working? Comments welcome.Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com4tag:blogger.com,1999:blog-6097453493402916890.post-35363450801017234622012-05-21T09:34:00.000+01:002012-05-21T09:54:38.521+01:00Free to Play GamesHaving bought an iPad a few weeks ago, I have been exploring the App Store for games. One of the games I stumbled across is 'Heroes vs Monsters'. This is another game in following the increasing trend of 'Free to Play' as a revenue model.<br />
<br />
The game is easy to get into and relaxing to play, however the system of buying in game gold with real money doesn't sit well with me. It is possible to accumulate gold by grinding but most encounters seem to yield a couple of hundred gold whereas decent magical items cost tens of thousands. There's an option on the gold purchase page to buy up to £70.00 (GBP) worth of gold. This seems ludicrous for a casual roleplaying game when the nearest competitor (Battleheart) can be bought for £2.00.<br />
<br />
Screenshot of HvM (I should win some kind of 'worst screenshot' award for this):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-q4Gm_hGVenE/T7oCauCAiDI/AAAAAAAAAFY/MGn-NvOl2GI/s1600/Photo0447.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="http://2.bp.blogspot.com/-q4Gm_hGVenE/T7oCauCAiDI/AAAAAAAAAFY/MGn-NvOl2GI/s400/Photo0447.jpg" width="400" /></a></div>
<br /><br />
Personally (as a player), I'm not a fan of the Free to Play model as it seems to offer watered down grinding gameplay to one set of players (those who play for free) and instant expensive cheats for those who want to throw money at it. The uncertainty of what I will need to spend to finish a game kills my enthusiasm for it.<br />
<br />
As a developer and purveyor of software myself, I understand the need for revenue but the game designer in me rebels at the idea of different gameplay dependent on how much you spend.<br />
<br />
Comments and differing opinions welcome.Garyhttp://www.blogger.com/profile/10936323836479606323noreply@blogger.com2