Apr 18 2013

Simple Skeleton Framework for Cocoa OSX OpenGL application

I found over the web that even official document on Apple’s Developers Network is quite rich in the aspect many people over the web ask for basic tutorial how to jump into OpenGL programming on OSX/IOS platforms.

One of the reasons I presume it’s so is because even if documentation and the library is complete in many aspects details are quite.. disconnected. For that reason I decided to show small tutorial how to start with OpenGL programming on OSX platform.

It’s not a tutorial about OpenGL itself, I assume developer knows it very well or enough to continue on it’s own, yet is not very much familiar with general development skills required to target Apple’s platform.

It was my case when after more than a decade of sticking in Microsoft’s platform I decided to learn OSX/IOS programming.
With such personal experience I crafted this text carefully looking for Microsoft’s analogies to ease the learning path for developers coming from that ecosystem.

Initial requirements:

If you’re complete newbie to Apple’s software development ecosystem please mind that to continue with this tutorial you need:
- OSX platform (one of Mac computers)

Note: I played with Hackintosh some time ago and aside of legal part of the experience when we speak about graphics programming where it simply lacks of good drivers and it’s very unstable. If you started your Mac experience from such configuration I really recommend you to buy a Mac to continue. Honestly speaking, I started with Hackintosh virtual machine in times when I worked at Microsoft. Just for curiosity to check the competitive platform without the need of buying it and without alternatives that could help me evaluate it’s value proposition. I fell in love and purchased the real hardware and for the main topic of this article as said I really recommend to you to go and buy one too.

- Xcode tools – available for download from App Store (free of charge)
- Some additional OpenGL libraries which you may like to use (like glem for example)

 Initializing OpenGL project

My approach to this tutorial is very raw, to keep it simple on those aspects that require integration with native Cocoa platform.
So our starting point is simply starting new app project, targeting OSX (Cocoa Application)

From that point you should have MainMenu.xib file which is Xml format to describe UI and it’s basic behavior. It’s quite comparable to Xaml as an idea. On the right pane’s bottom part you should have Object’s library. Select Data Views section to ease search for right view  control and find OpenGL View into the window. Change the properties to let this view cover whole the area of the window, set the window size according to your initial expectation.

Creating Custom OpenGL view

Standard view still needs some massage to fit your individual requirement. For that custom Objective C class has to be created. In my example let’s call it OGLDemoView. Its interface and implementation code looks like follow:

<HEADER>

 #import <Cocoa/Cocoa.h>
 #include "tut01_renderer.h" // I'll explain this include later, 
                             //shortly it's our pure C/C++ renderer
@interface OGLDemoView : NSOpenGLView
{
//system timer, needed to synchronize the frame rate
    NSTimer* renderTimer;
//our C++ renderer as I aim to minimize
//ObjectiveC footprint and use clean C/C++ only, if possible
    tut01_renderer renderer;
}
//it's analogical to WM_PAINT event in Windows
- (void) drawRect: (NSRect)bounds;
@end

<BODY>

 #import "OGLDemoView.h"
 @implementation OGLDemoView
- (id)initWithFrame:(NSRect)frame
{
    self = [super initWithFrame:frame];
 //below code helps optimize Open GL context
 // initialization for the best available resolution 
 // important for Retina screens for example
    if (self) {    
       [self wantsBestResolutionOpenGLSurface];
}
   return self;
}
- (void)prepareOpenGL
{
    // Synchronize buffer swaps with vertical refresh rate
    GLint swapInt = 1;
    [[self openGLContext] 
         setValues:&swapInt 
         forParameter:NSOpenGLCPSwapInterval];
    renderer.init();
}
-(void)awakeFromNib
{
//when UI is created and properly initialized,
// we set the timer to continual, real-time rendering
//a 1ms time interval
   renderTimer = [NSTimer timerWithTimeInterval:0.001  
                     target:self
                     selector:@selector(timerFired:)
                    userInfo:nil
                     repeats:YES];
   [[NSRunLoop currentRunLoop] addTimer:renderTimer
                                 forMode:NSDefaultRunLoopMode];
//Ensure timer fires during resize
    [[NSRunLoop currentRunLoop]
          addTimer:renderTimer
          forMode:NSEventTrackingRunLoopMode];
}
// Timer callback method
- (void)timerFired:(id)sender
{
// it's the update routine for our C/C++ renderer
   renderer.update();
//it sets the flag that windows has to be redrawn
   [self setNeedsDisplay:YES];
}
// Each time window has to be redrawn, this method is called
- (void)drawRect:(NSRect)bounds
{
  //below code sets the viewport of Open GL context into
  //correct size (assuming resize, fullscreen operations may trigger change)
  NSRect backingBounds = [self convertRectToBacking:[self bounds]];    
    glViewport(0,0, backingBounds.size.width, backingBounds.size.height);
 //our renderer's drawing routine
   renderer.render();
}
@end

