Categories

Navigation

MVP

Microsoft MVP (since 2006) in the XNA/DirectX category

Tag cloud

Ajax (8) All (206) Arena Wars (21) Boo (4) BroodWar (8) Conferences (1) Development (44) Game Development (142) IronPython (3) Lost Squadron (17) Lua (6) meinSport.de (4) Other (150) Polynapping (12) Programming (156) Racing Game (7) Reviews (76) Rocket Commander (49) Silverlight (10) SQL (1) StudiHelp.de (2) XNA (40)

On this page

Tools 2007: Using VS Orcas, Multiple monitors, FreeMind, SourceGear Vault, OnTime, Screenshot Captor and StarCraft II
Windows XP x64 Experiences
StarCraft Broodwar Giga II TV show match
Working with DLinq, Linq and Xml
The year 2005 - Reviews of Games, Movies, Software and Programming Books
Lost Squadron, Day 19: Shoot'em'up
I suck ...
Welcome to my Blog WebSite

Archive

Popular

Blogroll

Projects

Arena Wars (2004)

Rocket Commander (2006)

Pizza Commander (2006)

Rocket Racer (2006)

Coop Commander (2006)

Flower Commander (2006)

Fruit Commander (2006)

Euro Vernichter (2003)

Lost Squadron (2005)

Zombie Quest (very simple 2D Adventure, 2006)

Freifunk Hannover project (GoogleMaps support)

Older projects (2000 and earlier)

MeinSport.de - German Sport Community Site

About

About me: Contact

Send mail to the author(s) Email:

Total Posts: 213
This Year: 9
This Month: 0
This Week: 0
Comments: 403
Made with

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

RSS 2.0 | Atom 1.0 | CDF

My brothers

netfreak.de

mirkman.de

Sign In

 Sunday, May 20, 2007
Sunday, May 20, 2007 3:38:12 AM UTC (  |  |  |  |  |  )
Dunno what happened. I wanted to post this a week ago but for some reason I did not find any time to post the whole week. This way I can probably give a more detailed view at the new programs I've been using for one to two weeks now.

BTW: I also updated some links in the menu and on the right side of this website, there were a lot of links not pointing to the correct locations.

First of all, I'm exclusively using Visual Studio Orcas now. I mentioned the Visual Studio Orcas Beta1 a month ago and explained how to import unsupported addins and fix some issues. I did not have much time to check out Silverlight yet, but it still looks very promising. There is also a new website from Microsoft called PopFly that is using it.

Last week one of my colleages was away for a couple of days and I stole his 24" monitor and put it right beside my 24". At that time I was converting a few projects from VS 2005 to VS Orcas, but as you can see that is way too much one the screen. I even tried to rotate both screens by 90 degrees, but after a hour I was feeling silly always looking up and down. Anyway, it is just too much to look at both these screens at once. Having one big 24" and a 20" or 19" right beside it is already a very effective solution. Important stuff goes on the big screen (VS mainly) and all the rest (firefox, ultraedit, explorer, whatever) go on the secondary screen.



This is my normal setup and I'm much more used to that. I have worked with multiple monitors for about 7 years now, it is nothing special anymore, but now is the first time I don't really need a bigger monitor anymore ^^




Ok, let's go on with some tools. I downloaded FreeMind a month ago and played around with it a little, but it couldn't convince me to replace my good old txt TODO list. But for other stuff FreeMind is really great.



In a matter of seconds you can create a overview design and it has the advantage to put it directly into a project instead of having it on paper, never been able to add stuff and losing it after a short while. Here is one of the FreeMind maps I have recently created just describing a project design and the workflow process. I have also seen examples of complete project management with FreeMind or using it for TODO lists or scheduling, but I'm not convinced that you are faster with it. I do not really need a graphical view of my TODO list, at least not at the time I throw ideas and tasks in there. To view the work process I could still convert my TODO list (which is tree based) to FreeMind anyway. It is just faster entering text into a text file than to anything else (which is also the main reason I never found any good TODO list tool).




