“I’ll make a GUI interface with Visual Basic”

So here I am catching up on my fix of CSI:New York when they find a blog being updated in real time and one of the CSI’s turns around and says:

“I’ll make a GUI interface in Visual Basic and see if I can track down his IP address”

I just love it when these shows just come up with technical jargon that means absolutely nothing.

XR20

Yesterday I added a new musical instrument to the arsenal at Xiotex Studios HQ - the Akai XR20:

xr20

At first I thought it was just a really good drum machine but the synth section is rather good too - in fact within minutes of setting it up I had composed a little piece using just a preset synth.

Audio is a big problem for me - it’s the one area I am weakest at in game development and I decided to conquer this shortfall by throwing money at it and getting the best equipment I could manage to make the process easier. The music in the flash games was mostly done on a Korg Karma but recently I added a Korg Radias, Korg Electribe and an Access Virus Ti Polar to the list. It may sound extreme to do this but each of theses pieces of equipment makes the process of designing sound a lot easier. One day I may actually learn to play the keyboard beyond my hap-hazzard chord progressions. I know people who would have said to just buy pre-made music from the web but when I have a design in mind its hard to locate something that matches it so I may just as well make it myself.

My ultimate plan is to build up a library of samples that I will make available from this site for other game developers to use - so if you have a need for something specific then let me know - chances are I have it here somewhere.

Tools and legit software

In game development your tool-chain is the most important weapon in your armoury. The right tools make the process of developing games much easier and neglecting this aspect can create real headaches. I have seen companies that had a tool chain that wasn’t really understood and when issues arose there was a real panic about how to solve them. It’s for this exact reason that I make sure that I have a set of tools that I know well and can maintain myself.

Since I transitioned to developing on a Mac I transferred all my tools such as Photoshop and Flash to their OSX versions. Adobe made this very easy. This raises an interesting issue though - that of legit software. You wouldn’t believe how many companies I have worked for in the past that had a lot of dodgy software. I used to hear excuses that the companies that made these packages knew it went on and they didn’t really mind. That was crap of course. I made the decision early on that if I were to form a company then it would be built on the back of legit software and I have remained true to that premise - every piece of software that Xiotex Studios uses is fully paid for.

The transition to Mac did have some issues though. Previously I was using XSI as the 3d Modelling package but there wasn’t an OSX version so I looked around and settled on Cinema 4D. The scripting language that C4D uses is so easy to master that within minutes of installing it I had a basic custom mesh exporter up and running. Now all I have to do is get used to the quirks of XCode 3.0.

The game design re-think is progressing well too and I have settled onto a design that would work well on the iPhone/Mac/OSX.

 

Screw Nintendo

The recent WiiWare rejection was a setback that I hadn’t expected and had serious implications on the direction I needed to take the company for the future, so what to do? My first reaction could have been to give up and get depressed for a while but know what? Screw Nintendo! Nice as WiiWare would have been to get onto it isn’t the only platform out there. In reality XBLA is flooded with games and not really a strong target for the indie developer these days because of recent policy changes. PSN is possibly a very good platform for indies but I used to work on the PS1 dev-kit and if I know Sony their dev-kits still cost a fortune, so unless somebody from Sony kindly wants to loan me a dev-kit for the duration of the project it isn’t going to happen.

So where is Xiotex Studios going now? Obviously the only viable platforms left are PC, OSX and iPhone. This has however forced me to make a move that up until now I had resisted - translating my engine to OpenGL. It also means I have to reconsider the game I am making so that it would translate well to iPhone. To this end I cracked open XCode 3.0, downloaded SDL and have a working framework on OSX and not looking backwards. I must admit I was impressed how easy it was to get something up and running on the Mac using SDL but I am going to miss the friendly development environment of Visual Studio 2005 - and I know that I could code the game under that environment but coding on a Mac will stop all temptation to fall back to the comfort of DirectX.

 

The great Vista conspiracy

I have a theory. This theory is founded on the fact that every time I shut down my XP based computer every night it installs an update. So if I used my computer every day which I seem to because it’s my development machine and I try to do some work each day on the game that means 365 updates given the current track record. Pretty soon I am going to need a new hard drive just to keep up with the updates. My theory goes like:

1, It’s entirely possible that XP has so many bugs and vulnerabilities that it requires an update a day just to cope with them all.

2, My copy of the XP is screwed up internally and the update function can’t actually update so it keeps trying every time I power down, in which case its driving me nuts because I have to wait until it finishes the update before I can disconnect the power block from the mains.

3, It’s an evil plot from Microsoft to try and get people to upgrade to Vista.

Number 3 might sound a little far fetched but is there any law against Microsoft degrading the performance of an XP installation so that Vista begins to look good? If you are a muppet like me you probably have updates set to automatic install which gives Microsoft a regular access to your PC to install anything they like. Old Bill might be sitting back in an office in Redmond lamenting on how badly Vista is doing and all he has to do is pick the phone and order a few tweaks to be made to XP.

I just powered down the XP machine and sure enough there was another update. When it powered up again I went to check the updates there was another one waiting to be installed - this time an update to the MSXML core which apparently had a major security flaw. Perhaps the security flaw was that it did not secure my upgrading to Vista?

:)

 

Just a bit of fun folks….

 

 

Or is it?

(cue the X-files soundtrack).

Snake or Light cycles?

I read on a forum somewhere that the screenshot I show of Containment looks like either a ‘Snake’ or ‘Light cycle’ game and while it might be fun to write one of those it aint one of those :)

Basically the player’s viewpoint in Containment is one of a ‘radar’ style blueprint of an installation so the lines you can see below are the walls of a room that shimmer in the same way that the holograms do in films like Star Wars (where the idea was sparked from). There are two flavours of Containment being toyed with at the moment. The first was originally intended for single player and would have been the version written for WiiWare and the second is a Multiplayer RPG type affair.

Out of control

When I started the ‘WiiWare is a lie’ blog post I had no idea it would go as far as it would. Instead of just me venting my frustration after going through a lengthy application process with Nintendo it seems to have taken a life of its own including getting interview requests from people wanting to take it further. While I would like to see Nintendo remain true to their original projected vision of what WiiWare was supposed to be I am by no means on a mission to cause them trouble or trouble for the company I work for by association. If anything this has been an exercise in being careful what you say because you really have no idea how far stories like this can travel.

WiiWare is a lie redux

The saddening thing about the WiiWare rejection is what it really means to be an indie developer. It appears that unless you have an ‘office’ location they won’t consider you. This means you have to have funding, how else are you going to be able to afford to rent or own an office? This is totally contrary to the speech given at the WiiWare summit and contrary to all the previous hype about developing for WiiWare. When I first heard about WiiWare it seemed like the ideal platform for the indie developer, it was certainly being touted that way even to the point where Nintendo claimed they were going to make it easier for developers to get hold of dev kits. The Wii summit only reinforced that view.

I like many indie developers before me started out in the games industry. I have served for over 10 years in various companies ranging from Kuju Entertainment to EA with my proudest achievement being the networking code for Mutant Storm Empire for PomPom. I learned a hell of a lot during that time and thought it was time to break free and give being an indie a go. I got a little side tracked from this and found out the hard way that unless you have a lot of funding you need to work for other people while working away on your own business - which is what I did.

I am not the only one in this situation. I know of at least one other indie developer who has far more experience than myself who is also expecting a rejection because of the office issue.

The most ironic thing is that in a home office you are pretty much going to find somebody there all the time whereas at an office it’s going to be vacant for most of the night and prime target for break-ins. In fact, at one developer I worked for we were encouraged to take the computers home at night because they kept being broken into.

I have since been told that the rejection letter I got was a blanket letter they send to all rejections.

WiiWare is a lie

A couple of months ago I was invited to the WiiWare summit in London. It was a great event and as a small developer I was greatly inspired from the talk given by Takao Yamane who is head of Nintendo Europe. I can’t give too many details because of NDA but the gist of the talk was how great WiiWare was and how it was great for the small developer and that we can make games that don’t require big businesses and it was a fantastic opportunity. I fell for that and ironically some months before had put in a registration request form with Nintendo. Today I got the response:


“Thank you for your interest for Authorized Developer status for Wii. We
have completed our evaluation of your application and are unable to offer
your company Authorized Developer status at the present time.

In evaluating developers, Nintendo looks for relevant game development
experience. In addition, Nintendo looks for secure business facilities,
sufficient equipment and staffing, financial stability and other
attributes that would distinguish the developer.

Nintendo provides Authorized Developers with highly confidential
information and many of Nintendo’s Licensees rely on recommendations and
referrals by Nintendo to Authorized Developers. For these reasons,
Nintendo exercises a very high level of discretion in approving only a
select number of applicants.

In accordance with our policies, we are not able to re-evaluate requests
for developer status for at least six months. Again, we appreciate your
interest, and welcome any questions or concerns you might have regarding
this decision.

Best regards,

Software Development Support Group & Licensing Department
Nintendo of America & Nintendo of Europe”

So, not as good an opportunity as Takao Yamane claimed then - good to know.
Best bit is - when I made the application I was already working as a contractor on a Wii title and before that I had worked on GameCube titles - apparently that doesn’t count as relevant experience. Perhaps they only want people who have never worked on Nintendo hardware.
It’s already been Dugg - you can do so here: here

Architecture

Containment comes in three parts. The first part is the C++ DirectX application. This serves as the main user interface for the player. The second part is the MySQL database that contains the world and status of Containment and the final part is the PHP scripts that allow the user interface application to manipulate the Containment database. All three components make up Containment and all three are a fun programming challenge all of their own - okay, technically you are not programming a database but you get what I mean.

The C++ application had to be multi-threaded. The reasoning behind this was that http requests and responses are not real-time, it can takes seconds to process one transaction. I couldn’t have a 3D display pause while the app went off and updated the database so I put the actual database communication code into another thread. When something is needed from the database or the database needs to be updated a transaction is sent to the comms thread which processes it and gets the result. The comms thread itself blocks while waiting for the results but it means the main thread of the application can proceed. The user still has to wait for the results but at least the simulation continues smoothly while those results are coming in. Each communication is a transaction and each transaction is a C++ class derived from a base Transaction class. They all share a common interface composed of three functions called:

Begin

Update

FInish

Update is the actual function that performs the http communication with the server while Begin and Finish are used to provide house keeping tasks. An example of this is player registration. Currently to join the game the player has to register with the Containment Computer and this is done like:

Register user password

While this transaction is being processed we don’t want the player to be able to type the same line in again so in the Begin function the keyboard console is turned off and in the Finish function it is turned on again. So as you can see those functions can be used to provide a measure of serial flow in the game execution. The alternative would have been to deal with duplicate transactions going through at the same time.

Incoming transactions are placed into an ‘in’ list while processed transactions are placed on an ‘out’ list with critical sections being employed to stop concurrency issues raising their ugly little heads. The critical section is entered, the item removed from the list and the critical section is left and the transaction is then processed. This means that very little time is spent in the critical section which hopefully means very little stalls in the main thread or the communications thread.

Next Page »
 
The game goes here
The game goes here
The game goes here
The game goes here