Having above code defined correctly in the project last step we need is to assign it as the class handling OpenGL view put on our window (right pane and correct properties can assign this class to the visual object).

Toggling Fullscreen

The easiest way to toggle our OpenGL application between fullscreen and windowed modes is explained by below code, which I put into my app delegate and assigned as menu item’s action:

- (IBAction)fullscreenToggled:(id)sender {
    if (![self isFullscreen])
    {
        [self.view enterFullScreenMode:[NSScreen mainScreen]
                   withOptions: nil];
        self.isFullscreen = true;
    } else {
        [self.view exitFullScreenModeWithOptions:nil];
        self.isFullscreen = false;
    }
}

This simplified approach can be easily extended to cover all possible scenarios and with above implementation is far from complete but for certain circumstances works quite stable as base point for further investigation. One of the consequences of above implementation is the behavior when your app goes fullscreen and then will come back to windowed and you will manually resize the window. OpenGL rendering will stop working because your OpenGL context is not aware of all the circumstances for the change. I’m not covering that in this post. To keep it simple stupid you can window’s resizing by setting the same values for min/max width/heights and continue.

C/C++ renderer and coding continuation without ObjectiveC/Cocoa impact.

If your application from that point needs only to render 2d/3d images with OpenGL and that’s all you need to know from the platform perspective. Of course if you need input (keyboard/mouse) interaction and handling other events then fun continues.

If we want to continue with the rendering code from pure C/C++ perspective our next step is to build base class C++ class for our renderer:

   class base_renderer
    {
    public:
       virtual void init() = 0;
        virtual void render() = 0;
       virtual void update() = 0;
    protected:
       void clear(float r=0,
                  float g=0, 
                  float b=0,
                  float a=1,
                  bool depth=true);
        void flush();
    };

Class is abstract so the only important (and base elements) are those which clear the buffers and flush, their Open GL code are represented below:

void base_renderer::clear(float r, float g, float b,
                          float a, bool depth)
{
    glClearColor(r, g, b, a);
    if (depth)
        glClear(GL_COLOR_BUFFER_BIT);
}
void base_renderer::flush()
{
    glFlush();
}

Now let’s see our tut01_renderer example which I used in the OGLDemoView code above. It’s not sophisticated and visually compelling but show the point how to make real-time renderer in Open GL that is bound to above basic infrastructure:

<HEADER>

class tut01_renderer : base_renderer
{
public:
    virtual void init();
    virtual void update();
    virtual void render();
private:
    float shift;
    float shift_direction;
    void draw_triangles();
};

<BODY>

void tut01_renderer::init()
{
    shift_direction = 1;
   shift = 0.0f;
}
void tut01_renderer::update()
{
#define SHIFT_MOVE 0.005f
    if (shift_direction==1)
    {
        shift +=SHIFT_MOVE;
        if (shift>=1.0)
            shift_direction = 0;
    } else
    {
        shift -=SHIFT_MOVE;
        if (shift<=0.0)
            shift_direction = 1;
    }
}
void tut01_renderer::render()
{
    clear();
    draw_triangles();
    flush();
}
void tut01_renderer::draw_triangles()
{
    glColor3f(1.0f, 0.85f, 0.35f);
    glBegin(GL_TRIANGLES);
    glVertex3f( -1.0+shift,  1.0, 0.0);
    glVertex3f( -1.0, -1.0, 0.0);
    glVertex3f(  1.0, -1.0 ,0.0);
    glColor3f(1.0f, 0.0f, 0.35f);
   glVertex3f(  1.0-shift,  1.0, 0.0);
    glVertex3f( -1.0, -1.0, 0.0);
    glVertex3f(  1.0, -1.0 ,0.0);
    glEnd();
}

Summary

Above example is very simple and doesn’t cover all possible scenarios but to people who are familiar with OpenGL (or general 3d programming) and are starting with OSX development it should be enough to focus on learning Open GL and having basic skeletal framework on OSX already done.


Aug 19 2010

Pricepoint for PC Games in Poland – Starcraft 2 case

I’m absolutely confused with Startcraft 2. I was in US during launch day. I was considering purchase but then I realized that price point for 3xA titles in US are the same for PC and consoles while in Poland I’m used to see PC price close to half of console equivalent.

