Apr 12, 2012

Big PHP rant

Oh my, this one deserves to be remembered.

I must admin, I use PHP in my little personal business site, but in a manner of advanced SSI, with little amount of logic. I've always wondered, why even so, I'm uncomfortable with PHP. Why even very simple scripts usually ended up me being in documentation, with finally "oh, that's how it is done". But I never imagined things are so bad there.

PHP language requres major cleanup. Remove all duplicate syntax. Remove php.ini with all to defaults, most of options should not be configurable at all! Create a stable platform that is consistent to every system and installation. Go with unicode as default. This will break all I know. So be it. Call it PHP 6, it will be new, but still known to many language.

But instead PHP group is doing almost exact opposite.

Installing Windows Phone SDK on Windows Server 2008 R2

If you try to install a Windows Phone 7.1 SDK on Windows Server, 2008 R2 x64 in my particular example, I will be surprised that it's officially supported in Windows Vista and Windows 7, as for now.

There is an existing solution for web installer. But what if you internet connection is slow, you need to install SDK on 10 computers, and you have a nice ISO lying on your file server HDD? Actually you only need a good hex editor. HxD is a good one, and absolutely free. What we need, is to modify same lines, but directly in iso file. Open image in editor and search for a unicode string [gencomp7788]. After you found it's location, look down for the same unicode InstallOnLHS=1 and InstallOnWin7Server=1 strings (you can copy baseline.dat from image beforehand and open in notepad for reference, it's located in root directory of the image). Select value 31 after '=' which is '1' and replace it (Edit -> Fill selection...) with 30 which is '0', you will see changes immediately in editor. Now, save the image. You're done. Open the image and verify that changes in baseline.dat are the same as you expected, and you are ready to go!

P. S. I suppose (didn't actually tried that) you can copy files from image into some directory and modify baseline.dat there, but it's not that fun!

XNA tools 2D game developer should not miss

This article data (and much more) can now be found here. I find that blogger platform was not suited well for managing of this kind of list.


You may also find useful:
- XNA tutorinals beginner shouldn't miss
- XNA articles beginner should not miss

Why you should reinvent the wheel

Below, I will talk about game development specifically, but I think this can be applied to any type of development.

The main theme I want to concentrate on is: if you personally experienced problems which some "wheel" solves, then you will use it better and with more satisfaction.

Consider arrays for example. Do you remember very first time you really understand concept of arrays? Usually this is very close to the beginning of language study. But despite that, usefulness of arrays is immediately obvious. You dont need tens of variables to store multiple values, and of course cycle processing of this values is much easier, to say the least.

Now remember user defined functions. They also come early, but not so early as arrays. Functions benefits is not so obvious until your programs go beyond some 100 lines.

And then, pointers. Double linked-lists. Queue. Stack. All of that strange useless magic. Then classes arrived and OOP with that strange inheritance thing. Why do you need to block access to a structure field? Some of us were forced to all this stuff at university or college. But as time goes you begin to understand why all this exist.

There is, however, a different side of this. Many starting game developers, as I can see, for example, at gamedev.stackexchange.com tend to use heavily some rather complex frameworks for games. The problem is that unless you will create game without usage of some frameworks, unless you didn't try to solve problems which arise with you own hands, you can't quite understand even basic logic that stands behind framework, and can't use it effectively.

You don't use classes from the start. You don't use pointers and complex data structures from the start. Not even functions. You use variables and arrays. Then your code grows, you understand concept of a function. And so on, you use more advanced features, then you face problem and understand how that feature helps to solve it. Before that time, your usage of it would be wrong and unefficient. Similarly enough you don't start game development by creating WoW clone, you are making Tetris clone.

Of course there are exceptions. You don't write XNA youself. You don't write standard C library. But this are well built, long time tested, basic functionality tools from a major brand. They can be considered a part of a language. You don't write image manipulation library, it's not the core kwnoledge that drives your game. But you write your game editor, your game core and physics engine. Even if you fail, your experience will be invaluable.

Apr 5, 2012

A set of XNA tutorinals beginner shouldn't miss

This article data (and much more) can now be found here. I find that blogger platform was not suited well for managing of this kind of list.

You may also find useful:
- XNA tools 2D game developer should not miss
- XNA articles beginner should not miss

Apr 2, 2012

Conjurer: Reloaded

The Conjurer project which was my little playground for something related to game development, but which ultimately become a failure, will now hold something quite more useful. It will be my personal XNA Framework utilities library. For now it contains a KeyboardManager class which helps to manage keyboard input handling.

As you can expect, main user of this project will be (and is) Digger.NET project.

Brian Fargo interviews

Brian Fargo interviews concerning mostly Wasteland 2 funding, development and much more. Very interesting read for any game developer and gamer.