MArcomage

Free multiplayer on-line fantasy card game

Please log in

Mojko on 22:54, 14. Sep, 2016
Halloween update is scheduled to be deployed on October the 29th.

Wow, it's been a year. I put this project on hold because I decided to leave Europe and settle down in either Australia or New Zealand. The last year was a little bit hectic, I was travelling a lot but fortunately things are stabilized right now. I have found both a place to live and employment in New Zealand so I'm back to normal "daily loop".

After such a long pause I have decided to completely revise MArcomage and the results were not very good. It's not a surprise though, it's an old application with obsolete design and lot of redundant code. Because of this, further maintenance and development is quite difficult, let's look at various issues and their resolution state.

Database

- there are multiple issues that trigger errors, but they are silenced and ignored
-> enable strict mode and fix all the issues
-> status DONE

Backend

- obsolete design, messy code, lack of Design patterns
-> completely rework backend application to more modern modular design
-> status DONE / IN TESTING

Third party libraries

- we use various third party libraries, their versions have not been updated for years
-> update libraries to up-to-date versions or replace them with new libraries
-> status DONE / IN TESTING (BBcode library replaced with completely new library, others are up-to-date)

Frontend

- current design was optimized for resolutions like 640x480 and 1024x768 which are obsolete, this makes display on widescreen monitors or smallscreen mobile devices not very good
-> migrate frontend from XHTML 4.1 to HTML5 (remove any JavaScript functionality that is supported in HTML5 or CSS3)
-> optimize display for up-to-date screen resolutions
-> status DONE / TESTING

New game features:

- sort cards by name in the cards section
-> status DONE
- new BBcodes for card, concept and keyword links
-> status DONE

The above changes will first be deployed to a separate url - a separate instance of the application connected to the same database. The changes below will be applied to the "main" version as well. If anyone wants to test out the new version you can do a local setup on your computer (see FAQ) or ask me directly for help. Any testing feedback is appreciated.

New cards preview is available.

Keyword changes:

- Brigand keyword effect changed to only steal available resources
- Rebirth keyword effect description corrected
- Restoration keyword effect changed to "If opponent lowered your facilities last round you gain 1 of your lowest facility if it's less than 2 otherwise if opponent lowered your stock last round you gain 6 of your lowest resource"

Card changes:

Common

Absorption - can only steal available resources
Barbz's pupil - reveals summoned card
Burglar - can only steal available resources
Darkling - can only steal available resources
Doppelganger - reveals summoned card
Elven apprentice - card text simplified
Elven rogue - can only steal available resources
Gnome thief - can only steal available resources
Mojko on 22:54, 14. Sep, 2016
Goblin flanker - can only steal available resources
Halfling rogue - reveals summoned card if target card was already revealed
Phoenix feather - reveals summoned card
Shadow fairy - can only steal available resources
Thief - can only steal available resources

Uncommon

Corsairs - can only steal available resources
Last order - card text simplified
Lost city - Desert outpost added to summon list
Master summoner - renamed from Summon master
Master thief - can only steal available resources
Mirror strike - reveals summoned card
Mysterious egg - Rainbow dragon removed form summon list, Fairy dragon, Crimson hawk, Wind dragon, Cockatrice added to summon list
Northern fortress - condition changed to "If not New and neighbouring card is New"
Rejuvenation - reveals summoned card
Roc - can only steal available resources
Soulstealer - can only steal available resources
Stalker - can only steal available resources
Wishing lagoon - card text simplified

Rare

Ancient sage - cost lowered to 5/5/5 from 8/8/8
Archmage - card text simplified
Avatar of vengeance - will no longer replace itself with another card, instead provides 16 gems
Beast mistress - recruits cost lowered to 1 from 5, attack removed, recruits production x2 added, now replaces neighbouring cards with Beast and Frenzy (can't summon self)
Flame lord - reveals summoned card
Genbu - bricks cost raised to 35 from 30, added effect "won't lower enemy tower below 10"
Genie - can only steal available resources
Sellsword - card effect text corrected
Shadow warrior - recruits cost raised to 26 from 22
Stronghold - bricks cost raised to 24 from 20

- added following card helpers: stealStock(), stealResource(), stealRandomResource()
- added "Steal" card filter to decks and cards sections

Feedback is appreciated.
DPsycho on 02:03, 15. Sep, 2016
Mojko wrote:

Genbu - bricks cost raised to 35 from 30, gained won't lower enemy tower below 10


Could you clarify this one? Is something being changed to the tower gain, or is the word "gained" in there a missed edit? The cost change and limit to the opponent's tower damage is understandable.
Mojko on 02:48, 15. Sep, 2016
DPsycho wrote:
Mojko wrote:

Genbu - bricks cost raised to 35 from 30, gained won't lower enemy tower below 10


Could you clarify this one? Is something being changed to the tower gain, or is the word "gained" in there a missed edit? The cost change and limit to the opponent's tower damage is understandable.


I have improved the description of the change to:

Bricks cost raised to 35 from 30, added effect "won't lower enemy tower below 10"

In other words the card cost is being changed and additional effect added.
Coolis on 08:55, 15. Sep, 2016
Mojko wrote:


- changed to only steal available resources


Mb apply this also to cards like Thief, Gnome thief, Burglar, Master Thief?
Mojko on 20:07, 15. Sep, 2016
Coolis wrote:
Mojko wrote:


- changed to only steal available resources


Mb apply this also to cards like Thief, Gnome thief, Burglar, Master Thief?


I was wondering about this myself but there are actually many more cards related to this - they also steal single resources not just stock. If we decide to go for this change maybe the Restoration affect should be reverted or weakened to balance it out. Also, a new card filter for stealing cards should be added as well.
Mojko on 23:50, 15. Sep, 2016
I have decided to change other resource stealing cards to the new system as well. My main reasons for this are: makes resource stealing a bit weaker, makes the effect more intuitive and it makes card text and card code smaller. I have updated changes list and preview picture.
dimitris on 09:00, 18. Sep, 2016
Great news!

Maybe you could think of porting the source code of the game to a Github repo. There, it might probably be easier for someone to view and contribute to the project and I think it will be easier for you as well to review any changes. Also Github is very popular, so the game might gain some popularity as well :)

