| Author |
Message |
|
Didaskalos
Chief Warrant Officer
Joined: Sat Oct 19, 2002 2:00 am Posts: 156 Location: USA
|
1st from the sounds of your long and varied multiplayer game programming experience you should contact a headhunter because Sony Interactive, Origin, NC Soft, Blizzard and a host of others would love to have a programmer that is capable of overhauling their development methods where feedback from end users is not needed let alone someone who has figured logical way to program in a manner is logical enough to test all use cases. because if you look at any of these major game developers and you will see they have a very long history of revisions, most fully dependant on end user feedback. I am sure they would pay you huge sums of money for you to educate them on your ability to make development, testing and production release so lucid.
shrug, you can say what you want, but in the world of professional development, you don't sell **** code, you sure as hell don't 'test it out' on your customers, and you DO have a development cycle that includes rigorous profiling and debugging. the simple matter is that 'multi-player' (ie multi-simultaneous uses) is no excuse for poor code implementation. period. you have synch issues? learn how to use mutexes/semaphores/synch objects of your choice. it really isn't a complex issue gypsy, and by the content of your posts, you are obviously not a programmer, and if you are, you are not one that any respectable company would hire.
you can give as many examples as you like about blizzard or any other game developer, but the bottom line is, having your users figure out why ur code doesnt work is a **** method of developing, no matter who you are. If you want to look a LITTLE MORE CLOSELY at what they are doing, you will find they are not asking their users to A) pay or B) figure out wtf the CODE DON'T WORK. They're saying 'hey play this a bit and tell me how the balance of the gameplay is, tell me if this is too powerful, tell me if this is cool.'
so yeh, gypsy, keep telling me how it's GREAT programming to not test your code out. tell me how it's great practice to not profile and isolate potential bugs. i mean for god's sake, he's using freshman level debugging practices. now you may not like me (who cares) but your post reflects a seriously ****TY attitude about quality. That backs up the ****TY level of quality that we're seeing.
Now, I understand that, it's legacy code. I understand it was hobby programming code. Fine. I understand limited time to develop/fix. Fine. I don't envy anybody who integrates with legacy code, especially if the legacy code is ****. The only reason I am even replying is that gypsy is such a ****ing moron when it comes to A) logic B) customer relations and C) tradewars in general. so gypsy, being on the official EIS team doesn't mean **** when your posts are as stupid as your last one was. so YES, there it is actually common place to have modular, fully testable code to release to customers. sarcastically telling me to go find a headhunter because I believe in quality coding is just plain stupid.
|
| Wed May 05, 2004 6:47 pm |
|
 |
|
John Pritchett
Site Admin
Joined: Sun Dec 24, 2000 3:00 am Posts: 3151 Location: USA
|
I should point out that my plans for v3 have been evolving (I'm never set in stone about anything), and the "major" changes I am planning will not be released in v3 at all, but will be held over for a v4. As I've been working on what I intended to release as v3.12, the changes have been mounting, and it's become clear to me that it's really a whole different version. v3 will continue to suffer from the same gameplay issues that we're all aware of, and v4 will attempt to resolve those issues without being a significantly different game. When that's ready, the goal will be to have v3 and v4 running side-by-side on game servers.
What I had originally planned to develop as TWv4, with a whole new game engine, modernized gameplay, possibly even a graphical interface, will be released as a spin-off of classic TW rather than merely a new version.
That's the plan as it stands today. TWv4 should go into closed testing within a few months. I would estimate that I'm 85% done with the implementation of new gameplay. We will be opening up details about that version after we've had a closed round of tests and feedback, so we can get a more broad view of how it plays. I'm excited about it, since it represents my first real efforts to add my own functionality to the game.
_________________ John Pritchett EIS --- Help fund the TradeWars websites! If you open a hosting account with A2 Hosting, the service EIS uses for all of its sites, EIS will earn credits toward its hosting bill.
|
| Wed May 05, 2004 6:55 pm |
|
 |
|
Cherokee-TLTT
Ensign
Joined: Sat Jan 19, 2002 3:00 am Posts: 214 Location: USA
|
I'm curious to know what gameplay issues TW v3 will continue to suffer from. I'm -hopeful- that you are still planning on fixing the worst bugs, such as pods not fleeing properly, once you have figured out the stability issues with .61/.62 or whatever the version is currently at.
_________________ Cherokee
The Lost Traders Tavern
http://tavern.homeip.net
Deployed Fighters Report Sector 911: Cherokee's Imperial Starship entered sector.
|
| Wed May 05, 2004 7:05 pm |
|
 |
|
John Pritchett
Site Admin
Joined: Sun Dec 24, 2000 3:00 am Posts: 3151 Location: USA
|
Trade Wars was never intended to be a fast-action combat game. The game was originally designed to be non-interactive, with only one player online at a time, and the core design of the game has not changed even though it has become interactive. The gameplay that has developed as a result of this change has been more accident than design. And it has been more driven by players than by the developer. One problem is that the game was not completely modified for realtime interaction. Obviously, ship movement and ship attacks were given delays to pace them in a realtime interactive environment. But the vast majority of actions in the game take place instantaneously, only paced by the CPU on the host system and by bandwidth. Why should a ship require 3 seconds to warp a sector, yet a planet can get there in an instant? And why should an action take one period of time to complete on one system, and another on a different system? Shouldn't the amount of time an action takes to complete be defined by the game rather than by the environment in which it runs? So the most obvious gameplay issue is the pacing of actions in the game.
Another serious gameplay issue is the dependence on a nightly external process to impose certain rules on the game. Players have long been aware of ways to overcome these rules simply be being online at the time of extern. This defeats the purpose of the rules. The more important rules need to be imposed in realtime, so that it is impossible to get around them. Either these rules should apply to everyone or nobody, and it shouldn't be necessary to be online at 2 in the morning to catch a break.
There are many other issues that I've identified in this game over the years, things I've always wanted to fix. I have always been reluctant to make changes to this game, because it's a classic and I don't want to make it something that it's not. But as my goal has always been to preserve this game for those who played it "in the good 'ol days", I've come to realize that the game has evolved into something that they don't even recognize as Trade Wars. It's not possible to preserve the game "as it was", because the environment in which the game is played has changed significantly, and those changes have cause the gameplay itself to evolve. Only by making changes can I return the game to the spirit in which it was originally designed and played.
Since TWv4 is using the same code base as TWv3, bugs that I identify and fix in v4 can be implemented into v3 as well. I have been doing that for a few weeks now and I will continue to do that. For example, I've implemented an entirely new mail system in v4, and I'll implement that in v3 as I finish up with that version.
_________________ John Pritchett EIS --- Help fund the TradeWars websites! If you open a hosting account with A2 Hosting, the service EIS uses for all of its sites, EIS will earn credits toward its hosting bill.
|
| Wed May 05, 2004 7:40 pm |
|
 |
|
Rick Mead (teamEIS)
Ensign
Joined: Sun Dec 24, 2000 3:00 am Posts: 259 Location: USA
|
quote:Originally posted by Didaskalos
shrug, you can say what you want, but in the world of professional development, you don't sell **** code, you sure as hell don't 'test it out' on your customers, and you DO have a development cycle that includes rigorous profiling and debugging. the simple matter is that 'multi-player' (ie multi-simultaneous uses) is no excuse for poor code implementation. period. you have synch issues? learn how to use mutexes/semaphores/synch objects of your choice.
I am not sure what your definition of "world of professional development" is but there are literally 1000's of software packages released most by the absolute largest software development company that are by your definition **** code. I think JP has a very good development/testing/release cycle in comparison to many of these and with far less manpower to throw at it.
quote:it really isn't a complex issue gypsy, and by the content of your posts, you are obviously not a programmer, and if you are, you are not one that any respectable company would hire.
Actually I work in one of the largest IT departments in the world for the largest Corporation of its kind in US, although I don't do much actual coding anymore since my promotion couple years back, since you live here in the US I can almost guarantee that an application that I wrote has a day to day impact on your life however.
quote:you can give as many examples as you like about blizzard or any other game developer, but the bottom line is, having your users figure out why ur code doesnt work is a **** method of developing, no matter who you are. If you want to look a LITTLE MORE CLOSELY at what they are doing, you will find they are not asking their users to A) pay or B) figure out wtf the CODE DON'T WORK. They're saying 'hey play this a bit and tell me how the balance of the gameplay is, tell me if this is too powerful, tell me if this is cool.'
You obviously haven't played UO, EQ, 1942 or any of the multiplayer half-life modifications or if you have you haven't been on their support sites because if you had they most assuredly do ask you to a)pay (and most of the time monthly) and b) while they do look for feedback on game play issues one of their main areas of concern is reporting bugs and game issues. JP does this as well and before JP did it Gary did the same thing. As a matter of fact the only developer in Trade Wars history that didn't ask for bug feed back was HVS, which by the way was by far the buggiest most unstable version of the game.
quote:so yeh, gypsy, keep telling me how it's GREAT programming to not test your code out. tell me how it's great practice to not profile and isolate potential bugs. i mean for god's sake, he's using freshman level debugging practices.
I never said it was great programming not to test your code out, nor did I say it was great practice not to profile and isolate potential bugs, as a matter of fact I don't remember discussing either in this thread or anywhere with you. As far as his debugging practices I am curious what data you are using to determine the debug for TWGS or Trade Wars
quote:now you may not like me (who cares) but your post reflects a seriously ****TY attitude about quality. That backs up the ****TY level of quality that we're seeing.
I don't dislike you I don't know you so I have no particular feeling for you one way or another. I am not sure how my post reflects a negative level of quality or attitude, I apologize for your misunderstanding of it obviously
quote:The only reason I am even replying is that gypsy is such a ****ing moron when it comes to A) logic B) customer relations and C) tradewars in general. so gypsy, being on the official EIS team doesn't mean **** when your posts are as stupid as your last one was.
it truly hurts me that you have such a low opinion of me and my logic, and I wasn't aware I was involved in customer relations in this post I thought I was replying to you, in an area that isn't intended for customer support about a topic where you felt it necessary to ridicule the product I have devoted a great deal of time and effort to over the past 14+ years, my mistake. And as far as Trade Wars in general, well you are entitled to your unsubstantiated opinion, luckily for me it doesn't count for anything.
quote:sarcastically telling me to go find a headhunter because I believe in quality coding is just plain stupid.
I wasn't being sarcastic, but you are right it was plain stupid of me to suggest you contact a head hunter as someone with your obvious superlative programming ability and prodigious intellect most certainly is already making high 6 figures.
_________________ Rick Mead
Project Manager teamEIS
|
| Wed May 05, 2004 8:25 pm |
|
 |
