• Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

About this blog


Entries in this blog

The swine flu was created by your government to control the population. Please do not be distracted by my shiny tinfoil hat.

I've made a few updates (and a new video) on the weebsite regarding Gorgon. So you might want to check it out if you're into that sort of thing and you know you are you filthy pervert. You make me sick.

I expect my premium account will expire in less than 2 months time (according to my info), so after that point there probably won't be any more posts on this "journal". Once the Superpiggy has instrumented his evil plot to replace the gamedev website with something more insidious and vile and evil and unicorn-like I'll probably throw more money over this way and resurrect this "journal".
Attn: Drew
Please don't put this in the "Weekend Reading: Tales from Journal Land", it's filled with questionable language like "the" and "busy"

Indeed it is.

I have been at the same company since March 1/2004. And since that time I have never been as busy as I've been in the last month + 0.5. I've written a total of 10 lines of code for personal reasons (which ended up being used at work anyway) since getting back from my xmas vacation in Winnipeg. I am fucking tired.

I know this will put the hate on me given these hard economic times, and I don't mean to rub it in for those who are having issues - I'm sure my turn will come more sooner than later. But yeah, that's why I've not typed anything in recent months.

Wisdom for the day:
People who make/use/distribute spam bots and those who just spam in general are child molestors and should be hunted down and injected with AIDS.
So I've updated Gorgon. You can read about it and any changes I've made here.