Then I’ve come back to country willing to buy new Blizzard’s game and I found price exactly the same as in US and equal to console conterparts in my own homeland.

I’m curious if that’s licesing cost or local distributor confused encouraging with discouraging piracy through fair offer. Especially in the country where PC gaming is still perceived a commodity with commodity level of pricing while consoles are still exclusive hot stuff “richies” usually own.

Staying on legal side of the business, I’m expecting to see used-market blossoming on this title very fast.


Aug 9 2010

Sandbox is definitely not good for every game

I started playing Red Dead Redemption. I was quite eager to test it. As for Wild West games I remember only a few good titles from my past history of gaming. Lost Dutchman’s Mines was amazing relax during Amiga times. But in fact it was an economy game with arcade behavior. Then I remember Outlaws. Genuine shooter with great story, based on Dark Forces engine, so really outdated now as for graphics and gaming experience. Then Polish Call of Juarez. Good jump back to the same look&feel but with much more modern taste.

Red Read Redemption shows totally different game. GTA sandbox approach to vast emptiness. I just started but I have a feeling that this approach might become its worst failure. I’m playing about 2-3 hours now and I perceive riding accross praire much less compelling than driving crowdy streets of Liberty City. Please tell me that there will be more action in near future outside Armadillo, what I have now is just dull.


Jun 15 2010

E3-2010 comments after Microsoft conference.

Electronic Entertainment Expo (E3) has specific place among my friends. It has huge background from the year of 2006where a bunch of people known to me started IRC channel #e3-pl (IRCNet) to comment live what was happening overseas. Many of these guys you know as current and past journalists of community blog called Polygamia.pl, which is now one of the mainstream online media about gaming culture in Poland. In 2006it was just a bunch of underground-geeks who joined forces for creative synthesis written by some on currently well known pages.

It was the year where Microsoft showed quite impressive Xbox 360 coverage and Sony embarrassed themselves with “if we don’t say that’s Next Generation, it’s not Next Gen yet”. With huge announcements and living sense of community that tradition lasts to the very day and believe me it was really interesting to sit on the channel yesterday evening and chat with the angry mob of hardcore players who complained how boring message Microsoft has brought to them.

And that’s it, my first comment, I’m surprised that many people are surprised by current course both from Microsoft and Sony.
I’m waiting for today’s conference of Japanese giant but I’m not expecting much more than crazy MOVEs with their new controller.

This year the most exciting news as for games for its core audience I’m expecting from 3rd party. This thesis I’ve been spreading around my friends for a while. Why? Well casual, social gaming is a huge slice of the cake that corporate giants want to address immediately. Biggest, current winner in most common gaming media – game console – is obviously Nintendo. So both MS and Nintendo are looking for new opportunities through own innovation but a door opened by the competition.

Hardcore gamers might be disappointed but for most of all what’s left in this actually current generation is new games crossing boundaries. As for new hardware and hardware changes it’s obvious that message is directly pointed at new customers (the Wii-type) or to extend gaming family at household to other members under the same roof.

I’m curious how it will end up after a year or two, as for Microsoft itself I see big chance for it in countries like Poland, where Nintendo has no subsidiary and there is no real distribution of Nintendo related goods. With good business plan next years can reveal Kinect as synonym of casual gaming in such countries. The trick is that not every plan is good.

I’m excited to see the near future, especially that Xbox Live has been indirectly announced to come to Poland. Probably at the end of the year. I hope that with it Xbox Live Indie Games chapter will have also become available to Polish Indie developers. We have many talented guys who will use that chance to test their skills against commercial rules.

Last but not least, Xbox 360 Slim. It looks cool but most of all it will matter only to attract new customers. I presume not so many will replace old ones beside those frustrated by the noise or crash of the system (by whatever reason).


May 10 2010

Social Games – More a challenge rather than opportunity?

Answering in a single sentence, of course, social games have certainly become still unmeasured opportunity for the industry. Numbers in various dimensions expose the obvious evidence. If you don’t believe then check Zynga’s last year revenue and active player base for games like Farmville, Mafia Wars to name a few. These examples prove that Facebook is great place to put your manageable risk for next development. Social Games have brought massive number of new gamers to the pool, if you have learned your lessons about diversity. Bar has moved in favor to our beloved and desired female audience. If you know or have will to learn how to attract them it’s just another positive argument for you to try your skills in area which is fresh new, still under dynamic development and with accountable space for growth and possible market leadership.

Big players have already realized it. EA’s purchase of PlayFish for about $300M, personally, blows my mind as for start-ups’ potential in this category. Success showing cosmic values. EA known in past to be whale swimming in slow-motion if we refer to innovation, reaction to new opportunities now plays in the first front establishing its own, rapidly growing department dedicated to social and on-line gaming.

