Older blog entries for chakie (starting at number 116)

Ho, ho.

Been a little bit busy with all kinds off stuff. Haven't done too much on Civil for a while. I have a small problem that I don't yet know wether it is a small problem, a big problem, a huge problem or no problem at all. Need to think about it for a while.

Worked some on my 3D engine written using Pygame and PyOopenGL. Masochistic, I know, but it's quite fun. I manages to get a working first person camera, as well as a camera that tracks the target from behind. The terrain rendering works nicely too, as it renders trees and houses just fine. Fun to work with, but it's so far for no real reason.

Went to see Rammstein last Sunday. Massive show, and easily the most impressive stuff I've ever seen live, including Metallica. The show was perfectly planned from the beginning to the end, with horrible amounts of pyrotechnical niceties. Me liked. :)

Work
    Horrible.
Civil
    Started getting productive again on Civil. I've been a little bit lazy for a week or so, mainly as I played with some OpenGL and some stuff for a future 3D version of the game. Must look into the future, you see.

    Anyway, the new website was put up by TheCorruptor, and is looking mighty good. He's once again done a marvelous job. Stuff is now split up into more and smaller pages, and a first draft of the Player's Manual was also added. What I want to see more ASAP is utilization of the scenario preview XSLT stuff. This is something truly unique, and combined with the upcoming scenario server we will have something that few games have, not OS nor commercial ones.

    Started working on the end-of-game dialog. I want to be able to show the great backdrop that TheCorruptor has done, while at the same time show some statistcis on the same dialog. This is now accomplished by first showing the backdrop, and then gradually darken a part of the image and finally paint the stats on that darker part. The player can see from the type of backdrop shown wether he/she has lost or won. The statistics seem to be calculated fine, and a winner determined too, which means that 0.60 isn't far off. Which of course is good, I need all motivation I gat get right now...

Work
    Horrible.

    My boss did a few silly promises that basically meant that something we hadn't really tested should work by Friday afternoon. So we've been having a hectic week implementing those features. Well, it all turned out ok, and the feature really made things faster. In hindsight it was good, but I wasn't a happy camper when he told us what needed to be done. :)

Civil
    Not too much done this week. Did some code for the ending dislog, and it's about ready now. Still needs some touches to make the text more readable. I was thinking about adding a black "box" under the text and make it partially transparent so that the text is painted on something darker, thus making it easier to read. Should be simple.
Detritus
    The new MP3-box is soon ready. Have been gluing the walls on, and the only missing thing is something where the harddrive can be attached. Then it's attachment time and time to take down the old machine and move some components over to the new one. Should be fun.
Technology Demo
    I got bitten by the OpenGL bug again, and just had to do something with it. I installed PyOpenGL and got it working fine after some initial fighting. Getting my Matrox G450 to do hw-accel 3D was then another matter, and really had me "slightly" pissed off a few times. Works ok now, but it wasn't too trivial.

    So, I hacked up a simple landscape renderer. This is something I've done many times before, but never managed to get working at all/properly. This time it was really easy. I just love Python. See a few screen shots. Nothing special, but really a quite big thing for me personally. Shows that I still can learn OpenGL and do something with it. TheCorruptor did the textures for the brick house.

    Anyone got ideas for what I can use this engine? It will eventually be the foundation for a new version of Civil, but that's still a long way off... :)

Not much done on Civil for a few days. I don't know why. Been a little bit busy with all kinds of stuff, both RL and work.

Our new incarnation of the mp3 player, Detritus, is progressing quite nicely too. The box is soon completed, as I last night glued on the back panel too. Missing is now only the front panel and then I'll see wether the "roof" still fits. I hope it will... Anyway, for the front panel I need to cut out a hole for the LCD. That won't be too trivial, but I'm sure I'll come up with something.

Got inspired to try out some OpenGL with Python too. It's so long since I did any OpenGL that I'd forgot about a lot of stuff. The summary is anyway that doing it with Python (using PyOpenGL) is a lot of fun, pretty fast and lots of fun. I tried a simple terrain renderer using height maps produced by Terraform. See samples here and here. It was a lot of fun to develop, and it's actually the first time ever I actually got textures to work ok together with per-vertex normals and lighting. Not too slow either, those shots are 20k triangles without any optimization more than that they are slapped in a display list. No culling of any sort, LOD or anything else. That's going to be the hard part. I'm also trying to add a few trees there which works ok, but I can't seem to be able to load any textures with transparent areas. My trees look stupid with magenta all over the place... :) Colorkey would be nice, but I don't have any idea as to how that might work, if at all.

Civil
    Not much done over the weekend. Decided to take it easy on the coding for a few days. :)

    Started mentally planning how games can be saved and loaded. Should be fairly easy, as I think we'll request the server to save games, not the clients. This means that a player that wants to save a game just sends a request to the server, which the saves it. This makes it very easy to continue a saved game, as the clients just get a saved game from the server, just like a scenario when starting a new game. A saved game is really exactly the same as a normal scenario, the only difference is that units have different stats (casualities) and the current time has advanced. Just got to love XML...

Detritus
    Did some physical hacking on the new case for the mp3 box. Seems to work out quite fine. I've all the pieces (6) for the actual box, what is missing is really some holes and the contents. I already cut out holes in the back panel for the power supply fan and the connectors to the motherboard. The mobo had (as is common nowadays) a square metal "panel" that fits around all the connectors. It made it simple to just cut out a square hole where the metal panel fits in. Today I'll start gluing the main walls in place and see how to get the harddrive attached. The thing won't have a floppy nor CD/DVD. If I need to do an installation I can temporarily plug in a CD.

    As far as painting, I've got a few tips. Unfortunately the stuff we have here doesn't use the same names as paints found in the US. But something that uses similar active components should work out. I think the best thing would be to go to some professional paint shop and ask for advice. :)