Then on the recent DotNetRocks radio show I heard Eric Sink from SourceGear talking about Source Control and his tool SourceGear Vault, which is very similar to SourceSafe. This year I went crazy and tried all kinds of source controlling systems, including the following:


  • SubVersion (successor of CVS): SubVersion is a really great version control system and it works really good, both on small and big projects. We have used it for Arena Wars Reloaded and the only cavecat was getting it to work inside Visual Studio 2005. Thanks to the plugin VisualSVN it worked out just fine, only adding files is a real hassle (they are not added to the remote server, just locally). For VS Orcas there is no support and when you are working with ASP.NET websites in VS SubVersion and VisualSVN is a really bad choice IMO because it messes up the directories and does not add the files properly.



  • Perforce: Ok, I went back to Perforce, which I had used before, but mostly alone or together with another programmer. Perforce is a very professional solution, but again not very practical for anything but programmers and I wanted to include the graphic artists and project managers into the version control system too. Also Perforce still has a lot of issues with Visual Studio IMO and is still hard to setup, even with the much improved UI that finally allows you to set rights properly without messing in command line scripts. Again, no support for VS Orcas and the main reason not to use Perforce is the crazy price, $800 per developer, good bye! It was a lot cheaper a few years ago, but I never got into Perforce (mostly used SourceSafe in the past).



  • SourceSafe: Ok, back to the basics. The good old SourceSafe with an internal file system that no one understands, strange bugs that prevent you from adding files or the good old "If you delete a file, it is still there, just the content is gone"-"feature". For smaller projects SourceSafe is fine and if you do not have many developers, it works ok, but you can't give it to any graphic artist and once something gets messed up you need to spend a lot of time cleaning it up. The good thing is it works right out of the box in Visual Studio Orcas.



  • And then I tried SourceGear Vault: It is pretty much the same thing as SourceSafe, it just uses a SQL DB backend, has a much cleaner interface and much better tools including nice importers to get all your projects converted into the new version control system (yeah, everyone says they have importer, but they never work, the Vault Importer worked, it had no problem importing several GB of SourceSafe data). The disadvantage might be that it still feels like SourceSafe and it still has some of its issues (like deleting files and they appear again as 0-byte files), but overall it is much improved. We have just used it for a few days now and we had one merge problem so far, but that was probably because one artist did not check in his files and we changed it a few times. Vault also runs fine on VS Orcas as it probably just uses the standard SourceSafe interface for most of its stuff, which runs just fine on VS 2005 and Orcas.



  • I also tried a couple of other version control systems, but none of them worked in VS Orcas and I did not find a great one anyway. Some tools like AlienBrain have really nice features, but too much other stuff is missing and while it might be a great tool for artists, it is unusable for programmers. I do not believe in having separate version control systems, especially if you work tightly with your artists and make 10+ check ins per day with them.


I also use another tool called OnTime (Ship Software OnTime) for a while now. It is a project management tool and we use it mainly for bug tracking. It is about 700 times better than having you bug tracker on a stupid website. Website bug trackers like Mantis or BugZilla are not good for quickly adding tasks, entering bugs and fixing them in my opinion. They might be useful if you have to work with remote teams or if you expect really detailed bug reports. In our case we have mostly short tasks and quick bug reports, which are written in a few seconds.
But more importantly OnTime integrates directly into Visual Studio (sadly not VS Orcas, but the Windows tool on a secondary screen is fine too). It allows you to quickly add tasks for yourself or for any team mate and to go though 20 bugs in a few minutes (you will never be that fast with a website system). But the best feature IMO is the email management, OnTime allows you to send emails to a specific email address, which get picked up and added to the bug list. Then the programmer sees the issue, fixes it and the email sender gets a reply that the bug has been fixed. This system worked out great in our company.


For some strange reason I can't make screenshots with PrintScreen in Windows anymore. I guess some VNC tool messes up my clipboard or Windows just does not want to handle screenshots as big as my monitor resolution is. I searched for a good screenshot capture tool because I was getting annoyed with the PrintScreen+Paste in Paint or similar+Save somewhere on disk approach anyway. I used a tool a few years back that automatically made screenshot of the desktop every minute or so, which was funny, but I can't remember the name anymore. After testing a couple of crappy freeware and shareware programs I finally found Screenshot Captor, which is freeware and a really good tool with a lot of cool features. Most importantly, it allows you to capture your screen, window, or all screens with PrintScreen, Alt+PrintScreen or Ctrl+PrintScreen and it even safes the screenshot in the format you want into a directory you want. This was exactly what I needed :)

And finally to finish this big monster post: Blizzard announced today that StarCraft II is in the making and I was totally blown away by this. Many sites like GosuGamers.Net reported all week and were guessing StarCraft II or Diablo III, but there were so many rumors about StarCraft II, not many people were very sure of it anymore.



There are already some screenshots and game infos available, you can also find a few game play videos on youtube and 2 trailers by blizzard are on the official StarCraft II website, which is painfully slow by the way ^^ The game looks pretty good, but it still has many similarities with WarCraft III and there was already a lot of critics by pro-gamers and people in the StarCraft communities fearing that this game would be slower and less balanced than the original. I suspect the same, but StarCraft II will still be the best RTS that comes out in the next couple of years and every RTS fan will buy it anyway.

If it can surpass StarCraft - BroodWar is not for sure yet and we have to wait and see. It will probably attract more people to the StarCraft universe, but the old StarCraft community will not die that fast. It probably will take another 1-2 years until the game is done anyway. But this was very amazing news for me, I was suspecting Diablo III or some MMORPG from Blizzard, but not a PC-only old-school singleplayer+multiplayer game, that really goes back to the roots and just adds 3D graphics and physics to it. Nice job Blizzard!

 Friday, August 18, 2006
Friday, August 18, 2006 6:32:56 AM UTC (  |  |  |  |  |  |  |  )
I installed Windows XP Professional x64 Bit today and this post is about my experiences with it. I tried it a year ago, but most drivers were not available for 64 bit back then. Now most drivers are supported and most programs will work without a problem. However some drivers and programs will still make trouble. Most of the issues could be resolved one way or another.

Generally I would say Windows XP x64 works great and is even a little bit faster than 32 bit Windows.


No problems

Had to change my mainboard because my current one went dead yesterday, I could use the same Windows x64 version without reinstalling, thats nice. Windows 32 bit does not work anymore (some driver troubles I guess). I also noticed that about Vista, no more reinstalls required if you change your board and cpu.