A quick question to anyone who's using Google code
First the back story:
I never really questioned it until tonight. But when I went to remove my old version of Gorgon, it told me I couldn't delete it because it had been downloaded too many times. OK, I know that's standard procedure. However, Gorgon's (v1.1.0.0) apparently been downloaded 190 times... That made me think, who in fuck is downloading this? Then I thought about an anomaly I saw late last month. I was looking at the download stats for the recently released v1.1.0.0 of the example files. I think it was like 9 or 10 downloads by that point. I remember looking at it the next day... something like 75 downloads. At first I thought that it was just really popular (hey, I can dream). But Gorgon itself was still only at like 7 downloads or something. Then a couple days later, Gorgon took a big jump to like 80+ downloads overnight. That struck me as odd. And now, as of today, it's apparently at like 190+ downloads. This of course makes it impossible to delete the file (and recover my extremely limited space). I wouldn't care so much if I could prove that these downloads are legitimate AND it was a simple process to get more space (the requests for more quota are REALLY slow in being dealt with I've found). But I have a sneaking feeling that something's not right there since Gorgon's not really -that- popular (and thank fuck, I'm too lazy to handle the fame). I filed a report to Google, let's hope they don't think I'm a paranoid freak [grin].

The question:
So has anyone else using Google code noticed any big, and odd, jumps in their download count overnight or even within a couple days? Do you think some bot is just leeching these files over and over? Am I paranoid? (if you stop being paranoid, that's when they get you)

So I checked the download count this morning, it was at something like 7 or 8 downloads. I just sat down and checked it again, now it's at 70. That just seems weird.
ATTN Drew Sikora: You don't need to mention this entry in the weekly reading section, there's nothing of real substance here - kthxbye.

So I'm jumping ship and am moving my "journal" (i.e. blog) to my own site. Eventually this journal will disappear since I've cancelled my membership. But until then if I make a post on my site about something semi-interesting, I'll post a link to it here or some junk.

I've changed the site to be less Gorgon focused since I might want to dump other crap on there (after all, I am paying for it) and I'd rather just have a single entry point to it all. I worry that this could be a little confusing, but I'll hopefully get that worked out sooner or later.

Since I'm using a blog to log the news entries about Gorgon, I'm wondering if I really have a need for forums anymore. Frankly they're a hassle because of the sheer number of spam harvesters and assholes who try and break them.
Version (Ionian) is now live. This is a final release version and that means v1.1.x is now out of beta. The list of changes are located here.

Note that since the beta, I've yet again changed installers. I know some people don't like installers (and I don't either sometimes), but it's really handy when I need to set up file associations, and have some sort of automated uninstall. Plus the installers will automatically detect whether the Visual C++ 2008 SP1 runtimes are installed and install the necessary files if needed. That's a convienence that I appreciate. Note that I don't have redistributables for DirectX or .NET 3.5 SP1. Those installers are huge, and I don't think I'm allowed to package the web installers - nor am I able to write the install scripts required to download them (yet). For now it just tells you that you need those packages and will abort until they're installed. Links to those installers are provided on the downloads page.

With that said about installers, please be sure to remove any previous version of Gorgon before installing. If you were using the betas, this should just amount to deleting the directory you installed Gorgon into and the start menu folder.

From this point on, I'm only going to be making small corrections to the library if a critical bug pops up. I don't plan on doing any other major additions or upgrades (at least, not for a while). I'm going to focus on other projects in the coming months. I will be keeping an eye out for bug reports on the forums and on the google code issues page so I'm not abandoning the library. However, if there's anyone who'd like to pick up the reins of this project and move it on to the next level, let me know via the forums and I'll add you to the project user list.

Anyway, enough of that. Go download it and write something spiffy.

Balls in a blender

So, after several failed attempts over the years, I'm actually able to use Blender. I can't count the number of times I've tried to learn this program. I think it has to be one of the most user unfriendly unintuitive programs I've ever used. The developers seriously need do some time in UI prison for crimes against me. But I digress...

I've seen a number of people say "you just have to get over the initial learning curve". And this is true. I stand by my above statement, but after putting some real effort into learning it, I have to say it's awesome. That is, Blender is great, and the UI is still horrid, but now I know how to use it. I have to give them props for really decent documentation and tutorials on their website. Without those I would have given up on it (again). I really think it's a great program, it's too bad that I had to put 2 days of effort into just trying to basic things with it. Oh well, I only needed to learn it once and I think I'll stick to using from here on in.

Whenever I play around with rendering software I always do the mirror ball test:

The quality is pretty good, although it's certainly not the fastest renderer I've ever seen (took about 2 hours for that image on my 2 core E6750). I'm aware that I can switch out renderers, but I haven't learned how to accomplish that yet. I read something about the yafray renderer, but their site seems to be having difficulties so I wasn't able to try it out. So now I can join the 3 other people on the planet that's saying "Blender is OK".
I've put up an update for the Gorgon BETA. It fixes a few small things I found this evening. So you can grab the update from here.

One of these was actually kind of simple to find, and given how little feedback I've received on the library, it's either extremely stable (very unlikely) or no one is actually using it (or they fear me). I'd really like to get some feedback. If it's got bugs, I really need to know and if there's something not right with the design, I especially want to know. I can't make it better unless people tell me what they like and don't like.

I know about the shitty docs, but c'est la vie. I fear the documentation.
So I released a beta of v1.1.x (Ionian) of Gorgon today.

You can get it here.

It's got an extensive list of changes, and those are noted in the changelog.html file. The big thing is that I've dropped the awful LGPL license and switched over to the MIT license. It just seems like a more permissive license than LGPL.

So go download it, laugh at it, and question my skills. Then post on my forums/issues page about how flawed it is. No really, I need to squish bugs.

Also, don't forget to tell me how C++ is so much better than C# and how I'm missing the L1 cache in the phase modulator inducement rectifier on top of the L2 cache buffer vsync because I use a dirty whore of a JIT compiler. Yeah, I'm still bitter about how that stupid thread turned smart people into blithering idiots.
Why is it that these so called "professionals" all act like children when their favorite toy is being called into question? The only person on that thread who's even making the least bit of sense is stimarco.

If those people were really professional, they'd have pointed out how a thread like that is worthless, of no value to anyone, and had it shut down and moved on with your lives (like I did). It's starting to look like a nerd chest thumping exercise. "LULZ! LUUKZ HOW SMARTZ I IZ!!! I KAN K0DE C+_ BETTAR THEN CSHURP!" Get over yourselves. Someone doesn't like playing with the same toys as you, it's hardly the end of the world.

We all have opinions. But this is just taking opinion to the land of the absurdly stupid. Some people have taken a conflict of opinion and turned into some sort of holy war. I don't get how people that smart (Antheus, I'm looking at you and your silly rant "SHOW ME TEH CODEZ!!!") can be so fucking stupid. Why do you care? Are you worried that this moron who started this thread will actually begin the downfall of your precious language of choice? If you're worried about a spread of misinformation, I'm afraid you have A LOT of work ahead of you. You'll probably need to go to slashdot first, they have quite a backlog of wildly inaccurate information on a great many subjects.

The worst part is that this isn't even in the lounge (which, I hardly go into anymore thankfully). This has no place in the game programming forum in my opinion.

I need that stab in the face button yesterday.

Joe Satriani

Just got back from the concert. It was awesome. Satriani was in fine form. My friend spent most of his time staring in some sort of trace-like-amazement. Especially since we were right up against the stage (I managed to get us front row seats) and it was his first time seeing Satriani play (ever, not even on youtube, go figure).

Here are some really bad cell phone shots that I took:

Glorious no?

More updating

Since Moe constantly complains that I don't update this journal enough:

Today I started working on the next update to Gorgon again (I had to take a break from it). The library is actually pretty complete, it's just the additional examples that need doing. With that said I've uploaded a couple of new screenshots to the Gorgon website.

If you're lazy, here's a couple of small shots:

See what I did there? I only gave out small screen shots so you'll HAVE to visit the website. I'm evil [evil].

Anyway, I don't think people are using the library, so I don't think I'll be updating it anymore after the upcoming release (except for the occasional bugfix, and no I don't know when this current version will be released).

This new update is going to be a big one and will contain a LOT of breaking changes, especially for the animation system. But then that was the whole idea behind creating multiple branches of the code.
Ravuya deserves cold hard cash money for this link (which I found on his twitter web gadget thingy):

This is an answer to a lot of stupid speculation by these "tech journalists". I love Chrome, it's a nice little browser. I'm going to continue using it as my default browser until, like firefox, they fuck it up beyond usefulness. But in no way, shape or form will I ever call it my "web os" or the "windows killer". Why have these idiot "journalists" gone and told the world that a web browser is the end of Windows? A WEB FUCKING BROWSER!? People are sheep, and 90% of them will believe anything. And because they're sheep they'll believe what these morons write.

I can't wait until our clients request that we create a version of our apps for the google chrome os cloudsphere multimedia vrml virtual reality environment. I feel sorry for their IT departments.

Ultimately I think we need to hunt these morons down and shoot them (oh Spore, you've taught me so much about managing infestations). They're a plague. But since that's illegal, I'm going to have to resort to spamming their comment section with the aforementioned link whenever I see another "Chrome == Teh Windowz Killar!!". Someone has to set these assholes straight, might as well be me.

So while my journal is still active (I've cancelled my gamedev subscription, please don't ask why). I thought I'd post this to you optimization experts. Namely those of you doing .NET optimization (if anyone actually does that?):

So. Here's what's going on, I've got a little memory buffer object and I want to make it as fast as I can manage in .NET.

I've thrown together a this little benchmark program that you see in the picture above. Basically it runs 3 tests, each test writes 500,000 vertices @ 56 bytes per vertex to the memory buffer and each write is repeated 1000 times. The 3 tests are as follows:
1.  Write using GC.Alloc to pin the source vertex array and the destination byte array for every iteration of the 1000 iteration loop and use unsafe code to copy the data.
2. Pin the arrays outside of the 1000 iteration loop, but essentially the same thing as test 1.
3. Prepare the vertex data as an array of 28,000,000 bytes (56 bytes * 500,000) and use Buffer.BlockCopy.

As you can see, it's not exactly swift and I expect these numbers are probably not as good as they could be, especially compared to C++. You'll note that the pinning of the arrays per iteration of the loop really has very little impact on my time compared to pinning once. What I was surprised at was the difference in time between the Buffer.BlockCopy and my own code. 4 seconds seems like a lot. I'm not sure if given the amount of data and iterations that these numbers are good or bad or if the difference between 1st and 3rd tests are really that big of a deal. Thus I want some expert opinions on this.

I've never been good with optimization. In fact I'm horrible at it, so there's a very high probability that I'm not doing something that I should be to improve performance.

Here's the Writing code:

public override void Write(T[] data, int startIndex, int count)
int dataSize = Marshal.SizeOf(typeof(T)) * count;

GCHandle srcArrayHandle = GCHandle.Alloc(data, GCHandleType.Pinned);
Write(Marshal.UnsafeAddrOfPinnedArrayElement(data, startIndex), dataSize);

// Note: _lockPointer is an IntPtr to a pinned
// destination byte array and is set up when the
// Lock() function is called
public override void Write(IntPtr pointer, int count)
byte* src = (byte*)pointer.ToPointer();
byte* dest = (byte*)_lockPointer.ToPointer();

MemCopy(src, dest, count);

and here's the memcopy code:

private unsafe void MemCopy(byte *src, byte *dest, int count)
if (count >= 16)
if (IntPtr.Size == 4)
int* intSrc = (int*)src;
int* intDest = (int*)dest;

*intDest = *intSrc;
*(intDest + 4) = *(intSrc + 4);
*(intDest + 8) = *(intSrc + 8);
*(intDest + 12) = *(intSrc + 12);
long* longSrc = (long*)src;
long* longDest = (long*)dest;

*longDest = *longSrc;
*(longDest + 8) = *(longSrc + 8);

src += 16;
dest += 16;
count -= 16;
} while (count >= 16);

if ((count & 8) != 0)
if (IntPtr.Size == 4)
int* intSrc = (int*)src;
int* intDest = (int*)dest;

*intDest = *intSrc;
*(intDest + 4) = *(intSrc + 4);
long* longSrc = (long*)src;
long* longDest = (long*)dest;

*longDest = *longSrc;

src += 8;
dest += 8;

if ((count & 4) != 0)
int* intSrc = (int*)src;
int* intDest = (int*)dest;

*intDest = *intSrc;
src += 4;
dest += 4;

if ((count & 2) != 0)
short* shortSrc = (short*)src;
short* shortDest = (short*)dest;

*shortDest = *shortSrc;
src += 2;
dest += 2;

if (count == 1)
*dest = *src;

Note that here I try to force it to use long when I'm on a 64 bit system (which I am). I don't know if this would be a performance boost or not, didn't really seem to make much a difference when I took it out, so I left it in.

Feel free to chime in with any advice on how to make this faster or if you want to use this code, then by all means have at it.
For some odd reason, for the last year, I have felt compelled to visit Paris.

Why though? I have a French vocabulary of about 4 words. And my knowledge of the language never extended beyond Grade 9 French with Mr. Pender, and what little I abosorbed from that class has long since been overwritten by my more pressing things like addresses for porn sitesfamily members birthdays and such. And I'm a terribly picky eater (although you'd never tell by looking at me, I look like I'd eat everything), so French cuisine isn't the motivation as I'd likely starve to death, although I'm sure it'd be great for the weight loss.

I've always wanted to go to Europe, mostly for the history and to see the lifestyle/culture, but that includes many countries. And ultimately I think I'd like to live and work somewhere in Europe (not necessarily and not excluding Paris). But that really doesn't answer why I need to specifically go to Paris.

I have no idea why, but I want to visit Paris. Maybe I'm just getting old and need a change of scenery.


So as a few people here knew, Wednesday was my birthday. I turned 33. I'm fucking old.

But the birthday is not the point. No, birthdays are about caek. And while it's not floorcaek, my cake was TEH AWESOME. My fiance, Lacey, made me a wicked little R2-D2 cake (I'm a starwars nerd btw). Behold the glory:

Yay me.

Stupid stairs

So today I took a little tumble off of the stairs at work (I wasn't very high up, only like 3rd step, so I managed to avoid suicide) just because I wanted to see what it felt like. It turns out the experts were correct. It hurt. And now I'm hobbling around on one leg while the other repairs itself. Putting pressure on it with my lard encrusted body is not what I'd call pleasant.

More importantly: my laptop survived.

So Phantom is stepping down as moderator of the OpenGL forums. That's unfortunate, but reading his journal entry about it made me think of something.

By Phantom
The constant arguing about how things should be done becomes tiring after a while and while I might not be able to hit the optimal solution right away I think I'll enjoy it more if I get back to that basic me vs the machine way I had of doing things.

On this website (and many other sources) there's a "my (school's) way or the highway" mentality towards many things. Too often I find that people are too critical or are too rigid in their thinking. e.g. It's not like they taught us in academia, thus it's wrong or it's not following a proper design pattern so you're clearly bound for failure. And a lot of the guilty parties aren't even out of school or haven't been doing this professionally (all areas, not just games) for very long.

There's an old saying: "Those who can, do. Those who can't, teach." And it's pretty bad when you can't do either.
Another "vs." Linux thread in the Lounge. Oh joy. Yes, I know the OP is trying to make it look like it's not going to be a hate-fest by labelling it differently, but that's like saying a green apple is not an apple because apples are red.