Hmm, I'm pretty sure i wrote a long entry yesterday. Maybe I just fscked up somehow, or then Advogato lost my entry. Somehow I assume the former. :)

Civil

    Work on Civil has been going well. We tagged version 0.50 a few days ago. This version marks the first of a series of milestones all the way up to 1.0. Now we a have pretty good grasp as to what needs to be done for each version, which is good. New in this version is a basic working combat, audio, intial pathfinding, major stability and usability improvements.

    I started working on the stuff for 0.60, but there's not that much to do. That version should have working end game dialogs that can calculate some statistics and determine a winner, as well as have a framework for background music and sound effects. The latter is already done, and the former is almost working. So that milestone isn't too far away. As for sound effects it seems like John will be our voice actor, as he has or can fake a nice southern accent. We do need some other environmental effects too, such as volleys of fire, galloping horses, marching men, firing guns etc. Have anything you'd like to contribute?

    I noticed that Linux Weekly mentions us on the Development page, which is nice. Not that we're actually releasing anything to the public yet, but increasing public awareness is always good. We won't really release anything until we have a solid 1.0.

Detritus
    A few days ago I got the plastic sheets (plexi really) for the new case for our MP3 system. This project has been on hold for a long time, but as it works and is in daily use the reason to rebuild the box has been few. The current case is however quite loud and definitely ugly, so that alone justifies the rebuild. I also get a nice chance to play with my new Dremel multi thingie, and I got a few new grinders and cutters yesterday. Fun thing! I'll start assembling it tonight, but it'll take a few weeks as I don't have that much time in the evenings.

    The only problem I have now is how do you paint such a thing? I want it non-glossy black, just as the rest of our system, but I don't think normal paints can be used. Any ideas?

    Oh, the system is called Detritus, as that's the name of the machine. Read some Terry Pratchett books and you'll probably stumble on that name a few times. :)

Hmm, a few days since last update. I've been too lazy and some days even too buys for a new entry. Such is life. :) Civil

    We're still cleaning up the code an ironing out some last bugs before the 0.50 milestone can be tagged. Not that the version bump will actually mean anything real, we're still not releaseing anything (apart from CVS, of course). It's mainly for our own sanity, I suppose. Makes at least me feel we're getting somewhere. This project has been going on now for 1.5 years without a single release, so I think it takes some grunt and confidence to find the energy to keep going. :)

    <rant>
    As to dates within Civil I think they actually should be written exactly as the standard declares. It makes sorting much easier, and would be consistent. The format is an ISO standard, and some info can be found at Date and Time Formats. The format specifies YYYY-MM-DD as the official format, and I usually use it myself, especielly in filenames etc. I think the MM/DD/YYYY thing sucks rocks. Makes sorting impossible, and puts a less significant piece of information in the middle (DD), which is plain silly. :) I think DD.MM.YYYY is somehow acceptable, as the parts of the date are at least in a consistent order, but it is too of course wrong, but easier to understand. When will the English-speaking world abandon their own ideas for things and stuck with ISO-standardized things? Stuff like dates, weights, lengths, volumes etc come to mind. What is a "foot" really? There's a nice standardized thing called a "meter" that the rest of the world uses.
    </rant>

Work
    Java is kind of boring. Luckily I can start a smallish installer project and do it in Python. Should be fun, although quite simple.
Other
    Went to see my wife in Karlskrona, Sweden, where she's been for two weeks now (works for Ericsson, who has a large branch there). One more week and she'll be getting home. Karlskrona is a nice town, although I was only there for a few days. I liked the old feeling of it, and the few people we met were really friendly. We visited the Marine Museum they have there, and it was amazing! We spent 3 hours there, and would've been longer if it hadn't been closed for the day. Lets of fun stuff about Sweden's marine powers from, say, 500 years ago until modern times. Well worth a visit.
Project
    Trying to find some shop that sells plastic, something like plexi, but not necessary transparent. Nothing found ye.

A heavy weekend. Celebrated the 20th anniversary our department's "student association". Much fun was had, and I even held a speech together with my wife. A little nervous, but it all went fine. :)

Seems MikeE has found a few bugs in Civil wrt to the turn handling. Good that they creep up now, and not after a release. I spent some time thinking about it and then came up with a somewhat improved and simplified system where the server always informs the clients that a new turn has started. Should be a lot more stable. It could easily get pretty hairy if we loose some important command from the server due to some timing problems. Also started working on a few server side "AI modules" that should detect when a game ends. One more of MikeE's great ideas.

Lots of hacking on Civil yesterday. Managed to sort out much of the combat related code and implement basically working combat policy handling. We're now very close to tagging 0.50 in CVS. It may sound like a very minor version, but at least for me it's very important. After that we have a rough TODO-list for everything that has to be implemented and working for each 0.10 increment all the way to 1.0. We won't really release until we have version 1.0 ready.

What now remains is finding a few bugs that MikeE apparently discovered when testing. Well, if there weren't any bugs at all I'd be worried. :)

0.60 is going to be easier, as it is mostly UI coding with quite little logic, and making a nice framework for sound effects.

Much work on civil today. Fixed a lot of small problems in the combat code. It's now actually possible to have some kind of combat, and even get stuff destroyed. Great! I also started working on a "combat policy" thing. This is used by the player to set how a unit should react in case some enemy pops up within firing range. The player can tell a unit to:

  • hold all fire and not fire at any enemies
  • defensive fire only, i.e. fire at enemies firing at you
  • fire at will, which means that the unit will search for suitable targets and skirmish.
For this there has to be some kind of dialog where the player can set the policy, and that dialog is what I'm working on right now. Progress is good, and it's actually very fun.

107 older entries...

New Advogato Features

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!