Games worked great, no problems here. I guess Microsoft plays a lot of games and wants to make sure all of them work, hehe. Even 15 year old games like Raptor (my all time shoot'n'up favorite) or Wolfenstein 3D worked without problems. Starcraft, Quake3 and current games worked nice too. Daemon Tools also provides a x64 bit version for Windows XP x86 for emulating CDs or DVDs.

Visual Studio 2005, DirectX SDK and all other development tools like VS Express, SharpDevelop, CodeRush, Perforce, UltraEdit, PCalc, NSIS, etc. work great too. For running 32 bit IIS apps you might have to follow these instructions.

Virtual Server 2005 works nicely and you can run virtual x64 and x86 computers, I guess the performance is also good or even better than before, but maybe my system is just faster.

Most normal programs did work too, but since nearly 99% of all programs are still 32 bit, it does not really make sense to have a 64bit platform yet. For browsing IE 64 bit is available and for Firefox (which is 32bit again) there is a 64 bit port called Deer Park, which works nicely. Both of these browsers are useful if you need more than 2 GB memory for your crazy browsing. Some programs do provide a x64 bit version, which works just the same way as the 32 bit version (I guess they did just a recompile with different compiler settings). I would say more programs and tools will be tested for x64 in the future, especially for Vista, when more users might choose x64 for their operating system.


Programs with problems

Most .NET 2.0 tools I tested did not work, but all of them could be fixed by changing the build setting from Any CPU to x86 Platform. While .NET 2.0 has NO problem running in 32 or 64 bit, it is not that easy in the case you call any external code (and almost all my tools do that). For example my AbiTrafficMonitor tool uses SharpPcap, which again uses wpcap.dll, which is only available as a 32bit dll. By forcing 32 bit to the application everything works great, in 64 bit the dll is not found and can't be forced. It is not possible to load 32 bit dlls in 64 bit mode, you will get the following error message when attempting to do that. An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)

So you have to make sure a 64 bit version of all used dlls exists, else DO NOT use the Any CPU or x64 Platform settings. so this has to do something with .NET 2.0 (just some stupid compiler setting, recompile works, but a smarter version would be cool).

Here is the new installer for AbiTrafficMonitor, which works on Windows XP x64 too (by forcing the x86 mode). It does obviously still work on a normal 32 bit (x86) windows platform.

.NET 1.1 games like my Arena Wars game worked too, also .NET 1.1 tools worked fine. All .NET 1.1 assemblies run automatically as 32bit applications by design. .NET 2.0 runs automatically in 64bit mode on x64 platforms if All CPU is selected.

However my .NET 2.0 game Rocket Commander could not be started. Actually this is the same problem as above (not allowed to call 32 bit dlls from 64 bit code). .NET 2.0 runs fine in 64 bit mode and DirectX provides also 64 bit dlls, BUT Managed DirectX does NOT support using 64 bit. There is no version available to do that right now, neither MDX 1.1 nor MDX 2.0 support x64. So again, force the platform to be x86 and everything works again.

I recompiled Rocket Commander and it is available at the default download location: www.RocketCommander.com download page
There were also a couple of discussions about this issue in the Rocket Commander boards.

Another issue are external tools or helper tools like TestDriven.NET, which support x64, but it seems the underlaying NUnit Framework does work only in 32 bit. Not funny at all if you have a x64 bit app or just run All CPU on a x64 platform and want to test your code. This issue can be resolved by testing in 32 bit mode and then later switch to 64 bit if you want a 64 bit version of your app.

UltraEdit, WinZip and WinRar work fine, but all of them are 32 bit. So whats the problem? They all provide shell extensions for the Windows Explorer, which do not work in the 64bit version of the Explorer. There are 2 solutions for this.

  • Start the Windows Explorer 32 bit with the command line. Command:
    c:\windows\syswow64\explorer.exe /separate
    This didn't work very well for me, some of the shell commands did not work properly and it is really annoying to start the windows explorer this way. Often you might open a folder or jump to a containing folder, then of course the default 64 bit Windows Explorer is used.

  • Add your own shell commands in the registry. This works great for Open with UltraEdit or Extract files here, but if you need smarter commands like Extract to subfolder this doesn't help. Anyways, here is the solution. Add this file to your registry to add the following lines (change them to whatever you need):

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\*\shell]

    [HKEY_CLASSES_ROOT\*\shell\Extract here]
    @="Extract here"
    [HKEY_CLASSES_ROOT\*\shell\Extract here\command]
    @="C:\\Program Files (x86)\\WinRAR\\winrar x \"%1\""

    [HKEY_CLASSES_ROOT\*\shell\Ultra Edit]
    @="Open with UltraEdit"
    [HKEY_CLASSES_ROOT\*\shell\Ultra Edit\command]
    @="c:\\Program Files (x86)\\ULTRAEDIT-32\\uedit32.exe \"%1\""


Programs and drivers that do not work

Some old setups like for the Panorama Wallpaper changer do not at all (wrong windows version error message), but I managed to install some of the manually (copying files and setting registry settings).

My on board network drivers do not work at all, neither does my old TV card, but I had many driver problems in Vista Beta 2 x64 too. I found a old 1Gbit network card that works and I never watch TV anyways. All other drivers (board, gfx, sound, mouse, keyboard) work just fine.