And now there's a XNA vs. the universe (which is quickly turning into C++ vs. C#) thread in Game Programming. Nice.

Honestly, why don't you guys (i.e. those who have the ability) just shut that shit down before it even starts? You know where it'll lead.


I just bought the new Joe Satriani album Professor Satchafunkilus and the Musterion of Rock. Aside from having a very odd name, the album is pretty standard rock guitar with a bit of shreddy goodness. It's quite good, but it took a bit to grow on me.

Satch has been moving away from the shred/experimental guitar style for the last few albums and more into bluesy/rock territory (and thus somewhat simpler music). This really isn't a bad thing, but it has taken some getting used to. He was always marrying technical playing with "feeling" (i.e. he bends his strings [rolleyes] - FYI that's a stab at the idiots who think feeling requires you to sound like Dave Gilmour (and yes, I know Dave Gilmour is great, fuck off)). The awesome thing about his current approach is that it sounds simple, but fuck me, it's not. There's a lot of subtle shit going on (and sometimes not so subtle) so you really have to listen. I think he's managed a great balance on this particular album. Joe no longer needs to prove his skill to anyone and now he's able to focus on writing stuff he really enjoys playing, and that's what comes through here.

And this sets me on my rant of "feeling" in guitar. Christ I can't tell you how many idiots I've weathered saying "You play fast, thus you have no feeling" (not in so many words, but they're inarticulate twats). These people really and honestly do NOT get it. Just because it doesn't invoke a feeling in you, doesn't mean it lacks feeling. It'll invoke a feeling on someone. And if you really enjoy playing that kind of stuff, play on, if not, more power to you. Some people take "feeling" to mean the guitarist is feeling "something" while he/she is playing. But how do you know Yngwie Malmsteen isn't feeling something when he's shredding his fingers off? You don't and until you actually write something like that you can't comprehend (fyi, I've seen Yngwie play live, he looks like he's feeling quite a bit when he plays kthxbye). Some of these idiots who bitch and moan about how this kind of music doesn't have any 'feeling' are usually trying to rationalize their lack of ability, a "I can't play it, so it sucks" frame of mind. Don't rationalize your lack of talent by saying it's 'art', you just sound like a whiny bitch that I want to hit in the throat.
Sign in to follow this  
  • Advertisement