Mojko on 20:09, 18. Sep, 2016
dimitris wrote:
Great news!

Maybe you could think of porting the source code of the game to a Github repo. There, it might probably be easier for someone to view and contribute to the project and I think it will be easier for you as well to review any changes. Also Github is very popular, so the game might gain some popularity as well :)



I agree, I have switched to Git years ago. This is the only project I'm working on that uses SVN.
theultramage on 14:01, 20. Sep, 2016
I for one absolutely hate git, mainly for its awful commandline interface. But if needed, and if trac has good integration with it, I could go along. I think the main driver of git is the automation component of github.com (the code and commit viewing components are unusable garbage). It could just as easily have been svnhub.com instead.
MeCho on 18:07, 20. Sep, 2016
Ancient sage buff and Shadow warrior nerf :>
Mojko on 00:19, 21. Sep, 2016
theultramage wrote:
I for one absolutely hate git, mainly for its awful commandline interface. But if needed, and if trac has good integration with it, I could go along. I think the main driver of git is the automation component of github.com (the code and commit viewing components are unusable garbage). It could just as easily have been svnhub.com instead.


I completely agree about the Git command line interface and that is the reason why I use TortoiseGit instead. Git has many other advantages compared to SVN such as:

- distributed (each repository has all of the history)
- superior branching and merging functionality
- local commits (commits are quite slow from New Zealand via SVN)
dimitris on 08:55, 21. Sep, 2016
This is not debatable: Git >> SVN >>>>>> CVS :P (I've worked with all three of them)

And git's command-line is super-powerful once you know what you're doing. Granted, it requires some getting used to it, especially if you come from a centralized VCS (like SVN), but its documentation is very useful and complete.

Of course, one could compare Git with other DVCS like e.g. Mercurial but I still prefer Git.

Anyway, for relatively small projects with a concentrated team, like Arcomage, SVN might be more suitable.

Mojko wrote:

I use TortoiseGit instead.


You could try GitKraken as well: https://www.gitkraken.com
Mojko on 20:05, 4. Oct, 2016
Halloween update is scheduled to be deployed on October the 29th.
Mojko on 02:17, 13. Oct, 2016
New cards preview is available.

Here are some notes with explaination.

Crimson general uses the new "Summon" mechanic (not to be confused with "Summons" mechanic). In this case you can actually pick which card from the list you want to summon.

Stein's gate allows you to summon card from your specific deck slots. The deck slot number is the same as the selected position in hand chosen by the card mode, so it's not that easy to use.

I wanted to write some notes about the White whale, but I somehow completely forgot about it.

I'm also changing texts of some cards that summon cards based on card modes to new "Summon" mechanic. Following cards are effected (this is just a card text change):

Archmage
Last order
Wishing lagoon
Elven apprentice

Master summoner - I had to rename this one from Summon master to prevent conflict with the "Summon" mechanic.

Feedback is appreciated.
Sorlag on 05:20, 13. Oct, 2016
Don't you think that Stein's gate would be too overpowered, even one use of it?

And if that mechanics would be implemented, it would be nice to have a way of knowing, what card would be summoned, without having to "edit" your deck.
Mojko on 06:37, 13. Oct, 2016
Sorlag wrote:
Don't you think that Stein's gate would be too overpowered, even one use of it?

And if that mechanics would be implemented, it would be nice to have a way of knowing, what card would be summoned, without having to "edit" your deck.


I think it can be balanced by adjusting the card cost. If you want to see what card will be summoned you can either view your deck within the game or you can use the game preview functionality. There will be a new version of the game preview that will no longer be displaying the changes in a text message, but instead it will display the whole game state.
Fithz Hood on 10:44, 13. Oct, 2016
White whale could give to the opponent also a new card: Curse of the half-elf witch: "replace your hand with a new starting hand, tower= initial tower, wall= initial wall".

Stain's gate is too powerful, it could use some randomness: "summon a rare card or a banana" (50%).

(these were just some anime jokes but Stain's gate is really too powerful)

Edit: Paper golem seems weak to be a rare, maybe another keyword could help. Siege? Destruction?
Mojko on 18:49, 13. Oct, 2016
Fithz wrote:
White whale could give to the opponent also a new card: Curse of the half-elf witch: "replace your hand with a new starting hand, tower= initial tower, wall= initial wall".

Stain's gate is too powerful, it could use some randomness: "summon a rare card or a banana" (50%).

(these were just some anime jokes but Stain's gate is really too powerful)

Edit: Paper golem seems weak to be a rare, maybe another keyword could help. Siege? Destruction?


What kind of balance change would you prefer on Stain's gate? I was thinking about one of these changes:

- remove the Durable keyword
- increase card cost
- add a trigger condition for the effect: "If Round is divisible by 3"

Regarding Paper golem: I think it's a high value low impact card which shouldn't be to powerful. Also, it's a good trigger card for Unliving token counter. I might slightly raise the attack and wall gain value though.
Fithz Hood on 19:26, 13. Oct, 2016
For Stain Gate coul work a trigger condition like: "if #common in hand = 7 summon a rare, else summon non rare"

Also we can use a different word for "summun", like "evoke"