Update 2008-08-19: My onboard sound really sucks and I tried to install my old PCI Soundcard (XFire 1024), but since the vendor does not provide 64 bit drivers, there is no way I can use that card. The onboard network adapter (Marvell 88E1111) also stopped working and does not even show up. Another old VIA VT6120 1gbit card could be installed, but didn't work either. Maybe I have to try out deactivating the other cards and then it should work, a 64 bit driver is installed.

Now to my main issue: You cannot use ANY new keyboard layouts at all! I really need my own AbiKeyboardV9 layout to type efficiently. I tried like 10 different other keyboard layouts too, all of them can be installed, but as soon as you try to use a new layout you always get a error message like "Windows could not load the x keyboard layout.". Not funny at all and I found absolutely NOTHING for either vista or x64 Windows to fix this problem on the internet. I used the Microsoft Keyboard Layout Creator, which works great on Windows XP 32 bit and lower. But this tool was last updated 2003 and the support for future windows version or x64 is just not-existant. Other tools I tried (keytrans, klm, etc.) suck even more and usually cost a lot of money, none of them worked on 64 bit or provide any useful features for me. All of them work only in 32bit.

More links on that topic (all of them have x64 bit problems and are unresolved)
http://www.planetamd64.com/lofiversion/index.php/t15929.html
http://blogs.msdn.com/michkap/archive/2006/01/26/517728.aspx
http://blogs.msdn.com/michkap/archive/2005/10/06/477930.aspx

I found some information on Marks Blog from Sysinternals in which he provides a solution to his Cap2Ctrl tool (which just maps the Caps Lock key to Ctrl). Similar to that I found out which keys have which codes with help of the scancode.doc doc from Microsoft for keyboard developers and wrote my own keyboard remapping code.

While the normal keys worked great and were changed in a couple of minutes all the special keys are messed up because I had different meanings for pressing shift with special keys. I found no solution to that so I updated my keyboard layout, there were some minor changes I wanted to do anyways. This is my new keyboard layout, which now works on all windows versions (finally I can use Vista too ^^). Some keys are not optimal, but to support both the german and US keyboards some '/" have to be used twice (scan code 2B) and some keys like -/_ had to be moved to worse positions (relative to my old layout, not much of a difference compared on the US layout). This can't be fixed with scancode remapping. I've used my new layout for a couple of hours now and it seems fine. The most annoying changes are <>, (), \|- and -_, everything else stays, but I guess I will manage.

This is my new Keyboard Layout:

  • AbiKeyboardLayout v10
  • To install you can use the following file: abi keyboard installer.reg
  • And uninstall it again with this file: abi keyboard uninstall.reg
  • This is the content of abi keyboard installer.reg:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
    "Scancode Map"=hex:00,00,00,00, 00,00,00,00, 19,00,00,00, 2A,00,3A,00, 2B,00,0C,00, 0C,00,0D,00, 0D,00,10,00, 19,00,12,00, 15,00,14,00, 10,00,15,00, 22,00,16,00, 20,00,17,00, 21,00,18,00, 25,00,19,00, 28,00,2B,00, 18,00,1F,00, 12,00,20,00, 16,00,21,00, 17,00,22,00, 1F,00,24,00, 14,00,25,00, 31,00,26,00, 26,00,27,00, 27,00,28,00, 0C,00,56,00, 24,00,30,00, 30,00,31,00, 00,00,00,00

    To understand the scan codes and how this binary code is formated please read this document: scancode.doc.

So far so good, I will stick with x64 and you guys know now how complicated my computer is ^^

 Tuesday, July 18, 2006
Tuesday, July 18, 2006 4:27:22 AM UTC (  |  )
I did play StarCraft Broodwar yesterday (ya ya, old game, but still the most played RTS game in the world) in a show match for the german tv station Giga II. It was just a regular BWCL clanwar (like every week in most german BW clans), but the games were quite nice. The games could be watched live on a internet stream at Giga II (2006-07-17 22:30 CET) and maybe will be available for download later.

Here are the replays in case you are interessted (I am n.SK)abi btw), more information can be found on my clan page www.nsk.de:

I'm glad I won, I was more like the underdog. My enemy Horror-ScT- is in the ger team and plays for germany BW ^^.
 Thursday, July 13, 2006
Thursday, July 13, 2006 4:51:15 AM UTC (  |  |  |  |  |  )
I got my MVP Award Package today ;-) Thats some pretty cool stuff (see on the right side). Now I can not only brag on the internet, but also when running around (crying "I'm a MVP" like a madman).
I also just checked the activity on this blog and I almost get twice as much hits than last month, wtf is going on? Ok, enough of that self-praising. Let's get to some serious stuff.

Lately I've been working a lot on databases, websites and xml data for several projects. I tried out Linq (C# 3.0), still beta last month (see this post about the Linq CTP May 2006) and still find it very useful. This post is about some of the experiences with Linq and especially DLinq, which is for accessing databases very easily. I got a lot of questions from people asking me if Linq is really that useful and instead of answering them one by one, I can now refer to this page and the links here. For this reason this post may become a "little" longer than usual ^^

