Wednesday, July 10, 2013

Hardware Blues

You remember the summer of '13? Ok, Ok, it's still summer technically but this year was unusually cold. Which is, I read, actually a good thing as the wide spread of mobile computing reduced the demand of paper, thus for the first time in at least a century giving the worldwide forests a much needed regrow pause, but also affects the already disturbed climate and thus lead to a very cold year. But suddenly there were a few days in between where the temperature jumped about 15° to 20° (Celsius / Kelvin) and this was, when I learned, that it was a bad idea, when I had a cooler failure last year, to quickly buy a cheap cooler to replace it. The new and cheap cooler couldn't handle the higher temperature, and I used the Mini Mac at the time because the main computer always froze. This lead to many things I wrote about in the last post, like putting the off time to good use and building the Ubuntu PC.

When the heat wave was over, I felt secure again, even doing some stress tests, one of which is entering Second Life. It worked, but I still experienced occasional freezing, and I started to watch the core temperatures. It couldn't be worse, given the least bit of load the temperatures idled around 100°C only a tick more and the system made an emergency stop and froze. So I decided to invest on a new cooler. And this time a really good one please. I broke my headset, too and needed replacement, so I paid my local dealer a visit and nearly my last money.


I decided to take the Skythe Mugen 3.

It had some of the best tests and the architecture made it easy to clean, a feature that couldn't hurt. Yet I had to nearly completely disassemble it to have full access to the mainboard from all sides to install the cooler. So I did it. Now I could see, why I got cooling problems after the heatwave:


Astonishing enough, the CPU was unharmed.

And killed my mainboard. This is actually a first, I never managed to kill a mainboard, even the one that is now in the open computer survived its unassembled state and several moves. Maybe that made me a tad bit too careless. However, that meant I had to order a new board which would take several days to arrive. Pretty handy that I now had two systems at hand that I could use alternatively, even if I couldn't do a lot of things, like development with GameMaker or Visual Studio or simply gaming. Well, I could access Second Life on the Ubuntu system that had my old GeForce 9800 GT in it, and actually the Second Life client worked about as well on my AMD 3800+ at 2Ghz with 2GB as it did on my 2.83Ghz Core2 Quad system with 4GB before I started upgrading that. I was honestly impressed. And the 'feeling' of the Ubuntu desktop was great, responsive, intuitive unlike anything that I had experienced with Linux after about 15 years using various Linux computers as workhorse. I did wet my toes and tried desktop variants, but that never really worked out, even early Ubuntu variants. Now its on a stage I would give an Ubuntu system to a non nerd. And what may be the greatest surprise, it was even better than the Max OS X Lion on the Mac Mini (which is a Core 2 Duo at 2 Ghz with 4GB, but only onboard graphics). I added the 560 GTX OC and a Full HD display from the defunct main system, but at least Second Life wise, it didn't make that much of a difference, there is a point when adding better GPUs doesn't do much more and the 9800 GT seems to be a good fit for that system. Actually, all in all it was so good, that in all those days I had to wait for the mainboard, I didn't switch once to work with the Mac Mini, despite that one having all the commercial software, like Adobe Products and Microsoft Office. But I prefered the use of Open Source software for a long time now, and am used to Libre Office and the Gimp, which run perfectly fine on all three system (which really is a plus for each of them) and used the time to train myself more on Blender, anyway.

Another thing I recognized was that the combination of a 5:4 1280x1024 display on the left with a Full HD display worked better than two Full HD displays. The 5:4 format is ideal for books or websites, wheras I use the right full hd display for the real work. When the "information screen" is to big combined with my workstyle of having a lot of programs open at the same time it gets too crowded, wide (thus away from my main field of view) and distracting.

So after using each system for a while, I can make my final verdict:

Usability

  • 1. Windows 7
  • 2. Ubuntu
  • 3. Windows 8 (Microsoft gets worse instead of better :-( )
  • 4. Mac Os X

Software availability

  • 1. Windows (any version)
  • 2. Max Os X
  • 3. Linux
Sadly, this second chart is why I'll never be able to switch completely and might still have qualms about recommending Ubuntu to average Joe, and I don't think this will change anytime soon. Not only is the most software that started out on Linux easily portable and free of political constraints to have it done by the community, even some projects that started out on Linux are now focused on the other two. I'm looking at you, Xamarin!
What I can and will do, is installing an Ubuntu on my main system as a second bootable os. I'm very curious how that will turn out.


It's alive again... and pretty crowded.

Back at my main System. Despite the fact that nearly no part of my main system is still what I once bought as a complete system 5 years ago, with one of the noteable exceptions being the CPU, and it being at least twice as fast now, (a lot more even when it comes to the GPU) and I had no problems with games thus far I begin to feel how its outdated. Well cooled it now runs better than ever, yet e.g. when it runs the Second Life client, its framerate drops significantly sometimes, depending on what visible and how much CPU pre processing is needed. Not stable enough to make Machinimas, a hobby that I actually experimented with and liked, but ultimatly stopped because I couldn get stable 24FPS (espacially with FRAPS running, too).

I plan on purchasing an i5 3770k and a fitting mainboard and ram, and to overclock it, in about two to three months, as my budget has to recover first... or should I go for the Oculus Rift first? Second Life will support it at the end of the 'official' Summer.

Oculus Rift
When I said I'd like an Oculus Rift for Second Life I didn't mean it this way ;-)

Sunday, June 30, 2013

Uncanny silence?

Sorry for being so silent. It all started, when my landlord didn't pay my cable tv as said and my Internet, that comes via cable, was blocked. I spent one and a half month having my internet access reduced to the absolutely neccessary access with my mobile phone. It was an interesting experience. I had prepared blogpost mostly written here about my march project and how it didn't become what I first anounced, but a board game instead. The April project was Playmory for Mac. That may sound a bit lazy, but in fact I had a lot of work to get it, including buying, learning and setting up a Mac OS X system. Without online access, I couldn't even start Gamemaker, because the Steam version needs Steams online authentication, so my May game was a modified Poker where you have to haggle and collaborate above the usual betting. And my June game will be a board game, again. I created it at the start of the month. I really planned on 12 Software games for OneGameAMonth So what is my "excuse" this time?

Checking my Blog inworld

When I was offline and I could not work on a new game, I continued an abandon software project that is in fact one that I need, and every friend I tell about it, wants it too. I nearly forgot about it and concentrated on the much "cooler" gamedevelopment, but I really have to do it, because beside the fact that I need it, so do others, and so there is a market for it out there, which cannot be said for a certain game, before it stands the test of publishment. So - if I want to write games in the future I have to not do it right now ;-)

Open Computer...

Meanwhile I built myself a linux system, too, to be able to serve this market in the future (and as I have it, I will place a lot of services on it). Out of the parts of a computer that was never assembled because some small parts where missing that hindered me to assemble it as a desktop. Now I simply use it open. My 14 year old, once 6000$ display is still a beauty and now servers not only both the Mini Mac and the even-more-open-than-usual-Linux-computer, but also my Wii. So three systems at one workplace, not bad :-)

Mac Mini
3 Systems, one workplace

Also I used the time to learn a lot about the Adobe products and even got myself a drawing pad. Here is my first drawing:

Drawing

I plan to use Blender more and want to use handdrawn textures, too. With the new possibilities for the free Unity version of Unity I will try my hands on 3D gaming :-). And I need it for my Second Life, too ;-) Thank god I'm not completly new to it, e.g. I created the title screen for my January 1GAM in Blender (but not the models themself) and used a rendering from above for the sprites.

Future Startscreen for my game

Friday, March 8, 2013

Fragmenwhat?

Just yesterday I read a post in a group where a developer proudly presented how his game runs on pretty much any iOS device. But he could not do that without saying he would never develop for Android because of the Fragmentation issues. A similar thing happened today on Twitter, where @gaminghorror wrote "App developers: stick toiOS! Seriously: http://bit.ly/WHbzs7" and was heavily retweeted, the one I read first prefixed with "Holy cow! 80% of active device == 156 device models".

Actually, this makes me angry. I develop software since I'm about 11 or 12 years old, and I'm now 41. I've seen how the transition from Assembler and fixed hardware in a few systems (most sticked to the Commodore 64) broke the neck of many a famous game designer of this time, when not only "Home" computers started to have an operating system but also dynamic ram management and, oh my god, with the advent of later Amiga Versions and the big success of the pretty modular IBM compatible PCs it was over for them. They didn't think outside the box of full control and the comfort of pretty much knowing what hardware there is.

So gaming died out, didn't it?

