Older blog entries for Excalibor (starting at number 7)

Wow, long time since I last wrote for this diary.

Been working on my LinuxFromScratch installation; it's pretty interesting to see how much stuff you need to have a working Linux system! I'm getting closer to a multi-user runnable box, cool! :-) And learning a lot in the process... not the fastest installation distro available, but really valuable...

Also been working in laying out the Physics class for Fleets and how to make the user interface something usable instead of a mesh of dots, lines and colors... Not easy to put a 4-dimensional environment into a 2D screen and get something barely adecuate, now I see why most games prefer the conical or isometric projection and don't worry about the 3rd dimension. That way you get a 2+1D game with 3D-like little figures for the ships/soldiers/monsters... but movement is basically 2D... Much easier to put into a screen and for the user to play...

Been working on some compactation techniques of R^3, but I'd need just the opposite, having all space in the surface of a hypersphere is not much help in this case... <g> Yes, I can develop the 2D view of the 3D surface, but how the heck may players find such a thing intuitive??? We are still, and basically, surface animals... I'd have to discuss this with a whale or a dolphin... Oh, well, anyway, it would make the Physics weird, as the Infinite would be a well defined point in the hypersphere... If anyone has any idea of how 'decompact' space into 2D's, and getting something that is adecuate to get 3D-like motion, please talk to me...

In the meantime, I'll concentrate into the classes, still lots of work to do...

Not much hacking, I am terribly tired and the hot is not helping...

Math::Vector et al don't seem to be very welcome in the CPAN family. They are right, there are other modules which handle vectors, but these are my vectors, after all... :-) Oh, well... I'll look for fame and fortune anywhere else...

I'm thinking very seriously about a class Physics which describes all the Physics of the Universe in Fleets. It may seem a bit silly, but this way I can simply make every object in the system to ask the class how they should move (ie, for each time iteration, what their new position will be). That way, we can implement ships, but also asteroids, space stations, planets, etc if we like; or put ships orbiting a planet, etc... They just ask what's their new position and the Universe replies and moves them. Just like it happans in the Real Life(tm) :-)

It's elegant, but maybe not too efficient, I'll investigate it and we'll just see. I've been thinking about new ship design and some cool ideas for the UI I still ahve to further develop, I'll keep everybody up to date :-)

Did not hack a lot yesterday, but my lunge in fencing is slowly getting better :-)

Fixed some missing things in Math::Vector class and now I think it's ready for prime time, let's wait and see if anybody else thinks it's a good idea... I'll post it to CPAN anyway, but it will probably remain in my personal directory unless people show some interest in the module... oh, well, it'll be handy for Fleet.

Also finished The Sentiment of the Sword, by CAPT. Sir Richard Francis Burton and published by the Journal of Non-lethal Combatives. Really cool, been a difficult reading, all that victorian english, old french and latin, but well worth the effort...

Things are a bit stopped with Fleet until I manage to put into the design some physical constraints... I may design a Physics class all the rest will inherit from... :-) It's like creating the Universe again ;-)

OK, been working in Math::Vector and Math::Vector::Vector3D and it's almost ready to submit to CPAN.

I've sent an RFC to comp.lang.perl.modules to know the opinion of people about it... I've checked there's a Bit::Vector package, but it seems overkilling to me for what I wanted to implement, a metric space through a vector space and a norm (R^n). I'll wait and see how people respond to it. I wanted to reuse Math::Polynomial, a very nicely written package, but there were too many 'dangerous' functions to disable or modify, and so I started it from scratch...

Vector3D provides vector cross product in R^3, which will be useful for Fleet to make the physics of movement for ships and missiles and "slow" proton beams (laser and electron beams move at light speed).

Not much more hacking, as I was working on the self-defense sprays article for JNC. I'm almost ready for another submission, hopefully almost the last one... :-)

Been reviewing Force Commander, by Lucasart, at my co-worker's place. Interesting, but there are not too many things we can take for the project, which will probably be called Fleet. Also helped him to setup CVS and get the source (from a floppy, no net access as of yet...)