Lets start with a graphic to let the C++ fanatics (and maybe some Linux freaks too) get more mad at me:
Linq is amazing



Content


Introduction to Linq

If you don't know much about Linq and its uses, check out the official LINQ Project site first.
Linq does basically just simplify queries and data access in your application. For example if you are using DLinq you will not have any new Sql features or anything, your database stays the same, but accessing the data and working with it becomes much easier. I personally do also like the fact that I don't have to write any Sql Commands anymore in C#. Sql is something for the database and using stuff like stored procedures. It was never fun to write your own wrapper everytime you have to access some database stuff. Lets see an example:

Before Linq:

Using SQL before Linq

With Linq:

Using SQL with Linq

Many more samples and examples can be found in the 101 LINQ Samples, which are still very useful.
ScottGu gave also a nice introduction about using LINQ with ASP.NET on his blog.

Also don't confuse LINQ (sometimes called C# 3.0 because it will come in Visual Studio 2007 - code name Orcas) with the Microsoft .NET Framework 3.0 (formerly known as WinFX), which consists of all the new Windows Foundatation technologies (WCF - Windows Communication Foundation (formerly Indigo), WPF - Windows Presentation Foundation (formerly Avalon), WF - Windows Workflow Foundation, Windows Cardspace (formerly InfoCard)). Ok, I admit you have every right to be confused.


Working with the new XDocument instead of XmlDocument

Ok, lets get back to Linq, we will talk about databases later. You might use some of the features in Linq in your classes, for example the new Extensibility Features, which are pretty cool to add functionality to existing classes. Other than that most of your code will stay the same, you will most likely not use queries just to render some lines on the screen.

But if you were using the XmlDocument class before, a lot of code can be changed and simplified. I had a couple of Xml helper classes, which I don't need anymore now since using the XDocument and XElement classes is much simpler than before with XmlDocument and XmlNode. Lets take a look how easy it is to compress large parts of code basically into a single line:

XmlDocument (.NET 2.0 and before):

XmlDocument before Linq

XDocument (Linq):

XDocument with Linq

Working with Xml data is also a lot easier now, check out the 101 Linq Samples to see what you can do with the new syntax in Linq. I would say code that is using Linq can get up to 2 to 3 times smaller than before if you use a lot of foreach enumerations and lists, especially in combination with xml data.


No schemas in Linq? What to do.

For some reason there is no XSchema class in Linq, but you can still use the existing XmlSchema class in the System.Xml.Schema namespace. Creating XElement nodes directly from XmlSchemas might require some new code, but it is not very hard to convert any old code. Lets take a look at a simple example.

Example Xsd Schema file (SomeSchema.xsd):

XmlSchema definition for Linq

Creating an XElement with help of a schema:

Creating an XElement with help of a schema

The helper method for filling the XElement node:

The helper method for filling the XElement node

The Linq documentation says you can also use Annotations instead of working with schemas to specify rules for your xml data, but in my case this doesn't help to create new xml data. To learn more about Annotations read the Linq documentation or listen to the Object Database Podcasts.


Using DLinq

Ok, all this Xml stuff is interessting, but most applications, especially websites store their data in databases and this is were DLinq becomes useful. DLinq was the main reason for me to even bother checking out Linq. I always hated to write SQL commands in C# (or any other language) and not be able to catch any obvious errors, which could be seen while coding if Intellisense would be available for SQL Commands. But even if all the syntax is correct, a lot of semantic errors can happen and only testing it 7 million times makes sure that it works. As seen above we can now write our own queries directly in C# with Linq, which will create some stored procedures in the background for us. These queries are only created if we write some select statement in C#, the data is not actually retrieved yet. Only if we call foreach to enumerate all users a sql command is created in the background and will be handled.
Using SQL with Linq
So what about that TestDb class, where does it come from? It is autogenerated with help of the SqlMetal command line tool in Linq. This tool will create a class for every table in your database and give you a database class (in my case TestDb) and some helper methods to access your data. Everything else can be done directly from C# code.

What about performance? Well, I'm no SQL guru and it is hard to tell if Linq performs well on big databases, but from my tests and experiences in the last weeks, there is nothing wrong with Linq. It performs quite well. I don't think it will be Linq's fault if your database access is slow. You can also write Stored Procedures (see next section) if you think you can write some better sql code and call it directly from Linq. I can tell you for sure that using Dlinq is much more enjoyable (even with the current Intellisense bugs with Linq) than writing SQL statements in C#, I hope I don't have to do that ever again.

When will Linq be available? Currently Linq is still in Beta, it will become available in the next Visual Studio Version (code-name Orcas), which will come in 2007. Until then a couple of new Beta versions might come out. Beta 2 (Linq May CTP) is pretty stable and useable, it has only a couple of issues with the Intellisense in VS.


Stored Procedures with DLinq

Maybe you have already a lot of SQL tables and some Stored Procedures around and just want them to work with DLinq. Just use the /sprocs command line switch for SqlMetal. Now a couple of helper methods will be created for you that allow you to execute these Stored Procedures directly and use the return value as you would with a query written directly in DLinq.

Sahil Malik wrote on his blog Winsmarts already a lot of info about DLinq and Stored Procedures, so I'm going to be cheap and just link to it :-)


