Thomas Sampson


1 Comment

Killzone 2!

After playing but mostly watching my friend play Killzone 2 from start to finish (almost!) on the ps3 I have been blown away by the game! I have been getting really interested in rendering techniques of late and the visuals and cinematic effects used in killzone 2 are like nothing I have ever seen before in video game. Here are a couple of great “making of” videos for the game which cover the following areas of interest..

  • The deferred rendering engine
  • A demonstration of the rendering pipeline at each stage
  • Cinematic effects (pixel speeds/motion blur/noise/bloom etc)
  • A look at a ps3 devkit
  • A tour around a debug build of the game
  • The use of the PS3’s SPU’s
  • The sound technology and layers used within the game


5 Comments

DirectX Vs OpenGL

I thought this debate would be a good place to start for the new Games Programming section. First of all I will attempt to explain why either of these are necessary and what their roles are in the grand scheme of things.

When programmers first ventured into games programming on the desktop PC the main platform of choice was DOS. The reason for choosing DOS over a more complete operating system such as windows was that DOS gave the programmer low level access to the hardware. As the hardware specs weren’t so impressive in these times, direct access to the hardware was essential, especially when creating games with lots of graphics and perhaps 3d objects on the scene. Trying to program on top of the operating system slowed things down and the running of the operating system would often get in the way of the game code, making for slow frame rates and poor game-play, and also restricting access to the video hardware. Most “In Operating System” games would resemble windows pinball or a simple card game.

So DOS was the way forward? Well, not completely. The idea behind DOS (getting close to the hardware and maximising the potential of the graphics card) was brilliant in theory but the problem lied in compatibility. Programmers would have to write their own “drivers” for each graphics card, in many cases having to manipulate hardware registers and write manually to memory and display buffers on the graphics card. This was fine as long as the drivers worked well and the card in your PC was compatible, otherwise the game would refuse to work at all. I remember the first DOS game I played which was “Duke Nukem 3D”.

Duke Nukem 3DIn the settings dialogue there would be a list of 4 or 5 mainstream chip-sets which were supported which you could select. Overall this was not much fun for the game programmers, more time was spent on tech than it was on game-play or game design, with every game having its own “in house” game engine and graphics pipeline. At this point it is also worth mentioning that all the problems mentioned with the portability of graphics code is also applicable to audio cards, with only a select few being supported by most DOS games. Clearly something was needed to remove this diversity of code and bring some standardisation to the emerging industry. Microsoft eventually saw the market potential for gaming on the PC and came up with DirectX which is now on version 10, with its main competitor being the open standard alternative openGL (open graphics library).

The idea of both these “libraries” was to bring the hardware manufacturers and the programmers together to standardise the way things are done and provide a layer of abstraction upon the hardware. The idea is that the programmer uses a standard code library to accomplish what they want, and the calls to that library are translated into the hardware mechanisms used by the vendors of the graphics card, with the vendors making their drivers and chips conform to these libraries. This way the programmer could write efficient code and not worry about compatibility issues as it was now the responsibilty of the card manufacturers to comply with industry standards. Both Libraries are optimised to run efficiently on top of a modern operating, giving the programmer the benefit of programming in a controlled environment.

Although this post is titled “directX Vs OpenGL” I dont wish to debate this too much. The libraries are both very similar and both share a common goal (although directX is more hardware focused than openGL which strives to be a 3d rendering system which may be hardware accelerated). To me the main consideration when picking either is the platform. DirectX is striclty for windows platforms, the PC or the (direct)Xbox 360, whereas due to the open source nature of openGL it can be adapted to many hardware configurations including the PlayStation2, PlayStation3 and most Nintendo platforms. If you do wish to consider the specific comparables of each graphics API I recommend the following link.

http://en.wikipedia.org/wiki/Comparison_of_OpenGL_and_Direct3D

For now I have chosen to focus my efforts on DirectX as I am informed that this is the better supported library and it is also the API I will be programming on my course next year.


1 Comment

TVersity

Tonight I was trying to stream media from my windows PC to my PS3 with no luck whatsoever! This was up until i stumbled upon TVersity. This isĀ  WAY better than using media player 11 to stream media! For one it actually works and configures everything for the console of your choice (although i did have to manually open the ports on windows firewall after installation). If your media is not natively supported by the console (in my case PS3) then TVersity will trans-code the media on the fly!!! into a format playable by the console! In addition to this it can also stream live TV and radio directly to your console! Another case of where a small community and third parties can do a much better job than Microsoft when it comes to feature packed reliable software! TVersity is the perfect media server for PS3 and so far I have no complaints!


Leave a comment

DVD to MPEG4 Converter

http://handbrake.fr

I’m currently convering a DVD to MPEG4 and everything is going smoothly! Also has many presets for other ouptuts such as ALL video capable Ipods, Apple TV, Animation, TV, PSP, PS3 etc etc. The software does clearly state that it will not rip commercial DVD’s although I stronly assume that this can be bypassed, perhaps by using DVD shrink to decrypt the dvd first. Earlier today I attemped to convert a DVD (Backed up using DVD shrink) to H264. This failed, not sure why just froze at the final stage of Muxing (Mulitiplexing) the audio / video streams together. Instead i’m now using the mpeg4 encoder on the “film” preset, expect an update on completion.