2011-12-12

WP7 takes over Android

At least within our family. :) Being one of the first Hungarian developers to have an app published on the Windows Phone Marketplace I've been awarded an HTC Radar phone by Microsoft Hungary. As soon as the Hungarian Marketplace opened up, I suspect that MS Hungary wanted to see Hungarian developers climb through the obstacles of the publishing process as early and as fast as possible. The Radar was a nice motivation, and the publishing process turned out to be really streamlined and easy to follow.

2011-11-04

Microsoft WP7 Meetup in Budapest

Today I drove to Budapest to attend a meetup with Microsoft Hungary, WP7.Hu and a number of talented WP7 developers and enthusiasts from the country. While it was fun (free snacks raise morale anywhere), not much has been said that I didn't already know. Still, it was great to meet in person with the WP7 guys at Microsoft Hungary, the staff of WP7.Hu and the teams behind such notable apps as SurfCube and AppFlow.

2011-10-03

C#, Compact .NET, WP7 SDK 7.1 & AWS EC2

That title sounds like the beginning of some ancient joke. Well, it's anything but ancient! I just wanted to post some quick code on how to sign AWS EC2 query requests using Compact .NET in C#.

Since there is no high level API for AWS for the compact version of .NET (ie. when used for the WP7 SDK), your best bet is to make query requests directly. That also means you need to sign your requests yourself. Since I was unable to find a working example, I turned to an old piece of code and ported that to work with the compact version of .NET / WP7 SDK 7.1 (Mango) instead.

2011-06-30

Painting a new hobby

I'm very excited to have found something that is both exciting to me and could also come in handy with my work on Xenocell. It's finger-painting! Unless our lead artist, Kevin Turchik says otherwise, some of these could even make it into the game as (fake, alas) concept art. :)

My friend, Danila Laurentiu (a.k.a Apparatus) shared a painting of his on Facebook wall depicting Captain Nemo. He's very very talented and does both traditional and digital painting. It was him who brought  an iPad app called "procreate" to my attention which he used to paint his portrait with. Of course I am a mere noob when it comes to painting, but I got the app anyway, and decided to give it a try. In the end I realized that it was not the final picture that gave me satisfaction, but the process of painting itself.

2011-06-21

Debugging Torque 3D Network Packets

Yesterday (and today) I spent a LOT of time debugging network packets in our game, Xenocell. I had TORQUE_DEBUG_NET defined and tried to do this "live" meaning via direct connection to a dedicated server.

The client was a DEBUG binary and the server was running release. Fortunately before spending more than 20 hours on finding out why I was getting an invalid checksum right after initiating the connection, I found Stefan Lundmark's thread over at GarageGames.com.

2011-06-10

Saving on EC2 costs through uptime management

For EC2 instances Amazon bills you by the hour. If you are like us, and need a few servers to be "ready" at all times - not too many, not too few - then here's a quick tip, something simple you can do to save some money on your EC2 instance costs.

For every instance, you pay at launch for the coming hour and when you cross that hour, you pay for the next one in advance. This means that stopping and starting an instance will incur an additional hour's cost - depending on when your instance was launched.

If you have several instances and don't need all of them, you can check their uptimes and see which ones are likely to cross into their next hour without being utilized until and after they do. Say, if a server has been up for 55 minutes and it's not being used at the moment, it is less likely to be used in the remaining 5 minutes than one that still has 35 minutes to go from its actual uptime hour.

But here's some actual code (in PHP, requires AWSSDKforPHP set up). Call getSortedEdgeInstanceData() to receive an array of your running instances in the order they are going to turn over into their next billing hour. I imagined these instances that are likely to turn over as "being on the edge" - hence the function name.

It's a simple idea but the costs it saves you could mount up to be significant - depending on the number of instances you manage in an on-demand manner. Hope it helps you!

2011-06-09

On the pitfalls of deploying indie software

Whether it's a game or another kind of desktop application, deploying it to your users can be a pain if you can't afford to or don't want to pay the price for the high-end tools. There are alternatives, however. And there are pitfalls.

Since the game my studio works on is an MMO, we had to keep all of the game logic strictly on the server side. This means that the game server is authoritative and the client is merely a "screen" to display what the server is computing.

Still, protecting game assets in the client version of Xenocell is a very important task. Not so much because people can steal our stuff, but also because we use assets that assume such protection and we agreed to abide by their license agreements - such as an adequate level of protection of these assets against 3rd party use.

2011-06-08

Cleaning up - my room this time

Yesterday's EC2 snapshot cleanup motivated me to also clean up my workspace. Here is the result. The part that is not all wires and switches. My wife says it still looks like a mess. But of course it's managed chaos. That reminds me.. I need to get back to learning Objective C.

2011-06-07

EC2 snapshots as backups

Today I did something silly, and changed the password to one of our AWS EC2 Windows servers to an empty string. I was gonna change it in the same RDP session to a generated password, but somehow forgot about it. My connection broke up due to a timeout (of course) and upon my next login I got this love note:

Logon failure user account restriction. Possible reasons are blank passwords not allowed, logon hour restrictions, or a policy restriction has been enforced.

Now, on one hand this is pretty cool, because it won't let me stupidly set no password on any of my instances. But it also pretty much means good-bye to that instance. Up until now, I have not found a way to change the administrator password say, through ec2config. So, I imagine the best I can do is make sure that this or something similar does not surprise me again.

2011-06-02

Listing AWS EC2 instances in PHP

You'll probably see many small snippets from me here on this site that deal with tasks that come up when working with Amazon Web Services. This example is in PHP, but AWS has many APIs for a number of languages and platforms.

This is something simple, yet I thought it could be of use for someone working with Amazon's EC2 instances via PHP. It requires Amazon's AWSSDKforPHP, which is one of the best APIs for AWS to date in my humble opinion.

What this snippet does is it lists your EC2 instances with their Name tag and public dns name. It could be an example on how to iterate through the resulting object that the describe_instances method returns.

2011-06-01

Introduction

Since I'm just starting out on this blog, I believe some introductions are in order. My name is Konrad Kiss, I live in Hungary, Europe with my wife and two mischievous kids.