|
Rick Mead (teamEIS)
Ensign
Joined: Sun Dec 24, 2000 3:00 am Posts: 259 Location: USA
|
quote:Originally posted by Res Judicata
I think a bit of Marketing would HELP TW, say an OFFICIAL SANCTIONED TOURNEY
with PRIZES, free twgs codes, some helper codes, get a nice big community game going.
TW lacks Leadership today, lots of new players.
Be nice if EIS would take more of an active ROLE
some kewl Tshirts even LOL
Res Judicata
As I have already told some other people, I may have even posted about it a while back but incase I didn't, we plan on running 2 v4 tournaments a year that will have cash and prizes, look for the 1st sometime at the end of summer and the 2nd sometime at the end of winter. One will be called The EIS Players Championship (EPC), which will be for 2 man teams and the other will be called The EIS Team Championship (ETC), which will be for 5 man teams.
_________________ Rick Mead
Project Manager teamEIS
|
| Wed May 05, 2004 9:10 pm |
|
 |
|
Didaskalos
Chief Warrant Officer
Joined: Sat Oct 19, 2002 2:00 am Posts: 156 Location: USA
|
quote: I am not sure what your definition of "world of professional development" is but there are literally 1000's of software packages released most by the absolute largest software development company that are by your definition **** code. I think JP has a very good development/testing/release cycle in comparison to many of these and with far less manpower to throw at it.
So let me get this right - you think 8 versions in a span of a few months, each with stability/functionality issues is a 'good development/testing/release cycle'. Are you being serious? If you are, it is no wonder the internet is full of half-assed products that people try to actually SELL. In any other profession, the attitude that you are displaying toward quality control would be ridiculed and mocked. For some reason today's programmers think its just fine and dandy to release whatever they feel like.
quote:Actually I work in one of the largest IT departments in the world for the largest Corporation of its kind in US, although I don't do much actual coding anymore since my promotion couple years back, since you live here in the US I can almost guarantee that an application that I wrote has a day to day impact on your life however.
I am, of course, intrigued to know of which particular application you are speaking.
quote:You obviously haven't played UO, EQ, 1942 or any of the multiplayer half-life modifications or if you have you haven't been on their support sites because if you had they most assuredly do ask you to a)pay (and most of the time monthly) and b) while they do look for feedback on game play issues one of their main areas of concern is reporting bugs and game issues. JP does this as well and before JP did it Gary did the same thing. As a matter of fact the only developer in Trade Wars history that didn't ask for bug feed back was HVS, which by the way was by far the buggiest most unstable version of the game.
you are perhaps correct in your facts, but that was hardly my point. i despise the 'idea' that people think they can sell and release code that is faulty in some of its core functions. programming as a profession has been overrun by the lazy. philosophically, programming is all ABOUT laziness, but that isn't my point. For you to sit and argue that JP has great testing/release methodologies is to simply ignore reality. YOU may think it is perfectly fine, BLIZZARD, VALVE, etc may think its fine, but in the world where programs are 'important', such laxness is unheard of. If you indeed work for the largest IT dept in the world for the largest corporation of its kind, I would think you would understand the relative urgency of quality management.
quote:I never said it was great programming not to test your code out, nor did I say it was great practice not to profile and isolate potential bugs, as a matter of fact I don't remember discussing either in this thread or anywhere with you. As far as his debugging practices I am curious what data you are using to determine the debug for TWGS or Trade Wars
In my original post I was commenting on the fact that the implemented method of finding and reporting issues was a hit-and-miss scenario at best, and that in the professional world of programming, certain methodologies (profiling/debugging/use cases) were used to assure quality and robustness of said product. You then proceeded to ridicule me, implying that if i was so smart, i should go get hired by a major game developer. In essence you implied that my assertions were incorrect. So no, gypsy, you never explicitly SAID anything, you simply implied that when I said it, I was incorrect.
quote: it truly hurts me that you have such a low opinion of me and my logic, and I wasn't aware I was involved in customer relations in this post I thought I was replying to you, in an area that isn't intended for customer support about a topic where you felt it necessary to ridicule the product I have devoted a great deal of time and effort to over the past 14+ years, my mistake. And as far as Trade Wars in general, well you are entitled to your unsubstantiated opinion, luckily for me it doesn't count for anything.
you are in general despised by the best players (and worst) in tradewars, for a variety of reasons. when i first joined the board i was rather neutral, but having witnessed your logic, professionalism, and relative intelligence regarding the product you have 'devoted a great deal of time and effort to over the past 14+ years', it became apparent why the prevailing sentiment is as it is. In no way was I ridiculing the product; I was simply pointing out that the frustration regarding the progress of TW was not game-mechanics related - it was frustration over the perceived (and in some instances real) ineptness of the 'inner circle (primarily you)', and the relative lack of forward progress in resolving critical game play issues.
quote:I wasn't being sarcastic, but you are right it was plain stupid of me to suggest you contact a head hunter as someone with your obvious superlative programming ability and prodigious intellect most certainly is already making high 6 figures.[/white]
if you think that expecting a minimal level of professional development in a product that people are paying for is reserved for those with 'superlative programming ability', it is no wonder that your involvement is to the overall detriment of the TW product. The implied argument that I think I am perfect because I point out mistakes in the EIS development cycle is ridiculous, a red herring. I don't write perfect code the first time - but i don't release that code either, and I sure as hell don't go to a facility and ask the manager to 'test this out during day to day operations to make sure the thing is working right'. You dogmactic position that you are always right is tiresome, especially in light of the most recent round of releases. Get a grip. Your arrogance is second only to microsoft.
|
| Thu May 06, 2004 12:38 am |
|
 |
|
Slim Shady
Gameop
Joined: Thu Jun 06, 2002 2:00 am Posts: 2371 Location: USA
|
well, the EIS tournies sound cool, cant wait to hear more about it. dida, u use big words that i dont understand
"learn how to use mutexes/semaphores/synch objects of your choice"
so i can assume u know programming stuff. why dont you help out fixing issues? id like to see all people with experience programming helping out so we can get twars bug free and going good as soon as we can.
JP, this is my first forum where i have seen you post, i thought u were just a name people made up, hehe. i personally appreciate that you are trying to fix this game wether or not it works everytime. i wish u the best and if u guys ever need a non-programmer, heh i do my best to help.
Slim
_________________ Ask Slim!
--==[The Outfit]==--
|
| Thu May 06, 2004 4:22 am |
|
 |
|
John Pritchett
Site Admin
Joined: Sun Dec 24, 2000 3:00 am Posts: 3151 Location: USA
|
No other individual, including Rick, has anything to do with the coding of Trade Wars. I am the only one responsible for this game. Rick is defending me, not himself. He seems to get more upset when people question my intelligence, skills, etc, than I do. I personally don't let it bother me. People are entitled to their opinions. I suppose it would concern me more if the critiques came from someone who actually had a clue what he or she was talking about. Making claims about the industry at large is one thing, but without knowing the exact circumstances surrounding this project, you can't possibly make claims about my abilities based on the work that I'm doing here.
First of all, I don't have a degree in computer science. I have a degree in Engineering Physics. Second, I don't consider myself a top-notch programmer. I can't compete with people with a computer science degree. I'm not trained in, what is it you said... "use cases"? I don't even know what that is. I'm a self-taught programmer. I had one class in programming while in college, Fortran. My strength lies in my other skills; math, physics, logic, general creativity, combined with a natural skill with computer languages. Third, while I do charge for new registrations of Trade Wars, I provide upgrades for free to anyone (the majority of people who run games today) who have already registered the game going back to 1986. Name another application where new versions are free. Fourth, the "perpetual beta" state of Trade Wars was established long before I even heard of the game. And when I wrote TWv3 for Martech, Gary released the game directly to the public, without a closed beta. That's how it was done before I took over, and so that's how I continued to work. Why change? Nobody seemed to complain before. It's just understood that a new revision has the potential to be glitchy until it's been tested for a few weeks.
And fifth, do you have any idea of the history of this codebase? It originated in 1973. The code I use is the same code that ran under DOS3 and supported Desqview. So much for Mutexes and semaphores. This thing was designed to be multiplayer interactive in non-multitasking OSs. All IPC is file-based. All synchronizing is done with file locks. It has gone from BASIC to 16 bit DOS in Turbo Pascal, to 16 bit Windows, to 32 bit Windows in Delphi. Yeah, I've introduced more modern practices into the program. Some elements of the game are even object oriented now (ok, there's one object class in the game). But in general, little can be gained by sprinkling modern techniques throughout ancient code. It's probable that only a complete rewrite of Trade Wars will make it 100% bug free. I'm in the process of writing a modern, multiplayer interactive game engine for text and graphical client/server games, based on what I've learned from Trade Wars. When that's done, if this version of TW isn't running at an acceptable level of stability, I may finally port it to a modern architecture. I hope that won't be necessary, because I have some other ideas I want to explore.
The point is, Trade Wars is not a professional product, and if you thought that was what you were getting when you registered, I'm sorry if I misrepresented it. It was not my intention. I have standards, higher than you can possibly imagine, for my work. But when it comes to Trade Wars, I'm just surprised that it runs at all. I do the best I can with what I have to work with.
_________________ John Pritchett EIS --- Help fund the TradeWars websites! If you open a hosting account with A2 Hosting, the service EIS uses for all of its sites, EIS will earn credits toward its hosting bill.
|
| Thu May 06, 2004 4:25 am |
|
 |