Cake is growing and so are hungry mouths of bigger and bigger players in the industry. That’s pretty awesome to observe it, on-live, in just a couple of years. I presume it will continually surprise us in following years. Recent news around Facebook although help me realize that we might actually reach the first base now and games’ rules are changing.

In effect social gaming with much bigger budgets, big players involved and start-ups from past years becoming a multi-million ventures will probably have to review their strategy, size and risk taken for future projects.

One of the success indicators for games like Farmville was platform (FB) that has allowed to spread the word rapidly at minimal or no cost using social behaviors and in fact viral marketing. Facebook is interesting Web 2.0 entity. Scale of its own success brings him only enemies, er.. I meant followers. To maintain its position they have to change dynamically and respond with new innovations, security and privacy improvements (400+ million active users is hell-of-a-database I wish I had for Business Intelligence) and other aspects that may touch a 3rd party developer very painfully if we won’t understand them well or these changes won’t be communicated clear.

I have a perception that it’s not. Seems like in times of gigantic success we started to perceive Facebook not only as social-networking service (for end users), but also as a platform available to 3rd party developers. It’s nothing wrong with that as Facebook is great candidate to be named like that, but not to get lost on the path of building such a platform it has to have all its characteristics. One characteristic, very important in my opinion is technical and business specification not only for the current time but also for well defined future.

Predictability of what can possibly happen in next year or two may help me make my decisions and be predictable myself. Open question if that can be possible with Facebook, I don’t have clear opinion now. Seems like market does not either.

Zynga and other companies seem to believe in platform diversity. Games are hosted on Facebook, MySpace, MSN Games and by its own Dot.Com site. I personally believe that a single hub (or a few to keep things competitive) has now space to grow on all concerns Facebook has built. Sounds abstract but mainly because only Facebook has its proof point how to reach so many folks around the world and unfortunately in their story trigger pulled was not aimed at gamers first.


Apr 13 2010

Can MMO succeed on game consoles? (I mean in WoW metrics)

First let’s check some numbers. Big winner in MMO world is still, undoubtedly, World of Warcraft. Last announcement (2008) from Blizzard reveals peak number of 11.5 (yes, almost twelve) million subscribers.

World of Warcraft census currently shows about 5.6 million active players. Certainly not a peak now, but for a 5 years old game with overgrowing competition in all possible dimensions, it still impresses me. If you consider their business model and potential revenue stream, it is a lifetime worth your envy. I filtered the census’ numbers and have found that European servers have gathered about 2.5M subscribers. Quite a slice from the overall number! Correct me if I’m wrong, but I think it is close to 1/10 of all Xbox 360 consoles in the UK.

Mentioning business model I started wondering it this genre is a good pick for consoles (if developed by third party like Blizzard). If Microsoft released one or Sony released one (or lets say they already have it with Home) it should not a problem. They both have engines to run subscription model and micro payments and the rest is described at the end.

But if 3rd party did one. If Blizzard ported WoW to Xbox, I’d not be so sure MS or Sony were happy. Reason is simple. First, if you imagine massive amount of console gamers playing WoW -> other games would not be purchased and played that often. Retail revenue would have become cut on hardware vendor’s and developer’s charts.

How hardware vendor could possibly react? For example, through smart revenue sharing deal. That would have balanced hypothetical loss. If so, there is a risk for developer, deal would become unprofitable, unbalanced and unfair, good reason to back off. Having only these conditions on mind I rather doubt if we can see in any possible future a successful (in WoW metrics) MMO example on game consoles.

The only possible exception I can imagine would become 1st party development, but only if included carefully in long term strategy. As for long term strategy I rather see that both MS and Sony are focused to chase Nintendo with equally unknown Wii phenomena, and Nintendo is just happy selling massive amount of their hardware. Another reason to doubt in good MMO game on game consoles in reasonable future.


Apr 6 2010

Windows Phone Basic Architecture for Game Developers

Summarizing my MIX10 experience, main thing I was focused on is of course Windows Phone Series. This is huge thing for Microsoft, long expected inside the company to show that we haven’t overslept the deal totally. Device and OS shows some opportunity and I can’t wait to see how it will it shape and break into the market.

For developers it’s another chance to shine. As I recall, I think one of Capcom’s managers said that new platforms’s begining of the lifecycle is the best time to introduce new brands, IPs and products. Best time for Indies if we reffer it to game development. Best time to introduce new crazy apps if we say – any application is at stake. Microsoft promises to reveal some tools for apps promotion on its marketplace but let’s be honest. Looking at Xbox Live and PSN stores, looking at Apple’s Appstore, when you have countless number of applications it’s just not that easy to highlight yourself as at the beginning.

