Archive for the Rant Category

Getting Cocos 1.x / Kobold2D to work with the latest CocosBuilder

Posted in Development, How To, Programming, Rant with tags , , , , , on 2012/03/30 by Adam Griffiths

CocosBuilder is a brilliant tool that helps you rapidly develop Cocos2D applications.

But the latest versions require the Cocos 2.x branch.

Some of us are stuck with Cocos 1.x for the time being. So let’s figure out how to get things going.

Continue reading

Adventures in Kivy

Posted in How To, Programming, Rant with tags , , , , , , on 2012/03/22 by Adam Griffiths

So here is a semi-live blog as I delve into Kivy.

Mission #1: Attempt to resize the default window

Ok let’s start at the start.

We first create an object that inherits from App. Done.

Ok, and the examples all return a widget from the App’s build() method. So we don’t over-ride __init__… ok… thats… unique.

Perhaps the widget is the window if it is returned from the build() method?

Widget is not the window. Widget returned from build() is added to the window. So… where is the window created?

Window docs state the window has a constructor that lets you set the window size. Ok, cool. But we don’t create the window… so.. we can’t use the constructor… sigh.

Ok, Window has a static accessor.

kivy.core.window.Window = None

No comment on what is stored here but I assume it’s the instantiated window. It doesn’t mention when it is set… handy!

Only 1 window allowed. Ok… weird. Well… let’s try that.

import kivy.core.window.Window
AttributeError: 'module' object has no attribute 'window'


Let’s scour the code.

Screen capture of Kivy window module

No file……… how far does this rabbit hole go.

Ok, let’s check out the file in the window module.

