Skip to main content

Gamerz... ARG!

Wow, i'm embarrassed for calling myself a gamer since the whole shitshow around "No Mans Sky". 

Crying on internet boards for weeks about how a product is not what it was advertised as, that at least sorta sounds to me like "not having all too much of a life". I'm pretty sure at the time he said those things he thought he could make them work. In that regard you can call it a "broken promise". And yes, if you're butthurt enough, you might equate a "broken promise" with a "lie"... It's still a rather petty way to distract from the fact you paid for a product without knowing anything about it. But yea, call the people that like it "apologists", way to go doublestandard there. This shitcampaign is so out of proportion by now, it's beyond ridiculous. The "He just wanted to make a quick buck"-argument is just pure and utter evil. I work in the gambling industry and i know what "making a quick buck with idiots" really looks like. Konami took a dump on gamers and is big in gambling now. Does any gamer care? No. A guy tried to make a game that was far beyond the scope of an 8-person-team and failed, yes, that's the target for all your hate.

Just sad.

MEL is crap. Maya Python is crap. And even PyMEL is crap!

Yes, PyMel is crap. It's the best crap you get in Maya, but it's still crap. Take a look:

pm.autoKeyframe(state=True)

This SETS a value. And this

pm.autoKeyframe(query=True,state=True)

RETURNS a value. Finally this

pm.autoKeyframe.state()

delivers an ERROR. This is not how you're supposed to use Python ffs!!!

Also the "sets"-command is an abomination in Maya python. Actually, it's already in MEL, but at least it sorta follows the idiotic MEL-logic. In python it just batshit crazy. To remove an object from a set, you do this:

cmds.sets( myObject, remove=mySet )

Yes. You tell the "sets"-command to remove the mySet from myObject to actually remove myObject from mySet... head explodes... Oh yea, in pyMel it seems to not accept it's own objects anymore... I give up.

Photoshop 8-bit dither workflow

I recently watched the GDC presentation from the great Mark Ferrari. That guy does amazing things with 8-bit palettes. But a little thing struck me. When talking about his dithering techniques he stated that he hasn't found a better way to dither than either paint single pixels or use pre-defined dither masks with the "hue/satuaration"-adjustment. Very tedious! So i went out to find a better way and i might have found one.

The dithering technique i'm showing here is far from perfect and will need some handwork, but it's a great point to start from. Also it's non-destructive, dynamic and highly configureable. As such i think it's a great tool to have in any game artists toolbox.

To understand how it works you should have a good understanding of adjustment layers, precisely "posterize", "gradient map" and "pattern". And here we go:

Create dither pattern