If you consider to start coding a few things may be important to you. First, hardware specification can help you estimate Windows Phone’s capacities:

  • Symmetric multi-touch of Capacitive type with at least 4 or more contact points.
  • Sensors – A GPS, Accelerometer, Compass, Light, Proximity
  • Camera with 5 megapixel or more , flash and a camera button
  • Multimedia – Codec acceleration
  • Memory – 256 MB RAM or more , 8 GB Flash or more
  • GPU – DirectX 9 acceleration
  • CPU – ARMv7 Cortex/Scorpion or better
  • Optional keyboard
  • 3 Hardware buttons – Back, Start, Search is a must and other buttons like buttons for Volume and Power.

Phone will support two native screen resolutions:

If I understood the message correctly it seems that MS and its partners prepare to launch two types of devices. Full with 480 x 800 and some mini/small (and presumably cheaper) device with 320 x 480. That still has to be confirmed.

Screen resolution is important for designers and graphicians. As you can easily measure screen proportions are not standard, that’s what you have to mind while preparing graphical content. Zune HD for example supports 240 x 320 and 272 x 480 which means 16:9 and 4:3 proportions (just like TV sets support). On Windows Phone it’s equivalently 5:3 and 3:2.

As you see keyboard is optional so definitively prepare yourself to design touch-screen supported user interface. The only buttons you will have are below three (Back, Start and Search):

Sensors have their equivalent APIs accessible from Silverlight and Xna frameworks. These two technologies are the only ones you can pick up for your development. Positioning is as follows: Xna – strong focus on gaming, SL – any other type of application. Screens and sensors can obviously be used for application control, but interesting thing is that WP7 will have speech recognition module that you can also consider in your development.  WP7 will have Push notitication service that will allow you to communicate and send messages to Phone on battery consumption efficient way. As for APIs mentioned already, Windows Phone will support Silverlight 3.0 and Xna 4.0. For gaming, if you invested your time in WritableBitmap based engine written in Silverlight and targetting Web – you can easily port it to Phone without any Xna consideration (as this feature is in SL3).

After Shawn’s lecture I found that most of buffers important in graphics (Xna) are 16bit. So we can predict how many colors will WP7 support and how big structures we can render (as for vertex/index buffers in 3d world).  It also matters for texture size so putting it all shortly how much detail we can show on the screen. Xna 4.0 on WP7 will be DX9 compatible but at initial stage and release timeframe we won’t be able to develop shaders freely in HLSL. Instead Xna exposes five customizable Effects for Shading, Environment Mapping, Alpha Testing, Multi Texturing and Skinning. It’s said that future versions of OS/Xna will presumably support HLSL but it’s not said when. Shawn has released very cool demo from his MIX10 presentation where all these effects are presented (with source code). I recommend to check it out, and generally to follow his blog, currently it’s best updated and most accurate resource on anything new in Xna 4.0


Mar 15 2010

MIX10 starts in 15 minutes. Launch your browsers!

MIX 10 starts very soon. I’m pressed to go to another room as MS employee to watch it literally just like you if you’re not here.

I recommend to launch http://live.visitmix.com/ and watch it with me. More on my Twitter and new blog posts just after the keynote.

01.MIX_JustBefore

Update: just got a message that keynote  room is open for us (MSties) too.. hehe.


Mar 4 2010

Games made in Poland – Fantastic Four (studios)

As for Game-Dev heat map I can easily find three strong regions: US (and Canada), Europe (mainly represented by UK, France, Germany and Scandinavia) and Japan. Some talented studios and people also live and work in Australia but as for number of titles and teams, it has not that impact as those three I have already mentioned.

Trend in the industry is to cut costs and many managers look for countries that are lets say more cost effective to outsource there more and more work. Common to other industries, but as well for game development we have China where I see Ubisoft like good example of huge investment. India is also worth a notice. Many local companies there offer their creative services to western studios. I also perceive my region worth some comment.

CEE which stands for  Central and Eastern Europe hides many AAA ready studios. Some countries like POLAND, Czech Republic, Hungary are now in European Union which makes us predictable and reasonable business partners that are still much better considering cost effectiveness than the core, old Union. Also countries from former Soviet Union (Ukraine and Russia) are more and more visible abroad. Just to mention title I’m expecting to play soon – Metro 2033 – is developed in Russia. Great, atmospheric first person perspective shooter called Stalker was made in Ukraine.

