From: MIGUEL A. B. L. <mb...@fe...> - 2002-03-03 01:39:52
|
Mensaje citado por: Guido de Jong <gu...@us...>: > After closer examination of the TODO list, I can only conclude that it > just is not as simple as picking one and try to fix it. Many items on the > TODO list interact in such a way that fixing one affects another. Besides > some items are not on the TODO list, 'cause in the code those magic words are > missing. Well, in every place that I think that something should be done, I have written a TODO tag. Sure that there are other places... > Anyways, so far I saw 2 things that I could do something about: > > 1) The datatype AList is not to be used anymore according to the comment > in AList.h, std::list should be used instead. So a possible task could be > the replacement of all references to AList into std::list and then the > removal of AList itself. This is obviously easier said than done, but it is a > well-bound task that could be done without messing up too many things. AList is only used for pointers now. So this means it is only used on: - Queues - Message - Command The access MUST be thread safe and there should be no memory leakage. The change seems easy, but I guest that it will give more problems that expected. > 2) This started with MaxUsedID which is an Object, but then again it is > an int. The actual value is stored in WorldManager, which IMO is wrong, it > should be in World. The whole World idea is to be changed too, as the > game should be able to serve more than one world at the time. This is a good > example of one item on the TODO list that leads to another. Apparently > this 'portal' idea has been discussed in the mailing list before, but I > missed that, so I'll have to look in the archives first. MaxUsedID is the highest ID that is used right now. There is only a central place to generate new Object that is the WorldManager, so I think that made sense to have MaxUsedID on the WorldManager, don't you think so? Do you know task that are *really* useful right now? - Add a compression library(or libraries) support. Code exist on ALPHA 1, so it perhaps can be reused. * Bzip2 * Zlib - Documentation - Objects are saved as a text stream, convert that stream to a XML stream. - Same for Actions - Same for Messages, we could really move to a text protocol, although I have say no in the past, I have to agree that it has real huge advantages on security and flexibility that I didn't considered. This would fix the AList problem mostly. - Check for memory leakages. - Modify layer 0, 1, 2 and 3 so that it admit an unlimited number of connections, instead of beign limited bu MAX_CONNECTION_NUMBER - The most common and slower operation that will be performed on the world is going to be isInRange that will return a list of object that are less that a given distance far from the object. Look for a way of optimizing this operation. This gives introduction to the concept of: * Worlds * Pieces - Portal are scifi by now, let's have a simple engine working and then we talk about it again. - Clients, I can provide a *working* base on Kyra. - Object slots code need to test that there are not circular inclusions that would means an infinite recursive call. - Actions will be moved together with Perceptions ( I will do this. ) - Start work on AI perhaps. - Research about actions that would be needed/required/ or just be useful on the game. - Research about usage of Boost library * Any type for Attributes. * shared pointers for pointers. - Add MOTD - Add List of users There is no particular order, but I prefer to delay big changes after ALPHA 2. Layer 3 needs a severe restructuration, but I will do this after ALPHA 2. I can provide more info if you are interested on any of them. Regards, Miguel |