Start with an empty image, white background. We only need a 4x4 pixel pattern with the colors black, white, 66% gray (#a8a8a8) and 33% gray (#545454) setup in this layout:

pattern

Select it, define a new pattern (Edit => Define Pattern) and call it "Dither" or something similar. This will define the dither style.

Create some black/white image to dither

We will change the colors later on, so the source image is best set to grayscale. I'm using just a demo image here, but you can use whatever you want: Shapes, paintings, etc.

img

Dither Setup

Now the magic starts. First add a pattern layer with our dither pattern right above the image and set it to something around 18% opacity.

img

Then add a posterize layer above that:

img

That already creates a nice black and white dither effect:

img

Finally we need to set a color, which can be easily done with a gradient map layer:

img

By defining a gradient, we're now able to create all kinds of dithered color variants.

img

img

img

img

This technique is pretty versatile, as all the layers react dynamically to whatever they are superimposed on.

img

img

img

Also, by changing the opacity of the dither pattern layer, the amount of dithering can be manipulated:

img

img

img

And by setting the levels of the posterize layer, it's possible to add more or less color levels:

img

img

It might also be interesting to experiment with other dithering patterns:

img

All in all this is a great technique to get a quick dithering idea. To finish up you'll still have to go in and pixel a little, but i'm positive this will spare you a lot of time. Thanks for reading and have fun creating art!

Elite Dangerous

Yesterday i wanted  to try the "mining"-feature in "Elite Dangerous". I bought the "my first mining kit" and flew into an asteroid belt around some insignificant planet in an insignificant solar system. This is actually an activity in the game which highly profits from the Oculus Rift DK2, as you have to fly dangerously close to asteroids to shoot them with mining lasers and scoop up the fragments. As such any improved depth perception and environment awareness is highly appreciated!

Having played "Eve Online" and bored myself mining there, i can say: This time it's actually fun! Flying like a little bumblebee from asteroid to asteroid to find lucrative ones has a sorta gold digger vibe to it! With my base equipment it's hardly lucrative yet, but i can actually see myself doing that once i have the money to go pro and the standard contracts cease to be profitable. So far i only have one very basic refinery on my Cobra Mark III, as every further refinery kicks out another cargo extension. But it also means i have to manually dispose any leftover minerals that don't add the the refineries current processed mineral. It's annoying and time consuming, so mining at that stage is hardly more than a hobby.

But well, the game wasn't done suprising me at that point. As i was minding my business mining happily away, time flew. The asteroid belt continued to orbit. All at once the section i was mining in rotated itself into the shadow of the planet and this was truly terrifying! Suddenly i found myself surrounded by black fuzzy shadows that once were clearly visible asteroids. The only way to actually see them were the stars that marked the free space between them, which ruined the DK2 depth awareness thouroughly i got so used to. It made me cringingly aware how well the Rift's amoled-screen is able to reproduce this terrifying blackness of space.

Alas, i aimed for the biggest spot of stars and got the hell out of this uncomfortable place. Trully an amazing experience!

Offener Brief zum Weltjournal vom 5. Dez. 2012.

Offener Brief zum Weltjournal vom 5. Dez. 2012.

Liebe Redaktion, lieber Herr Freund

Ich arbeite seit über 10 Jahren professionell in der Videospiel-Industrie und habe das letzte Weltjournal mit Aufmerksamkeit verfolgt. Zu meinem Entsetzen musste ich feststellen, dass Sie mit diesem Bericht ein frustrierend einseitiges Bild der Situation zeichnen.

Vorweg: Ich werde immer wieder von Freunden, Bekannten und Verwandten behandelt, als wäre ich Casino-Betreiber, Ausbilder zum Mörder, Sexist oder sonst etwas, was Medien wie Ihres über meine Branche verbreiten. Und damit beginnen immer wieder komplexe Diskussionen, in denen ich mich für meine Arbeit rechtfertigen muss. Mussten Sie sich schon mal für ihren Beruf rechtfertigen...? Soweit mir bekannt ist Journalist ein recht anerkannter Beruf hier in Österreich. Auf jeden Fall stinkt es mir. Und dass gerade der ORF hier tatkräftig mithilft, stinkt mir enorm. Ich respektiere Sie, Herr Freund, für ihre Berichterstattung von den Schauplätzen der Welt. Aber dieser sehr einseitige Bericht gibt mir das starke Gefühl, ich hätte mich sehr in Ihrer Seriosität geirrt.

Es beginnt schon nach fünf Minuten. Als sinnbildlich für die Beziehung zwischen den Generationen wird natürlich ein Szene ausgewählt, in der ein 16-jähriger Sohn seine Mutter anstänkert und die Methodik der Szene impliziert, dass da wohl eine Verbindung zwischen Videospiel und Benehmen besteht bzw. dass sich Videospieler generell so verhalten. Dass das vielleicht nur dieser eine pupertäre Junge in dieser einen Situation war und dass das nicht automatisch auf alle Videospieler zutrifft, das bleibt unerwähnt. Vermutlich muss man schon froh sein, dass wenigstens das stilistisch eher cartoonige "Team Fortress 2" als Hintergrund ausgewählt wurde anstatt eines Shocker-Shooters wie "Call of Duty".

Das Konzept des "Free to play" wird relativ oberflächlich erklärt, aber gerade gut genug, um zu zeigen, was für böse Abzocker dahinter stecken. Dass das nicht ein grundlegendes Problem des Konzepts, sondern eben "nur" die negativen Seiten einer zweiseitigen Medaille ist, wird verschwiegen. Natürlich muss sich auch ein F2P-Spiel finanzieren, jedoch nicht alle F2P-Spiele greifen eben auf solche Abzocker-Methoden zurück. Abzocker-Spiele haben eine sehr kurze Lebensdauer und sind inzwischen auch wieder im Rückzug begriffen, da der Grossteil der Spieler durchaus fähig ist, die Auswirkungen ihres Handelns zu erkennen. Firmen, die einen längerfristigen Erfolg erzielen wollen, müssen ihren Konsumenten einen fairen Deal anbieten. Dieser Punkt, und dass es da schon einige höchst erfolgreiche Firmen gibt, bleibt auch unerwähnt. Stattdessen wird eben nur einer dieser Abzocker interviewed und praktisch als stereotyp für die Branche präsentiert. Ein positives Beispiel wäre das an anderer Stelle in ihrem Bericht kurz gezeigte "League of Legends", welches ein relativ faires Geschäftskonzept bietet und bei Live-Übertragungen gut und gerne mal die amerikanische Baseball-Liga bei den Zuschauerzahlen schlägt.

Keinerlei Unterschied wird auch zwischen Abo-Spielen (wie World of Warcraft) und "Free to play" gemacht, noch werden positive Effekte eines "Free to Play"-Konzeptes aufgezeigt (wie z. B. dass der Spieler ein Spiel probieren kann, ohne gleich zahlen zu müssen. Oder dass der Spieler nur das zahlen kann, was er auch wirklich konsumieren will). Fürs ORF-Publikum ist alles ist ein Topf.

Die Existenz von Videospiel-Sucht möchte ich nicht bestreiten. Als Mitglied einer Familie mit Alkoholismus-Geschichte weiß ich sehr gut, dass Sucht nur ein Symptom eines anders gelagerten Problems ist. Jedoch wird auch hier das Videospiel selbst als das Problem portraitiert. Jugend ist eine heikle und komplexe Zeit, Erziehung ist da sehr schwierig. Insofern kann ich verstehen, dass Eltern gerne einen Sündenbock präsentiert haben möchten, wenn da etwas schief geht. Das war schon immer so, in früheren Zeiten waren es mal Horrorfilme, Rockmusik, Comics und momentan machen die Medien halt auf Videospiele Jagd. Das wird sich über kurz oder lang selbst lösen, der durchschnittliche Spieler ist jenseits der 30-Jahre-Marke und nimmt solche Beiträge nicht mehr ernst. Ich finde es trotzdem enttäuschend, dass sich auch der ORF an dieser Jagd beteiligt. Zynisch könnte ich behaupten: Immerhin nehmen Jugendliche keine Drogen oder werden kriminell, sondern hängen "nur" vorm Bildschirm.

Den Vogel schießt der Beitrag aber dann mit dem Interview mit Frau Regine Pfeiffer ab. Diese ist die Schwester des berüchtigten Christian Pfeiffer, welcher durch seine äußerst harte Haltung und kontroversen Kritiken gegenüber Videospielen bekannt ist, welche oft auf fragwürdigen, selbst ausgeführten Studien basieren. Und auch Frau Pfeiffer selbst ist nicht unumstritten, wie eine kurze Recherche im Internet zutage geführt hätte. Dem gegenüber wird kein "Entlastungszeuge" präsentiert, nein, ihre großmütterlich-naiven Ausführungen bleiben unwidersprochen. Im Endeffekt erscheinen Entwickler als geldgierige Abzocker, während die einzige "Vertrauensperson" die nette Oma von nebenan ist.

Am Schluss wird polemisch in zwei Sätzen dann noch kurz relativiert, dass Videospiele für sich ja eigentlich nicht unbedingt schlecht sind. Ein schwacher Trost nach 29 Minuten Dämonisierung. Wieder einmal wurde meine Branche und Berufung von einem etablierten Medium in den Dreck gezogen. Es ist halt einfach, auf den vermeintlich Schwächeren und Neueren einzuprügeln. Dass damit aber gleichzeitig die Konsumenten des Mediums fälschlicherweise als naiv und leichtgläubig, unfähig zur eigenen Kontrolle und hilflos dargestellt werden könnte sich auf Dauer auch für den ORF als Eigentor erweisen. Dann nämlich, wenn sie die Generation, die sich von "Tom Turbo" abgewandt und ihre eigenen Erfahrungen mit Videospielen gemacht hat, erwachsen wird und sich von solchen Beiträgen, vom ORF und möglicherweise vom ganzen Medium Fernsehen abgestoßen fühlt.

Ich verbleibe mit grosser Enttäuschung.

Oliver Reischl

Changed my homepage a bit! Finally!

Changed my homepage a bit! Finally!

I promised to work on my homepage, but i failed awekwardly... shame on me! But i will improve this section a little. As a proof: Gallery of recent scribble as a start. Have fun!

Convex Hull Dilemma

As i haven't found any good function in 3D Studio Max to generate a convex hull, i had to do it on my own if i really wanted it. So i did do some research and stumbled over a nice java applet demonstrating various convex hull algorithms. Excellent!

I at least understand the java source code, so all i have to do is port da shit. It wasn't all too easy, as it needed quite some rewriting thanks to the OOP-unfriendly MaxScript, but finally i got it working.

And that way i found a problem with the algorithm implemented like this: The moment where four outside vertices are on the same plane and part of the hull, you run into the following problem: When you test one vertice against the other three wether he is "outside" and therefore part of the hull, he tests positive. Yet all the other four vertices do that too! So the code ends up looping through the edges of those four vertices for ever...

As the applet only creates random vertices to test and doesn't try geometrical primitives like for example boxes, this problem pretty much never occures. And the moment i shake up those quad-vertices, the algorithm works excellent.

I only tried gift-wrapping so far, so maybe the other algorithms don't have this problem, but my feeling is they do too... At least in some or the other way...

That means i have to adapt the algorithm for a more rigorous edge-filtering.

You are the Sony of my life...

Brilliant. Now i got this beautyful ID-tag for my Playstation Online account additional to my XBox Live account tag here on my blog. But what do my patriotic eyes have to see? The german flag next to my nick! Blasphemy! "This witchcraft can't go on!" i said to myself naively believing in the power of online support. Alas, Sony once again disappointed me, the online support is pretty shitty. I couldn't find any way to email them my sorrow and i had a hard time finding the support forums on the site. I didn't expect to find anything flag-related there, but at least there was a thread about ID-tags... Great! Lets post there! And again Sony managed to drown all my hopes, the moment i tried to post, the "Sony Network integrity indicator" changed from "fully working" to "not really doing all too much"... ARG!

Sorry, Sony, i hate to break this to you as i loved the PSOne and the PS2, but seriously: MICROSOFT KICKS YOUR SORRY ASS AT GAME CONSOLE BUSINESS!!! And thats a shame.

FBX Exporter, Quo Vadis?!

I'm trying to script the 3D Studio Max intern FBX exporter. The Manual seems to be pretty straight forward. And also when i set and query various values of the exporter, everything seems fine. So i thought i'd be cool writing my own little toolchain around it, as the unit system in 3DSMax can surely be a major pain in the ass. Oh naive me, of course nothing ever works in 3DSMax as described for sure. Take a look:

units.SystemType

#centimeters

FBXExporterGetParam "ConvertUnit" 

#cm

exportFile fbxfile #noPrompt selectedOnly:true

true

Typing this, my object is exported with a scale of 100.0. Why? I don't know. Maybe the exporter assumes for some unknown reason that the scene system unit is meter? Well, lets put it to a test:

FBXExporterSetParam "ConvertUnit" "m"

OK

FBXExporterGetParam "ConvertUnit"

#m

exportFile fbxfile #noPrompt selectedOnly:true

true

FBXExporterGetParam "ConvertUnit"

#cm

Aha! Exporting the file resets the exporters settings to default even though stated otherwise in the manual:

Note: When you export or import files in MAXScript, use the command #noPrompt to prevent the FBX Exporter/Importer user interface from appearing during the process. For example:

ImportFile "C:\test.fbx" #noPrompt

If the UI appears before an export or import command executed through MAXScript, the last used preset is chosen, and effectively ignores any recent scripted changes.

Now this is simply brilliant! With other words i have no fucking influence on that exporter! Lets try a workaround:

units.SystemType

#centimeters

units.SystemType=#meters

#meters

units.SystemType

#meters

exportFile fbxfile #noPrompt selectedOnly:true

true

units.SystemType

#meters

That must do it, right? No. No change at all. Really? Not even the system units are influencing that thing?!

Final word: I solved it by just scaling the object down before exporting. This way it works. Dumbfuckstupid Autodesk shit, seriously.

Harms Way, Baby!

YES! The first XBLA-game i worked on is finally online!

Harms Way

And the best thing: It's free! Yes, as in "just get it, no strings attached, go and play it now"-free! And if you don't own an X-Box, go get one. Or read all about it here:

Joystiq: Harms Way goes from dream to screens, trailer

And then come over again and tell me how good it looks to boost my self esteem a little ;)