|
Rick Mead (teamEIS)
Ensign
Joined: Sun Dec 24, 2000 3:00 am Posts: 259 Location: USA
|
quote:Originally posted by Didaskalos
So let me get this right - you think 8 versions in a span of a few months, each with stability/functionality issues is a 'good development/testing/release cycle'. Are you being serious? If you are, it is no wonder the internet is full of half-assed products that people try to actually SELL. In any other profession, the attitude that you are displaying toward quality control would be ridiculed and mocked. For some reason today's programmers think it’s just fine and dandy to release whatever they feel like.
Ok stick with me here...
(1) 02/05/04 revision .56 was released, many fixes that were reported over the previous 2 years when development and maintenance were paused. These fixes included 4 TWGS issues of which none were game critical, the major being a fix in how TWA files are created so that SysOps / GameOps could continue to use the export function to distribute game settings without violating the software agreement. This revision also included 19 game fixes, of which 5 were game critical and 15 were reported by users.
(2) 02/17/04 revision .57 was released, many fixes to bug reports from both .56 and previously unreported bugs. This revision saw no TWGS fixes and 12 changes for various game issues, of which 5 were reported by users, 2 were requests from users to add back functionality that was removed when fixing the global bug in version .56 and 2 were game critical fixes.
(3) 02/28/04 revision .58 was released there were no TWGS changes and 7 game play changes of which 0 were game critical, 2 were issues caused by the previously requested functions in .57 and 1 was an addition of a new global for script writers.
(4) 04/02/04 revision .59 is released, or is it? the complied installation has the wrong tw2002.exe file and while the revision is only up 2 days and downloaded only a handful of times JP decides in order to maintain version control and continuity he...
(5) 04/04/04 revision .60 is released, it has a whopping 3 fixes in it 1 which seems to be game critical on certain systems but not on others, this is of course the dreaded index locking error which occurs randomly and doesn't seem to be able to be duplicated in closed test environments.
and
(6) 04/13/04 revision .61 is released with only one change that being an attempt at fixing the index locking error while keeping the fix for the randomly lost messages in Trade Wars, messages like "so and so is powering up", "so and so warped into the sector" or "you gained x experience points" just to name a few.
That’s six (6) public releases in 3 months of which the 1st 2 resolved the vast majority of critical game issues. Now you are probably going to say what about .62 and .63 well those weren't publicly released versions .62 was simply .61 with a new auditing routine built into the export to try and pin down when these random index locks occurred and was given to 3 systems that agreed to run it and give us the audit trail should any errors occur. .62 was given out Monday, Alien Base reported errors with ghosted ships and random boots uploaded their TWA file to us and .63 was given to them yesterday which fixed the ghosted ship issue. Now today it was decided that the fix for the random message lost, which by the way is due to the 20 year old legacy code not being set up to handle the amount of data created in today's environment, was simply not possible, thus it was removed and .64 was given to Alien Base tonight and after initial testing the index locking issue has not reoccurred.
Do I think that JP's development/testing/release cycle is good? How can you not, we are talking about a game that through it's 1st 15 years went through a minimum of 5 programmers, one of the top MBBS software company's of its day and never got close to being released as a stable functioning piece of software (that at 1 time cost $579.00). JP has had it less then 5 years (2 of which development and maintenance was stopped) and in that time he has taken legacy code that was designed to handle 1 user at a time for roughly 30 minutes to a game that could handle 5-10 players running concurrently through a BBS for hours at a time to a stand alone application that can handle upwards of 50 to 100 players concurrently for indifinate periods of time not to mention its on the verge of being finalized, not with a team of programmers but by himself with the help of the community. I want you to start tomorrow, from scratch let me know when you come up with a shell, then let me know when you come up with a playable version with a comparable feature set.
quote:I am, of course, intrigued to know of which particular application you are speaking
I made the mistake once of letting a Trade War person that I didn't know, have information about my real life, it won't happen again
quote:you are perhaps correct in your facts, but that was hardly my point. i despise the 'idea' that people think they can sell and release code that is faulty in some of its core functions. programming as a profession has been overrun by the lazy. philosophically, programming is all ABOUT laziness, but that isn't my point. For you to sit and argue that JP has great testing/release methodologies is to simply ignore reality. YOU may think it is perfectly fine, BLIZZARD, VALVE, etc may think its fine, but in the world where programs are 'important', such laxness is unheard of. If you indeed work for the largest IT dept in the world for the largest corporation of its kind, I would think you would understand the relative urgency of quality management.
I'm not the one ignoring reality, I see the reality of vender supplied code everyday by people like Microsoft, Oracle, Veritas, ect and that reality is that these companies release faulty code. I am not sure what programs you would consider 'important' but I would like you to show me a single application that you know of that doesn't have a beta release, and most quite often also charge for the beta, or just release the code as it is and wait for complaints and then release service packs. I understand quite well the urgency of quality management, I also understand this is a game, no one is curing cancer or transmitting billion dollar deals here yet JP still provides better and quicker service then almost any software company I am aware of.
quote:In my original post I was commenting on the fact that the implemented method of finding and reporting issues was a hit-and-miss scenario at best, and that in the professional world of programming, certain methodologies (profiling/debugging/use cases) were used to assure quality and robustness of said product. You then proceeded to ridicule me, implying that if i was so smart, i should go get hired by a major game developer. In essence you implied that my assertions were incorrect. So no, gypsy, you never explicitly SAID anything, you simply implied that when I said it, I was incorrect.
I didn't imply it, I outright said it, and I meant it. If you have a method by which you can remove all need for feedback from end users, then there are companies out there who will pay huge, because no one has done it yet.
quote:you are in general despised by the best players (and worst) in tradewars, for a variety of reasons. when i first joined the board i was rather neutral, but having witnessed your logic, professionalism, and relative intelligence regarding the product you have 'devoted a great deal of time and effort to over the past 14+ years', it became apparent why the prevailing sentiment is as it is. In no way was I ridiculing the product; I was simply pointing out that the frustration regarding the progress of TW was not game-mechanics related - it was frustration over the perceived (and in some instances real) ineptness of the 'inner circle (primarily you)', and the relative lack of forward progress in resolving critical game play issues.
I could care less what a few people think of me, like i said about you their opinion doesn't mean anything just as I am sure that my opinion of some of the so called "best" players of Trade Wars doesn’t mean anything to them. What I do care about is moving on to v4 and to do that v3 needs to be closed because it just can’t be fixed in its current legacy code state. This being the case I am curious as to what critical game play issues are not resolved in .61 other then the index locking error, which should be corrected by the removal of the fix for randomly dropped messages which will be addressed in v4 with new code.
quote:if you think that expecting a minimal level of professional development in a product that people are paying for is reserved for those with 'superlative programming ability', it is no wonder that your involvement is to the overall detriment of the TW product. The implied argument that I think I am perfect because I point out mistakes in the EIS development cycle is ridiculous, a red herring. I don't write perfect code the first time - but i don't release that code either, and I sure as hell don't go to a facility and ask the manager to 'test this out during day to day operations to make sure the thing is working right'. You dogmactic position that you are always right is tiresome, especially in light of the most recent round of releases. Get a grip. Your arrogance is second only to microsoft.
No my comment about your programming ability was in reference to your statement that if "code was written in any logical way, it should be modular enough to thoroughly test all use cases"This would seem to imply that you feel that creating code for a game with the routines involved in Trade Wars (which is relatively few compared to the major online games of the day) would be very easy and that in doing so simply by using your logical method there would be no need for feedback from end users, because you would have already tested all possible uses so there couldn't possibly be any bugs left in the code. I would say that would define superlative programming ability, since I don't think it’s been done since SpaceWar! Anyway all sarcasm aside I understand what you are trying to say that in a perfect world code would be released that is thoroughly tested and comes out of the box perfect, but the reality is that doesn't happen it's almost impossible to accomplish especially for a single programmer working with the type of code JP is, and its unreasonable, extremely so, to expect a higher level of support and service then what is currently given by EIS which is way above "a minimal level of professional development" and even if it weren't attacking someone's ability to code isn't the way to get anything done anyway.
I don't think I am always right, it just seems that way to some people because I only speak on subjects that I am right about. But if you feel so strongly that you have been cheated in some way or duped into paying for a product that is programmed by an amateur, You should contact JP about a refund. Try doing that with Microsoft too.
_________________ Rick Mead
Project Manager teamEIS
|
| Thu May 06, 2004 4:32 am |
|
 |
|
Orion_Blastar
Lieutenant Commander
Joined: Thu Jul 31, 2003 2:00 am Posts: 837 Location: USA
|
quote:Originally posted by John Pritchett (EIS)
First of all, I don't have a degree in computer science. I have a degree in Engineering Physics. Second, I don't consider myself a top-notch programmer. I can't compete with people with a computer science degree. I'm not trained in, what is it you said... "use cases"? I don't even know what that is. I'm a self-taught programmer. I had one class in programming while in college, Fortran. My strength lies in my other skills; math, physics, logic, general creativity, combined with a natural skill with computer languages. Third, while I do charge for new registrations of Trade Wars, I provide upgrades for free to anyone (the majority of people who run games today) who have already registered the game going back to 1986. Name another application where new versions are free. Fourth, the "perpetual beta" state of Trade Wars was established long before I even heard of the game. And when I wrote TWv3 for Martech, Gary released the game directly to the public, without a closed beta. That's how it was done before I took over, and so that's how I continued to work. Why change? Nobody seemed to complain before. It's just understood that a new revision has the potential to be glitchy until it's been tested for a few weeks.
And fifth, do you have any idea of the history of this codebase? It originated in 1973. The code I use is the same code that ran under DOS3 and supported Desqview. So much for Mutexes and semaphores. This thing was designed to be multiplayer interactive in non-multitasking OSs. All IPC is file-based. All synchronizing is done with file locks. It has gone from BASIC to 16 bit DOS in Turbo Pascal, to 16 bit Windows, to 32 bit Windows in Delphi. Yeah, I've introduced more modern practices into the program. Some elements of the game are even object oriented now (ok, there's one object class in the game). But in general, little can be gained by sprinkling modern techniques throughout ancient code. It's probable that only a complete rewrite of Trade Wars will make it 100% bug free. I'm in the process of writing a modern, multiplayer interactive game engine for text and graphical client/server games, based on what I've learned from Trade Wars. When that's done, if this version of TW isn't running at an acceptable level of stability, I may finally port it to a modern architecture. I hope that won't be necessary, because I have some other ideas I want to explore.
The point is, Trade Wars is not a professional product, and if you thought that was what you were getting when you registered, I'm sorry if I misrepresented it. It was not my intention. I have standards, higher than you can possibly imagine, for my work. But when it comes to Trade Wars, I'm just surprised that it runs at all. I do the best I can with what I have to work with.
Well I think you are doing great without a degree and all by yourself.
Yes I do believe that we should keep in mind the legacy code in TW, and the reason why it is so hard to work with in modern systems. Which is why I said if I licensed the TW product, that the first thing I would do is write it from scratch and use expert TW gamers as game consultants to make sure the new code functioned in gameplay like the old one. That way the legacy code causing all the problems would be gone.
Of course in the case that the TW code isn't able to be licsened or I don't have the money to do so, I may just devote my talents to other things. I got an idea for a Wrestling online game, for example. Nothing to do with Tradewars in any way, shape, or form. I also got medical programs I wanted to develop, etc. Right now I am busy with college and cannot do anything else. My current class uses research and statistics, and I don't even have the time to play Tradewars anymore.
_________________ I'm getting too old for this sort of thing.
I am from http://district268.xormad.com/ District 268
|
| Thu May 06, 2004 10:21 am |
|
 |
