Gaming Your Way

May contain nuts.

9 years, and counting

Nine years ago today GYW burst into life, redefining what it meant to play online games.

Well, that was the plan. In reality we've done some good stuff, some average stuff and some stuff that was purely for the money that we take no pride in.

Yep even after all these years we still know how to really sell gamingyourway as a brand.

Anyway this was just a brief blog, I'm trying to get back in the swing of it, rather than a post every two years.

More soon...


Killing the beast, one start at a time ...

I think I mentioned one or two times how much I don't like the maker of Flash. I really wonder what kind of morons make the decisions there. Even though I mentioned my utter dismay with Flash one too many times, I still think it's a great piece of software that deserves better than what it is getting from it's makers.

Remember the "Flash is the gaming platform for the net" blurb? So what has happened so far?

I really wonder why they don't start to push Flash more, trying harder to establish Flash as multi platform development environment and getting rid of the "all you can do with it are annoying ads" notion.

Oh well.

(And just to mention it: who the fuck is responsible for the shit UI in CS6? ... No I'm not sold on Creative Cloud either and I *never* will be)

Anyway the point of this post is closely related to my move to a new PC and the re-install of CS6, as after I was done installing it (ok, just Flash, Photoshop and Dreamweaver out of the Master Suit), I had a look at the autostart panel in windows' (8.1) TaskManager.

Big A has added 6(!) new entries to the list:

  • Acro Tray, Adobe Systems Inc. (ugly icon, btw)
  • Adobe Acrobat SpeedLauncher, Adobe Systems Incorporated
  • Adobe CS6 Service Manager, by ... right
  • Adobe Reader and Acrobat Manager, ...
  • Adobe Updater Startup Utility
  • Switchboard Server (32 bit)

WHAT THE FUCK is all that shit? (This is a rhetorical question).

I like to mention that everything still works fine without these.

All in all, 17 entries have been added to startup by various applications, of which all but 5 remained, plus one I set up myself.
Some of the entries that remained:

  • Acronis with 2 (no need for the image mounter)
  • Logitech Setpoint (for better mouse and keyboard settings)
  • Deamon Tools (for the need of a virtual drive at times)
  • 1 of the 2 NVIDIA entries (no need for the capture service proxy)
  • LanLights (the one I set up intentionally, a neat little app to show network traffic, also has a neat tray icon)

While I was at it I gave the registry startups a good bash (using CCleaner) and found more Adobe entries to kill (Adobe Bridge to note one) and if you are as annoyed as me about Acrobat adding his dirty fingers all over the system with adding "Convert to PDF" to each and every context menu you can get rid of it with this:

(This is for the 64 bit version AND cs6, but you should be good to adapt for other versions quite easy)...

regsvr32 /u "%programfiles(x86)%\Adobe\Acrobat 10.0\Acrobat Elements\ContextMenu64.dll

To run this little gift, use "Run as Admin" while starting CMD and reboot afterwards.

... and now have a nice week, I'll be coding like a mad god on non-game stuff.

-- Oliver / nGFX

Messing up scale - big time

I've been doing 16h coding shifts for the last couple of days (shipping deadline ahead) so I couldn't face touching the prototype game afterwards, which means no update on that this post.

Anyway, after Christmas I decided to rebuild the CSH22 MOC I've done some time ago (the original post is here). One thing I noticed while building the model with "real" Lego parts that the base and the roof (which looked OK as digital model) are not very stable or buildable, the obvious conclusion was to redo them before building the model.

The old base, without roof.

That said, it took the better part of 5 evenings to redesign the base and the roof, keeping an eye on stability and making it buildable. To say I went a bit over the edge with it, barely covers the amount of new parts - roughly 760 to be precise - adding up to 1254 parts for the whole model.

The new base, again without roof. The pool is all new, too.

Yesterday the last bag of parts finally arrived (Lego Pick-A-Brick is your friend here) and so while having my morning coffee I started to build the base plate and was - mildly - surprised how fucking big it is. For some odd reason I always have that with Lego models, wondering how I could have underestimated the size by that much.

That's a) a bad picture and b) 32.5cm x 31.0cm of base-plate goodness.

Oh. Well.

To end this post with something to look forward to, next post will be about messing up a game's items with exposing values to the Unity editor and how something I call the "ItemFactory" saved the whole enterprise.

... and now: there's a deadline ahead, ahoy.

-- Oliver / nGFX

And on the 8th day I created a mini-map.

With this title in place, I don't think I have to write much about the technical details, do I?

I read an interview a few days (or is it weeks?) ago (forgot who was interviewed) and one of the things that were said was something like "mini maps are a lazy design choice". Maybe.

I still needed something like that in the prototype game, one reason is that it shows where things are, but I don't want to show a map. In reality it works more like a radar, but honestly who is going to search for "game development" and "radar"?


And here ends this post. I got myself a new PC, you see. Seems like I now got most things set up and running again (I could have just migrated my old stuff, but I do like a fresh start now and then).

Well, tomorrow is Monday, so it's time for a new post anyway and I try to push it in between some very serious deadlines.


-- Oliver / nGFX

"TV and the Internet are good ...

... because they keep stupid people from spending too much time out in public."
― Douglas CouplandJPod

I wonder what spambots will make out of that.

Anyway, it's Sunday again and time for the weekly post. Problem is, there's nothing even remotely game-related to write about. I spent most of the time coding a client project and let me tell you: writing an e-mail verification system is oh-so-shit boring. Plus keep in mind: never underestimate the user to do something really bone-headed when presented with a simple form.

What's not to understand with "username, 8 to 16 characters, allowed are letters A-Z, numbers, minus or underscore, do NOT use ä,ö,ü,ß"? You know it when you've got the first one on the phone telling you "I can't enter my username - it's 'Hans Müller' " ...

Ok, to make this post just a tiny bit useful: what about using a cloud based sync and Unity projects?

I for instance gave up on the idea to store a Unity project directly in the Skydrive folder (but it's the same for Dropbox, google drive, ... whatever). The problem is that unity creates a shitload of temp files whenever you change code and it recompiles it. For me it worked for some time, but then it choked and resulted in missing files.

But I wanted to sync my current Unity project between 3 computers without using an USB Drive, the obvious and quite simple idea was: use 7zip and a batch file (two actually). I use 7z as it has a nice command line version and it creates a slightly better compression than zip and I can't stand rar.

So when starting to work I hit the "unzip.bat", which deletes the local project  and then unzips the project from the cloud (and starts Unity afterwards). When done for the day it's "zip.bat", which zips the local project and moves it to the skydrive folder. It really is a no brainer, but it saves a good deal of traffic and time - 26mb (7zip) instead of 157mb (uncompressed, ~4500 files) or 38mp (zip) ...

I'm going back to code some game related stuff tonight so at least I have something for next week.

-- Oliver (nGFX)

Lorem ipsum ...

This week's post isn't one. I'm on holiday, I could tell you what I have not done this week: working. I didn't write a single line of code, pushed a vertex or drew a pixel - and honestly it felt great - well for the first 2 days or so.

What I did however, was drawing a few maps and sketching out some more game details on *paper*.

And reading ... and playing (Bioshock Infinity, XBox 360) ... and moving books from the floor to their new home, our new *big* bookshelf - too bad we only managed to move about 2/3 of them, the rest will have to wait until the additional shelves arrive (there's an image on g+).

Anyway to beef up this meagre post I'll add a page filler text ... and catch you all next week (still on holiday then).

-- Oliver (nGFX)

... dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

New rules ...

It seems that I'm now a proud member of the Iron Blogger Community, in my personal case it's The idea is to write at least one post per week or you have to pay a fee (which is used to buy beer when we meet once a while).

Announcing that I'm now a member of an Iron Blogger "chapter" counts as a post for that week, but that would be a bit lame.

I'd like to post some progress on the MTR racing game and as a surprise ... I even have to report some progress - sort of.

I'm not sure if I mentioned how the AI in MTR works, but I guess I might repeat myself to get to the point.
When I posted the last time the AI was using waypoints to move along the track and not, say, a fixed spline (which would be oh-so-much easier). I use waypoints, because there is a track editor build in and players can build their own tracks, if fact I do some blending between waypoints so it's nearly a spline.

Anyway, the trick is to actually hit the waypoints when moving along the track, because sometimes you're coming a bit to fast down a ramp and the "hit waypoint" radius is just the few digits to small and so you missed your target waypoint. Detecting that is quite easy - if the allowed angle between driving direction and car/waypoint is too big, we simple jump on to the next waypoint in list and continue driving. The problem is: what do we do if for some odd reason the car turns a bit too much before it hit the waypoint (crashed into some other car maybe) - in this case it all can go berzerk faster as you can mumble "fuck". 
And then there are the other cars, having 4 cars chasing the same waypoint always ends up in a crash and then in missed waypoints ... the obvious solution is to prevent crashes, but that doesn't always work out like planed, too.

The first change I made, was to add 2 more waypoints and so having "lanes" on which the cars drive - this worked better. I created waypoints on the left, right and center of the road and give the cars a "lane" (ie: 0,1,2) on which the want to stay. As far as you want that all is good, but once you want to change lanes things get complicated again.

The current version uses a "floating" waypoint, it goes from the left side of the road to the right side and the AI cars use a float (0-1.0f) to see where they want to hit the wayoint (this also allows to use a "desiredLane" value and blend the current lane with the desired one over time). Now the AI cars cannot miss the waypoint any more, they just can miss their desired lane).

Phew, a lot of words, time for an image.

This is what I've been working on for the last couple of weeks (and prevented me to do any real work on MTR): animating and rendering a lot of small animations showing smoke and fire (sorry no further explanation just yet).

And with this, see you all next week.


Flash FullScreenInteractive and Chrome

Look at that for a SEO type subject title, I hate using them and would rather revert to something stupid / flippant, but this is meant to be an actual useful post, so I guess I shouldn't obscure it too much.

We've been having problems with FullScreenInteractive in Chrome since first adding the feature to Outpost 2, it just scaled up wrongly and was basically broken ( You can't even seen the accept / cancel requestor properly ). Damn you PepperPot player and your added weirdness. So here's a couple of gotcha's for you to hopefully save some pain.

Firstly stage.allowsFullScreenInteractive isn't what you'd think. My idea was I'd hit that value up and if it was false then don't bother displaying a full screen button as an option. That would be too simple. Apparently that only returns true if you're already in full screen interactive mode which makes it totally useless as far as I can see ( You could either read stage.displayState or just set a flag in your own code as you kinda know when you've gone full screen ).

Ok, that wasn't really the bug, just a crushing disappointment connected with the whole mechanic. Here's the actual money shot,

"The fullScreenSourceRect property can only be set when Flash Player or AIR is not in full-screen mode. To use this property correctly, set this property first, then set the displayState property to full-screen mode."


When working in either full screen mode you really need to use the fullScreenSourceRect property to enable hardware acceleration. This is just a rect you set to the size of your normal stage, once done your content flies along ( O2 runs the same full screen as it does normally ).

Turns out this was the problem, when I removed the rect call it scaled up correctly in Chrome, but ran like a dog. Let's try adding the rect setting after going into full screen interactive, yeah we're ignoring Adobe's rules, fuck the man.

Hey presto, it all works. The requestor dialog isn't quite central, but it's the same on Safari and to be honest well down the list of things I care about, as I'm sure that's a Flash quirk that I can do nothing about.

There you go, hope that's some help,