Please Read: Keeping Things Organized!
Continuing Development of MicroProse's Magic: The Gathering!
Moderators: BAgate, drool66, Aswan jaguar, gmzombie, stassy, CCGHQ Admins
Re: Please Read: Keeping Things Organized!
by Incantus » 24 Mar 2009, 22:26
That's the thing - it should be self organizing. That's one benefit to using a wiki (especially a versioned one). Those coders who are frustrated - they can take matters into their own hands and give the wiki a little organization (and then sticky a locked topic pointing to an introduction for newbies).Huggybaby wrote:I know for a fact that even some of the coders are frustrated with the way things are, it's no secret, it's been posted. What needs to be changed is clear. So we asked for someone to come up with a plan and we're still waiting to hear some ideas, since ours don't seem to be good enough. We can't lead and we're waiting to follow.
The main problem with the Manalink project is that since none of the people hacking on it are the original authors, it's likely that nobody feels the right to step up and assume command.
Re: Please Read: Keeping Things Organized!
by Bog Wraith » 24 Mar 2009, 22:42
But that is what I implemented here at this site that is different from the old isn't it?jatill wrote:I really don't understand what the issue is, so maybe you can try to explain it once more. If people can't find the most recent update, why doesn't the mod make the very top thread (in the announcements section I guess) just be a link to the latest stable version? Isn't that the first place people look? I don't really care how you define latest version, and neither do the lurkers you're talking about. Anything less than a couple weeks old is going to be huge for them.
I prepare a new sticky and replace the old one so folks know which one contains the latest updates.
The problem lies in that whenever a minor update is released by someone who is submitting one for the first time, or is doing so with just a few card additions, but it turns out to be messing with coding that has been done already, or just by someone who does not have the experience level in programming but is very enthusiastic and well meaning, but is still learning his way and it causes other problems like writing code in other's assigned addresses and the like. You know what I'm talking about jatill because I've seen you comment on this.
And guess what. I agree with you! This is why I wanted some of you vets to come to an understanding as to just who is qualified to post a new update based on a consensus that these updates would be done properly, without causing any problems, short of the bugs we all expect, and that the coders know their area that they can work in within that programming area.
Anyone else who would contribute would have their files placed in the current sticky and have you guys vet it to see if it would pass your agreed stipulations. I would move any posts like this into the current sticky and wait until one of the lead members posted a new update, and then sticky that as the new one and move on from there.
I don't want to stifle anyone's excitement or desire to learn from your marvelous tutorials that you provided as a resource for them, but these are contributions that I think would best be checked for any potential problems by folks like you. I mean, if your not qualified to do this, then who is?
Also, these sub additional updates Do cause the game to become unstable at times at worst, or cause previously working cards from past updates to malfunction at other times.
Look, huggy doesn't need or want me to speak for him, but I again implore you to try & understand what it is like for us to have to continuously hear from the "silent majority" of members as to WTF is going on here as far as trying to figure out what they need. Obviously, they aren't finding everything or they wouldn't be sending us PM's all the time.
The art files are just as big, if not a bigger problem and Mathy & I are getting these things out, but we can still do better in getting it all in one place.
This is my fault and I take the blame.
I'm trying to rectify this and hope that I can get help from one or both of the people I've discussed this with via PM's!
In the meantime, please, everyone take a step back and consider the intent and not the words that are being used. And please, again, try to understand what Huggy & I are dealing with with these members here who are asking us for help, and we can only do so much.
Please be patient, everyone. We've done a hell of allot in the 4 weeks we've been here. It's still a learning process for all of us!
'Twas in the bogs of Cannelbrae
My mate did meet an early grave
'Twas nothing left for us to save
In the peat-filled bogs of Cannelbrae.
My mate did meet an early grave
'Twas nothing left for us to save
In the peat-filled bogs of Cannelbrae.
-
Bog Wraith - Global Mod 1 (Ret)
- Posts: 1108
- Joined: 28 May 2008, 22:40
- Location: Shandalar
- Has thanked: 425 times
- Been thanked: 153 times
Re: Please Read: Keeping Things Organized!
by LoneFox » 26 Mar 2009, 10:04
Looks like there are two mostly unrelated issues:
1. Installing the game is hard for inexperienced users.
A lot of stuff is needed to make the game work. First, the original game must be installed. Then latest update on top of that. Card art comes in separate package. Finally, some versions of Windows require hacks and kludges for the game to work at all. There are a lot of files around here, some are outdated, some are optional, and some are alternative to each other.
This can be solved by writing a step-by-step tutorial that includes list of files to download, instructions where to extract them, and what else is required for different versions of Windows.
2. Development is badly organized.
Most of these problems are already mentioned either here or in other threads, but I think it is a good idea to collect them all in one place:
And here is my opinion how these could be solved:
1. Installing the game is hard for inexperienced users.
A lot of stuff is needed to make the game work. First, the original game must be installed. Then latest update on top of that. Card art comes in separate package. Finally, some versions of Windows require hacks and kludges for the game to work at all. There are a lot of files around here, some are outdated, some are optional, and some are alternative to each other.
This can be solved by writing a step-by-step tutorial that includes list of files to download, instructions where to extract them, and what else is required for different versions of Windows.
2. Development is badly organized.
Most of these problems are already mentioned either here or in other threads, but I think it is a good idea to collect them all in one place:
- "Teenager Project Syndrome": inexperienced developers are making decisions about big things that affect everyone and designing API without much understanding about API design. We are not alone with this, it is very common in new open source projects.
- Lack of version control makes it very hard to track what is going on, and to fix/revert bad changes that have gotten in. It also disrupts reverse engineering work, because it is hard to know if some function in the exe is in its original form or if it has been changed by us.
- The concept of "active developer" causes time pressure: there are other people in the queue waiting their turn, so I have to get my release ready fast. This encourages releasing untested code. Also, it makes it hard for multiple developers work simultaneously, because then there is a lot of extra merging work.
- Lots of copy-pasting is still going on, duplicating existing bugs and adding new copy-paste errors. Currently the main reason to this is the way card data is stored.
- Everyone is making their releases in slightly different way. Directory structure may be different, card art may or may not be included, shandalar.exe may or may not be included. Many releases have included object files and/or random executables from build system. Current (20090323) release is missing several files that are required to compile the source. This is a minor problem for developers, but also contributes to part 1 above.
- What is the goal of this project? Add as many cards as possible? Make it a copy of Magic Online including equal number of bugs and rules problems? Or is it to create a well-balanced, (eventually) cross-platform environment for both constructed and limited play, with simple and elegant rules and without any of the mistakes and pokemonization WotC has done in recent years?
And here is my opinion how these could be solved:
- Put the source code in subversion repository, with only a few main developers having write access to it. The big question is of course where this would be hosted. In theory I cound host it myself, but I don't like the idea of giving other people any access to my system (because my private stuff is on the same machine), and there would be at least one long downtime (of several weeks) per year when I'm on summer holiday.
- We need some way to store exe modifications in source code form. There is already such system (I used it for my first release), but it does not work on Windows. Optimally there would be a version of the exe in the repository and all changes to it would be applied during build. Committing changes to it would not be allowed at all, possibly prevented by repository configuration, assuming svn supports that.
- Write instructions for people who want to contribute but don't have access to the repository. This should include tools used (should we standardize on camelbox?), standard way to make a patch, and how and where to submit it.
- Get rid of manalink.csv, store all card data in one file and use a script to update cards.dat and the exe. Store only the fields that are different from defaults and let the script add default values. This would be quite similar to how the targeting code I added a couple of releases ago works. Full reverse engineering of cards.dat file format and the card data in the exe is required for this to work.
- Make releases with a script that creates a directory structure, copies included files there, and packs all into a zip file. Developers that maintain this script should know the common practices used when releasing software (see the Software Release Practice HOWTO).
- Card art is best handled separately, for copyright reasons. The game is copyrighted by Microprose and they don't appear to care what we do with it, so this isn't a problem. But card art is copyrighted by WotC, and they are known to be hostile. If we don't include their stuff in releases, we can respond to any threats from them with "Sorry, not our problem!" for first time and with middle finger for second.
Re: Please Read: Keeping Things Organized!
by mathusalem » 26 Mar 2009, 10:36
Argh ! no please ! I'm translating this game and the CSV file is the only easy way that I can edit stuff (not to maention , I'm nearly finished). without the CSV, I won't be able to upgrade my french version. I can play in english, but some of the people I destine this to can't. Please be nice with my little nephews.Get rid of manalink.csv, store all card data in one file and use a script to update cards.dat and the exe. Store only the fields that are different from defaults and let the script add default values. This would be quite similar to how the targeting code I added a couple of releases ago works. Full reverse engineering of cards.dat file format and the card data in the exe is required for this to work.
-
mathusalem - Posts: 459
- Joined: 24 Feb 2009, 21:00
- Has thanked: 6 times
- Been thanked: 4 times
Re: Please Read: Keeping Things Organized!
by jatill » 26 Mar 2009, 12:14
Re: LoneFox's stuff.
I agree on pretty much everything. I'm just not sure how many of these issues are actually addressable in an open-source project. Maybe they all are, I just don't have the experience to know. But I definitely see two goals tugging us in opposite directions, 1) get many people contributing, and 2) conforming to rigid standards. I learn towards (1), which is partly why chaos has ensued. I'm also unwilling to take on the role of release manager, since I'm just here to have fun, not to manage people. Maybe that's a post you'd prefer?
Next, I created a new script deploy.pl that gathers all the files and puts them in the right place. I had code to auto-zip them too, but it was using winzip, and that does not maintain directory structure. Do you know of an alternative that does, and has a command line interface? I was thinking 7z, but then people might have a hard time opening the files. It's a simple batch script, I'm sure it would be improved upon. Which files were missing from the last release for compiling? I'll add them to my list.
Finally, I hope I wasn't the main target of your "teenager developer" syndrome. I have 15 years professional software development experience, including API design. It's just been 10 years since I've written in C, so I don't know C conventions. (I can't tell you how many times I've gotten compile errors for typing 'and' instead of &&.... dang perl habits). Even if I was, no insult taken. I understand the frustration of seeing things done badly when you know the better way.
I agree on pretty much everything. I'm just not sure how many of these issues are actually addressable in an open-source project. Maybe they all are, I just don't have the experience to know. But I definitely see two goals tugging us in opposite directions, 1) get many people contributing, and 2) conforming to rigid standards. I learn towards (1), which is partly why chaos has ensued. I'm also unwilling to take on the role of release manager, since I'm just here to have fun, not to manage people. Maybe that's a post you'd prefer?
Next, I created a new script deploy.pl that gathers all the files and puts them in the right place. I had code to auto-zip them too, but it was using winzip, and that does not maintain directory structure. Do you know of an alternative that does, and has a command line interface? I was thinking 7z, but then people might have a hard time opening the files. It's a simple batch script, I'm sure it would be improved upon. Which files were missing from the last release for compiling? I'll add them to my list.
Finally, I hope I wasn't the main target of your "teenager developer" syndrome. I have 15 years professional software development experience, including API design. It's just been 10 years since I've written in C, so I don't know C conventions. (I can't tell you how many times I've gotten compile errors for typing 'and' instead of &&.... dang perl habits). Even if I was, no insult taken. I understand the frustration of seeing things done badly when you know the better way.
Apps by jatill: http://www.slightlymagic.net/wiki/Other_Apps_by_jatill
Re: Please Read: Keeping Things Organized!
by LoneFox » 26 Mar 2009, 16:09
Good point. One thing I forgot from that list is handling customizations that are not meant to be part of release. The build system should have an easy way for adding such things. People may want to add their own sealed environment by replacing some of included sets with their own, or change size of boosters, or add their home-made cards. It is useful for development too, because then big experimental changes can be made optional at first (so released exe does not include them, but if you want to help testing experimental stuff you can compile it in yourself).mathusalem wrote:Argh ! no please ! I'm translating this game and the CSV file is the only easy way that I can edit stuff (not to maention , I'm nearly finished). without the CSV, I won't be able to upgrade my french version. I can play in english, but some of the people I destine this to can't. Please be nice with my little nephews.
Those aren't completely opposite. Too much destructive chaos drives away those people who understand why such chaos is bad, and they tend to be the same people who can contribute most.jatill wrote:But I definitely see two goals tugging us in opposite directions, 1) get many people contributing, and 2) conforming to rigid standards. I learn towards (1), which is partly why chaos has ensued.
Maybe. I don't know yet how much I want to commit myself into this project.jatill wrote:I'm also unwilling to take on the role of release manager, since I'm just here to have fun, not to manage people. Maybe that's a post you'd prefer?
Camelbox includes zip.exe. Something likejatill wrote:Next, I created a new script deploy.pl that gathers all the files and puts them in the right place. I had code to auto-zip them too, but it was using winzip, and that does not maintain directory structure. Do you know of an alternative that does, and has a command line interface? I was thinking 7z, but then people might have a hard time opening the files. It's a simple batch script, I'm sure it would be improved upon.
- Code: Select all
system "zip -r manalink-$version.zip manalink-$version";
ManalinkEh.mac and subtypes.h, possibly others. Missing the latter is partially my own fault, I should have mentioned it in release changelog. I put all creature types there because there are so many of them, they would have made manalink.h uncomfortably big.jatill wrote:Which files were missing from the last release for compiling? I'll add them to my list.
I didn't mean any particular person to be "main target". However, current implementation of hybrid, when fully done, requires 15 copies of almost identical code (one for each two-color pair and one for each color/colorless pair). I hope you understand without explaining why this is bad.jatill wrote:Finally, I hope I wasn't the main target of your "teenager developer" syndrome. I have 15 years professional software development experience, including API design. It's just been 10 years since I've written in C, so I don't know C conventions.
I try to keep my perl quite C-like to avoid this problem. Still, I sometimes find myself using unless in C...jatill wrote:(I can't tell you how many times I've gotten compile errors for typing 'and' instead of &&.... dang perl habits)
Re: Please Read: Keeping Things Organized!
by jatill » 26 Mar 2009, 16:35
Yeah, this makes me sick too, which is one reason I didn't implement the rest of hybrid. Don't even look in momir.c unless you want your eyes to bleed (or want to offer help! ) At the time, I couldn't think of good ways to abstract the code. If you have ideas, please share. If you can turn a group of 5 contiguous address into an array, I think that would work. Is that trivial in C?I didn't mean any particular person to be "main target". However, current implementation of hybrid, when fully done, requires 15 copies of almost identical code (one for each two-color pair and one for each color/colorless pair). I hope you understand without explaining why this is bad.
Last edited by jatill on 26 Mar 2009, 17:01, edited 1 time in total.
Apps by jatill: http://www.slightlymagic.net/wiki/Other_Apps_by_jatill
Re: Please Read: Keeping Things Organized!
by jatill » 26 Mar 2009, 16:58
I added this to my deploy.bat to make it autozip. Thanks for the suggestion. Any ideas how to make the filename today's date instead in a .bat?
c:\camelbox\bin\zip -r c:\camelbox\bin\magic.zip c:\magic\zips\magic -x magic.zip
copy c:\camelbox\bin\magic.zip c:\magic\zips
Maybe I should add a call to WWW::Mechanize to auto-upload my file to savefile, and post a new link in the forum too
c:\camelbox\bin\zip -r c:\camelbox\bin\magic.zip c:\magic\zips\magic -x magic.zip
copy c:\camelbox\bin\magic.zip c:\magic\zips
Maybe I should add a call to WWW::Mechanize to auto-upload my file to savefile, and post a new link in the forum too
Apps by jatill: http://www.slightlymagic.net/wiki/Other_Apps_by_jatill
Re: Please Read: Keeping Things Organized!
by LoneFox » 26 Mar 2009, 17:28
jatill wrote:I added this to my deploy.bat to make it autozip. Thanks for the suggestion. Any ideas how to make the filename today's date instead in a .bat?
- Code: Select all
C:\camelbox\bin\date +%Y%m%d
Re: Please Read: Keeping Things Organized!
by Bog Wraith » 26 Mar 2009, 19:28
Allot of good points made by all here. I'm glad to see these discussions taking place!
The card pics quality of images, to change them all to HQ versions, is something that I will be addressing over the coming Summer, whether by myself, or hopefully, with someone's help! In the meantime, We'll try to pool all the art into one area for easier access. Even if it is posted with a current update, I will get the link for it copied into a new thread I will make when I have time that will be a sticky for ONLY new card art.
I won't be able to get to this until after next week, but it is on the top of my priority list!
In the meantime, I will copy any update's links into the Graphic Update thread's sticky!
In the meantime, I look forward to reading more of your great feedback gentlemen!
The card pics quality of images, to change them all to HQ versions, is something that I will be addressing over the coming Summer, whether by myself, or hopefully, with someone's help! In the meantime, We'll try to pool all the art into one area for easier access. Even if it is posted with a current update, I will get the link for it copied into a new thread I will make when I have time that will be a sticky for ONLY new card art.
I won't be able to get to this until after next week, but it is on the top of my priority list!
In the meantime, I will copy any update's links into the Graphic Update thread's sticky!
In the meantime, I look forward to reading more of your great feedback gentlemen!
'Twas in the bogs of Cannelbrae
My mate did meet an early grave
'Twas nothing left for us to save
In the peat-filled bogs of Cannelbrae.
My mate did meet an early grave
'Twas nothing left for us to save
In the peat-filled bogs of Cannelbrae.
-
Bog Wraith - Global Mod 1 (Ret)
- Posts: 1108
- Joined: 28 May 2008, 22:40
- Location: Shandalar
- Has thanked: 425 times
- Been thanked: 153 times
Re: Please Read: Keeping Things Organized!
by jatill » 27 Mar 2009, 13:41
Took my whole dept to figure out how to set a variable :/ But works like a charm!LoneFox wrote:I don't know how to capture output of this command into a variable in Windows shell.
- Code: Select all
del /s/q c:\magic\zips\magic\src
copy c:\camelbox\bin\cards c:\magic\zips\magic\src\cards;
copy c:\camelbox\bin\functions c:\magic\zips\magic\src\functions;
copy c:\camelbox\bin\ManalinkEh.asm c:\magic\zips\magic\src;
copy c:\camelbox\bin\ManalinkEh.dll c:\magic\zips\magic\src;
copy c:\camelbox\bin\subtypes.h c:\magic\zips\magic\src;
copy c:\camelbox\bin\ManalinkEh.mac c:\magic\zips\magic\src;
copy c:\camelbox\bin\ManalinkEh.ao c:\magic\zips\magic\src;
copy c:\camelbox\bin\manalink.h c:\magic\zips\magic\src;
copy c:\camelbox\bin\manalink.lds c:\magic\zips\magic\src;
copy c:\camelbox\bin\yasm.exe c:\magic\zips\magic\src;
copy c:\camelbox\bin\make.exe c:\magic\zips\magic\src;
copy c:\camelbox\bin\build.pl c:\magic\zips\magic\src;
copy c:\camelbox\bin\deploy.bat c:\magic\zips\magic\src;
copy c:\magic\Magic.exe c:\magic\zips\magic;
copy c:\magic\text.res c:\magic\zips\magic;
copy c:\magic\ManalinkEx.dll c:\magic\zips\magic;
copy c:\magic\ManalinkEh.dll c:\magic\zips\magic;
copy c:\magic\Manalink.csv c:\magic\zips\magic;
copy c:\magic\cards.dat c:\magic\zips\magic;
c:\camelbox\bin\zip -r c:\camelbox\bin\magic.zip c:\magic\zips\magic -x magic.zip
c:\camelbox\bin\date +%%Y%%m%%d > tmpFile
set /p myvar= < tmpFile
del tmpFile
copy c:\camelbox\bin\magic.zip c:\magic\zips\%myvar%.zip
Apps by jatill: http://www.slightlymagic.net/wiki/Other_Apps_by_jatill
Re: Please Read: Keeping Things Organized!
by jerkan » 06 Apr 2009, 10:21
First of all, I'd like to thank you all for your work updating this game. I am a programmer and I know how hard is programming in assembler (I still remember )
I agree with LoneFox that a version control is mandatory in this project in order to keep things organizated. As a user, I asked to myself which was the latest release of 'new' cards. I just can't found it because there are too many and every release is different.
If I understood well, you guys work on exe files. If so, then version control wouldn't be a nice solution because you are working on a 'final' file instead of working in several source files. Not an easy solution.
Anyway, I enjoy a lot these programming related discussions so keep on
I agree with LoneFox that a version control is mandatory in this project in order to keep things organizated. As a user, I asked to myself which was the latest release of 'new' cards. I just can't found it because there are too many and every release is different.
If I understood well, you guys work on exe files. If so, then version control wouldn't be a nice solution because you are working on a 'final' file instead of working in several source files. Not an easy solution.
Anyway, I enjoy a lot these programming related discussions so keep on
-
jerkan - Posts: 9
- Joined: 06 Apr 2009, 09:13
- Has thanked: 0 time
- Been thanked: 0 time
Re: Please Read: Keeping Things Organized!
by MageKing17 » 30 May 2009, 16:30
No. You're better off just making a Python script or something.jatill wrote:Any ideas how to make the filename today's date instead in a .bat?
A batch file can refer to %DATE% to get the current date, but formatting that text without calling another program (or, say, Python script) would probably be a pain in the ass (and you have to format it, because it contains slashes).
-
MageKing17 - Programmer
- Posts: 473
- Joined: 12 Jun 2008, 20:40
- Has thanked: 5 times
- Been thanked: 9 times
Re: Please Read: Keeping Things Organized!
by jatill » 10 Jun 2009, 13:43
What's up with the ugly motif change? I can barely even see the 'new post in thread' icon.
Apps by jatill: http://www.slightlymagic.net/wiki/Other_Apps_by_jatill
- EviL_CLonE
- Posts: 143
- Joined: 24 Feb 2009, 16:54
- Location: Buenos Aires, Argentina
- Has thanked: 1 time
- Been thanked: 0 time
45 posts
• Page 3 of 3 • 1, 2, 3
Who is online
Users browsing this forum: No registered users and 51 guests