|
Doctor Who
Lieutenant J.G.
Joined: Wed Feb 06, 2002 3:00 am Posts: 322 Location: United Kingdom
|
quote:Originally posted by John Pritchett (EIS)
Since TWv4 is using the same code base as TWv3, bugs that I identify and fix in v4 can be implemented into v3 as well. I have been doing that for a few weeks now and I will continue to do that. For example, I've implemented an entirely new mail system in v4, and I'll implement that in v3 as I finish up with that version.
I dont understand that to be honest..
If there are SOOOO many problems with the legacy code.. then wouldnt it be easier to rewrite the game as you want it for version 4 rather than trying to mod the majority of the code..
I am not a programmer nor do I really wish to be.. But the main reason for "long waits" on bug fixes is that the legacy code makes it difficult.. Does this mean that you hope to have it all 100% bug free by v4 or does it mean you just feel it's going to be easier to do a quick mod for ver4 then spend hours&hours&hours later down the road doing fixes
_________________ <<Doctor Who>>
|
| Thu May 06, 2004 1:25 pm |
|
 |
|
Didaskalos
Chief Warrant Officer
Joined: Sat Oct 19, 2002 2:00 am Posts: 156 Location: USA
|
Let me address JP and Gypsy's posts in the same post.
JP - I understand precisely what you are talking about with respect to the maintainability and extendability of legacy code. I empathize with the relative difficulty of moving across platforms and programming architectures. The version of TWGS that I was introduced to was pre .55, but somewhere close to it - and I've never had a problem with the product (game-mechanics wise or stability wise). It is a truly fun environment, as it would have to be in order to survive as long as it has (in text form). My original post was intended to be relatively innocuous - a mere speculation as to the reasoning behind Res hating v56+ editions, and my own curiosity as to the rapid releases of new versions, and the general perception that we are, in fact, guinea pigs, not customers. Gypsy proceeded to take it as an insult to him/you and here we are now, discussing an abstract idea about quality, methodology, and 'other software vendors'' practices. The major point of my second and third posts were to assert that programming by and large, is programming. Yes, there are a myriad of uses for programs, but regardless of the function of the application, I believe that the same standards and practices apply. Given the fact that you are 'massaging' code that has been developed and targeted for different purposes throughout its life, I do not find it difficult to believe you are having the difficulties you describe. In summary, I understand your situation to a degree, nevertheless I still disagree with the methodology you are employing. It is certainly my right to do so, as it is nothing more than an opinion.
Gypsy - you really didn't say anything new in your last post, but I would like to address some challenges you proposed.
A) that I write a program with comparible feature set to TW and to let you know when it is done. I would be very happy to take tradewars legacy code and modify it to fit a modern programming architecture. Last time I checked, the source was unavailable for download. A link perhaps?
B) you again made the assertion that because other software vendors release buggy code, it must be okay to do so, citing various large software vendors. you then challenged me to produce software that requires no end-user testing and is 'bug-free' upon release. while i won't provide any specifics regarding my personal life, I am more than happy to explain multiple scenarios that require (gasp here it comes) bug free code on initial release. I work for an industrial integrator. We write software that interfaces with machines and humans alike. The customers we serve are some of the largest companies in the world, with revenues far exceeding such companies as microsoft. I can guarentee you that if we were to walk in and say 'please integrate this into your production facilities, and call us if it breaks' we'd be fired in a heartbeat. If our software breaks during production, the customer loses significant quantities of money. That being the case, we have rigorous and thorough code reviews, code testing, and code management procedures. Our customer never sees the product in any stage but final. You obviously live in a world where bugs in release versions are simply accepted as normal. I do not. For you to think that your brand of programming is the norm for the rest of the world is ludicrous. You want a specific example? How's this. A certain major tire manufacturer hires us to design, implement, and control the assembly lines for building the product. Our software does process control, HMI (human-machine-interface), and requires 100% uptime. Company loses 20k per second of downtime. Guess how many bugs we found acceptable for final release. How bout none. I can accept that JP has to deal with **** code. I can accept that he is not a professional programmer, just a really smart guy doing his best. I don't see why you can't accept my proposition that A) it could be done better, and B) that there is such a thing as bug-free complex code.
|
| Thu May 06, 2004 1:44 pm |
|
 |