Summarizing game development in Russia and Ukraine I see that my eastern neighbors have found their specialty in shooters and strategy games. It’s little bit different in Poland. As for the biggest studios I wanted to highlight in this post, I see that we do of course great job in FPS space, but we also dare to challenge one of the most difficult genres – role playing games (like The Witcher and Two Worlds).

Current strength in Polish Game Development comes from PC development and current state of these studios is to break in or sustain and grow in console markets. This is fantastic achievement considering the past where I had a feeling that we all the time chase global trends being still late for at least 5 years with skill and experience. Now observing current growth I’m amazed in genre, scale, platform and project’s type diversity Polish companies address.

Warsaw, Cracow and Wroclaw are top three places to live if you consider game development career

Warsaw, Cracow and Wroclaw are top three places to live if you consider game development career

We do have great example of promoting own, new IPs (Two Worlds, Call of Juarez, Painkiller). We are good at customizing existing IPs to the gaming medium like in Witcher, which originally was a fantasy novel with a super hero story created by a local writer – Andrzej Sapkowski. We’ve got some recent experience with AAA title conversion and porting (Gears of War PC port for Epic Games). Leaders have already realized potential in on-line communities, Web 2.0 and digital distribution learning fast how to market it globally as well as locally.

New players are establishing their position on the scene but in this article I wanted, indeed, focus on fantastic four of biggest veterans in Polish Game Development that have already presented themselves as high quality developers attractive for a global player.

TECHLAND

Company started in 1991 in small Polish town. It’d started as a publisher and software localization company. At the end of 90-ties they broke into gaming industry as well as developer opening a studio in Wroclaw. Crime Cities was first title I considered worth checking at the time. It was something like Quarantine meets Fifth Element as I remember. Not a bad start. Then they made Chrome – FPS with quite a decent engine which has become a base for their further developments. Techland still refers Chrome Engine as technology used in their games.

Most important achievement in their history is named Call of Juarez. Game obviously designed to focus on American gamers. At the end of last year they have released sequel called Bonds in Blood. With this title I’m pretty sure that they received proven track in console space and growth warranty. I’m not surprised then looking at their job openings that they have Dev teams not only in Wroclaw (original location) but also in Warsaw (capitol city). Looks like they have opened a second development studio. Good Job!

Call of Juarez second installment is truly AAA game

CD PROJEKT (RED STUDIO)

CD Projekt is also a veteran in Polish publishing and distribution market. They have started in early 90-ties pioneering CD-ROM based games in the world dominated by floppy discs.  In 2002 they opened a branch office called Red Studio with one purpose – to investigate game development opportunities for the company. Brave and important investment in huge team that has learned effectively how to make complex role playing game based on IP that is very well known in Poland – The Witcher. Because of novels’ popularity, expectations in Poland were very high. CD Projekt’s aspiration, though, were even higher. They licensed Bioware’s engine – Aurora – used in Neverwinter Nights and planned to sell that popular Polish IP to the world.

Development was long and many started disbelieving in CD Projekt’s skill to produce complete product. Finally two years ago Witcher hit the stores and got critical acclaim in Poland and worldwide. At the end, Team proved that they were worth consumers’ trust and waiting.

Witcher - Major landmark in Polish Role-Playing

Witcher - Major landmark in Polish Role-Playing

Unfortunately, then some troubles started. Company outsourced console port of the original Witcher focusing its core forces on new initiatives. It failed big time in this effort (porting), I presume from lack of experience in such a process. This is a part of bigger issue which I’ve noticed. CD Projekt looks like they’ve overestimated its new investment capacities (my subjective opinion, I hope to be wrong).

They first presented themselves as big investor and gaming innovator. They acquired another old game development studio – Metropolis, they started on-line store (gram.pl) and digital distribution service (Good Old Games). On Xbox360 launch they started distributing Xbox games (deal with MS), and many more. Then they started closing some of its businesses. They shut Metropolis, stopped Witcher’s Xbox 360 development with French developer (as I already mentioned). Finally they have merged with former Polish stock market giant – company named Optimus, on unclear conditions looking for new funds, I presume.

Regardless of these issues (mainly generated by some troubled time we used to call the crisis) this company has great potential and foresight ability. They quite recently announced that they work on The Witcher second installment, no details up to date on platform and game-play specifics.

REALITY PUMP

With this studio I have personal memories. Somewhere between 1999 and 2001 I wanted to join their ranks. At that time I lacked experience they wanted, but the conversation was very interesting and I still recall it with big grin smile on my face. On their pages you can find that they started operations in 2001. Might be true, but the team existed even before and was known in Poland from strategy games like Polanie and Earth ****. These RTS games have continuations already branded by Reality Pump.

