I have come to learn today that Harry have great plans on how to take over the world.
I have come to learn today that Harry have great plans on how to take over the world.
Months have passed - better update my advogato page. :)
Things are progressing well with ClanLib. clanDisplay2 is reaching a state where it can be used to create real games - my Pacman game has already been ported. Its not feature complete, but it gives an idea of what direction I'd like the new display component of ClanLib to end up.
I recently read an article called It's STILL loading? from the Game Development Conference (GDC). Normally I'm way too lazy to read these kind of articles, but lately sphair have been complaining about ClanLib being slow at loading resources. So I decided to give it a try and see if there was something interesting in the article that wasn't just plain obvious. :)
Unfortantly the article doesn't really do a good job at focusing on a specific topic. It uses most of the text on explaining why having things as a package (datafile) is better than as raw files, how files should be modified while game is still running, and all kinds of similar abstract ideas.
Its a lot of claims without numbers. For instance, the article mentions how opening stuff from your own home-made datafile index hash table is quicker than opening files using the operating system - and of course it can be faster. But how much faster? How many resources do you need before it becomes a real issue anyway? He mentions how many resources a whole game contains - but thats not really fair, since they aren't all loaded simultaneously.
Its not like I dont think all those things wouldn't be cool to have in a resource system - its more a question if its worth the efford. I could imagine that its far more important if the individual resource loaders are fast - and he does mention converting common formats to game specific formats, but its not what the article is focusing on.
The article also touches the concept of loading stuff using mmap, and even mentions how the emulation layer of mmap in Windows 9x totally sucks. But again, there are no numbers, so its hard to tell if memory mapping a resource will give a 10% boost, a 50% boost or triple the loading speed. He obviously gave it a little thought, since his API allows resources to be specified as random accessed, block or streamed. Just need some numbers to know if its worth the efford. :)
My point here is that it could just as well be smart resource loaders/savers that make his games load fast, as much as its the file system structure itself. Its probably a combination, but its pure guessing until you got that profiling of the system. :)
Yes, so it is christmas... what a lovely time of the year, right mstarch? ;-)
(Whom am I kidding? I bloody hate christmas. I hate the fact that everyone seem to be having a great time, except me...)
Ermn... never mind that little rambling, talking about christmas gets me sidetracked. :) What I really wanted to comment in my diary today, is mstarch's little comment about we building railroad tracks:
Yes, I suppose you're right to a certain extent. But dont worry, there is still a long time to anything remotely like that will happen. It may seem like even Microsoft are having a hard time figuring out what to add to their operating system these days. Been running with WinXP here for a week now alomst, and yet, I've not seen one single really good reason to upgrade from Win2k. All that seem to be new in WinXP, besides minors like faster booting and other finetuning, is bundling of misc. new markets Microsoft desire to capture (eg. the IM market).
Hardware companies like Intel also seem somewhat screwed these days. It doesn't make much of a difference wether you have a 1 ghz machine or a 2 ghz machine. Both are 'fast enough', just like Windows 2000 is 'good enough' as an operating system (at least for the most common tasks).
So does this mean we're at the end of the railroad? That we've built every track worth building? No, luckily not. The problem for Intel, as well as for Microsoft's OS department, is that our hardware and OS is more than good enough for the classic 'office' usage. But it is still not fast enough for really bandwidth requiring things - eg. television over internet. We may embrace how gigantic our discs are these days, but think about it, how big are they really, if we want to store DVDs on them? Our ADSL is pretty pathetic if you try to stream live video in DVD quality, not to mention the bandwidth required for the server, if only 100 people were watching it.
You also do not have to worry too much about productivity tools getting completely done. While the basic packages might end up like that (eg. the Office package. I'd settle for a Office 95. It more than covers all my needs), you'll always see management screw up. See them spend tons of money on some AMANDA project, just to realize it will not do. Or the system might actually work just fine, but then management changes their mind on how everything should be structured, and the system renders useless.
But... let's assume I'm wrong. Then there will always be one thing left to code, that will render old and useless over and over again: games. :)
So why not turn this fear into an advantage? Start coding on ClanLib again! :)) Lets make ourselves famous and known in the gaming industry, so when the mass layoffs of coders start, we can quickly plant our boots in some game company, where code never grows old. :)
(Sorry, couldn't resist the temptation... hehehe)
Hmm, its been a long long time since I posted a diary entry here. I probably wouldnt have done so again, if it wasnt because I'm pretty much dead bored, and nobody seemed to comment on my latest overview stuff, so this seemed like the best 'waste my time' thing I could do right now. :]
As people following clanlib development close might have noticed, I've been mostly working on writing a completely new version of the networking classes in clanlib. I'm rather proud at how nice they have formed to be, and I really think its a huge improvement over the previous networking stuff.
In fact, I'm pretty excited these days about how all of clanlib is shaping up. There was a very long period of time where the only reason I even coded at clanlib at all, was because I had managed to get a userbase (althoguh somewaht limited) and felt that I shouldnt cancel the project, only because then it would hurt those projects.
The cool thing about clanlib these days is, that a lot of the core APIs are beginning to be feature complete and cleaned up enough for my early clanlib design faults. ClanCore is pretty solid, despite the I/O Data stuff is a bit too primitive, and our string class could be far better than it is.
ClanGUI is shaping up really nicely. It was a pleasure to experience at work, how I'd rather have clanGUI in certain situations than Qt's GUI library. Not generally, Qt is far more maturized than clanGUI, but there was places where I missed clanGUI specific features. :)
With the new networking API almost ready, and with a new display API on the drawing board and even half way implemented, it really looks like ClanLib is almost going to become what I originally dreamt it to be: A nice and feature complete game SDK.
So if you had been wondering why I've been so active on ClanLib lately, then its because I have started to believe that I can fix the flaws in ClanLib and make it an attractive SDK that I might even want to use myself. :)
I just want to say that I totally agree with Starch. I too hate hardware. :)
PS. Thank You for removing that butt-ugly background image from your homepage Starch. Now also please remove the butt- ugly text :P
I've been a bad boy and havn't updated these pages for years. But now I'm doing something about it. :)
Since october, a lot of changes has been made to ClanLib. Far too many to list them here. Recently Kenneth (sphair and Jeroen (japj) did a great job and released ClanLib-0.5.0. Very nice to see them spend all this time on testing and verifying misc stuff and get it out the door.
My personal agenda for the next coming days is to finish some work stuff, and then afterwards add those things that didn't make it into 0.5.0 (eg. the linux opengl support).
YTalk is working on dark again! (dark is our clanlib server). In the meantime though, more and more people have started to regulary join our clanlib irc channel (#clanlib on irc.openprojects.net), so while ytalk is truely superior in some ways (it feels more alive when chatting with people there), I won't go back and ytalk with sphair & starch.
Hanging out on an irc channel was originally done primarily because our ytalk on dark wasn't functioning, and I really hated using irc as a replacement. But now that a few more people have joined the channel (japj and drivers to mention a few), it has become A LOT more interesting and useful. Working alone on a project can be very boring, and although a mailing list is truely useful for detailed communication, it just doesn't provide the same as simultanously working together with other people on a project. Working together with sphair and starch has always been fun, but nothing compared to when you add more people to the project, like now :)
I actually now WANT to work on clanlib, whereas I for a long time felt it was something I owed to myself.
So, many days have elapsed, but still we have hours left of our 24 hour Brutal project - now how can this be? :)
The answer is that Kenneth Time Bender Gangstoe has invented this genious system where we can halt the time. Every time we found some issue in ClanLib, we halt the time and repair clanlib. Sleeping is also a valid halt reason. :)
As for Brutal itself, we have gotten the basics of the netobjects up and running (proof of principle). But the game engine seriously sucks, and we need to work hard on that one now - but after that I think we should have a good example of how the netobjects can be used in practice.
CVS is a proggy that seriously could need a rewrite. Kenneth (sphair) accidentially added 3 very big ogg vorbis (.ogg) music files to the repository, and forgot to set the binary flag (-kb) when importing them. This easy-to-make mistake has caused us to waste HOURS because cvs simply TOTALLY breaks down because of this. As of this writing, cvs still freezes on checkouts of the Games/Brutal/Music directory.
I've beginning to be more and more serious about finding an alternative to cvs, especially because CVS is so unflexible in many other ways; and this isn't the first cvs breakdown I've experienced. But there aren't that many alternatives out there; either the alternative sucks by being strickly file locking based (eg. Microsoft SourceUnSafe), not crossplatform enough for our demands, or having some fancy requirements causing us uneccesary extra work.
The far most interesting one so far is BitKeeper, but I seriously dislike their "open logging" policy; something that really annoys me is these "open" projects that are only free as in beer, but talk as if they were free as in speech. Using a open sourced version control system isn't a requirement in itself, but I truely hate programs that report back to the creators of the program. This is in my oppenion ABUSE of Internet, and should in my oppenion be forbidden by law!
I'll probably not replace cvs just yet... unless I'm unable to fix the Brutal repository. Completely replacing the version control system is a big thing, and has to be seriously considered before continueing. And I'm not desperate enough to do that just yet... especially not when the alternatives suck in one way or another...
Brutal 24 hour hacking!
I'm very pleased to announce that the second version of the netobjects are almost finished. In order to test the new netobjects, sphair and I have started a 24 hour game, called Brutal Entity! (Games/Brutal in CVS) :)
As of this writing, the brutal clock says we have used 5 hours and 15 minutes. I'm currently working on adding a networked client/server world framework to the game, and so far the netobjects seem to have passed the test (yehaw!). In a few hours I'm sure we have enough framework running for a real network test.
I'll be reporting back when we get a little further with the project... :)
Time for the second diary post :)
As many people may have noticed, I have been wasting far far far too much time on Unreal Tournament the past year. I really needed a break from my coding hobby, being seriously exhausted by trying to make ClanLib an interesting project for other people. All my UT playing havn't been a total waste of time though - I've lately started to really enjoy working on ClanLib again, and it is now just a matter of short time before I'll start truely leading this project again.
My first step is that I've answered my pending emails today (woaw!) and decided to invest this entire sunday on ClanLib. So expect a lot commits on the GUI, the Win32 sound code and few posts about the net objects.
Ah... my first diary. Seeing that many other ClanLib people have creating an account here, I just couldn't resist creating one myself :-)
Ok, the first thing I want to comment is a little thing Donald Drivers (drivers) said in his diary:
I haven't heard back from the mailing list yet. I'm new to this so maybe it's some kind of social mistake to suggest an improvement (stated as a question) without knowing the whole situation, and without providing a patch (and testing it out yourself to see if it is feasible).
Reading stuff like this really makes me feel guily about my lazy email answering habit. I'll hurry up and answer your mails... :)
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!