class WindowBase(EventDispatcher):
 '''WindowBase is a abstract window widget, for any window implementation.

So… window base is in there. Feel free to scream now.

So we can get this by importing kivy.core.window and just leaving the class off the end.

import kivy.core.window
def build(self):
    print kivy.core.window.Window.size
    return None
(800, 600)

Ok sweet, thats our window.

So let’s change its size.

def build(self):
    print kivy.core.window.Window.size
    kivy.core.window.Window.size = (1024, 768)
    print kivy.core.window.Window.size
    return None
File "/Users/adamgriffiths/Workspace/VirtualEnvs/progress_quest/lib/python2.7/site-packages/kivy/core/window/", line 243, in _set_size
 if super(WindowBase, self)._set_size(size):
 AttributeError: 'super' object has no attribute '_set_size'


Ok, so after some googling we find this post about the relationship between the App and Window classes.

His solution is to pass the size as a command line parameter……….. LAME. That kinda throws the whole configuration settings thing out the window.

Looking through the Kivy code we find this block inside their base window class’ __init__ method.

if 'fullscreen' not in kwargs:
    fullscreen = Config.get('graphics', 'fullscreen')
        if fullscreen not in ('auto', 'fake'):
        fullscreen = fullscreen.lower() in ('true', '1', 'yes', 'yup')
    kwargs['fullscreen'] = fullscreen
if 'width' not in kwargs:
    kwargs['width'] = Config.getint('graphics', 'width')
if 'height' not in kwargs:
    kwargs['height'] = Config.getint('graphics', 'height')

Ok, so we can try and set it via the global config object.

So let’s add that to our App class.

def build_config(self, config):
    config.setdefault('graphics', 'width', 1024)
    config.setdefault('graphics', 'height', 768)
    config.set('graphics', 'height', 1024)
    config.set('graphics', 'width', 768)

Run the code and……

(800, 600)

……. sigh

So let’s put some debug INSIDE kivy and see what is happening. We’ll also force it to pull the ‘graphics’ setting and ignore kwargs.

if True: #'width' not in kwargs:
    kwargs['width'] = Config.getint('graphics', 'width')
print kwargs['width']
if True: #'height' not in kwargs:
    kwargs['height'] = Config.getint('graphics', 'height')
print kwargs['height']

And the output…


…. calm blue ocean…. calm blue ocean….

Ok… google…

Hmm.. ok, this post on the kivy-users forum (because documentation is for lusers) shows a similar method.

They use the Config module directly instead of the config object passed to App….. because….. they’re not the same? Well.. let’s try it anyway.

from kivy.config import Config
Config.set('graphics', 'width', 1024)
Config.set('graphics', 'height', 768)

And our output

(800, 600)

Ok, weird because the window HAS ACTUALLY CHANGED SIZE.

Whatever. We’re all living in crazy-ville atm so let’s just pretend everything is normal.

So let’s move that inside our build_config() method.

def build_config(self, config):
    Config.set('graphics', 'height', 1024)
    Config.set('graphics', 'width', 768)

And the output

[INFO ] Kivy v1.1.1
[INFO ] [Logger ] Record log in /Users/adamgriffiths/.kivy/logs/kivy_12-03-22_40.txt
[INFO ] [Factory ] 102 symbols loaded
[INFO ] [Text ] using <pygame> as text provider
[INFO ] [Loader ] using <pygame> as thread loader
[INFO ] [Window ] using <pygame> as window provider
[WARNING] [Window ] Unable to use <pygame> as windowprovider
[CRITICAL] [Window ] Unable to find any valuable Window provider at all!
Fatal Python error: (pygame parachute) Segmentation Fault
Abort trap: 6

(╯°□°)╯︵ ┻━┻

My Favorite Thing…

Posted in Rant, Uncategorized with tags , , , , on 2011/06/10 by Adam Griffiths

FM transmitters on the same frequency clash and quite often SWAP the audio in 2 cars.

My favorite thing is to leave my FM transmitter on my phone at the default frequency of 88.1 and play crazy zombie music while I drive around.

I listen for audio clashes and look around for the person who is totally confused as to why their iPod has become possessed.

Even better is when you can hear their songs and they start to rapidly change as they frantically try to fix it.

A good case for mandatory castration

Posted in Rant, Uncategorized with tags , , , on 2011/04/20 by Adam Griffiths

Murtle76 not only hates a game he didn’t bother to play, but insists that he isn’t insulting or annoying anyone…

Steam region pricing is getting rediculous

Posted in Games Industry, Rant, Uncategorized with tags , , , , on 2011/04/14 by Adam Griffiths

This discussion regarding Borderlands pricing differences, although not a big deal this time, is the latest in a long line of regional pricing FUBARs.

I saw that Borderlands standalone (US$7.49) and Borderlands GOTY edition (US$7.50) were both on the “Top Sellers” list.

I thought perhaps people were boycotting the DRM encumbered DLC for the game (included in the GOTY edition), which made me happy!

Then I checked the forums and realised I was wrong. Different regions, again, have vastly different prices:

US pricing:
Borderlands GOTY = $7.50

Borderlands = $4.99

DLC = $7.49

Borderlands + DLC = $12.48 (greater than GOTY by $4.98)


Borderlands GOTY = $7.50

Borderlands = $7.49

DLC = $7.49

Borderlands + DLC = $14.98 (greater than GOTY by $7.48)


Borderlands GOTY = £7.50

Borderlands = £4.99

DLC = £4.74

Borderlands + DLC = £9.73 (greater than GOTY by £2.23)


Borderlands GOTY = €12.50

Borderlands = €4.99

DLC = €5.99

Borderlands + DLC = €10.98 (less than GOTY by €1.52)

As you can see, this pricing is literally schizophenic.

I don’t believe this is Valve (although their Steamworks page does say that they will suggest pricing for games), I think this is the publishers stepping up pressure on Valve to fall into line. And unfortunately it’s working.

I made a comment that perhaps we should all band together to make a “Steam Gifting Co-operative”. Thing is, I was serious.

Many deals in Europe or the AU are far inferior to the US pricing. The region banning is stupid. This usually isn’t Steam but government ratings forcing publishers to offer modified versions (eg. L4D2 with fading out corpses instead of normal version). Grand Theft Auto: Vice City is still NOT on steam in Australia (thanks guys, you forced me to pirate it) although GTA3 and GTA:SA finally are.

Gifting gets us around this. It can also get us around the price issues. The only problem I can see is something like this happening if the “giftor”s bank account goes into the negative. Which is pretty horrific.

People would be re-imbursed for gifts (this isn’t a charity!). The only problem is ensuring that the “giftee” pays the “giftor”. Most bank transfers take a day and by then most deals would be over. I believe PayPal transactions are instantaneous, but I’m not sure. If it is, this would negate this issue.

I think a gifting co-operative is a very realistic and simple way of negating some of the publisher’s influence on Steam.

There are a few forum threads doing exactly this (NeoGafAwkward Zombie), but we need to make it more formal and easier to use.

There needs to be a way to:

  • Request a gift from a specified region (“giftee”).
  • Notify of our intention to fulfill a request (“giftor”).
  • Select a “giftor”.
  • Notify of payment sent, gift sent, gift received.
  • Comment and add to user’s reputation (ala Amazon) for both “giftee” and “giftor”.
  • Cancel a gift request.
  • Quickly view current gift requests with filters for region, age and user rating.

How many times do we have to say it?

Posted in Games Industry, Rant, Uncategorized with tags , , , , , , on 2011/04/13 by Adam Griffiths

DRM doesn’t fucking work!

Next talk like a pirate day

Posted in Rant, Uncategorized with tags , on 2011/04/12 by Adam Griffiths

This year my friends… this year… “Mutambo” will be heard.

Absolute power corrupts

Posted in Games Industry, Rant, Uncategorized with tags , , , , on 2011/04/12 by Adam Griffiths


I love Steam. Having a social gaming network with constant access to a game market place where the prices are truly fluid is brilliant. But the thought of something like this happening is always in the back of my mind, and it scares the shit out of me.

I’ve seen posts before of people having an account for each game they have. That way if an account is banned or VAC banned, their other games aren’t affected.

You also get around VAC banning you from all games that use that engine. Ie. a VAC ban in HL2 will ban you from all games that use the Source engine: L4D, CS:S, etc.


Also, PayPal sucks. Please avoid using it where possible.

Back in my day Sonny…

Posted in Rant, Uncategorized with tags , on 2011/04/11 by Adam Griffiths

Police Quest: In Pursuit of the Death Angel

I really miss games like this. This walk through brings back so many memories. It also shows how many things I missed even though I didn’t finish it. Brilliant game, brilliant story. God damnit… I want to play it now!

Make sucks

Posted in Programming, Rant, Uncategorized with tags , , , , , on 2011/04/03 by Adam Griffiths

I used Make extensively at my last job. You know what? Make sucks!

I’ve talked about this on Reddit and the only response I ever got was fan boi’s who have memorised the manual saying “You just need to read the manual! It’s fine!”.

Arbeit GNU Macht frei

Some people just don’t Grok piracy

Posted in Games Industry, Rant, Uncategorized with tags , , , on 2011/04/02 by Adam Griffiths

Same thread, new post. Some people just can’t learn how to break an issue down and look at it objectively.Piracy: Imagine your car gets stolen but it's still there in the morning.

Continue reading

Musings on piracy

Posted in Games Industry, Rant, Uncategorized with tags , , , , on 2011/04/01 by Adam Griffiths

Once again a short rant (not a proper post) I posted on Steam that describes my thoughts on piracy.

You wouldn't download a car? Fuck you, I would if I could!

Post also copied below.

Continue reading

The truth of DRM

Posted in Games Industry, Rant with tags , , , , , , on 2011/04/01 by Adam Griffiths

I just posted this on Steam, it’s a rant but I think it expressed my feelings on DRM quite well.

Content protection system

Post below in-case you’re scared of the Steam forums (don’t blame you).

Continue reading

Shuffling deckchairs on the Titanic

Posted in Rant with tags , , on 2011/02/04 by Adam Griffiths

The company I work for just fired half of our engineers. I resigned a few weeks ago and was content to work out the remainder of my contract, but this has really angered me.

Continue reading

Sometimes you spend forever designing your house of cards to be rebust only to find the bricks were beside you all along

Posted in Development, Rant, Shock, Twisted Pair with tags , , , , on 2011/01/11 by Adam Griffiths

I’ve spent the last 5 years designing my C++ library Shock. It’s basically designed to let me create a number of games I’ve always wanted to make with a massive amount of code re-use and a number of other niceties thrown in.

I’ve been experimenting with Python and it’s opened my eyes to the flexibility of modern programming languages. I think it’s what I should be developing in.

I’ve coded C++ since uni. It’s what I do for a living. But the irony is, I hate C++. It’s not just that I work with it all the time and have had bad experiences, C++ is truly horrible. And the sad thing is, it’s so pervasive that we can’t shake it.

Continue reading

The “Game” Plan

Posted in Development, Rant, Twisted Pair with tags , , on 2010/11/24 by Adam Griffiths

I’ve been considering working full-time on our projects. It’s a scary prospect of having financial commitments, a family, but zero income. At the same time, it’s incredibly liberating. I’m already so over the corporate lifestyle (of which there isn’t one). I’ve never enjoyed working for other people, corporations are so dysfunctional and in-efficient it just makes me want to scream.

I have enough good ideas of my own that I should be able to make it, but getting a start is hard when you don’t have a big parachute of money to keep you safe.

Continue reading

TSA… Meet World.

Posted in Rant, Uncategorized with tags , , , on 2010/11/23 by Adam Griffiths

And here I was thinking I was the only one who thought this whole thing was crazy. The TSA have posted to their blog regarding their “enhanced pat-down procedures” and the comments are brilliant.

Rob Schneier has written about the TSA and their security theatre charade many times. His arguments are the most sane and logical I’ve found and totally slaughter the TSA’s.

In response to the security theatre, people have started the “National Opt-Out Day”.

This is why we can’t have nice things…

Posted in Platforms, Rant with tags , , , , , , on 2010/11/15 by Adam Griffiths

So my Ubuntu Netbook Remix 10.10 install lasted me less than a single day, and now I have the choice of trying again and hoping, or trying out the other netbook distros.

But wait… let me re-wind there.

Continue reading


Posted in Rant with tags , , , , , , , on 2010/11/14 by Adam Griffiths

N145, I am impressed =)

Just wish Ubuntu had a netbook remix installer for 64-bit. I’m too lazy to roll my own from the desktop edition so I’ll just stick with 32-bit development (XP and Linux) for the time being. My code should be 64-bit clean so it should present no problem.

I also ran Windows 7… for all of 2 minutes before I got thoroughly bored and removed it. There is no curiosity like with an OS like OS-X or desktops like Gnome and Unity, just… the same interface with a different chrome. Maybe thats a good thing for the Windows eco-system. But its not exactly something that inspires imagination.

Of Netbooks and PAIN

Posted in Rant with tags , , on 2010/11/14 by Adam Griffiths

So it turns out the Samsung N210 wasn’t in stock, even though it was right in-front of me. Go figure.

I settled for a Samsung N145 which kind of took the excitement out of it. It’s black (sigh) and the keyboard is not as good, but its $100 cheaper so I can’t complain.

I’ll peruse Windows 7 for a little before I put Linux on.

%d bloggers like this: