Aug 18

Long ago when DirectX 10 was released and soon after when everyone started bagging it I predicted either one of two things: OpenGL will undergo a similar transformation and cop the same amount of criticism from know-it-all fanboys, or OpenGL will stay the same and cop a fair amount of criticism from game devs and consequently know-it-all fanboys with no hope of getting better in the future.

OpenGL 3.0 spec’s are released and… “I can hear the laughing at Seattle from here (and i’m in europe)” sez a forum goer, reflecting the sentiment in the thread the announcement was made.

In a bid to make the non-game developer happy OpenGL 3.0 comes chock full of legacy support, the same kind of legacy support that game devs don’t need, the same kind of legacy support that is turning into bloat and becoming increasingly harder to remove with each and every new iteration.

However there’s still hope for OpenGL, it can break into two seperate fields, one for game dev which dumps legacy support and changes to better compete with DirectX and one can remain for the engineer types who are building bridges or whatever it is they do with OpenGL. OpenGL ES does this to an extent, but it needs to be taken to the next level, a whole new consortium of experts should get together to create the new game dev targetted specifications, much like what ARB is doing to please the engineers.

It’s not good enough we have OpenGL 3 and nothing for game developers, it’s not good enough OpenGL now actually has a deprecation model but still keeps everything it has deprecated with no sign of actually evolving, it’s not good enough we have OpenGL ES which does not have any support for PC games and virtually no input from hardware vendors and game devs (I might be wrong here, please correct me if so).

Aug 13

Well my harddrive had been getting very full and rather than selectively uninstalling this that or the other thing I just took a match to it and started fresh. Of course with a fresh OS install and an empty hard drive comes a new IDE, so I used it as an excuse to update from Visual C++ Express 2005 to 2008.

The new IDE looks very preddy but there may be some problems with the way the vector library is now handled. In the ZAMN remake I use the DirectX animation libraries, I use a mesh container which looks something (read: exactly) like this:

struct MultiAnimMC : public D3DXMESHCONTAINER
{
LPDIRECT3DTEXTURE9 *m_apTextures;
//vector <LPDIRECT3DTEXTURE9> textures;
LPDIRECT3DTEXTURE9* textures;
LPD3DXMESH m_pWorkingMesh;
D3DXMATRIX * m_amxBoneOffsets; // Bone offset matrices retrieved from pSkinInfo
D3DXMATRIX ** m_apmxBonePointers; // Provides index to bone matrix lookup

DWORD m_dwNumPaletteEntries;
DWORD m_dwMaxNumFaceInfls;
DWORD m_dwNumAttrGroups;
LPD3DXBUFFER m_pBufBoneCombos;

HRESULT SetupBonePtrs( D3DXFRAME * pFrameRoot );
};

Notice the line that says vector<LPDIRECT3DTEXTURE9> textures? I had to comment it out and replace it with what you see underneath, an array. For reasons unknown when I attempted to call the push_back function of the vector I would get strange errors regarding an overloaded operator, well this one:

_Myt& operator+=(difference_type _Off)
{ // increment by integer
_SCL_SECURE_VALIDATE(this->_Has_container());
_SCL_SECURE_VALIDATE_RANGE(
_Myptr + _Off <= ((_Myvec *)(this->_Getmycont()))->_Mylast &&
_Myptr + _Off >= ((_Myvec *)(this->_Getmycont()))->_Myfirst);
_Myptr += _Off;
return (*this);
}

Normally I’d feel very angry about not understanding why there is an error where I don’t think there should be an error but I’m trying to just live and let live, no harm done, everythings working as before, no need to waste hours figuring out whats so different. Still, I’ve got my eyes on it.

I just hope they’ve fixed the memory leak in the ofstream class that was ever so present in the 2005 version. Imagine a memory leak on an std function, last place anyone would look.

Aug 10

Just been working on modeling some turrets and in keeping with ZAMN’s quirkiness it’s not exactly a turret.

Aug 9
“I have a great game idea but I can’t program, do it for me plox!11!1!1″

What does that mean to you? If you’re a hobbyist programmer who dibble dabbles in the world of game development you know all too well. Some random pimple faced tween has just got the best idea ever for a game that is so super awesome you will want to work on it exactly as he dictates how it should be.

Odds are the game is an MMO, a suitable rip off of WoW usually with some ‘awesome’ or ‘unique’ idea that has been done to death a thousand times over in many games. No doubt this pimple faced kid was banned from playing WoW by his parents who were desperate to get their kid to face reality. Unfortunately for the parents the kid found a new imaginary world, a world in which he can create his own game by finding people who are in love with him and his ideas and are willing to work for him without questioning his genius.

Normally I wouldn’t care, kids will be kids and the desire to make the next big game would probably be forgotten with a new episode of Pokemon. However today, of all days, when I’m down with the flu, worried about my cat who has been out for a really long time (come back MishMish!) and just generally feeling down and out, some kid passing himself off as a serious game dev had contacted me asking for me to join his team.

Before I go on let me just say that I have nothing against this kid, it was entirely my fault for not figuring out he’s a 14 year old pursuing a dream he’s going to forget before the weeks out. What fooled me? He linked to concept art, and 3D models and basically said they were made by his own team. I later checked on the details, a lot of the material he provided was actually not done by his team, he was ripping other people off.

At first I didn’t know this so I thought ‘OK, at worst he’s some 14 year old kid but perhaps his age betrays him, considering he’s found all this talent to help him’. The discussion I had with him over IRC did not start well, from the beginning I had the feeling that I was dealing with an idiot kid, but for some reason or another I decided to press further with him to see if I may be wrong.

After discussing the basics of the project, the technical details, I as a programmer would have to pick up on I found a distinct lack of content in what he was saying. He did talk about some problems his programmer(s?) faced which I found to be quite basic issues that anyone with even a bit of experience would not have encountered, so clearly his programmer(s?) were not that experienced. I asked who was helping him code the game, some dude who is still in college… well OK, I don’t know much about this guy but maybe I can talk to him later, perhaps he’s like me, really dedicated to game dev and doing some in his own time.

He talked about his general ideas for the technical development of the game I gave my take on how I would solve some of the challenges his team was facing versus what they were doing. It was just a casual remark, I tackle problems different to other people, everyone has their own take on a matter. This kid however, being so emotionally invested in his own perfection snapped back with some random blurts about how my idea could not work and how he knew what he was talking about ‘thx’.

Well maybe he’s having a bad day I think to myself, and besides, the technical details is not his business, so I ask him what role he plays in his team, his answer just crushed my heart, he could have just as well come out and admitted how he wanted to play WoW again but his parents had banned him. He said ‘I’m the team leader, designer, writer and recruiter’. Right. From this moment on it was my fault for giving a damn and continuing, I should have just said ‘well thanks for the chat, good luck on your game I’m sure you’ll do really well’ and just left. But no, see, I still was dumb enough to think those links to concept art he had shown me were of the real deal, so surely there’s something about him I’m missing?

Continuing from this, he’s the designer and, as I’d like to call, the conceptualizer, he has this idea for the game he wants to run with. So I ask him about his ideas and raise some concerns I have with the general direction he wants to take the game. Unsurprisingly I get the typical defensive rhetoric in response, which as always, evolves into contradictions, upon pointing out the contradictions it ends with ‘you just don’t get it’ or some variation of that.

Well I did finally end the conversation, but still, the talent he claimed to have, can’t be real, can it? So I Google to check some of his claims about his supposedly developed art team. Wait what’s this? The 3D model you claim your ’senior modeler’ had made is actually hosted on a blog which has not been updated since 2007 run by a man whom you did not even name on your teams roster. That can’t be right, can it?

At this point it started becoming fairly obvious, this kid had been treating me like the gullible fool I am. What really got to me however was the fact he was ripping this one person, and possibly many others off. What about the other people on his ‘team’? I Googled their names, the coders brought up some random semi-related results, the 3D modelers, no verification whatsoever, concept artists? well I could only verify one was the real beyond reasonable doubt, some have no internet presence, some had simply donated concept art from previous work but not actually committed to the team and some were not even a part of the team nor related to the team in any way whatsoever but their work was featured as concept art for this game.

Clearly he was just lying to me the whole time.

It was still my fault, I should have read the various threads this kid had made, on more than one occasion his character and teams integrity were called into question. His overly defensive attitude was also on full display, even passive comments about his project were met with defensive words.

His smug arrogant attitude should have been enough to warn me, still I’m glad I looked into his little scheme.

***DISCLAIMER***
What I’ve written is based on three separate experiences I’ve had with these sorts of kids, I’ve deliberately joined them together and changed some basic details to maintain their anonymity. If they were over 20 I’d be more than happy to publicly humiliate them but a 14 year old is just a 14 year old and there is no good that can come from embarrassing a sensitive kid. I have notified a few artists whom I suspect were ripped off by these kids so it’s up to them to take appropriate action if they see it fit. Besides that, let this just be a reminder for us to be careful, ask for examples of their work but verify the work is real.

And yes, again, the real idiot here is me, not those kids.

Aug 6
Reading typical pro-Apple drivel is quite a common experience for anyone who frequents websites like Digg or Reddit, or the internet in generel. So no matter, I’m used to seeing and ignoring the irrational attacks Microsoft gets and the unconditional praise Apple is lavished with but on this case I have to reply, and kick some uninformed ass.

Mark Damon Hughes has written an article claiming Macs Make Programmers citing some very wierd examples as to why. He misses the mark so many times that I have decided to take action and correct his misunderstandings.

The basic premise of the article is this: Because Mac’s come pre-installed with development tools and have a fairly large install base it makes programmers, wherein Windows and Linux come short. If that does not sound like fundamentally flawed reasoning on face value I don’t know what to think of you, but since the reddit submission to the story has recieved 100+ upmods there clearly are a lot of people who have fallen for this crap.

Since ohlai from Reddit has already stated why this reasoning is way too flawed to apply to Linux better than I ever could I’m just going to copy and paste it here,

Wow. This shows a pretty fundamental misunderstanding of GNU/Linux, especially since the whole damn thing was built and is maintained by hobby programmers.

Additionally anything you need to get going is a single package manager command away from being installed.

