Long time no entry. I'm going to switch the layout of my dev journal to a per day basis without sorting on project, may be much more readable and it'll allow me to rant on about other things during my developing.
So, the MSU Phase 1 is closing soon. I'm really intresting to see what people have turned in, at least I hope they are going to publish a list of all accepted entries. I wonder if UnCodeX has a chance in the Tool's section, I don't think my other mods have much chance in winning something.
But it's not like I did those projects for the money, I think people creating mods/etc. for the money will only produce crappy mods/etc. because they haven't poured their heart into the project. You can't see very well will dollar (or euro, or whatever) signs in your eyes.
Grrr... I really hoped by this time I was able to log into the VPN again, that's why I started this log entries because the f#cking VPN keeps refusing connections. I really hate it because now I can't continue with my work.
Damn it's hot. Both the outside temperature and my coding speed have resulted in the melting of my workstation's keyboard. It looks like a Dali painting
Anyway, it is damn hot. But that doesn't matter much, the problem is that it's still hot at night. And since it will remain hot for a long time I've shiften my day schedule. Usualy I'm awake from 9:00 till 2:00/3:00. But since it's much cooler in the morning I've decided to get up at 7:30.
I really wish I had a laptop so I could sit outside and keep working, but sure you can't have everything.
So MSU phase 1 has finally been closed, I wonder how long it'll take before we'll get to see a listing of all accepted mods.
GUI designing is damn awefull, specially when you want too much stuff into a single screen. What's the best way to do it, how can you split it up into seperate windows, etc...
And ofcourse, you always have to keep in mind to create dynamic layouts, you don't want to hard code every GUI object when it's not needed. The real pain in dynamic layouts is that you can't simply switch to GUI editor mode to change the layout, copy and paste the new dimensions. You have to tweak your formula until it's correct. And evertytime you have to recompile and test it again.
With designing GUIs you will always run into the problem what the best layout it. Because it has to fit on the screen, but also remain functional and look good. The looking good part is something for the art department. As for designing the layout, you could just create the components and tweak them inside the engine but this is slow. A good alternative is to use a presentation program (like MS PowerPoint) to design the layout. Simply create all the components inside PowerPoint (just use rectangles of diffirent colors for the various components that don't have an existing power point representation) and drag them around until you find a good layout. Save it, print it, ... Now you have a good template on how to position the items. All you have to do now is create the components in UnrealScript, launch the game and tweak the positions using the in-game GUI editor.
Finishing up the first release of LibHTTP. LibHTTP is a well written general purpose library for accessing data on webservers. Since this is something a lot of people want in their mod I decided it was a good idea to write one well written open-source free to use library that will do it for you.
This way mod developers can use their time on their mod instead of writing yet another class for downloading webpages.
I hope other mod developers take up this idea to create open source libraries for common operations. This way there will be more well developed building blocks to use. Which will have a result in more high quality mods available.
It must be summer. And you know why, my damn mouse is sticky, nothing on TV, no great games released.
So I decided to play Unreal again. It's still a great game to play, the large outdoor maps and the mysterious areas makes it a great game. It's pretty damn difficult in the highest difficult setting, specially when you are in tight rooms with a lot of Skaarj (Damn ISV Kran decks).
Still haven't played Unreal 2 a lot, don't know why. Maybe because it's a bit too heavy for my machine.
A bit silent on my public side. Just too busy with things I can't talk about yet.
On the other side. Tron 2.0 is a pretty cool game. They really respected the Tron world as defined in the first movie, basic coloring with nice glow effects. Ofcourse it looks a bit more advanced because the current computer are way more advanced. If you liked the Tron movie you might want to check this one out.
Well I started on a complete rewrite of my UTelAdSE system. The new design uses a central daemon that can have multiple interfaces to connect to, so it's even more modular that the previous design. Also the authentication has been split off into a seperate object. This way it's possible to change the authentication to use a diffirent system.
The telnet interface is almost done, the most important part the terminal handling is done and it's much better than the previous one. You have the same commandline powers as you have with bash, the previous implementation was very limited (like the DOS prompt).
Also started on the IRCd implementation. I'm complety changing this implementation, I'm going to design it so that you could link various servers into a network. This network would consist out of at least one real IRCd when that the UT servers will link to. This real IRCd has access to all channels servered by the various UT servers linked to it. The IRCd that runs within the engine only has access to the local channels, this is to reduce the load. The unreal IRC server will netsplit on every map (ofcourse).
As for the applications/commands, not much has changed from the previous system. I still use a dynamic array for calling the commands with arguments. However I did change it a bit, commands have to be registered in the daemon, this way I can look up what application object has the requested command. This reduces the function calls needed to call the right command.
Man what does the IRC protocol suck. Just the basic implementation of various commands sucks.
Anyway, ordered me a nice Toshiba SatelitePro m10 laptop today so I can keep on coding where ever I am.
Dante: Yeah IRC protocol just sucks. I tried to write like 3 IRC clients before, I always stopped at a point when I just got annoyed
El Muerte TDS: the server part is much worse than the clients part
Dante: Depends how customizable you want the client to be. I don't think the server part is much more difficult.
El Muerte TDS: IRC clients are dumb, the server has to figure out everything, and that adds a lot of administation. And it's not that it's more difficult, it's just that it's more of a pain to implement.
Dante: Yeah clients are kind of dumb, the server still isn't much more clever. Basically it does nothing more than dispatching. It doesn't care for ctcp stuff and such things. Administration is handled thru bots (which are clients) like chanserv. The main pain in writing a server might be security.
El Muerte TDS: well the server has to keep track of what channels there are, who is in that channel. But you've also got to keep track of the server relays if you have more than one server. This server relaying is hacked into the protocol, wel at least it looks like that.
Almost completely redone the Marky Mutator, the initial release didn't even work online, that's what you get when you ship when it compiles late at night . Anyway, the current version is pretty much done, it supports additional pop-up faces, by default it has Mark Rein, CliffyBunny and the Dopefish. I'm waiting for a response from Mark Rein before I will ship this version. I asked Mark Rein if he could record him saying "Two Weeks" so I could use that when his head pops up
Also yesterday my laptop arrived (damn quick), it's a really nice toy
Yahoo the evil european software patent directive has been accepted. Start saving money for your first patent infringement.
Foxpaw: What's that about? I've never heard of this software patent directive?
El Muerte TDS: Read [this /. article]. Be sure to check out the linked articles for more details.
Foxpaw: I still don't get it.. how does this "software patent" differ from the IP protection that you already have? Or does it allow people to patent a software notion like anti-aliasing?
El Muerte TDS: with patents you can prevent people from inventing the same you did, if you own a patent somebody else may not build the same unless it licenses your patent (this protects your invention, but also kills free enterprise). For example, there was a patent on the LZW compression algorithm, LZW is required for GIF files, so you had to license the LZW algorithm before you could write a program that creates GIF files (USA only). This patent is correctly assigned, it does protect the invention and research. But the new software patent possible in Europe (you could always patent these but they were not backed up by law) allows you to patent non-sence (already possible in the USA).
A few examples of non-sence patents: Amazon's "One Click Buy System", or the recently assigned patent for Microsoft that describes the usage of cookies to keep track of a user id and using that info to look up the user preferences for a web services (a lot of meta sites, online stores and forums use this "technology"). [an larger list of interesting patents].
You can't request a patent on inventions already used a lot ("prior art"). Patents are just evil, they used to protect inventors from large companies, but it's now used buy large companies to prevent some compitition and earn money.
And now for the answer to your question, IP is for the your creation AS-IS, not the technique. Here's an bad example (below is ofcourse not possible):
// to increase the value of a number by one: i = i + 1; // your creation, people may not use this AS IS i = 1 + i; // not the same as yours, but a patent prevents you from using it i++; // if you had a patent this was not allowed either
Screw modelers, all I wanted was a pretty simple static mesh of a beer bottle crate. No free public assets for that and nobody remotely interested in helping me out. So I decided to mess around with Maya myself. Worked out pretty well, I managed to create a 7x5x4 cube (it's harder than it sounds ), and mapped by texture on it. And it looks quite well. Except that all faces of the cube are in-side-out
Ahh well, easy fix (I now know how to do that). Capture The Beer is almost complete, only need to replace a few more pieces of text, so something with the announcer. And double check if it works online.
As you may have noticed I pick-ed up development of UnCodeX again. I've already made some cosmetic changes. Currently I'm working on an major improvement of the HTML output. I'm focusing even more on the JavaDoc style. Most things don't change much except for the class details, they will now be split up into a summary and a detail view. I tried to put in to much data in the previous output. Also I've fixed the templating engine to create seperate directories for packages. Having a lot of files in a single directory is a bad idea in general, and with UT2003 2225 it generated over 5000 files. Now each package will get 2 directires: ./packagename and ./Source_packagename.
For a preview of the new html output, check here: http://unreal.elmuerte.com/uncodex
I've come to an interesting point in the html output changes. I have to change some majors things, I could just add the new code and leave the old intact, or I could strip away the old template code. The old and new code will be not be compatible when used both in a template file. Since the new template code is much better I think I will just remove the old one. This ofcourse will break the old "UnrealWiki" html output templates.
Wtf, this isn't fair: http://unreal.elmuerte.com/uncodex/Source_xinterface/guicomponent.html#163
Foxpaw: Can you elaborate on what the problem is exactly? That link just took me to a source listing.
El Muerte TDS: this:
function native final SetTimer(float Interval, optional bool bRepeat); function native final KillTimer();
it should be
native final function SetTimer(float Interval, optional bool bRepeat); native final function KillTimer();
Wormbo: Oh nice. Let's add function, event and delegate to the function modifiers and tell the people that at least one of these three modifiers must be used, all other modifiers are optional and there is no fixed keyword to declare a function...
El Muerte TDS: the following may appear in any order and it will be a function type:
function, operator, postoperator, preoperator, event, delegate, native, final, private, protected, public, latent, iterator, signular, static, exec, simulated
Hooked up the commandline version of UnCodeX (ucxcu), all the basic code for generation of the HTML files, generation of the MS HTML Help file, analysing of the packages, etc. takes up 147kb. All I need to do is combine these modules so that the commandline version does what is should do. I don't think this would take up much diskspace.
I think I'm also going to port the commandline version to linux, shouldn't require much work since most of it is pretty much system independed. Well except for the MS HTML Help generation ofcourse, that requires the MS HTML Help compiler.
Just finished the linux install on my workstation, including Kylix 2 (wtf is my Kylix 3 cd). It sucks to install all KDE packages manualy (the debian KDE meta package was broken in testing).
Anyway, ucxcu pretty much compiled out of the box. A few things don't work yet (because there's no Linux counter part yet). These include: file copy (yes, there's no API function for that), and the comment pre-processor (this is because the IO pipe interface doesn't work for linux yet).
These are not major issues, so a linux version of the commandline utility will be released in the future. The binary is about 14kb larger than the windows version (248kb).
Still need to remove the redudant unreal script parser, currently I have two parsers that pretty much do the same. The first is used for analysing the source code, the second is used by the syntax highlighters. The source analysing should also be able to use the second parser. This would reduce the binary a bit.
Forgot to say, I've got a fully working version of ucxcu for linux. And it's much faster than the windows version, must be because of the filesystem. I only have to add support for the comment preprocessor before the linux ucxcu is complete.
Moved all uncodex cvs modules to a single repository, should have done that right away. The old module locations still exists (symlink to the new location).
Also updated the installer configuration so GUI and CLI versions can be installed seperately.
Done some minor work on UnGateway and checked to see if the telnet interface works for most telnet clients. It has been confirmed to work with: PuTTY 0.52, PuTTY MEGABIT-2003-07-25 IPv6, SecureCRT 4.1.0, Linux NetKit 0.17 Telnet, MS Telnet 1.0
How damn usefull can people be. Apperently ChatFilter increases CPU usage a lot on servers (and I really mean a lot), this was something just posted on the UT2003 Server mailing list. Very usefull to hear that so I could look into it. But apperently there was this other guy that figured that out months ago... but he never told me...
Wormbo: Heh, it's always the same. People find a bug or inconvenience, but don't report it. Nevertheless they expect it to be fixed in a later version.
El Muerte TDS: now it appears it may not even be my mod at all, the guy installed deathball, irc reporter and chatfilter at the same time, and one of those caused the lag (or not). really usefull...