Re: [Pybem-developers] PyAtlantis Blatherings
Brought to you by:
abriggs
From: Jan R. <jan...@we...> - 2007-12-02 11:10:14
|
Hi, Earlier this week I was dabbling with the Atlantis code for another time - and then your posts came. Strange coincidences. I tried to interface the Arcadia code with Ruby (sorry, Pythonistas!) using SWIG, but I'm not getting AString to work under SWIG. SWIG is a tool to write interfaces that are shared between C/C++ and higher-level languages. I gave it a brief shot to see if this was an avenue to marriage parts of the existing game with a more flexible whole. I had a little bit more success with embedding Ruby into the C++ source, but my knowledge of C++ is just too flaky for me to be able to encapsulate game data into classes that are successfully shared across both the C++ and Ruby processes. Still, I think this idea would have a lot of potential, if someone more skilled was involved. ;) > I'd be interested to hear what people have to say about getting > involved, or what's impeding them as far as getting going. Apart from a chronic lack of time and not having Atlantis on my radar at the moment (excepting the most recent foray), mostly the following personal, subjective and biased set of reasons: Atlantis ONE?! I understand your intention of going back to the smallest codebase, but A1 is so raw and lacking in game elements, and is crudely coded, that it's just not a very good starting point. Geoff wrote A3 mostly from scratch (or so the legends say!), and when I look at the code (of A1) I can see a reason... I appreciate your motivation of getting something basic running first, and then expanding on it. Because, when we are really honest with ourselves and not dreaming (as a lot of what has been written on atlantisdev in the past has), none of us can do the amount of full-time or part-time work on a hobby project to put a completely new vision into code. But an easy start isn't going to circumvent more painful refactoring and redesigning later on. The question of how to approach this has been nagging me over the past years. Incremental improvement or complete redesign? A few years ago, I tried to do some medium-level changes to the A5 code - economy and fleets. I'm neither happy with the results, nor has the process of working those into the existing code been a rewarding experience. At the same time, I feel that incremental changes cannot address the basic design problems both of you described. I don't think it's a coincidence that so many players use the word "addiction" in conjunction with Atlantis: you want it to be wholesome, and it is for the first 30 turns, then it just gets ugly but it's too late to admit it. > have you tried getting up and running on the code base? Or have > you looked at it and been confused? Is my code style horrible? I haven't tried to get it running, mostly for above reasons. I looked at the code yesterday, and I think you've done a good job writing clear code, documenting methods and naming variables etc. Documentation, even!! What gives me the creeps is that you decided to carry over all the ugly things from A1, and schedule them for refactoring later. I think a lot of better code design could have been done from the outset - more OO-goodness, more abstraction for skills/orders/items, better configurability, and a more modular design in general. These things are painful to introduce as an afterthought. I guess that this might be due a lesson learned from Boojum, and that you try to use a different approach this time. Personally, while I'm self-taught coder rather than a trained one, there would need to be a minimum of design goodness for me to want to spend time with a project. I want to exercise good practice by coding, and not pick up bad habits. What little work I did on ALH has been so much more rewarding in this regard than work on the Atlantis source. To sum up what's missing: a good answer to the gameplay problem, and a good redesign of the codebase. You can arguably make a better game by just doing the code refactoring... but what would be the motivation - making a broken game more stable or configurable? Having an answer to the first question is going to provide the motivation AND some core concepts around which to shape the design. I think this is what has prevented any progress of Atlantis over the past years, despite a pretty stable level of interest (seen by the number of people who still lurk and respond ad hoc). Over the time I haven't been involved in Atlantis, ideas have been accumulating here that could be shaping up into a game at some point (soon?). They don't fit into Atlantis, because they redefine the game elements from the ground up, but the feel and theme would be very close to Atlantis. I'm not sure if posting them here or on atlantisdev is going to be helpful to either projects, since they demand a departure from Atlantis both code-wise and in gameplay respects. At the same time I haven't spent much time putting these ideas into a concise whole (yet), which I feel is there somewhere. So until these ideas stir up enough momentum that I write them down (to share or to code), I will continue to sit on the fence, willing to give moral support to Ant, because despite all my reservations his project is actually going somewhere! I am also eager to share ideas, discuss concepts of game and code design (preferrably on a concrete level and not whether to go xml or not)... for getting involved in actual coding I'd have to hammer out my motivation and compare it to the project at hand to decide if there's enough overlap of interests. Have a good weekend, Jan |