Blinq

Thats not all. If you are usinq Linq for your website you should check out the Blinq Project, which automatically generates ASP.NET websites for all your database tables. It does not only allow you to view data, but you can also easily create new entries or change any data in the tables. If you know MyPHPAdmin from the php world, Blinq is quite similar (but not as complicated). Even if you don't really need this capabilities the generated code from Blinq can be helpful setting up your ASP.NET website because it shows how to use master pages, access your database and do all the things like getting data, adding data, updating tables, deleting rows, etc.

This is what a Blinq website looks like (ok, I've only created a very simple database):
Blinq TestTable


Linq Links


That's it for today, more this weekend, when I announce that I will play StarCraft - Broodwar on the german TV. Arg, this wasn't supposed to come out yet ... (grin)
 Wednesday, December 28, 2005
Wednesday, December 28, 2005 3:44:01 AM UTC (  |  |  |  |  |  |  )
I'm working on a little other project right now and that will take a while before I can show anything. Its about a new programming language and testing out MSIL (.NET immediate language, looks like assembler) stuff.

I wanted to make a review of this year, so instead of thinking to much about it, here it goes. I will only talk about games, books or movies I know and saw, obviously this all is just my opinion! Some entries are older than this year, but I saw, played or watched them only this year.

Btw: I wrote this whole article (which is almost 40k in html, which I always use when writing blog entries) in a couple of hours and I have to say my keyboard layout I invented last year is really kicking off. I'm writing faster than ever and stay as relaxed as if I hadn't typed much at all.

Content

Best Games

The best game for me is still StarCraft, so lets talk about games that did come out this year.

Action games and others (only the best). In just the last 3 months a really big number of shooters did came out, all of them are really good. Strategy games are handled seperately below this section.

Battle Field 2 4/5: Not much to talk about here. This will be propably game of the year if voted by online gamers. It is a good solid online game, but a bit too time consuming and too realistic for me. I'm more on the fun side when playing a shooter. The predecessor Codename: Eagle (that is before Battle Field 1, back in the year 2000) had already a lot of the game play in it and was oriented more on the fun side. I still like to play it on LANs. Battle Field 2 is also a great game for LANs, if you have enough people.

Serious Sam 2 5/5: Serious Sam is just a great fun game. I especially like it because I can play it like Quake for a couple of minutes and then return to working. There are not much games around today to do that. Also the amazing mass of levels and cool ideas in this game are just great. It is also the best coop shooter ever and part 2 is as much fun as the first Serious Sam. The only thing a bit annoying is the video skip error in coop mode and that there are no times in the games were you can relax, it is action - action - action! I already played it from start to finish twice, really good job croteam (once mostly alone and once in coop again).

Quake 4 4/5: Hey now! I'm a big fan of all Doom and Quake games, I've played them all and they invented the whole shooter world today. Doom 3 was a disappointment for many people and Quake 4 looks exactly the same. However the gameplay is really good and except the fact that the first couple of missions are way to easy IMO the game gets really good and hard in the second half. It has a decent amount of levels and is a really good singleplayer shooter overall. The multiplayer part makes like in Doom3 no sense at all, I still can't understand why so much good singleplayer games force themselfs to implement a multiplayer which just can't work with this kind of a game (same think for Fear btw). The scenes in the first half of the game get really brutal, but if you know about Doom 3, you won't get shooked by Quake 4.

Fear 3/5: This game got me really exciting and the demo was a hell of a demo, one of the best shooter demos I've ever played. The first couple of missions are still good, but then it gets boring and more boring. You have seen all the graphical effects and buh ho the girl and that old man that appear in some corner or directly in front of you don't shock you anymore. The more I played the more bored I got, I haven't finished that game yet. And that is a really bad sign because I usually play every single game I like from start to finish. It reminded me a bit of Project: Snowblind, which got boring after a while too and I never finished it. Anyway, if you get shocked or like horror or action movies this game is for you (ok, you might need a powerful and fast computer too).

Call of Duty 2 4/5: Call of Duty 1 was a big success. I liked really don't like any World-War-II games because they are almost all the same and there are way too much games with this setting. However Call of Duty was different, it was fun to play and the missions were designed really good. The only thing of part 1 which annoyed me a little was the incredible short singleplayer (4 hours and it was already over). Call of Duty 2 is very similar to the first part, but includes new settings and exciting new graphical effects. Overall the game is produced really good. I haven't completed it yet, but I plan to play it soon. People who have played it liked it a lot. There are a lot of fan sites and stuff around, but I remember some strike some time ago because the community didn't want to wait any longer for the game SDK and said they want to stop playing CoD. Dunno what happend to that.

Guild Wars 3/5: Guild Wars is a really good MMORPG (massive multiplayer online role playing game) and a lot like World of WarCraft (which is also a nominee for the best game of this year for most RPG fans), but it doesn't cost 15 bucks each month. I tried it out in may or something, but it didn't motivate me enough. I only played to level 10 or so and then stopped playing because I had other things to do. Thats the main problem with RPG games these days, they take too much time and they are just too chaotic and not shooter like enough. I like the older games like Diablo2 or Sacred (btw: the Sacred addon which came out this year was fun too) much more, which are fun to play for a while and then I can throw them away.

Strategy Games (RTS):

Act of War 3/5: At the first look this game is all about graphics and effects, the videos. Then after the second look it is even worse, there is no good unit handling possible and almost no balance at all in the game. However, it was still fun to play the singleplayer (as short as it was) and overall it was an ok game. The multiplayer is due the missing balance and the immense amounts of hitpoints each unit kills not really fun. C&C players will like this game more than StarCraft or WarCraft gamers.

Armies of Exigo 3/5: This game did come out November 2004, but I had no time to play it back then (only the demo once). Like The Lord of the Rings RTS game (see below) it is very similar to WarCraft III, but IMO Armies of Exigo is way better despite the really bad success it had (almost noone knows about this game). Armies of Exigo was planned as progamer game, has some really decent videos and nice graphics (almost as good as LotR and way better than WarCraft III). However, all community sites have closed and there is absolutely noone playing online (and not offline either ^^ the marketing sucked even worse than for Arena Wars, and this is an EA Game). Anyway, it is still one of the best RTS games I played this year.

The Lord of the Rings: The Battle for Middle-earth 2/5: Basically this game is exactly the same as Armies of Exigo except the big name and the amazing marketing and success. I personally don't like this game at all. The singleplayer is boring as hell, every mission is the same and only the first couple of missions were made interessting. The multiplayer is even worse, there is no good balance and the gameplay itself is boring as hell with all the heroes and bunkering in bases. When I compare LotR online players (e.g. in the ESL or Giga leagues) with other RTS gamers (like WarCraft III or StarCraft) it is really sick: The LotR are sitting there playing with one hand only and clicking the mouse a couple of times per minute. On the other hand WarCraft III or StarCraft players use both hands and click like 50 times per second and almost destroy their keyboards while playing (which is also more fun to watch ^^).

Earth 2160 1/5: Another game where almost every screenshot looks like it is a shooter. Last year a lot of games like that did come out, all sucked. But the bad controls or the strange screenshots are not the problem of this game. The intensions and ideas for Earth are really good and the graphics look fine too, but the game is just no fun to play. The singleplayer is just boring as hell. You get the feeling like no of the designers plays any other RTS game. It is more fun to play Warcraft I or Dune 2 (which are almost 14 years old). The multiplayer makes absolutely no sense at all, it is very hard even to log on and when you finally made it there is noone around. I played online once or twice and it is really just crazy how imbalanced this game is. PC Game magazine claim this game has a great balance and when you actually trying to play it seriously it is like running against a wall. Tip: Choose the alien race and just build few brain bugs, you can't lose a game now. Better tip: Don't play this game at all. And don't ask me why this game has so many awards it doesn't deserve.

Age of Empires III 3/5: And finally a couple of month back a new Age of Empires game came out. The graphics are really good and it is one of the first RTS games ever to make good use of shaders and normal maps. It is a solid game and especially something for fans of the Age of Empires games. The Age of Empires games did never really convince me. Maybe I just don't like the setting, Sci-Fi or the present time is much more interessting to me. Other than that I havn't played AoEIII a lot yet, I can only tell you that the heroes idea and the extras you get from your hometown are really bad ideas IMO. While I would say AoE is more of a singleplayer game than a good balanced multiplayer game, the already big online community of AoE does tell me the opposite. There are already a lot of leagues with AoE in it.

As you can see I'm not very friendly to RTS games. I rather play older games like StarCraft, WarCraft III or even C&C Generals than any of the RTS games this year (yesterday I even played WarCraft I (1994) from start to finish, cool game ^^).

I don't know of any other RTS game that did come out this year, maybe I missed one? Btw: I don't count Tactical games like Panzers into strategy games. Neither do The Sims or games like The Settlers or Civilization count on my list ;-) I'm not saying these games are bad, I just don't play them and couldn't tell you if they are bad or really bad, hehe. Also I think Civilization was the best game in its time and The Settlers 1 was really great fun, but why do I have to play the same game over and over again every year? Its just boring and the new sequel games don't add anything exciting to it. Anyways, the sell like shit and people keep producing them ...