Two Worlds

Two Worlds - Oblivion's little sister

These games were offered worldwide but I’m not sure if they (and how) were recognized. For me, first title they have made and that should have not been ignored is role-playing game Two Worlds.  Reality Pump took different approach than CDP-Red in their RPG efforts. They have created their own IP with open world trying to compete with such RPG giants like Elder Scrolls or Gothic series. They released the game on PC as well as on Xbox 360 which makes them another studio where developers can learn how to make games for current generation video games consoles. Now they also work on a sequel.

PEOPLE CAN FLY

Last but not least – People Can Fly. Behind this company’s scenes you can easily reveal true Polish game-dev legend – Adrian Chmielarz. This guy has very much a similar story to say as Peter Molyneux. he’s just not used to be the same charismatic in old English way as Peter has during his speeches. Adrian started developing games as programmer and was pioneering high quality games development from the very beginning. At the beginning of 90-ties where Amiga, PC established their position as home computers and Nintendo fought its eternal war with Sega in consoles space, first Polish game dev companies were discovering true masterpiece ideas but for 8bit Atari and Commodore and starting to make some old-looking and rubbish titles for PC and Amiga. We were definitely behind the time (thanks to the bloody communism) but not Adrian Chmielarz himself.

With his first company Metropolis Software House (mentioned earlier in CD Projekt’s story) in 1992/1993 he developed adventure game – “Secret of the Statue” – that was not worse than so called “Western” counter-parts. Adrian was experimenting with many genres and sub-genres. Secret of the Status was a first person perspective adventure game with digitized pictures (like Myth).  His further adventure game, Prince and Coward, had traditional point and click interface.

In late 90-ties he started moving toward shooters. First was Catharsis, a scroller shooter with 3d pre-rendered environment (below movie):

Then he resigned from Metropolis and in 2002 started new company, People Can Fly. This company quickly marked its existence in the gaming world with Painkiller, true masterpiece horror-like FPS for PC and first Xbox.

With such a proven track People Can Fly was later acquired by Epic Games as its internal development studio. Their first project under Epic’s patronage was to port Gears of War to PC. They succeeded and now they work on new yet to be announced big title. Can’t wait for news!

SUMMARY

Polish game development studios as I already wrote have diverse experience and interests. These companies are leaders in my subjective opinion but not the ony ones in the country. New and not so new companies climb the ladder. Some other examples worth mentioning: company called Farm51 and their game – Necrovision. Tate -  scene’s long-timer and I think first Polish company that broke into console development with Kao the Kangaroo, ages ago. Another long-time runner is company named City-Interactive. This studio for long was focused on smaller titles for PC and handheld now according to their strategic shift want to make less titles but with higher budget. I’ve got some pictures from their first Xbox 360 production they’re developing

sniperworkinprogress09

Yet to be announced City Interactive X360 development. Looking good aye? You can find more pictures.

Poland is definitively growing in game development space and it is more visible worldwide. Being born here I’m personally proud of that.


Mar 1 2010

Heavy Rain is beyond my definition of a game

Latest creation from Quantic Dreams cannot be ignored. David Cage presented himself as great storyteller in his previous game – Project Indigo (Fahrenheit outside US). While playing Heavy Rain, I could hardly avoid comparisons to that previous title. These two games come along with Cage’s redefinition of adventure game with cinematic glamour. Cinematic experience in Heavy Rain popped up another question I asked myself: is still Heavy Rain a game?

In Fahrenheit we had several characters to play with through the story. All of them had some purpose to the main plot and it’s similar in Heavy Rain. Major difference in game play I found, is that in snowy precursor game mechanics were bound to traditional action adventure controls. Balance was only pushed little bit more toward adventure rather action. Action in Fahrenheit was strictly related to some arcade elements blended in and between puzzles and dialogue. Still I had a feeling that I was free to do whatever I wanted at limited stage of scene. In Heavy Rain I have a feeling, that it’s mostly all about the story. I’m not even surprised to see YouTube version of the game. That’s good example of how limited game playability is. My reflection from playing: controls over characters were only a necessary waste of time to trigger new dialogue and choice of action which I rather watched than played.  After a while I found no sense to walk around, lurk for some hidden spots.. somewhere. The only exception is one character who makes real investigation with tools that even CSI folks should be envy at.

