The Escapist recently reported on the Torrent Freak’s latest numbers on piracy. I hate when things get reported in this form. They are not wrong, but things like that are taken with a very strong bias.
I will just take the PC number stated in the report, since they are by far the biggest:
Game
Downloads
Release
Crysis 2
3,920,000
Mar. 2011
Call of Duty: Modern Warfare 3
3,650,000
Nov. 2011
Battlefield 3
3,510,000
Oct. 2011
FIFA 12
3,390,000
Sept. 2011
Portal 2
3,240,000
Apr. 2011
For starters I doubt on the correctness of the numbers. How did they collect the data? I will assume they mean downloads via torrent, the numbers come from Torrent Freak anyway. To get accurate data they need to track the users of all torrent trackers, that is including all private trackers. It is impossible that they have access to every private tracker, especially since many are invite only. Also many users follow multiple trackers, so there is a source of duplicate entries. Finally some versions are incomplete, broken or malware infected, so people tend to download multiple versions of one game to get a running install. At very best they give a roughs estimate of actual pirated copies.
This website is generated with jekyll and hosted on Amazon S3 but how does this all work together?
First off there is jekyll, a blog aware static site generator. What jekyll does is it takes input files written in HTML, Markdown or Textile and applies a HTML template with liquid. The result of this is a fully static website.
Since the input to jekyll is mostly text files, it applies itself to put the files into source control. In my case I used git. As backup and for posterity I push the changes to a public repository hosted by github. If a team would maintain the website, this would be the main means how changes to the website are shared.
I recently looked into Ruby on Rails to see what the hype is or rather was about. I even found a niffty introduction to the subject and found along the way the nifty little language ruby. I probably will not use it for any serious projects, but it is nice to know I have a new tool in my tool belt.
I wanted to show a coworker my new found knowlage about this niffty language, but when trying to use gem I was locked out. I was quite aquinted with installing gems directly by downloading them and invoking gem locally, because of my previous jekyll experiance, but there should be a better way.
Having compleated some significant work, I treated myself to a game that I wanted to try out for a long time, From Dust. It basically all sttlarted with the first “Dev Diary” video. A beautyfull landscape molded in real time with reatime simulation of water, fire and vegetation. A real technology gem.
Maybe, just maybe it has to do smething with the fact that the Windows Vista and Windows 7 start menus are a convoluted mess? Maybe, just maybe, it has to do some thing with the standard way for applications to add links to the start menu? Let’s look into the subject a bit deeper…
I bought the humble frozen synapse bundle. The main reason I bought it was for Frozen Synapse. I had heard allot about that game and what can you do wrong with pay what you want? But what I think of Frozen Synapse is a different story; what really surprised me was Trauma.
Trauma is an award winning game and really merits these awards. (In contrast to blueberry garden.) Normally I do not give much for awards in general and the game completely passed me by and is a real gem.
Dead Island had allot going for it. The cinematic announce trailer is one of the best trailers for a video games ever. It is brilliant because it tells a very personal story, the tragic events that befall a young family at the brink of a zombie virus outbreak.
Many trailers for games are violent, but most are meaningless. But in the Dead Island trailer it has sense; a father frees his daughter from zombies. Tragically, the rescue was futile since the daughter turned zombie attacks her own father ending in all terribly dying. This trailer has the quality of a classic Greek tragedy.
I have tried noumerous hosting solutions over the years. Up until recently, when I switched to jekyll, my requirement was a LAMP stack. I ran a number of CMS software, such as Mambo (now Joomla), Typo3, Dokuwiki or Drupal. I tried different solutions, form dedicated hosting over root servers to virtual private servers. Each solution depended on my needs, at some point I ran 5 website and a dedicated mail service. But my needs have shrunk, espceially since I dicovered jekyll.
Currently I have one website (this one) and it is fully static. This requirement especially does not warant a fully fledged VPS. For some time I ran my site off github pages. But since github does not allow jekyll plugins, the entiere thing was a big hack. So I looked for static hosting solutions. I looked into a number of ”cloud storage” solutions, but none really worked for websites, save Amazon S3. So now rioki.org runs off Amazon S3; and it is blazing fast!
Dead Island was one of the games that I really was looking up to. It all started with the cinematic trailer. It gave the zombie apocalypse a human touch; these are real families that are torn apart. It was a hart shattering experience, that made you mad at those zombies!
As Yahtzee very nicely pointed out, there is actually no use in getting hyped up in a game. So I laid back and waited, without much aspirations and now the game is out. I am not fully through the game, but here is what I think about it.
What is a good password? We all know the answer to this question. A good and thus safe password is long, has mixed case characters, number, special characters and is not a word in any language. On first glance this seems always like a password that is hard to remember. If you want to check how good your password is, there is a nifty website for this.
If you follow these guidelines “dKmeoD2!kkdpoqaEs5” sounds like a good password, but can you remember it? These “safe” passwords are really hard to remember. But there are long passwords or rather passphrases that are easy to remember, such as “Oh no! 2 nuns on the mountain.”. Yes, this is a real sentence. But it fulfills all the requirements, mixed case, numbers, special characters and is not a word.
libxmlmm is an effort by me to maintain a C++ wrapper for libxml2 that only depends on libxml2 and standard C++. It features a full XML DOM with XPath queries and the whole shebang offered by libxml2 (validation, DTD, etc.)
I am proud to anounce the release of version 0.5 of libxmlmm. Only minor fixes where applied to the code and so marks the heigh stability of the code. Check out the version 0.5 of libxmlmm.
github has this nifty service github pages and under the hood they use jekyll. The concept is quite simple, you maintain a jekyll site lives in a special reopsitory and they transform it to plain HTML using jekyll.
The biggest problem I have with jekyll is that it is quite limited. To combat this jekyll has a plugin system, where you add extensions and modifications under the _plugin folder in your jekyll site. A feature that I kind of “need” to operatre this site.
The problem with github pages is that they operate jekyll with the “safe mode”. This disables the plugin feature and renders github pages unsuable for me.
Since I am a cheap sod, I still want to use the service. The trick is that you don’t need to have a jekyll site and can just put plain HTML pages in the service. The simple solution, tha master branch only contains the processed HTML files and the actual jekyll site is stored under the branch raw. You can see my current stup.
It totally passes by me that Microsoft had developed a new Age of Empires title, but a colleague of mine told me. I kind of though that the Age of Empires franchise kind of died with Ensemble Studios closing doors. Being an avid Age of Empires fan, I decided to give the free to play variation a spin. Yesterday the game went public and I quickly installed to game.
The installation procedure was kind of awkward, since you only install the launcher and any missing frameworks. The actual game is downloaded and installed though the launcher, so it lets you wait a good while. The full installation procedure took around half an hour, though it might be that lots of people downloaded the game at the same time.
The first impression I got from the trailer and art was that the art direction of the game wanted to make the entire thing more friendly. Although quite funny, the trailer has difficulty of selling the game to me. But you should not judge the game by its first impression; I liked and played lots of Plant vs Zombies and that is cartoony and cute.
Cloud computing is now becoming mainstream. But what is cloud computing? Actually it is noting, it’s just a buzzword that is used for different concepts.
I will take a bold stance, experienced and dedicated programmers do not need code reviews. The reason is simple, they produce the cleanest and safest code you can imagine by pure virtue of caring for their craft and taking pride in their work.
I recently read a not so good opinion on the subject. The line that most struck me was when it mockingly states that the original Unix developers did not do code reviews. But to me, the bold statement “We were all pretty good coders.” rings so true. I have seen great developers produce great code that no amount of code review could make better. But there must be some truth to all those quality improving precipices handed to us over the decades?
Section 8: Prejudice is a real breath of fresh air in the shooter scene. The game is a SciFi shooter where you are playing as a space marine in the distant future. The game is intended as a multiplayer game but has a 6 hour “tutorial” campaign. The campaign is fun an the narrative makes sense but still keeps to the core of the multiplayer gameplay.
Everybody agrees, Duke Nukem Forever got really bad reviews. You can basically put the reviews into two categories, those that complained that Duke Nukem Forever was not enough like Call of Duty and those that complained that Duke Nukem Forever was not enough like the original Duke Nukem 3D. But I tend to disagree and I think they kind of miss the point. Sure the game is not perfect, but the game was fun!
Over the years I have keep a set of functions that moved from one project to the next. These where small functions that served the sole process of retaining my own sanity. After feeling the need to use these functions in two of my free software projects, I decided to encapsulate them in a small library called sanity.
Minecraft sux! Ok, actually the game rocks, the problem is the software. I mean it crashes regularly often and is darn slow. Look at it, there are max a couple of hundred polygons on screen and my atom + ion platform can’t play it. As comparison, that platform scored an average frame rate of 50 on the Half-Life 2: The Last Cost benchmark. It definitely does not help that it is written in java…
While researching different solutions for networking games, I stumbled over Gaffer on Games’s UDP networking tutorial. Amongst other, it describes a really simple approach to connection handling and reliability. The basic idea of connection handling is that a connection is established as long as packets flow. This is a refreshing simple idea, when comparing to your standard three way handshake. He simplifies reliability by acknowledging every packet with a special field on the packets returning and let’s the application decide what to do. The appeal in this solution is the simplicity. But he fails to address some core issues that I want my networking system spdr to solve for me.
I was sitting in the train this morning and did not know what to do. I started to type random ideas into the text buffer and suddenly I had quite some interesting results. So I thought I just might share them.
Hmm… What shall I write about?
Lately I have so little motivation when I am home. Even though I come up with ideas at work, I am almost incompetent to implement them back home. As a result sdpr has not changed since the week end.
I have been looking for a suitable project management software for my hobby projects about as long as I have hobby projects. I have tried out allot of different solutions and none really gelled, until now.
It seems that my needs have a certain disconnect from most software. The reason being that most project management software focuses on planing and work completion tracking. I tried software that addressed different methodologies. Notable ones are dotProject, that adheres to the classical project management approach, to AgileTrack, that tries to bring tooling to XP or Scrum projects.
This site recently took a new turn technologically wise. I migrated it to Jekyll for my CMS and this is the epic tale of how this came to be.
A long long time ago in on a website far far away I read the post Google App Engine for indie developers on the Wolfire blog. This post made me start to think about cloud based hosting for my website; especially since I am hopping that my hobby work on games will start to turn around.
Now let’s pretend you have a class called Screen and a few classes that are derived from a class called Widget. Each have a method called draw that takes a class Canvas as reference. It is the task to draw the screen and each widget onto the canvas. The basic algorithm is stupidly simple, do some setup for the screen and call draw with the canvas for each widget.
I had a discussion with a friend of mine that came from a, what I would call, Microsoft indoctrination camp. He tried to persuade me of the benefits of .Net. As a matter of fact, I am programming C# for a living since a good while, but I just can’t see the advantage. The conversation was unfortunately cut short and I was unable to really bring my points across. So I decided to take the time and write them down in as much detail as possible.
pkg-config is a really neat tool that makes life so easy on GNU/Linux systems. If you ever needed to write a configure script, now there is a (almost standard) way to check for dependencies. Oh the joy! Until you move to MinGW and MSys on Windows. You will find out that there is no binary from the guys at MinGW. You will also find out that to build pkg-config, you need glib, which needs pkg-config to configure some dependencies. There are mailing lists full of epic tales of people trying to build pkg-config from source. You just want to use pkg-config. It is bad enough that you need to build you software, you should not need to build other peoples software! The good news, getting pkg-config with minimal fuss is possible. Let me show you how.
What is really nice, the people at Gtk+ have all the libraries precompiled in seperate zip archives. Head over to http://www.gtk.org/download-windows.html. You will need the glib run-time, the gettext-runtime run-time and obviously pkg-config tool and dev. No less no more. Unzip each folder to your root of your MSys installation.
Ever used Gimp or any other tool that uses gettext for localization on Windows and the language does not turn out as it should?
I have that quite often. The thing is that my main system (Window 7 ) has the locale setting to German, since I have many contact points that need to conform to that, especially the default currency being Euros. Nevertheless my interface language is English.
If you work with Windows API or MFC you probably know TCHAR. TCHAR is a macro that evaluates either to char or wchar_t, depending if you compile your project as Unicode or not. To make life easy MFC’s CString follows TCHAR, which is nice and fluffy if you use MFC.
If you happen to be like me and think that MFC is evil when used in core (non UI) libraries and rather use standard containers, you have come to the problem of how to handle TCHAR with std::string. The simple think some people do is assume that TCHAR is always wchar_t and simply always use std::wstring. Too bad, when someone wants to build a non Unicode version of the library.
During these past two weeks, I was taxed to much by my day job. We went into fully fledged crunch and you can imagine how much effort you can bring up when working 9.5 h…
This is a very interesting article, even though it is stating the obvious. The basic idea in the article is that you need 3 “keys” that are often overlooked by independent game designers.
These keys are:
Set Clear Goals for Your Game
Map Out What You Know and Don't Know
Make a Simple Schedule
Now let’s take some time and look at my so far failed game projects. So far I have had the ideas and started development on (at least designing) the games of Lunar Exodus (RTS), Captain Pink Beard (Point and Click Adventure), Glow Cubes (Puzzle “Shooter”) and My Little Garden (Casual Simulation).
Ever wanted to process many files but your program is single threaded and your have multiple cores? Well I wanted just that, process 1500 files and I have a 8 core machine. The problem with bash scripts is that loops are executed in sequential order. You can process commands in parallel by appending & at the end of the script. The problem launching 1500 processes is a sure thing to kill your machine.
I copied the script into my MSys installation. Guess what, it did not work. The problem is that it checks for /proc/$PID. Too bad that MSys does not have a /proc file system.
So I changed the code to use ps and grep. Its probably not as effective, but it works on msys…
I planed to build a game called GlowCubes about a year ago. It basically spun of while reading this article about Image Space Lighting (deferred shading). The idea is to solve physics based puzzles in a psychedelic environment build from a bunch of glowing shapes.
I basically gave up on most of my projects as I wrote the Hobby or Pro journal entry. It was a big mess (in a very elegant way), since I tried to develop the Quick Game Library at the same time and build in on top of that. I went though different complete redesigns, since the requirements seemed to change and the scope changed.
Over the last 3 years I tried to develop a number of game projects with the aim to sell them. Each project ran out of steam, mostly because of scale and lack of time. Each project was smaller in scale then the previous and still failed. Every time I said oh it is just a hobby, but a certain disappointment still remains.
One of the biggest problems I have is the fact that I have not found one game engine that was worthwhile. As a result a large amount of effort was invested into developing technology. Now I have partially finished technology, but still no games.
I have never seriously considered to work professionally in game development. For the first fact, my current job just pays to darn well and is extremely safe. Being a father and husband, this is the sensible thing to do. If I develop games, then with that safety net in place.
What drives me is the fun of developing and figuring out new things. I need to acknowledge this fact and that until I do have a publishing contract or you can download my game from steam, it remains a hobby. Maybe I can live better with this mindset and stop trying to force me to create a feasible game idea and design. I just do it because it’s fun.
It is a rundown of how to develop IP based on common trends. Basically the article describes how publishers of media create more of the mediocre stuff to service to a fad. From a business standpoint this make sense, but artistically it is nonsense. It will not create a new trend or rich media.
The author seems to take himself a bit ironically: Inside the Sausage Factory. Sausages are yummy, but not the height of culinary delight.
I just read a great blog post on why innovation is hard and error prone. Not the newest subject but a well written condensed piece: New Ideas and the Hinterland Of Fail
After some downtime the site is back online, but content is still missing in many places.
My “old” server decided to go AWOL last Wednesday. The server did not come back up after some planed maintenance on the buildings power system. Since the server ran flawless for about five years and a 99% uptime guarantee, they still have 18.25 days to fix the problem. Although they promised to fix the problem as fast as possible, it seems other people have similar issues.
The site is back up on a different server. This is because I was planing on moving the site to a cheaper (and newer) virtual server. The new server was ready on Tuesday and I was planing to move all my sites next week or so. Well now I booted by schedule up a bit.
Since I wanted to make changes on Rioki’s Corner and merge some almost obsolete sites into mine. The roll out of Rioki’s Corner took a bit longer than expected.