Ok, enough overview. I played few more games this year, but most of the games I just don't like and I uninstall them after a couple of minutes playing them. Other games are only small games or shareware and they are not worth standing next to this big games ^^

So whats the best game for me this year? On the shooter department it is Serious Sam 2, which has the greatest replay value (I didn't even finish Fear and I will not play Quake 4 again for a while). For the strategy games above I would say Act of War and Armies of Exigo were the best RTS games released this year. I don't play AoEIII, but compared to Act of War or Armies of Exigo it is much better produced and has better graphics, I guess most people will vote AoEIII as the best RTS game this year. But please don't mention Earth 2160 ever again :D Lord of the Rings will stay with us for a while, no matter of what I think or how good or bad the game actually is.

So why not make StarCraft the game of the year 2005? I played it more than any other game this year :D It is amazing how much comunity sites and leagues were created this year for this 8 years old game (GosuGamers.net, PGTour, ESL-Pro Bw, GGL AmeriCup, etc.).

Some links about top games this year:
Best of E3 2005
IGN PC Best of E3 2005
Top 10 2004 (more like Top 10 of all time)

Best Movies

Well, I watch some movies from time to time too, but I can't remember them a week later ^^ For this reason this section is really short. For a great movie site and I bet they will do some 2005 review too, take a look at www.rottentomatoes.com.

  • King Kong 4/5: I just saw it a week ago, so I can still remember. It is amazing that this movie cost 207 million dollars. It is a really stupid movie and somehow I expected too much. Once you relax and just "watch" the movie (if you don't fall asleep in the first half) it is actually a good action movie. The dinosauriers were fun and King Kong running around in New York was great too. Just don't talk about making sense ^^
  • Serenity 5/5: I'm a fan of the Firefly series, so it is no wonder that I like this movie, which is based on the Firefly series, which was canceled after 1 season 2 years ago. Basically the idea was to mix the wild wild west with a sci-fi theme in space. The characters are really interessting and it is just fun to watch, they don't take themself too serious like some of the Star-Trek series. Anyway, this movie is really good, also for non-fans, it is produced ok and the storyline is interessting and exciting too.
  • Harry Potter and the whatever this year 3/5: Well, I watched the first one and then skipped the other two and suddently Harry Potter became really old and some of the scenes (like the bubble bath scene) were really inappropriate IMO. For Harry Potter fans this is a good movies, for the rest of us, it is just ok.
  • The 40 Year Old Virgin 5/5: This is a really funny movie and I liked it.
  • Mr. and Mrs. Smith 4/5: I just like Angelina Jolie, so every movie with her in it has to be good. Well, don't remind me of Tomb Raider. Anyhow, this movie is actually fun to watch and has a funny plot.
  • Madagascar 4/5: A nice family comedy (I went with my little sister), but the amount of CGI movies the last couple of years is rather sickening. But if you only watch every 10th of them, they are actually good ^^
  • War of the Worlds 4/5: A lot of people really hated this movie. I can't understand why, it was a solid sci-fi movie and I really liked the idea to tell the story from a completly other perspective (not the usually 1 man kills all boring action shit). Maybe it was Tom Cruise, who is really stupid (ever heard him talk in an interview?), but he is a hell of an actor and I still think this movie is one of the better ones from Spielberg these years.
Ok, I can't remember more movies right now, who cares anyway :D

Best Software

Well, the award goes to Visual Studio 2005, there is no competion, next section please :D

No, seriously: For programmers Visual Studio 2005 is the greatest thing happend this year. Even the beta, which I start using at the beginning of this year was very useful and made me much more productive. Ok, lets try to think of anything else:

  • TestDriven.NET: This rather simple NUnit addin for Visual Studio is a great way to use unit testing in Visual Studio, you can also use the implemented Visual Studio Test System (which is good if you plan to use Visual Studio Team System in the future), but if you just have Visual Studio Express NUnit is your only good choice. Download it from www.testdriven.net. The TestDriven.NET Version 2.0 for Visual Studio 2005 is available since last month too, good stuff.
  • CodeRush: Not really a new tool this year, but it is still updated and the most useful Visual Studio addin for me. They just made a couple of cool tutorial videos for it a couple of days back. I've also written an plugin for it: CR_Commenter.
  • FX Composer v1.8: The best shader edit tool around and NVidia still keeps updating it. Even our graphic artists use it now, after hiding the code and just showing them the buttons and scene preview, they are happy and can use it just fine to finetune shaders.
  • IronPython: IronPython is the implementation of Python in .NET and it outperforms the original script language by the factor 2 or even better. I played a little bit with it after the PDC this year and it made my think of a couple of new ideas. I'm still a fan of Lua and think it is the better and easier choice for small programs or just saving small scripts. However, the work of the IronPython guys - who work at Microsoft now - is really amazing.
Can't remember more plugins, but I'm sure I used a lot more and tryed out a lot of stuff this year. Check out this list of Ten Must-Have Tools Every Developer Should Download Now (by MSDN Magazine). I will not go into detail about other useful programs and tools like Photoshop CS2, 3DS Max 8, Miranda IM, Skype, etc. there are better sites than mine for that :D

Best Programming Books

Graphics and Shader technologies:
  • Game Programming Gems 5 5/5: Like any other Game Programming Gems Book this one is no exception, it is just great. You can read it from front to back or use it as a reference if you look for solution to common game programming problems and even programming problems in general. It covers 7 sections from general programming and mathematics over AI and physics to finally Graphics, Network and Audio. This one is the most recommended game programming book series.
  • ShaderX4 4/5: Another book series, I read the first 3 and use them as a reference whenever I look for cool shader effects. The 4th volume isn't released yet (but is comming this or next week, I preordered it a while back). I expect the content to be as good as the predecessors. Wolfgang Engel is a good editor and I heard him speaking at the Quo Vadis developer conference, he knows a lot about shaders ^^.
  • <
    GPU Gems 2 4/5: And another book series (does it ever stop?). Good stuff for NVidia developers (I like NVidia), but since most shaders work fine on ATI hardware too (except you tried to write PS3.0 when ATI still hadn't any cards for that), it is a good shader book. It covers some nice tricks and can be compared to the ShaderX books. Unlike the Game Programming Gems or the ShaderX books every page is printed in color and this makes it also a good colorful picture book where I can show effects to my artist guys, who won't even bother to look if it isn't a nice picture.