This guy kinda throws out his argument for not having to install anything additionally buy say that XCode needs to be installed from the OS X DVD. :(

Also, IIRC, C & C++ aren’t part of a standard OS X install, but need to be installed separately or at least need to have some sort of license agreement accepted.

Finally the author overlooks that OS X is based off of BSD UNIX, and that Linux shares this history insofar as it is based off of UNIX. To get started using a command line, Linux would be no more hostile than OS X.

FWIW, Linux also has BASH, as does it have CSH, TCSH, ZSH, KSH, and a whole fuckton of other shells. On a modern distribution, you also have access to Lisp, ml, ocaml, MIPS, flasm, nasm, haskell, D, a mega-fuckton of other language compilers/interpreters, including ObjectiveC.

permalink

As for Windows, Mark starts off with “But MS Windows ships with nothing. No BASIC. No C compiler. You’re trapped, stuck playing with Solitaire and MS Paint” which pretty much sums up the tone for the rest of his article, sensational and perhaps even delibrately misleading.

It is irrelevent what Windows ships with, or what any OS ships with, you can download various frameworks and APIs to get started with programming. Mark seems to forget there is this thing called the internet which most people have access to. Glossing over this Mark moves on to pinning Visual Basic to beginner or hobbyist programming, like it’s the only langauge that exists on Windows which is suitable for beginners and hobbyists.

As a novice programmer I went out and read about how to get started in programming. Back then I, as a novice programmer, was not aware of what Python was or what Ruby was. Someone who wants to be a programmer but doesn’t know the first thing about programming would probably google it. After learning about various langauges the next step would probably be to pick one to learn. Pick any, from C++ to Mark’s beloved Python, it is very easy to get access to either on Windows.

He also for some reason or another insists that Microsoft has killed hobby programming. Considering Microsoft has invested so heavily in XNA, released various IDEs for their languages in the ‘Express’ line and how hard they work in third world countries to get kids familiar with Windows one has to wonder just how Microsoft plans on killing hobby programmers. Mark insists that since Microsoft is not supporting Visual Basic it is delibrately discouraging novice programmers who are in it for the fun. I don’t know if he is aware we are no longer in the 1990s, there are dozens of languages suitable for beginners available on Windows, Python included.

If Python is ideal for beginners then the best Mark could say is the difference between OSX and Windows for novice programmers who are interested in programming specifically for Python is a Google search.

I’m only 20 so I don’t really know, but from the ancient programming textbooks I’ve read BASIC itself has a reputation for being a bad teacher to novice programmers, but we’ll leave that for some other time. The point is, there are far more languages a novice can pick up on for Windows than Visual Basic, which is fairly obvious, but apparently unclear to Mark.

Let’s move on, as Mark does. So what else has Microsoft done in an effort to reduce the number of people who code on Windows (and, you know, help make it sell)? Apparently being a professional Windows developer is not cheap, starting at $300. That’s right, kids who just want to code at home are now professional Windows developers who need to spend at least $300 to make their dreams come true. Is there any real limitation to Microsoft’s free offerings? For the record all my projects use Visual C++ Express and various free APIs, my only expense thusfar has been the 3D models, which are not even related to programming. I don’t know what Mark means by ’serious’, but if he means ‘work in a professional environment’ then sure, big companies will be more than willing to throw around thousands of dollars for support and productivity tools only they will need (which novices won’t).

Perhaps the only thing I can agree with Mark on absoloutely is young hobbyist programmers of today make the dedicated professionals of tomorrow (who will work for companies which pay for the $12000 software but what right do I have to say that?) Of course I don’t agree with him on the semantics. He is wrong when he generelises and says “once you teach someone to program, it’s completely addictive”. Programming is like anything else, you either like it, or you don’t, or you fall somewhere in between. There are many people who don’t like to program, they’re just not interested in it much like there are people who don’t like going camping and there are people who do, or there are people who like reading novels and there are people who don’t.

Delayed teaching is an interesting concept, the idea that if you wait until college it’s too late to code, period. I don’t think that’s true, there seems to be a misunderstanding in the programming world. The best programmers probably did start young, however this is a reflection of their desire to program more than anything else. Likewise we could say the best tennis players started young, it doesn’t mean it’s too late to play tennis when you’re in college or even past that stage in life but odds are if you liked tennis when you were younger you are more passionate about it. I actually started programming in college and while I don’t mean to speak ill of my fellow classmates I did probably do a lot more than they could, even the ones who did start at a young age. I mean in second year my friends were making Windows Form Based ‘First Person Shooters’ and I was going the whole way with a 3D shooter. I had the passion and dedication to do it, doesn’t matter if I coded while young or not.

Unlike Mark I blame the lack of programmers on the work conditions. Programming is probably one of the more underappreciated professions in the industry today. What I find disturbing is even those who claim to be most passionate about programming have strange goals, if I take, say, Facebooks original developer, and ask him ‘what do you want to be in five years?’ the answer will probably be ’stinking rich!’

So why do people still get into the field? Because they love it, enthusiasm makes programmers, not Macs or Windows or Linux.

While I don’t want to sound like I’m out to assassinate Mark’s character saying such things as:

I suppose Linux and Windows users don’t notice this, they probably think it’s great, because they have no taste. To a Mac user, it’s repulsive and dysfunctional.

When referring to the quality of software does not help your credibility in the world of software engineering.

Elitist much?