October 26, 2007

Open Up Gaming!

When I talk about Gaming, I refer to Computer Gaming. I define Gaming as the process from conceptualizing the game, to designing it, implementing it, testing it and releasing it to a community, which makes further modifications (Mods) and makes it even more popular.

The problem is, with people's needs for employment, money and popularity, game developers have forgotten the fact that a game is about having fun, rather about licensing, legal documents thrown around and finally, restricting the user's choice on what he can play it on.

Let us look at the current bitchin' (real bitches) issues in gaming:

1. Halo3 is developed exclusively for the XBox 360. To increase the sales of the 360.
2. DirectX 10 is exclusively Windows Vista only. So Microsoft could put 'Windows just got better (again!)' and increase Vista sales. Sites like this advertise that by moving to Vista, they can get better quality graphics. This is a lie, and Microsoft did not backport DX10 to XP/2000 not because it was hard, but because they want to force Vista on you.
3. DirectX is a Windows only API (and maybe the XBox*), and people who develop on it are restricted to give Games on Windows only. This is a problem for Mac/Linux/*nix users, because it's hard to get 100% Windows API emulation on these platforms, even with commercial versions of Wine (like Cedega/Cider/whatever)
4. Steam games are not available for Linux, primarily because the games they do now use DirectX rendering. Their older games used to work natively on Linux because of the OpenGL backend; I do hear that Steam games are available for the PS3, in that case they could consider releasing static binaries for Linux/*nix.
5. Ever noticed that Apple's been bitchin' about a closed iPhone platform, bricking people's unlocked iPhones? They prevent people from developing mobile games on their iPhone platform. I am sure that they've got similar ideas for their OS X as well, and maybe they'd have to get a share of the profits if you start developing and releasing games for OS X as well.
5. Valve developers claim that Apple doesn't support them well enough to port Steam for OS X. For one, I am sure that porting a game to a POSIX operating system with OpenGL wouldn't be hard; Apple hardware is usually standard, and there is usually no missing vendor-extensions to OpenGL.
Are Valve devs BS us?
6. OpenGL is a standard set of APIs, used since the 80s. The problem is that while maintaining backward compatibility, they don't really have an easy API to get around it, and each vendor while claiming to have full compliance with a rececnt OpenGL standard makes his drivers only to make Quake run at *-fps and nothing more. So development on OpenGL is a good thing, but there's nobody implementing these standards well enough.
7. Talking about physics, companies like Ageia are trying to push their own PPUs in the market, and APIs like Havok trying to tie up with nVIDIA to get these things done on their newer GPUs. I'm sure it probably wouldn't open it to the general public either; There is no real production quality open physics API which can take advantage of current hardware (CPUs, GPUs and PPUs) without any licensing issues. When Intel bought Havok, I'm sure they are looking at selling it with their future flagship Octa/Hexadeca core CPUs..
8. Talking about Sound, although people are trying to standardize things with OpenAL, it's becoming a real issue having these APIs licensed to consoles.
9. What about console licensing, huh? Most Console makers offer their SDKs at a very high price; Partly because they also give development hardware, but really because they are getting 'Money'. I am sure that cross-compilers aren't unfamiliar today, and it wouldn't hurt to test apps on a console you buy off the street.
10. Supporting input has been a pain again. I am aware of no real platform which provides cross-platform low latency input to a variety of input devices with force-feedback support.
11. The last issue is in integrating all this into the same development API; like DirectX, except with the openness to other platforms added.

So the basic analysis of why this is, yields that:

1. Hardware manufacturers want to make money with their whatever hardware and closed source drivers. Whatever they can't do in hardware, they kludge and that becomes their strategic advantage (in terms of manufacturing cost); The end user doesn't care a damn and all he sees is the jazzy graphics on their websites and thinks he should buy the supposedly next best thing tm.
2. Software corporations, like Microsoft, Apple all want a share of the money if you're developing games for their platforms.
3. Console manufacturers, who basically integrate the hardware, their software want to license their SDKs so they can make money.
4. Any combination of the above restrict people from developing games on the other platforms because of money.

So this has led to these things:

1. Independant game developers, Homebrew software makers are not able to develop useful, supposedly free applications/games on any of these platforms. Only the people who have the money can develop. Pay up or die.
2. If you're supporting open-source software, and having a great 3D engine, you can't license it to people for consoles because of the money factor. Take Ogre3D, for example.
3. If you're a game player, you'd have to buy Vista to run Crysis, or the 360 to play Halo.
4. If you're running a DirectX game, you'll have to buy Windows. But you're not interested in Windows, just the game. You have a computer and someone tells you, "Well, you've got a fast computing machine, but it's a brick. Not because it can't run the game, but, well, we've got other priorities and we won't make it run on your machine"
5. Only game corporations with a lot of money can make any real games and license them. You're dead otherwise, practically.

So, when it boils down to this point: have money or don't make games, what should you choose? Should you throw away your interests because some guy decides it isn't worth it? Or should you be part of a movement which rebels against this and ask for a open gaming platform and for all manufacturers to support it?

By a open gaming platform, I mean a OS and the userland API. They should be open source, "free" software, and you can add on drivers for it if you wish people to use your hardware. Your drivers should ideally be free too, so you can run your hardware on hardware platform X, for all values of X. The whole OS and userland must be freely distributable.

The next step comes in licensing games; When people develop games for your console, make a good console or die. Support the open platform, encourage indie game development. Don't expect that if your game maker doesn't get a license for distribution, his game won't sell. If an indie game-dev makes a good game, publish it and make some money. You anyway earn for the services you offer and the consoles you sell. Why exploit the developer, then? And why restrict your user if he wants to develop a game for your platform?

When this comes up, we can expect the barriers to gaming completely removed; If you're a game developer and fear that your people will lose their jobs, you're wrong. Hire indie developers who are talented; Make money from software like you do now. If you encourage modding, chances are that you'll be more popular than otherwise.

I hence put this up expecting that the future of gaming might change; You could be a part of this, making that change.

October 17, 2007

The meaning of Life rev2

Just a few days ago, there was this article on parallel universes. Let me now explain why I think we are all numbers.

You will understand this article if you are aware of how they are represented using the binary notation. If you're not the mathematical kind, just try to follow the non-geeky explanation.

It also might give you an idea why I think the inverse of infinity is not zero, but a number which doesn't exist, called the no-number.

First, there was no-number. And then it splits into the alternative, the number.

Then were two numbers: 0 and 1. 0 represented non-existence, 1 represented life.

When we say that non-existence is there, I'm saying it doesn't exist, but things do go on in there, but they'll never be like us because they don't exist.

I believe the next division occurred when God was there and life existed, and wasn't. Again, 0 and 1.
Now we have three numbers:

1 <- Life
01 <- Life without God
11 <- Life with God

Now, it basically goes on, adding 0s and 1s to the left hand side of this number when or not an event occurred.

How do we represent numbers which have three states? (And not two or four)?

if (-)
else if(--)

The answer is, split the three states as this:

else {

i.e. 0, 1.

add 1 or 0 to the left of this 0, and we get:


the 11 is not taken, we shall ignore this. but doesn't this contradict that there must be exactly
3 possible states? Which means all things always happen or don't happen. There's nothing which never can happen (11).

So, constructing our life as a number leads us to this:

Our universe exists, where we realize its existence and where we apply this theory of existence to it, and I exist, I blog, and you exist and you're reading this.

Therefore, this leads us to construct various universes where many things don't happen/happen, and in the non-existent plane as well.

Of course, there could be a particular order in which the divisions occurred, but it is possible to construct more views of universes by simply changing the order of these divisions.

Infinity is the number of universes that exist, and the no-number is what makes it possible, and not zero. When it itself split into a number and no-number, came the large number of universes. The number became infinity. If there were not enough numbers at all, 0/1 would be the theoretical equivalent of infinity, which isn't really a no-number.

Ever thought of what numbers are? They are empty, different states theoretically possible just like we are.

Some implications (non geeky part):

  1. Either you read this, or you don't, but not here.

  2. If you're poor here, maybe you're wealthier elsewhere.

  3. You exist here, and you don't elsewhere.

  4. You're forking the universe into many different states when you toss a coin (and if it lands on heads or tails, or on none, or lands on both.)

  5. You think I am crazy here, and you don't elsewhere.