Arcade elements in Heavy Rain are close to beat-em up mechanics, which is really tough. There is no time to learn these “combos” as next button to press shows up on the screen and you have like a second to push the right one. Honestly, it was really frustrating. This game is about a story. Limited freedom of game-play replaced with really tough control in some “magic” moments is first serious risk I perceive David Cage has taken. People who are not accustomed to gaming but who will like to test current stage of interactive storytelling & drama may fail to finish it because of difficulty. People who seek a game with rich story may actually not find a game in Heavy Rain. Not by their (and my definition). I don’t mind, but I believe many will do. I really appreciate the story. In my humble opinion it is so strong that I dare to compare it to David Fincher’s “Seven” movie.

In one of my previous articles, I described story structure based on a single, main character development from mundane folk to a hero. It’s barely the way David Cage chose for its games, and it’s really fantastic. I have no other examples in gaming, but Fahrenheit and Heavy Rain where you are put in some moment of time, dense with dramatic events and many characters who are involved and engaged almost simultaneously to that plot. In both games terrible crime is chosen to bind characters to the story. Major difference between these games, is that in Fahrenheit player-character roles were competitive to each other. Playing cops and a murderer was a real challenge because they had quite opposite goals. Culmination point was when these goals had blended to a common one. In Heavy Rain, from the beginning, all characters we play have the same goal: solve the riddle and find the bad guy. Shock and culmination point is at the very end when the truth is revealed.

Maturity is another aspect that differs David Cage’s games. In Fahrenheit beginning was really dramatic. Nothing that could not happen in our world was described there. I could easily explain all unreal situations by drugs or psychology, If I only wanted. I didn’t. It was fun to see all those strange moments inspired something where Matrix meets strange cult conjured by Multi-Personal Disorder known very well from dozen of famous movies (like Lost Highway or Fight Club) taken as an inspiration. Dense atmosphere ended fast when I got some jumbo-mambo sci-fi for which even Matrix looks authentic. It’d built a distance to the thriller side of that story and then I started enjoying it as an action game (fight on the roof, what a pace!). Heavy Rain is mature and for adults only story about grim world where terrible crime simply happens. There is no magic, aliens and other stuff that kills the atmosphere of Gotham City’s social failure, but in rainy not dark metaphor. Rain brings sadness not fear, and it’s a feeling that you can’t stop thinking about during the game. As a victim of a serial killer you have occasion to feel how it’d like to get through whole that psychological trauma, you start believing how it could be. Psychological impact on what’s happening on the screen is indeed comparable with “Seven”. It’s first game where I didn’t want to do something which game was expecting me to do to go forward. It was that terrible like in those movies where you moved your head away because you didn’t want to watch something drastic. Power of this story is there just because Cage does not escape from such situations. They make Heavy Rain even more authentic. It’s interesting to experience it, as it’s totally different from all controversial aspects in games we’ve already had. Having sex in Mass Effect or playing a terrorist in Modern Warfare 2 is like eating peanuts comparing to that one scene in Heavy Rain, I don’t want to spoil.

As for hard decisions in game, I found two situations where I wanted to have more time to think of. While playing I killed twice. In both scenes it was so fast that I had no time to reconsider my decisions. In both situation it was not like “kill or be killed” 1sec moment. Game mechanics helped little bit where you have options to push some button and you don’t exactly know what can happen. In both situations I was shocked how fast pressing the trigger was. Then, when it was done and dead body laid on the floor, my first thought was that I didn’t want to do it.

It’s very interesting from social perspective. I strongly believe no-one playing that game is a killer and then you’re put in a situation so strong and serious from story perspective to do so, with exact feeling. I’d not be surprised the find moral questions like what should and what should not be put in games coming from the Press once again. Media like challenges like this and put gaming controversy on the front page. Usually they fail to bring correct message. I presume Heavy Rain is so hard to comprehend, that it will never be covered. If killing in games is a problem considering silly shooters and other games that ignore almost all real aspects of what real death is, then Heavy Rain shows all possible physical, ethical and moral aspects of such. Hard decisions in Heavy Rain bring questions like this often. Playing it and replaying I had one on mind pretty often: “is this really necessary?”. In many cases, for the story, it was.

David Cage has invented very powerful tool to present dramatic and even traumatic stories. For me, Fahrenheit has built very high expectations for the next game from Quantic Dreams. Heavy Rain is even more interactive movie than a game. At the beginning failed to meet expectations built in my mind, I expected game. I changed my opinion and I exactly know why. Maturity and power of the story presented in that game is so tremendous, that with my own high expectations to the game based on Fahrenheit nostalgia, I for sure didn’t expect to see something like this. It’s simply a different thing. Expecting that Heavy Rain will be Fahrenheit 2, new sequel but better was wrong and misleading.