2009 - A Manalink Year in Review
2009 has come and gone, and my 1-year anniversary of working on this project is coming up in a couple days. In that period of time the state of Manalink has changed vastly. Here’s a short retrospective for those that may not have been here the whole way through.
As of January 1st 2009, a programmer called Mok had already come and gone. As the first person to mod this game, he contributed enormously. He added almost all of the 8th edition cards, and included countless other improvements . Sadly, he did not leave behind any source code.
The next batch of improvements came when it was discovered that Magic.exe (after being decompressed) could be hex-edited to modify some new cards. The modifications were limited to data-entry changes only, so no new abilities could be added to the game that did not already exist. Furthermore, every card added came at the expense of removing another card. While it was exciting to add new cards like Woolly Thoctar, the options were limited and development was relatively stagnant. At this point, there were about 1000 cards programmed into the game. Which finally brings us to 2009.
In January 2009, a new community member called SkyMarshall made 2 major breakthroughs. First, he moved the location of the card code so that some new cards could be added without replacing old cards. Second, he discovered how to modify the code for cards using ASM, a primitive programming language. Using this technology SkyMarshall was able to add new and complex cards like Ravenous Baloth and Buyback. Around the same time, HarryPitfall created the SkyMagicEditor to help with the data-entry aspect of creating new cards.
At the end of January, I rejoined the project (having previously been active back in the Woolly Thoctar days). For the next few months, I continued adding new cards (2 or 3 at a time) on a regular basis, with occasional patches from many other developers. The space limit for new cards was again reached, but HarryPitfall figured out a way to enable unlimited space for code for cards. There was still a limit on the total number of cards, at 2000, a limit which we are still stuck with today
In Mach 2009, Lonefox contributed a patch that had the surprise feature of having the source for the cards written in C, and modern generation programming language. With help from Snacko, the process for adding cards written in C was established. Lonefox contributed a handful of new cards, and helped write the API for C coding.
An Aside:
It is difficult to explain to non-programmers the difference between programming in ASM and in C. Hopefully this example will illustrate it. One of the last cards I wrote in ASM was Sensei’s Divining Top. It took roughly 10 frustrating hours. To write it now in C would take about 10 minutes. A vastly more complicated card, such as Chandra Ablaze, might take as long as an hour in C. It would have been impossible in ASM.
For the next 9 months or so, I was the only programmer on the project. The C API was expanded, making cards easier and easier to write. As a result, card patches went from 2 or 3 at a time, to 10, to 50, to entire sets! As I became much more familiar with the internal original code, I was able to add features like Draft, Momir, Vanguard, and Challenge Mode. And with help from the artistic abilities of Mathusalem, the entire look of the game was reengineered.
In December 2009, two new developers (joemuz and gargaroz) joined the project, and have each contributed a substantial number of cards. They continue to work on adding new cards presently. We are still stuck at the 2000 card limit, but we have exceeded the number of cards coded (2345 as of 1/7/10) by breaking them into separate modules. Soon an application will be released that will let each user choose their own set of 2000 cards to play with.
All in all, it has been an excellent year for Manalink.
As of January 1st 2009, a programmer called Mok had already come and gone. As the first person to mod this game, he contributed enormously. He added almost all of the 8th edition cards, and included countless other improvements . Sadly, he did not leave behind any source code.
The next batch of improvements came when it was discovered that Magic.exe (after being decompressed) could be hex-edited to modify some new cards. The modifications were limited to data-entry changes only, so no new abilities could be added to the game that did not already exist. Furthermore, every card added came at the expense of removing another card. While it was exciting to add new cards like Woolly Thoctar, the options were limited and development was relatively stagnant. At this point, there were about 1000 cards programmed into the game. Which finally brings us to 2009.
In January 2009, a new community member called SkyMarshall made 2 major breakthroughs. First, he moved the location of the card code so that some new cards could be added without replacing old cards. Second, he discovered how to modify the code for cards using ASM, a primitive programming language. Using this technology SkyMarshall was able to add new and complex cards like Ravenous Baloth and Buyback. Around the same time, HarryPitfall created the SkyMagicEditor to help with the data-entry aspect of creating new cards.
At the end of January, I rejoined the project (having previously been active back in the Woolly Thoctar days). For the next few months, I continued adding new cards (2 or 3 at a time) on a regular basis, with occasional patches from many other developers. The space limit for new cards was again reached, but HarryPitfall figured out a way to enable unlimited space for code for cards. There was still a limit on the total number of cards, at 2000, a limit which we are still stuck with today
In Mach 2009, Lonefox contributed a patch that had the surprise feature of having the source for the cards written in C, and modern generation programming language. With help from Snacko, the process for adding cards written in C was established. Lonefox contributed a handful of new cards, and helped write the API for C coding.
An Aside:
It is difficult to explain to non-programmers the difference between programming in ASM and in C. Hopefully this example will illustrate it. One of the last cards I wrote in ASM was Sensei’s Divining Top. It took roughly 10 frustrating hours. To write it now in C would take about 10 minutes. A vastly more complicated card, such as Chandra Ablaze, might take as long as an hour in C. It would have been impossible in ASM.
For the next 9 months or so, I was the only programmer on the project. The C API was expanded, making cards easier and easier to write. As a result, card patches went from 2 or 3 at a time, to 10, to 50, to entire sets! As I became much more familiar with the internal original code, I was able to add features like Draft, Momir, Vanguard, and Challenge Mode. And with help from the artistic abilities of Mathusalem, the entire look of the game was reengineered.
In December 2009, two new developers (joemuz and gargaroz) joined the project, and have each contributed a substantial number of cards. They continue to work on adding new cards presently. We are still stuck at the 2000 card limit, but we have exceeded the number of cards coded (2345 as of 1/7/10) by breaking them into separate modules. Soon an application will be released that will let each user choose their own set of 2000 cards to play with.
All in all, it has been an excellent year for Manalink.