|
Rick Mead (teamEIS)
Ensign
Joined: Sun Dec 24, 2000 3:00 am Posts: 259 Location: USA
|
quote:Originally posted by Didaskalos
A) that I write a program with comparible feature set to TW and to let you know when it is done. I would be very happy to take tradewars legacy code and modify it to fit a modern programming architecture. Last time I checked, the source was unavailable for download. A link perhaps?
I never said anything about from the source I stated: "I want you to start tomorrow, from scratch let me know when you come up with a shell, then let me know when you come up with a playable version with a comparable feature set.", but if you need a link to a starting point I'll do you one better here is the source for the starting point of Trade Wars...
The Set up module:
10 COM S[12,15],T[12,12],T$[72],B[3,12]
20 COM W,D9,K9,X9,D1,X1,P9,T9,S9,Y9,H
30 COM Y1,R9,G9,Q,M[6,3],C[6,3]
35 COM S1,T1,R
40 REM *** STAR TRADERS ***
50 REM <<<GAME SET-UP MODULE>>>
60 REM S IS THE STAR SYSTEM INFO ARRAY
70 REM T IS THE TRADING SHIP INFO ARRAY
80 REM T$ IS THE TRADING SHIP NAME STRING
90 REM M AND C DETERMINE A STAR'S PRODUCTIVITY/MONTH
92 REM PROD/MO. = S(7,J) * M(I,R1) + C(I,R1)
94 REM WHERE J IS THE STAR ID #,I THE MERCHANDISE #,
96 REM AND R1 IS THE DEVELOPMENT CLASS OF THE STAR
100 REM B CONTAINS THE BANK ACCOUNTS
110 REM A$ IS THE STANDARD INPUT BUFFER
120 DIM A$[6]
130 REM R9 IS THE SPEED OF A SHIP IN LIGHT-YEARS PER DAY
140 REM D9 IS THE MINIMUM DISTANCE ALLOWED BETWEEN STARS
150 REM Q IS THE PROBABILITY OF A DELAY
160 REM K9 IS THE MAX NUMBER OF BIDDING ROUNDS
170 REM W IS THE MAX WEIGHT OF A TRADING SHIP
180 REM X9 CONTROLS THE PROFIT MARGIN; HIGH X9 LIMITS THE %
190 REM G9 IS THE STELLAR DEVELOPMENT INCREMENT 1<=G9<=5
195 REM R=1 IF THIS IS A RESTART
200 LET R9=2/7
210 LET D9=15
220 LET Q=.1
230 LET K9=3
240 LET W=30
250 LET X9=36
260 LET G9=1.25
265 LET R=0
270 REM D1 IS THE DAY OF THIS YEAR (1<=D1<=360)
280 REM Y1 IS THIS YEAR
290 LET D1=1
300 LET Y1=2070
302 REM SET UP ECONOMETRICS MODEL
304 RESTORE 2410
306 MAT READ M,C
310 REM *** BLOCK #1
320 PRINT "INSTRUCTIONS (TYPE 'Y' OR 'N' PLEASE)";
330 INPUT A$
340 IF A$[1,1]="N" THEN 590
350 PRINT
360 PRINT " THE DATE IS JAN 1, 2070 AND INTERSTELLAR FLIGHT"
370 PRINT "HAS EXISTED FOR 70 YEARS. THERE ARE SEVERAL STAR"
380 PRINT "SYSTEMS THAT HAVE BEEN COLONIZED. SOME ARE ONLY"
390 PRINT "FRONTIER SYSTEMS, OTHERS ARE OLDER AND MORE DEVELOPED."
400 PRINT
410 PRINT " EACH OF YOU IS THE CAPTAIN OF TWO INTERSTELLAR"
420 PRINT "TRADING SHIPS. YOU WILL TRAVEL FROM STAR SYSTEM TO"
430 PRINT "STAR SYSTEM, BUYING AND SELLING MERCHANDISE. IF YOU"
440 PRINT "DRIVE A GOOD BARGAIN YOU CAN MAKE LARGE PROFITS."
450 PRINT
460 PRINT " AS TIME GOES ON, EACH STAR SYSTEM WILL SLOWLY"
470 PRINT "GROW, AND ITS NEEDS WILL CHANGE. A STAR SYSTEM THAT"
480 PRINT "HOW IS SELLING MUCH URANIUM AND RAW METALS CHEAPLY"
490 PRINT "MAY NOT HAVE ENOUGH FOR EXPORT IN A FEW YEARS."
500 PRINT
510 PRINT " YOUR SHIPS CAN TRAVEL ABOUT TWO LIGHTYEARS IN A"
520 PRINT "WEEK AND CAN CARRY UP TO";W;" TONS OF CARGO. ONLY"
530 PRINT "CLASS I AND CLASS II STAR SYSTEMS HAVE BANKS ON THEM."
540 PRINT "THEY PAY 5% INTEREST AND ANY MONEY YOU DEPOSIT ON ONE"
550 PRINT "PLANET IS AVAILABLE ON ANOTHER - PROVIDED THERE'S A LOCAL"
560 PRINT "BANK."
570 PRINT
580 REM *** BLOCK #2
590 PRINT "HAVE ALL PLAYERS PLAYED BEFORE";
600 INPUT A$
605 PRINT
610 IF A$[1,1]="Y" THEN 630
620 GOTO 660
630 PRINT "DO YOU WANT TO SET UP YOUR OWN GAME";
640 INPUT A$
645 PRINT
650 IF A$[1,1]="Y" THEN 760
660 PRINT "HOW MANY PLAYERS";
670 INPUT P9
675 PRINT
680 GOTO P9-1 OF 710,710,710
690 PRINT "2,3, OR 4 CAN PLAY"
700 GOTO 660
710 T9=2*P9
720 S9=3*P9+1
730 Y9=Y1+5
740 GOTO 1350
750 REM *** BLOCK #3
760 PRINT "IS THIS A RESTART";
770 INPUT A$
775 PRINT
780 IF A$[1,1]="N" THEN 940
790 PRINT "LOAD THE TAPE INTO THE TAPE READER. WHEN I TYPE A '?'"
800 PRINT "YOU CAN FLIP THE SWITCH TO 'START' WHENEVER YOU'RE READY"
810 PRINT
820 INPUT T$
830 INPUT W,D9,K9,X9,D1,Y1
835 INPUT P9,T9,S9,Y9,T1,S1
840 FOR J=1 TO S9
845 FOR I=1 TO 9 STEP 4
850 INPUT S[I,J],S[I+1,J],S[I+2,J],S[I+3,J]
855 NEXT I
860 NEXT J
870 FOR J=1 TO T9
875 FOR I=1 TO 9 STEP 4
880 INPUT T[I,J],T[I+1,J],T[I+2,J],T[I+3,J]
885 NEXT I
890 NEXT J
900 FOR I=1 TO P9
910 INPUT B[1,I],B[2,I],B[3,I]
920 NEXT I
925 R=1
930 CHAIN "$TRADES"
940 PRINT "HOW MANY PLAYERS";
950 INPUT P9
955 PRINT
960 IF P9 >= 2 AND P9 <= 12 THEN 990
970 PRINT "2,3,4, ... ,12 CAN PLAY"
980 GOTO 940
990 PRINT "HOW MANY SHIPS PER PLAYER";
1000 INPUT X
1005 PRINT
1010 IF X<1 THEN 990
1020 T9=P9*X
1030 IF T9 <= 12 THEN 1070
1040 PRINT "I CAN'T KEEP TRACK OF MORE THAN 12 SHIPS;"
1050 PRINT P9;" PLAYERS TIMES";X;" SHIPS MAKES";T9
1060 GOTO 990
1070 PRINT "HOW MANY STAR SYSTEMS";
1080 INPUT S9
1085 PRINT
1090 IF S9 >= 4 AND S9 <= 13 THEN 1120
1100 PRINT "FROM 4 TO 13 STARS"
1110 GOTO 1070
1120 PRINT "ENTER THE LENGTH OF GAME IN YEARS";
1130 INPUT X
1135 PRINT
1140 IF X >= 1 AND INT(X)=X THEN 1170
1150 PRINT "CHOOSE A POSITIVE INTEGER"
1160 GOTO 1130
1170 Y9=Y1+X
1180 PRINT "WHAT'S THE MAX CARGOE TONNAGE(USUALLY 30)";
1190 INPUT W
1195 PRINT
1200 IF W<25 THEN 1180
1210 PRINT "WHAT'S THE MINIMUM DISTANCE BETWEEN STARS(USUALLY 15)";
1220 INPUT D9
1225 PRINT
1230 IF D9 <= 25 AND D9 >= 10 THEN 1260
1240 PRINT "MIN SPACING 10, MAX 25"
1250 GOTO 1210
1260 PRINT "HOW MANY BIDS OR OFFERS(USUALLY 3)";
1270 INPUT K9
1275 PRINT
1280 IF K9<1 THEN 1260
1290 PRINT "SET THE PROFIT MARGIN(1,2,3,4 OR 5)...THE HIGHER"
1300 PRINT "THE NUMBER, THE LOWER THE PROFIT % ... USUALLY SET TO 2"
1310 PRINT "...YOUR NUMBER";
1320 INPUT X9
1330 X9=18*(ABS(X9) MIN 5)
1340 REM *** BLOCK #4.1
1350 S[11,1]=S[12,1]=0
1360 S[7,1]=15
1370 REM *** BLOCK #4.2
1380 H=1
1390 S1=2
1400 GOSUB 1920
1410 S1=3
1420 GOSUB 1920
1430 S1=4
1440 GOSUB 2010
1450 FOR S1=5 TO S9
1460 GOSUB S1-3*INT((S1-1)/3) OF 1920,2010,2060
1470 NEXT S1
1480 REM *** BLOCK #4.3
1490 FOR S1=1 TO S9
1500 FOR J=1 TO 6
1510 S[J,S1]=0
1520 NEXT J
1530 IF S1>1 THEN 1560
1540 I=1
1550 GOTO 1600
1560 I=4*INT(14*RND(0))+5
1570 FOR J=2 TO S1-1
1580 IF I=S[8,J] THEN 1560
1590 NEXT J
1600 S[8,S1]=I
1610 S[9,S1]=270
1620 S[10,S1]=Y1-1
1630 NEXT S1
1640 REM *** BLOCK #4.4
1650 T1=L=1
1655 PRINT
1657 PRINT
1660 PRINT "CAPTAINS, NAME YOUR SHIPS (UP TO 6 LETTERS/BLANKS/NUMBERS)"
1670 FOR I=1 TO T9/P9
1680 PRINT
1690 FOR P1=1 TO P9
1700 T[1,T1]=T[2,T1]=T[6,T1]=0
1710 T[3,T1]=15
1720 T[4,T1]=T[5,T1]=10
1730 T[7,T1]=25
1740 T[9,T1]=D1
1750 T[10,T1]=Y1
1760 T[11,T1]=5000
1770 PRINT " CAPTAIN";P1;"WHAT DO YOU CHRISTEN YOUR SHIP #";I;
1780 INPUT T$[L,L+5]
1790 T1=T1+1
1800 L=L+6
1810 NEXT P1
1820 NEXT I
1830 REM *** BLOCK #4.5
1840 FOR B1=1 TO P9
1850 B[1,B1]=0
1860 B[2,B1]=D1
1870 B[3,B1]=Y1
1880 NEXT B1
1890 CHAIN "$TRADES"
1900 REM *** GOSUBS FOLLOW ***
1910 REM <FRONTIER> GOSUB
1920 X=(RND(0)-.5)*100
1930 Y=50*RND(0)
1940 IF (ABS(X)<25) AND (Y<25) THEN 1920
1950 F=1
1960 GOSUB 2190
1970 IF F=0 THEN 1920
1980 S[7,S1]=0
1990 RETURN
2000 REM *** <UNDERDEVELOPED> GOSUB
2010 E=100
2020 GOSUB 2110
2030 S[7,S1]=5
2040 RETURN
2050 REM *** <DEVELOPED> GOSUB
2060 E=50
2070 GOSUB 2110
2080 S[7,S1]=10
2090 RETURN
2100 REM *** <GENERATE CO-ORDS> GOSUB
2110 X=(RND(0)-.5)*E
2120 Y=RND(0)*E/2
2130 F=1
2140 GOSUB 2190
2150 IF F=0 THEN 2110
2160 RETURN
2170 REM *** <TEST STAR CO-ORDS> GOSUB
2180 REM FIRST CONVERT CO-ORDS TO NEXT HALF-BOARD
2190 GOTO H OF 2300,2260,2240,2200
2200 Z=X
2210 X=-Y
2220 Y=Z
2230 GOTO 2300
2240 Y=-Y
2250 GOTO 2300
2260 Z=X
2270 X=Y
2280 Y=Z
2290 REM SECOND, TEST PROXIMITY
2300 FOR J=1 TO S1-1
2310 IF SQR((X-S[11,J])^2+(Y-S[12,J])^2) >= D9 THEN 2340
2320 F=0
2330 RETURN
2340 NEXT J
2350 REM FINALLY, ENTER CO-ORDS AND INCREMENT HALF-BOARD CTR
2360 S[11,S1]=INT(X)
2370 S[12,S1]=INT(Y)
2380 H=1+(H <= 3)*H
2390 RETURN
2400 REM *** DATA FOR ECONOMETRIC MODEL FOLLOWS ***
2410 REM MODEL #1
2420 DATA -0.025,-0.05,-0.025,0,-0.025,-0.025,0,.1,.1,-0.025,.1,0,.1,.2,.1,.1,-0.025,0
2430 DATA 1,1.5,.5,.75,.75,.75,-0.25,-0.25,-0.25,0,-0.5,.5,0,-0.5
2440 DATA 0,.5,1.5,0
2450 END
The Main:
10 COM S[12,15],T[12,12],T$[72],B[3,12]
20 COM W,D9,K9,X9,D1,X1,P9,T9,S9,Y9,H
30 COM Y1,R9,G9,Q,M[6,3],C[6,3]
35 COM S1,T1,R
40 REM *** STAR TRADERS ***
50 REM MAIN MODULE
120 REM SET UP CALENDAR AND STAR SYSTEM NAMES
130 DIM C$[36],S$[60]
140 LET C$="JANFEBMARAPRMIYJUNJULAUGSEPOCTNOVDEC"
150 LET S$="SOL YORKBOYDIVANREEFHOOKSTANTASKSINKSANDQUINGAOLKIRK"
160 LET S$[53]="KRISFATE"
170 REM S IS THE STAR SYSTEM INFO ARRAY
180 REM T IS THE TRADING SHIP INFO ARRAY
190 REM T$ IS THE TRADING SHIP NAME STRING (6 CHARS PER SHIP)
200 REM P CONTAINS THE FAIR PRICES ON THE LOCAL PLANET
210 REM Q HAS THE FIXED PRICES
220 REM B CONTAINS THE BANK ACCOUNTS
230 DIM P[6],Q[6]
240 DIM A$[6],D$[5],N$[36],G[6]
250 RESTORE 270
260 MAT READ Q
270 DATA 5000,3500,4000,4500,3000,3000
280 LET N$=" UR MET HE MED SOFT GEMS"
290 REM FNZ COMPUTES THE PRICE WINDOW THROUGH WHICH A BID IS
300 REM ACCEPTABLE FOR FURTHER HAGGLING
310 DEF FNZ(X)=(FNY(X)*.5+( NOT FNY(X))*X/(2*ABS(S[I1,S1])))/K1
320 DEF FNY(X)=X >= ABS(S[I1,S1])
330 REM R9 IS THE SPEED OF A SHIP IN LIGHTYEARS PER DAY
340 REM D9 IS THE MINIMUM DISTANCE ALLOWED BETWEEN STARS
350 REM Q IS THE PROBABILITY OF A DELAY
360 REM K9 IS THE MAX NUMBER OF BIDDING ROUNDS
370 REM W IS THE MAX WEIGHT OF A TRADING SHIP'S CARGO
380 REM X9 CONTROLS THE PROFIT MARGIN; HIGH X9 LIMITS THE %
390 REM G9 IS THE STELLAR DEVELOPEMENT # INCREMENT 1<=G9<=5
400 REM *** BLOCK #5
402 IF R=0 THEN 430
404 GOSUB 3860
406 GOSUB 5190
408 FOR T2=1 TO T9
410 IF T2=T1 THEN 420
412 L=(T2-1)*6+1
414 PRINT T$[L,L+5];" IS ENROUTE TO ";S$[T[8,T2],T[8,T2]+3]
420 NEXT T2
424 L=(T1-1)*6+1
426 PRINT " AND ";T$[L,L+5];" IS ABOUT TO LEAVE ";S$[T[8,T1],T[8,T1]+3]
428 GOTO 2040
430 GOSUB 5190
432 GOSUB 3190
434 S1=T1=L1=1
440 PRINT
450 PRINT "ALL SHIPS START AT SOL"
460 PRINT "ADVICE; VISIT THE CLASS III AND IV SYSTEMS -"
470 PRINT "SOL AND THE CLASS II STARS PRODUCE ALOT OF HE,MED AND"
480 PRINT "SOFT, WHICH THE POORER STAR SYSTEMS (CLASS III AND"
490 PRINT "IV) NEED. ALSO, THE POOR STARS PRODUCE THE RAW GOODS -"
500 PRINT "UR,MET,GEMS THAT YOU CAN BRING BACK TO SOL AND"
510 PRINT "THE CLASS II SYSTEMS IN TRADE"
520 PRINT
530 PRINT "STUDY THE MAP AND CURRENT PRICE CHARTS CAREFULLY -"
540 PRINT "CLASS I AND II STARS MAKE EXCELLENT TRADING PARTNERS"
550 PRINT "WITH CLASS III OR IV STARS."
560 FOR I1=1 TO T9/P9
570 FOR P1=1 TO P9
580 PRINT
590 PRINT "PLAYER";P1;", WHICH STAR WILL ";T$[L1,L1+5];" TRAVEL TO";
600 GOSUB 2770
610 L1=L1+6
620 T1=T1+1
630 NEXT P1
640 NEXT I1
650 REM *** BLOCK #6
660 D=T[9,1]
670 Y=T[10,1]
680 T1=1
690 FOR I=2 TO T9
700 IF T[10,I]<Y THEN 740
710 IF T[10,I]>Y THEN 770
720 IF T[9,I]>D THEN 770
730 IF T[9,I]=D AND RND(0)>.5 THEN 770
740 D=T[9,I]
750 Y=T[10,I]
760 T1=I
770 NEXT I
780 IF Y1=Y THEN 900
790 D1=1
800 Y1=Y
810 T2=T1
820 GOSUB 3190
822 IF Y1 <> 2071 THEN 830
824 GOSUB 4500
826 PRINT "THE LAST YEAR OF THIS GAME IS ";Y9;" BUT IF YOU"
828 PRINT "WANT TO QUIT BEFORE THEN, YOU CAN TYPE 'SAVE' AS"
829 PRINT "YOUR NEXT PORT OF CALL - THIS WILL PUNCH A TAPE"
830 PRINT "SO YOU CAN CONTINUE THE GAME LATER"
831 T1=T2
840 IF Y1<Y9 THEN 900
850 GOSUB 4500
860 PRINT "NEW GAME";
870 INPUT A$
880 IF A$[1,1]="N" THEN 5500
890 CHAIN "$TRADER"
900 D1=D
910 M=INT((D1-1)/30)
920 L=3*M+1
930 PRINT
940 PRINT
950 PRINT "*****************"
960 PRINT "* ";C$[L,L+2];D1-30*M;",";Y1
970 L=(T1-1)*6+1
980 S1=T[8,T1]
990 M=S[8,S1]
1000 PRINT "* ";T$[L,L+5];" HAS LANDED ON ";S$[M,M+3]
1010 GOTO T[12,T1]+1 OF 1080,1060,1040,1020
1020 PRINT "3 WEEKS LATE - PIRATES ATTACKED MIDVOYAGE"
1030 GOTO 1080
1040 PRINT "2 WEEKS LATE - 'WE GOT LOST.SORRY'"
1050 GOTO 1080
1060 PRINT "1 WEEK LATE - 'OUR COMPUTER MADE A MISTAKE'"
1070 REM *** PRINT CARGO STATUS FOR CURRENT SHIP
1080 PRINT
1090 PRINT "$ ON BOARD";N$;" NET WT"
1100 PRINT USING 1110;T[11,T1],T[1,T1],T[2,T1],T[3,T1],T[4,T1],T[5,T1],T[6,T1],T[7,T1]
1110 IMAGE DDXDDDXDDD,7(4X,2D)
1120 REM *** BLOCK #7
1130 GOSUB 3870
1140 PRINT
1150 PRINT "WE ARE BUYING:"
1160 J1=1
1170 FOR I1=1 TO 6
1180 IF S[I1,S1] >= 0 OR T[I1,T1]<.5 THEN 1480
1190 PRINT TAB(5);N$[J1,J1+5];" WE NEED ";-INT(S[I1,S1]);" UNITS.";
1200 PRINT "HOW MANY ARE YOU SELLING";
1210 GOSUB 4430
1220 IF X=0 THEN 1480
1230 IF X <= T[I1,T1] THEN 1270
1240 PRINT TAB(5);"YOU ONLY HAVE ";T[I1,T1];" UNITS IN YOUR HOLD"
1250 PRINT TAB(5);
1260 GOTO 1200
1270 IF X <= 2*-INT(S[I1,S1]) THEN 1300
1280 X=2*-INT(S[I1,S1])
1290 PRINT TAB(5);"WE'LL BID ON ";X;" UNITS."
1300 FOR K1=1 TO K9
1310 IF K1#K9 MAX 2 THEN 1340
1320 PRINT TAB(5);"OUR FINAL OFFER:";
1330 GOTO 1350
1340 PRINT TAB(5);"WE OFFER ";
1342 Y2=(L1+1)*10/3
1350 PRINT 100*INT(.009*P[I1]*X+.5);" WHAT DO YOU BID";
1360 INPUT Y
1362 IF Y>P[I1]*X/10 AND Y<P[I1]*X*10 THEN 1370
1364 PRINT TAB(5);"WATCH YOUR TYPING -- TRY AGAIN"
1366 GOTO 1340
1370 IF Y <= P[I1]*X THEN 1430
1380 IF Y>(1+FNZ(X))*P[I1]*X THEN 1410
1390 P[I1]=.8*P[I1]+.2*Y/X
1400 NEXT K1
1410 PRINT TAB(5);"WE'LL PASS THIS ONE"
1420 GOTO 1480
1430 PRINT TAB(5);"WE'LL BUY!"
1440 T[I1,T1]=T[I1,T1]-X
1450 T[7,T1]=T[7,T1]-X*(I1<5)
1460 T[11,T1]=T[11,T1]+Y
1470 S[I1,S1]=S[I1,S1]+X
1480 J1=J1+6
1490 NEXT I1
1500 PRINT
1510 REM *** BLOCK #8
1520 PRINT "WE ARE SELLING:"
1530 J1=1
1540 FOR I1=1 TO 6
1550 IF G[I1] <= 0 OR S[I1,S1]<1 THEN 1960
1555 IF I1 <= 4 AND T[7,T1] >= W THEN 1960
1560 PRINT TAB(5);N$[J1,J1+5];" UP TO ";INT(S[I1,S1]);" UNITS.";
1570 PRINT "HOW MANY ARE YOU BUYING";
1580 GOSUB 4430
1590 IF X=0 THEN 1960
1600 IF I1>4 OR X+T[7,T1] <= W THEN 1660
1610 PRINT TAB(5);"YOU HAVE ";T[7,T1];" TONS ABOARD, SO ";X;
1620 PRINT " TONS PUTS YOU OVER"
1630 PRINT TAB(5);"THE ";W;" TON LIMIT."
1640 PRINT TAB(5);
1650 GOTO 1570
1660 IF X <= S[I1,S1] THEN 1700
1670 PRINT TAB(5);"WE ONLY HAVE ";INT(S[I1,S1]);" UNITS"
1680 PRINT TAB(5);
1690 GOTO 1570
1700 FOR K1=1 TO K9
1710 IF K1#K9 MAX 2 THEN 1740
1720 PRINT TAB(5);"OUR FINAL OFFER:";
1730 GOTO 1750
1740 PRINT TAB(5);"WE WANT ABOUT ";
1750 PRINT 100*INT(.011*P[I1]*X+.5);
1760 PRINT "YOUR OFFER";
1770 INPUT Y
1772 IF Y>P[I1]*X/10 AND Y<P[I1]*X*10 THEN 1780
1774 PRINT TAB(5);"WATCH YOUR TYPING -- TRY AGAIN"
1776 GOTO 1740
1780 IF Y >= P[I1]*X THEN 1840
1790 IF Y<(1-FNZ(X))*P[I1]*X THEN 1820
1800 P[I1]=.8*P[I1]+.2*Y/X
1810 NEXT K1
1820 PRINT TAB(5);"THAT'S TOO LOW"
1830 GOTO 1960
1840 IF Y <= T[11,T1] THEN 1910
1850 PRINT TAB(5);"YOU BID $";Y;" BUT YOU HAVE ONLY $";T[11,T1]
1860 GOSUB 4310
1870 IF S[7,S1]<10 OR T[11,T1]+B[1,B1]<Y THEN 1820
1880 PRINT TAB(5);
1890 GOSUB 4020
1900 IF Y>T[11,T1] THEN 1820
1910 PRINT TAB(5);"SOLD!"
1920 T[I1,T1]=T[I1,T1]+X
1930 T[7,T1]=T[7,T1]+X*(I1<5)
1940 S[I1,S1]=S[I1,S1]-X
1950 T[11,T1]=T[11,T1]-Y
1960 J1=J1+6
1970 NEXT I1
1980 REM *** BLOCK #9
1990 GOSUB 4310
2000 IF S[7,S1]<10 OR T[11,T1]+B[1,B1]=0 THEN 2040
2010 PRINT
2020 GOSUB 4020
2030 PRINT
2040 PRINT "WHAT IS YOUR NEXT PORT OF CALL";
2050 GOSUB 2770
2060 REM *** BLOCK #10.1
2070 J=0
2080 FOR I=1 TO 6
2090 IF S[I,S1] >= 0 THEN 2120
2100 IF S[I,S1]<G[I] THEN 660
2110 J=J+1
2120 NEXT I
2130 IF J>1 THEN 660
2140 REM *** BLOCK #10.2
2150 S[7,S1]=S[7,S1]+G9
2160 G0=S[7,S1]
2162 IF G0#5 AND G0#10 AND G0#15 THEN 2220
2170 GOSUB 4580
2180 GOSUB 4500
2190 PRINT "STAR SYSTEM ";S$[S[8,S1],S[8,S1]+3];" IS NOW A CLASS";
2200 PRINT D$;" SYSTEM"
2210 REM *** BLOCK #10.3
2220 IF S9=15 THEN 660
2230 J=0
2240 FOR I=1 TO S9
2250 J=J+S[7,I]
2260 NEXT I
2270 IF J/S9<10 THEN 660
2280 REM A NEW STAR IS BORN!
2290 S1=S9=S9+1
2300 GOSUB 4680
2310 GOSUB 2450
2320 S[9,S1]=D1
2330 S[10,S1]=Y1
2340 FOR J=1 TO 6
2350 S[J,S1]=0
2360 NEXT J
2370 GOSUB 4500
2380 PRINT "A NEW STAR SYSTEM HAS BEEN DISCOVERED! IT IS A CLASS IV"
2390 PRINT "AND ITS NAME IS";S$[S[8,S1],S[8,S1]+3]
2400 GOSUB 5190
2410 GOTO 660
2420 STOP
2430 REM *** GOSUBS FOLLOW ***
2440 REM <FRONTIER> GOSUB
2450 X=(RND(0)-.5)*100
2460 Y=50*RND(0)
2470 IF (ABS(X)<25) AND (Y<25) THEN 2450
2480 F=1
2490 GOSUB 2550
2500 IF F=0 THEN 2450
2510 S[7,S1]=0
2520 RETURN
2530 REM *** <TEST STAR CO-ORDS> GOSUB
2540 REM FIRST CONVERT CO-ORDS TO NEXT HALF-BOARD
2550 GOTO H OF 2660,2620,2600,2560
2560 Z=X
2570 X=-Y
2580 Y=Z
2590 GOTO 2660
2600 Y=-Y
2610 GOTO 2660
2620 Z=X
2630 X=Y
2640 Y=Z
2650 REM SECOND TEST PROXIMITY
2660 FOR J=1 TO S1-1
2670 IF SQR((X-S[11,J])^2+(Y-S[12,J])^2) >= D9 THEN 2700
2680 F=0
2690 RETURN
2700 NEXT J
2710 REM FINALLY ENTER CO-ORDS AND INCREMENT HALF-BOARD COUNTER
2720 S[11,S1]=INT(X)
2730 S[12,S1]=INT(Y)
2740 H=1+(H <= 3)*H
2750 RETURN
2760 REM *** <NEXT ETA> GOSUB
2770 INPUT A$
2780 FOR I=1 TO S9
2790 J=S[8,I]
2800 IF A$[1,4]=S$[J,J+3] THEN 2870
2810 NEXT I
2820 IF A$[1,4] <> "SAVE" THEN 2832
2830 GOSUB 4770
2832 IF A$[1,3] <> "MAP" THEN 2840
2833 S2=S1
2834 GOSUB 5190
2835 S1=S2
2836 GOTO 2850
2840 IF A$[1,6] <> "REPORT" THEN 2848
2842 GOSUB 3180
2846 GOTO 2850
2848 PRINT A$[1,4];" IS NOT A STAR NAME IN THIS GAME"
2850 PRINT "NEXT STAR";
2860 GOTO 2770
2870 T[8,T1]=I
2880 IF I#S1 THEN 2910
2890 PRINT "CHOOSE A DIFFERENT STAR SYSTEM TO VISIT"
2900 GOTO 2850
2910 D2=SQR((S[11,S1]-S[11,I])^2+(S[12,S1]-S[12,I])^2)/R9
2920 D2=INT(D2)
2930 IF RND(0)>(Q/2) THEN 3030
2940 I=1+INT(RND(0)*3)
2950 GOTO I OF 3000,2980,2960
2960 PRINT "SHIP DOES NOT PASS INSPECTION";
2970 GOTO 3010
2980 PRINT "CREWMEN DEMAND A VACATION";
2990 GOTO 3010
3000 PRINT "LOCAL HOLIDAY SOON";
3010 PRINT " - ";I;" WEEK DELAY."
3020 D2=D2+7*I
3030 T[9,T1]=T[9,T1]+D2
3040 IF T[9,T1] <= 360 THEN 3070
3050 T[9,T1]=T[9,T1]-360
3060 T[10,T1]=T[10,T1]+1
3070 M=INT((T[9,T1]-1)/30)
3080 L=3*M+1
3090 PRINT "THE ETA AT ";S$[J,J+3];" IS ";C$[L,L+2];" ";T[9,T1]-30*M;","T[10,T1]
3100 REM UPDATE ETA PLUS RANOM DELAY FACTOR (0,1,2 OR 3 WEEKS)
3110 I=(INT(RND(0)*3)+1)*(RND(0)>(Q/2))
3120 T[9,T1]=T[9,T1]+7*I
3130 IF T[9,T1] <= 360 THEN 3160
3140 T[9,T1]=T[9,T1]-360
3150 T[10,T1]=T[10,T1]+1
3160 T[12,T1]=I
3170 RETURN
3180 REM *** <REPORT> GOSUB
3190 GOSUB 4500
3200 PRINT TAB(10);"JAN 1, ";Y1;TAB(35);"YEARLY REPORT #";Y1-2069
3210 PRINT
3220 PRINT
3230 IF Y1>2070 THEN 3450
3240 PRINT "STAR SYSTEM CLASSES:"
3250 PRINT " I COSMOPOLITAN"
3260 PRINT " II DEVELOPED"
3270 PRINT " III UNDERDEVELOPED"
3280 PRINT " IV FRONTIER"
3290 PRINT
3300 PRINT
3310 PRINT "MERCHANDISE:"
3320 PRINT " UR URANIUM"
3330 PRINT " MET METALS"
3340 PRINT " HE HEAVY EQUIPMENT"
3350 PRINT " MED MEDICINE"
3360 PRINT " SOFT COMPUTER SOFTWARE"
3370 PRINT " GEMS STAR GEMS"
3380 PRINT
3390 PRINT
3400 PRINT TAB(5);"EACH TRADING SHIP CAN CARRY MAX ";W;" TONS CARGO."
3410 PRINT "STAR GEMS AND COMPUTER SOFTWARE, WHICH AREN'T SOLD BY THE"
3420 PRINT "TON, DON'T COUNT."
3430 PRINT
3440 PRINT
3450 PRINT TAB(20);"CURRENT PRICES"
3460 PRINT
3470 PRINT
3480 PRINT "NAME CLASS";N$
3490 PRINT
3500 FOR S1=1 TO S9
3510 GOSUB 3870
3520 FOR I=1 TO 6
3530 P[I]=SGN(S[I,S1])*P[I]
3540 NEXT I
3550 GOSUB 4580
3560 PRINT USING "#,4A,2X";S$[S[8,S1],S[8,S1]+3]
3570 PRINT USING "5A,6(S5D)";D$,P[1],P[2],P[3],P[4],P[5],P[6]
3580 IF S1/2 <> INT(S1/2) THEN 3600
3590 PRINT
3600 NEXT S1
3610 PRINT
3620 PRINT "('+' MEANS SELLING AND '-' MEANS BUYING)"
3630 PRINT
3640 PRINT
3650 PRINT TAB(22);"CAPTAINS"
3660 PRINT
3670 PRINT
3680 PRINT "NUMBER $ ON SHIPS $ IN BANK CARGOES TOTALS"
3690 FOR B1=1 TO P9
3700 GOSUB 4380
3710 NEXT B1
3720 FOR P1=1 TO P9
3730 PRINT
3740 M1=M2=0
3750 FOR I1=0 TO T9/P9-1
3760 M1=M1+T[11,P9*I1+P1]
3770 FOR K=1 TO 6
3780 M2=M2+T[K,P9*I1+P1]*Q[K]
3790 NEXT K
3800 NEXT I1
3810 M3=M2+M1+B[1,P1]
3820 PRINT USING 3830;P1,M1,B[1,P1],M2,M3
3830 IMAGE 2X,2D,2X,4(2X,DDXDDDXDDD)
3840 NEXT P1
3850 RETURN
3860 REM *** <PRICES> GOSUB
3870 R1=1+(S[7,S1] >= 5)+(S[7,S1] >= 10)
3880 D2=12*(Y1-S[10,S1])+(D1-S[9,S1])/30
3890 FOR I=1 TO 6
3900 G[I]=(1+S[7,S1]/15)*(M[I,R1]*S[7,S1]+C[I,R1])
3910 IF ABS(G[I])>.01 THEN 3940
3920 P[I]=0
3930 GOTO 3970
3940 S[I,S1]=SGN(G[I])*(ABS(G[I]*12) MIN ABS(S[I,S1]+D2*G[I]))
3950 P[I]=Q[I]*(1-SGN(S[I,S1])*ABS(S[I,S1]/(G[I]*X9)))
3960 P[I]=100*INT(P[I]/100+.5)
3970 NEXT I
3980 S[9,S1]=D1
3990 S[10,S1]=Y1
4000 RETURN
4010 REM *** <BANK CALL> GOSUB
4020 PRINT "DO YOU WISH TO VISIT THE LOCAL BANK";
4030 INPUT A$
4040 IF A$[1,1]="Y" THEN 4060
4050 RETURN
4060 GOSUB 4310
4070 GOSUB 4380
4080 PRINT TAB(5);"YOU HAVE $";B[1,B1];" IN THE BANK"
4082 PRINT TAB(5);"AND $";T[11,T1];" ON YOUR SHIP"
4090 IF B[1,B1]=0 THEN 4190
4100 PRINT TAB(5);"HOW MUCH DO YOU WISH TO WITHDRAW";
4110 INPUT Z
4120 IF Z <= B[1,B1] THEN 4150
4130 PRINT TAB(5);"TOO MUCH; ";
4140 GOTO 4100
4150 IF Z <= 0 THEN 4190
4160 B[1,B1]=B[1,B1]-Z
4170 T[11,T1]=T[11,T1]+Z
4180 RETURN
4190 PRINT TAB(5);"HOW MUCH DO YOU WISH TO DEPOSIT";
4200 INPUT Z
4210 IF Z >= 0 THEN 4240
4220 PRINT TAB(5);"YOU CAN'T DEPOSIT A NEGATIVE NUMBER"
4230 GOTO 4190
4240 IF Z <= T[11,T1] THEN 4270
4250 PRINT TAB(5);"YOU HAVE $";T[11,T1];" ON YOUR SHIP"
4260 GOTO 4190
4270 T[11,T1]=T[11,T1]-Z
4280 B[1,B1]=B[1,B1]+Z
4290 RETURN
4300 REM *** <B1> GOSUB
4310 B1=T1
4320 FOR I=1 TO S9/P9
4330 IF B1 <= P9 THEN 4360
4340 B1=B1-P9
4350 NEXT I
4360 RETURN
4370 REM ***<BANK UPDATE> GOSUB
4380 B[1,B1]=B[1,B1]*(1+.05*(Y1-B[3,B1]+(D1-B[2,B1])/360))
4390 B[2,B1]=D1
4400 B[3,B1]=Y1
4410 RETURN
4420 REM *** <INPUT> GOSUB
4430 INPUT X
4440 IF INT(X)=X AND X >= 0 THEN 4480
4450 PRINT TAB(5);"TYPE A ZERO IF YOU WANT TO PASS THIS ONE,"
4460 PRINT TAB(5);"BUT NO NEGATIVES OR DECIMALS"
4470 GOTO 4430
4480 RETURN
4490 REM *** <GA> GOSUB
4500 PRINT
4520 PRINT
4530 PRINT TAB(20),"*** GENERAL ANNOUNCEMENT ***"
4540 PRINT
4550 PRINT
4560 RETURN
4570 REM *** <D$> GOSUB
4580 GOTO S[7,S1]/5+1 OF 4650,4630,4610,4590
4590 D$=" I"
4600 RETURN
4610 D$=" II"
4620 RETURN
4630 D$=" III"
4640 RETURN
4650 D$=" IV"
4660 RETURN
4670 REM *** <STAR NAME> GOSUB
4680 IF S1>1 THEN 4710
4690 I=1
4700 GOTO 4750
4710 I=4*INT(14*RND(0))+5
4720 FOR J=2 TO S1-1
4730 IF I=S[8,J] THEN 4710
4740 NEXT J
4750 S[8,S1]=I
4760 RETURN
4770 REM *** <SAVE GAME ON TAPE> GOSUB
4780 PRINT "WHEN I TYPE '?' THIS IS WHAT YOU SHOULD DO:"
4790 PRINT
4800 PRINT " 1. PUSH THE 'ON' BUTTON ON THE TAPE PUNCHER"
4810 PRINT " 2. PRESS THE 'HERE IS' KEY (UPPER RIGHT) 3 TIMES"
4820 PRINT " 3. PUSH THE 'OFF' BUTTON ON THE TAPE PUNCHER"
4830 PRINT " 4. TYPE ANY NUMBER"
4840 PRINT " 5. PRESS THE 'RETURN' KEY"
4850 PRINT
4860 PRINT "WHEN I TYPE '!!!' THAT MEANS I'LL START PUNCHING"
4870 PRINT "THE TAPE IN ABOUT 10 SECONDS, SO:"
4880 PRINT
4890 PRINT " *** DON'T FORGET TO TURN THE PUNCHER BACK ON ***"
4900 PRINT LIN(3)
4910 INPUT X
4920 PRINT "!!!"
4930 FOR I=1 TO 10000
4940 X=X+1
4950 NEXT I
4960 PRINT T$;""
4970 PRINT W;",";D9;",";K9;",";X9;",";D1;",";Y1;""
4980 PRINT P9;",";T9;",";S9;",";Y9;",";T1;",";S1;""
4990 FOR J=1 TO S9
5000 FOR I=1 TO 9 STEP 4
5010 PRINT S[I,J];",";S[I+1,J];",";S[I+2,J];",";S[I+3,J];""
5040 NEXT I
5060 NEXT J
5070 FOR J=1 TO T9
5080 FOR I=1 TO 9 STEP 4
5090 PRINT T[I,J];",";T[I+1,J];",";T[I+2,J];",";T[I+3,J];""
5120 NEXT I
5140 NEXT J
5150 FOR I=1 TO P9
5160 PRINT B[1,I];",";B[2,I];",";B[3,I];""
5170 NEXT I
5172 FOR I=1 TO 50
5174 PRINT " ";
5176 NEXT I
5180 STOP
5190 REM *** <PRINT STAR MAP> GOSUB
5200 PRINT LIN(3)
5210 PRINT TAB(22);"STAR MAP"
5220 PRINT TAB(20);"************"
5230 PRINT
5240 DIM L$[55]
5250 FOR L1=15 TO -15 STEP -1
5260 IF L1 <> 0 THEN 5290
5270 L$="1----1----1----1----1----*SOL-1----1----1----1----1 "
5280 GOTO 5340
5290 L$=" "
5300 IF ABS(L1)/3=INT(ABS(L1)/3) THEN 5330
5310 L$[26,26]="1"
5320 GOTO 5340
5330 L$[26,26]="-"
5340 Y=L1*10/3
5342 Y0=(L1+1)*10/3
5350 FOR S1=2 TO S9
5360 IF S[12,S1] >= Y0 OR S[12,S1]<Y THEN 5400
5370 X1=INT(26+S[11,S1]/2)
5380 L$[X1,X1]="*"
5390 L$[X1+1,X1+4]=S$[S[8,S1],S[8,S1]+3]
5400 NEXT S1
5410 FOR I=55 TO 26 STEP -1
5420 IF L$[I,I] <> " " THEN 5440
5430 NEXT I
5440 PRINT L$[1,I]
5450 NEXT L1
5460 PRINT
5470 PRINT "THE MAP IS 100 LIGHT-YEARS BY 100 LIGHT-YEARS,"
5480 PRINT "SO THE CROSS-LINES MARK 10 LIGHT-YEAR DISTANCES"
5490 RETURN
5500 END
now remember a game with the feature set of the current Trade Wars with a stand alone Server for the client to connect too... the clock starts now... I am sure a guy with your skills should have a version out in no time at all.
_________________ Rick Mead
Project Manager teamEIS
|
| Thu May 06, 2004 2:19 pm |
|
 |