Been hacking for a while late in the night, improving base Ship class and creating mutators and other methods. Have found I need Vectors and Perl does not provide any fairly complete package with them... Found one with Matrices and another with Polynomials, but both have very poor support for vector operations... I'll probably change one of them and extend it to have at least support for all vectorial space operations... that way we'll be able to implement a ship's position, speed and acceleration fairly easily :-) Movement, within the time grain will be choosing, should be as realistic as possible... I'd go towards a full Newton Physics support, but I'm afraid it would make things too complex to play (imagine you are manning 30+ ships of different sizes and displacements in a formation to change course maintaining the formation... a 100% realistic thing would be total chaos! But by providing a constant acceleration within a small time frame, things are simpler and movement still fairly realistic... still, people will probably need traing to do that without a Frigate collisioning against a Line Ship... :-)

3D is yet another thing... Human brain is not really ready to deal with full 3D sensorial information (that's why we get disoriented when diving and flying takes so long to learn... compared to driving a car, or walking), we are used to a 'fat 2D' world, or to a "stack of planes" at best... Moving basically 2 degrees-of-freedom objects in an isometric view in StarCraft or even the more complex thing of Force Commander or a "3D" simulator like X-Wing, etc is very different to manning a fleet of N ships against some other M ships in a real space, with accelerations, gravitational fields, etc... I don't think there's an easy-for-the-brain interface to 3D (even if we draw a rotating cube on the screen, which is probIaby the best approach nowadays... well, we'll see when we have to assault the GUI...

I was thinking on implementing the interface in C^3 (ie, three dimensional complex vectors) with info about position and speed at the same time... but it won't help, people is not used to phase spaces, either... and drawing C^3 in a 2D screen would be... a big challenge :-)

Despite there's FTL communications and travel in this Universe, intership communication will probably go by light and we are thinking about implementing that delay into the game, making it much more interesting... <eg> :-)

Not much more hacking and thinking, except some blueprints of some of the ships classes (Satellite Hunter and Destroyer), because I was also watching Ally Mcbeal, and was somewhat distracted ;-) There'll be more on Monday, I hope...

Not been hacking a lot as of late, with my b-day and all... Today's my first sister's b-day.. she's not hooked to the Internet, but here goes my happy birthday, Cristina! :-)

Been working on a revision on my self-defense sprays for the Journal of Non-lethal Combatives, I hope next submission will be closest to the last one...

Nants is gonna have to wait for a while, as I'm gonna start a new project and try to finish it this time... Space Realms hasn't gone too far, actually has not gone, stop. This will be different, more strategy oriented toward space battles... I already have an interested programmer (actually one of my co-workers) which is good, as I started yesterday late night :-)

Core will be in Perl 5, which is cool for this, then the GUI will be GTK+ or some other, we'll see when it's the time... Actually GUI independence is a part of the overall design phylosophy... As soon as there's more than shiptypes, a pic of ships silouettes and a skeleton base Ship class, we'll post it to the Net for collaborators... GPL, btw...

Well, at last I have been able to play around a little bit with EDMA 0.5.1

Had some problems registering some classes, I must be doing something wrong...

Submitted a patch to David Martínez (the Lead Programmer of the project) fixing a lot of small, stupid problems with the IDFWizard, but as my environment is not fully working with EDMA I am not sure I didn't break anything... I hope I didn't... Had to fight to retake my Tcl/Tk back to work memory, but it was fun to do...

Didn't have time for more, tomorrow's my birthday and we are celebrating 3 birthdays at the same time, so lots of logistics and preparation for the party. I need more sleeping.

Time to shutdown my brain for a while and do some paying work.

Two days ago I just installed GNU EDMA 0.5.1.

EDMA is an Open Component Model Framework for GNU, similar to IBM's SOM or M$'s COM

There are some errors in a Tcl/Tk application to register new classes, I hacked it and now it works... However, the line-oriented tool didn't, I couldn't even try the examples... it may be some weird environment thing, have to check it with a little bit of time...

Also did some hacking to add multi-card support to HAWHAW, but Norbert released 3.0 before I finished, and he added a lot of code to support HDML output... blargh, even though it's a clever hack, it'll make this migration even harder... well, we'll see...

And my nants project... (Nanite + ant :-) started in Ruby, switched to Java and I'm finally thinking in returning to the roots and doing it in Perl... I'll release something as soon as I have something to release... The idea is making small objects to live in a space with food and, well, let them live there, just doing their stuff...

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!