Uhm, no. And not even consoles of today, despite having the same predictable hardware per franchise and iteration, work that way in coding anymore.

If you develop an AAA Title today, you either built or licence an engine, and its part of said engine to make sure it runs on as many systems as possible without bothering the game designers with it. E.g. Rockstar built the RAGE engine. While the engine has different code on any platform the game is available on, the parts that make an individual game, design, scripting and so on tough are the same. And that same engine makes it possible to have the game on a 640x400 display, as well as... holy cow, are these three Full HD displays? The engine is now five years old, but it was used in as recent (and different) games as L.A. Noir and Red Dead Redemption. That the later is console only is pure politics, not a technical limitation.

But that Rockstar is hardly an indie, and can throw 150 million us dollar on a project. So is that article on Flurry right, "Are Indie App Developers Becoming an Endangered Species?" and if so, is this because of Androids Fragmentation((c) Steve Jobs) issue?

Darn no! Well, may be simple minded ones that will go the same route as the 8 bit game developers, the ones that retweeted. See, not only is that assumption wrong, in reality its just the other way around. The breeding ground for applications (Apps ((c) Steve Jobs) has been the Web (first with CGI than more and more advanced languages on the server side), Java, Flash and now HTML5 and what they all have in common is an independency from a certain platform on the side of the user. And all had to manage the fact that they cannot exactly predict the size of the screen or even the means of input on the users side. Works like a charm on most systems, with the exception of one: iOS

meet the relevant part of the iOS SDK agreement:
"3.3.2 — An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise. No interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple’s Documented APIs and built-in interpreter(s)."

So Java Runtime and Flash Player or anything like it are not allowed on iOS. And JavaScript (as in HTML 5) only works as Safari Module, which any other browser on the system has to implement to use it. Development for iOS pretty much means coding in the awful Objective C and some, maybe just some C or C++.

Good that there are still solutions out there. Like Xamarin that compiles from C#, or game engines like Game Maker or Unity. which are all in price ranges accessible to indies.

The article then lists the distribution of android mobile phones over so and so much percent of the android mobile market and compared that with the much smaller number of Apple mobile devices. That is pretty much irrelevant on two grounds:

Different screen resolutions. Actually I don't see the difference here. It starts with 320 to 480 on an iPhone 1 and ends currently with an iPad 4 at 2048 to 1536, all at 4 to 3, oh nos, wait, there is the iPhone 5 with 16:9. So you have to take care of that, too. So that's pretty much for anyone who wants to have the luxury of painting every pixel on the screen at an exact point. Espacially if the framework (the iOS SDK, see above) doesn't really support dynamic UIs. Ususally devlopers don't develop for anything less than the iPhone 3s anymore. With Android you have phones starting at a 200 to 320 display. But users of those don't expect to get the same apps that exists for other resolutions, if you wan't to support anything, lets say below 640x400 today, you have to create the UI for it, just as tablets often are better if you shape the UI accordingly. The most common formats are 640x480 (older or very cheap phones), 800x480 (cheap phones or tablets, and some last gens like the Galaxy S2) and 1280x720 (or 1280 × 800 with extra space for the Softkeys) and in the near future Full HD, 1920x1080. You may notice that those higher resolutions orientate themselvs on the standards for video, displays and TV. The whole reason the iPhone 5 broke the 4:3 ratio was because of that, too, but failed to adjust the pixeldensity. The very lack of support for dynamic screen sizes now hit them back, if they'd change that to a video friendly HD too, the developers would have rebelled, because they had to redo the whole layout, not just stretch it somewhere in the middle ;-)

Image: The Youtube app on an iPhone 5 before it was redesigned to use all the space, while on Android it scales pretty well, here on an Samsung Galaxy S3 in HD, like the video shown.

For games its pretty easy on both systems, you support 2 or 3 resolutions and scale the screen accordingly.

But those many, many different devices? Android itself provides a pretty good abstraction layer, espacially when you use Java, and if you need certain hardware, you can easily check in the code for it. So its pretty much a non issue that only becomes one, when you learned developing on a very limited platform and never done anything else. Speeking of fragmentation only shows every other developer that you are very closed minded, and can only move in a very small canvas, most likely provided by a certain fruit company. It's no coincidence, that the CEO of that company invented its use in this context. That guy was a marketing guru, not a developer, and if you actually listen to older speeches of him he once said the exact opposite. But I love the arrogance that is inherent in it. The whole world does it wrong, only Apple does it right. And you wonder why the rest of the world thinks you also believe in the Second Coming of Jobs?

Thursday, March 7, 2013

#1GAM Very early March preview

I spent a lot of time thinking of what I will do as next #1GAM. Again, it should be something that can be done fast, because this or the next month I have to move and will have nearly no time for it, and I must work on the marketing and the monetization of Playmory. Yet I had a first idea, but than a second rammed into it, and I began to search for easily available charactersprites for a few tests on NPCs and Pathfinding. So I ended up importing some of the 16x18 character sprites on Open Game Art. Than I needed something where the NPCs can interact, so I started to implement the map parts too. And since my first experiences with Game Maker have shown me it handles it better when it does most of the part I had to make most of the 16x16 fields of those an object of themselves, which means, by now I have am Objectcount far over 100, and since not every object got its own sprite(-object) they use the same with different image numbes.

more than 100 objects

It's not hard to guess what my next move is: A map / level editor. Yet one question that is a matter of taste bugs me. I will scale it up, because otherwise the characters are hardly visible:

(Click on the photo and than do that again on flickr to see the original)
A very early first look

Which one do you like more. The interpolated or the sharp, visible pixels? Retro would be more like the first, because in the 80's we had no HDTV ;-)

Tuesday, March 5, 2013

Good news and bad news...

... which one do you here first?

Well actually, the time you read this, it's to late to change the order and so I tell you the bad first:

I had to pull my published HTML 5 versions of Playmory. The instability of the sound mixed in with the cracked flow by fixed play length of sounds cummulated to a whopping 1.8 out of 5 rating. HTML 5, if it worked, would have gotten me a lot of attention with I now to have drive in by other means.

But the good thing is, that I got the Android the Android Version on the Google Play Store, Android Pit and even Amazons Appstore. It's really the medium where Playmory excels and is the most fun, and it shows in the first comments :-) Yet it wasn't as uncomplicated as it could have been, one store did reject the game, again because a default behaviour of Game Maker. It just registers every addservice you can use (and I don't, Playmory is free of any nagging) and permissions for that. I had a lot of trouble fiddling out how I can get the lowest possible permissions that let Playmory still run and updated it on all four markets.

My favorite (January) #1GAMs

The #OneGameAMonth challenge (in short #1GAM) had over a thousand indie and hobby, and-soon-to-be-indie game designers publish new games. I cannot say I played them all, and many deserve a review, but there were three games that stood out for me:

1. Blockulous

Platform: Android. Price 0,99 USD

A fun 3D physics puzzler it had an addictive effect on me. You am presented with a construct of blocks that might remind you of your childhood, and you have to remove some of the blocks to get one certain stone on the top of another. For just one dollar its a steal.

2. sync lab

Platform: Various, I'm not shure I found them all. Price from free to 0,99 USD 

I found the game in the Steam-Workshop for Game Maker, and loved it. You have to fill up certain spaces by cloning yourself and every clone makes the same move, which makes it quite a puzzler.

3. Super Grid Run

Platform: iOS and Android. Price from free to 0,99 USD


A really fast game where you have to dodge obstacles and collect some gems on the way. As simple as the gameplay is, as much fun it is.

Saturday, March 2, 2013

Finally HTML 5 and Android

Today was a really good day. Despite the fact that I wanted to take it slow today, combined with my efforts late last night, I managed to debug the Android and the HTML 5 version. The later did only work with a compromise that breaks the flow of the gameplay somewhat - the Sounds are played for a fixed length now instead of as long as they are with a max of 5 seconds. A tester said on iOS you cannot here sounds at all :-( but it works well on OS X and Windows (if you tried it out on other platforms or browsers beside Chrome and Safari please feel free to tell me about it in the comments). Of all the versions I published now, the Android version is the most fun. You can sideload it here.

I like to spare the casual reader of what exactly was wrong, but you can read the details here if you like. Later I published the HTML 5 version on Clay.io and got it was authorized soon after. So you can play it there. I may add PBL (Points, Batches, Leaderboards) later on with the provided interface. I was thinking about some kind of arcade mode anyway. And yep, possibly advertisement and social functions (a ka nagging).



And after all that I spend a nice evening with my best friend in the city, visiting a sushi bar and watched Cloud Atlas. See, I still manage to "have a life" ;-)