|
Supreme Galactic Overlord
Lieutenant J.G.
Joined: Fri Nov 16, 2001 3:00 am Posts: 438 Location: USA
|
quote: Originally posted by John Pritchett (EIS)
I agree with what Didaskalos is saying, in an ideal world. In reality, I am one guy, and I don't have the resources to hire a team of internal testers. I have to rely on the community for the level of testing that is necessary to identify some bugs. Also, I'm working with a code base that originated in the late 80s, by a hobbyist programmer.
You're doing fine, and I have only heard one complaint thus far about the "public" beta testing this game! Most Sysops are thrilled to be a part of it, and most of the seasoned players enjoy it as well!
I think it should be said this is a TEXT ONLY based game that is NOT a Mudd! Look how alive and well the gamers and systems are that run this game! I think that says it all. TLord is dead, no one seems to even know who owns it anymore! Most of the other text based action games as well are dead dead dead! Twars lives on and it's because of the Eis team and John Pritchett! Let's not forget that!
quote:
Though I would like to write my own engine for a new Trade Wars and other games, I continue to use the old code base and am very much limited by the structure (or lack thereof) of it. It's not surprising that TWGS, which I wrote from the ground up, has been very stable for most of its lifetime.
I'm not a programmer but this sounds like it's a miracle the game even works at all! My hat's off to you.
quote:
If I design and code something from the ground up, I am able to achieve the goals that Didaskalos suggests. If anyone has ever worked with a legacy program, they know how difficult it can be to add new features or even to fix existing bugs. There is no "quality control" for a monstrosity like Trade Wars.
I'm still waiting for Disk's version, since he seems to know so much... should be interesting
quote:
In this particular case, regarding the work I've done since .55, we're dealing entirely with one problem. It goes back to a less obvious problem that has existed in the game since v3 was written, and it's an architectural limitation more than a "bug". This has to do with the way the game passes messages between player sessions, for things like FedCom, as well as internal event messages. In rare cases, it is possible for messages to be lost.
There has ALWAYS been a problem with game messages, anyone who's been playing since the beginning knows this to be true. It was only a matter of time before it caused bigger problems. I'm confident you'll fix it though, you've fixed all the other little glitches left behind from the old BBS days of yore!
Keep up all the good work, and I'm sorry if I ever seemed to criticize you at any time! I was actually just "*****ing" about certain "feature" changes which as you know, there's certain ones I never agreed with but that's just my opinion.
_________________ My insanity is contagious!
|
| Thu May 06, 2004 2:55 pm |
|
 |
|
Who is online |
Users browsing this forum: No registered users and 16 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|