Shandalar Clone
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Agetian, friarsol, Blacksmith, KrazyTheFox, CCGHQ Admins
Re: Shandalar Clone
by bladescape » 29 Oct 2010, 22:54
Admonition Angel:W Exile/Angel Deck.
- Code: Select all
BasicLandPercentage=34
[Group MaxCnt=4 Percentage=32]
Admonition Angel
Iona's Judgement
Swords to Plowshares
Path To Exile
Journey to Nowhere
Oblivion Ring
[/Group]
[Group MaxCnt=34 Percentage=28]
Serra Avenger
Serra Angel
Thunder Spirit
Suntail Hawk
Elite Vanguard
Battlegrace Angel
[/Group]
[Group MaxCnt=2 Percentage=5]
Platinum Angel
Elspeth, Knight-Errant
Leonin Sun Standard
[/Group]
End
- bladescape
- Posts: 26
- Joined: 11 Oct 2010, 07:23
- Has thanked: 0 time
- Been thanked: 0 time
Re: Shandalar Clone
by DennisBergkamp » 08 Nov 2010, 21:13
Hmm, as opposed to generating general themes for each color (and color combinations), I'll just use the current deck generator code.
Then as more themes are generated, more specific archetypes can be used... I just finished most of the code that decides what creature is played against exactly for the random encounters.
Then as more themes are generated, more specific archetypes can be used... I just finished most of the code that decides what creature is played against exactly for the random encounters.
-
DennisBergkamp - AI Programmer
- Posts: 2602
- Joined: 09 Sep 2008, 15:46
- Has thanked: 0 time
- Been thanked: 0 time
Re: Shandalar Clone
by friarsol » 08 Nov 2010, 21:20
Dennis, how close do you think you are to submitting your graphic quest code? Even if it's incomplete, it may be better to have it in the SVN while you can continue to work on it at the very least so it's backed up.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Shandalar Clone
by DennisBergkamp » 08 Nov 2010, 22:45
Pretty close actually, it still needs a bunch of cleanups... but I could even do those after committing.
-
DennisBergkamp - AI Programmer
- Posts: 2602
- Joined: 09 Sep 2008, 15:46
- Has thanked: 0 time
- Been thanked: 0 time
Re: Shandalar Clone
by DennisBergkamp » 19 Nov 2010, 01:12
Actually, I'm kind of scared to commit (it will add dirty code all over the place and *might* even break things on our beloved SVN
), but I will just release the code with the next test version of this map.
Do we have a 4 or 5 color deck generator (using the new deck generation algorithm) by the way?

Do we have a 4 or 5 color deck generator (using the new deck generation algorithm) by the way?
-
DennisBergkamp - AI Programmer
- Posts: 2602
- Joined: 09 Sep 2008, 15:46
- Has thanked: 0 time
- Been thanked: 0 time
Re: Shandalar Clone
by Rob Cashwalker » 19 Nov 2010, 04:14
Not yet. I'm getting back to that stuff soon..
How much of the Map version affects the core of Forge? I know the map stuff is a separate executable, that launches Forge matches.
How much of the Map version affects the core of Forge? I know the map stuff is a separate executable, that launches Forge matches.
The Force will be with you, Always.
-
Rob Cashwalker - Programmer
- Posts: 2167
- Joined: 09 Sep 2008, 15:09
- Location: New York
- Has thanked: 5 times
- Been thanked: 40 times
Re: Shandalar Clone
by DennisBergkamp » 19 Nov 2010, 05:14
Ok, no probs, for now we could just use the old ones.
I haven't added that much to the core of Forge, but I added code to (at least) these classes:
AllZone
CardListUtil
EndOfTurn (<--- not sure why)
GameActionUtil (can't remember why either)
GuiDisplay3 (??)
GuiDisplay4 (??)
Gui_WinLose
ImageCache
QuestData_BoosterPack
QuestData
ReadBoosterPack
ReadQuest_Assignment
WinLose
Not too bad, I suppose.
I haven't added that much to the core of Forge, but I added code to (at least) these classes:
AllZone
CardListUtil
EndOfTurn (<--- not sure why)
GameActionUtil (can't remember why either)
GuiDisplay3 (??)
GuiDisplay4 (??)
Gui_WinLose
ImageCache
QuestData_BoosterPack
QuestData
ReadBoosterPack
ReadQuest_Assignment
WinLose
Not too bad, I suppose.
-
DennisBergkamp - AI Programmer
- Posts: 2602
- Joined: 09 Sep 2008, 15:46
- Has thanked: 0 time
- Been thanked: 0 time
Re: Shandalar Clone
by DennisBergkamp » 25 Nov 2010, 07:43
Had a few hours of spare time to work on some of the "random encounter" code.
This works now:
1. Once a random encounter triggers, what kind of colors the opposing creature will be gets calculated by looking at the surrounding tiles (closer tiles have more "weight").
2. As soon as the creature card gets selected based on what kind of colors, first an attempt is made at finding a matching theme for the creature (this could use a lot of work - currently it will just go through all of the themes and attempt to match by the name of the creature, then if nothing has been found, it will try creature types).
3. If no matching theme was found, generate a deck based on the color(s) of the creature.
Rob mentioned something about meta data for the themes... this is probably the best way to go. We could just have some kind of keywords that map a creature to a theme (creature type, name, etc.).
What do you guys think this meta data in the theme files should look like?
This works now:
1. Once a random encounter triggers, what kind of colors the opposing creature will be gets calculated by looking at the surrounding tiles (closer tiles have more "weight").
2. As soon as the creature card gets selected based on what kind of colors, first an attempt is made at finding a matching theme for the creature (this could use a lot of work - currently it will just go through all of the themes and attempt to match by the name of the creature, then if nothing has been found, it will try creature types).
3. If no matching theme was found, generate a deck based on the color(s) of the creature.
Rob mentioned something about meta data for the themes... this is probably the best way to go. We could just have some kind of keywords that map a creature to a theme (creature type, name, etc.).
What do you guys think this meta data in the theme files should look like?
-
DennisBergkamp - AI Programmer
- Posts: 2602
- Joined: 09 Sep 2008, 15:46
- Has thanked: 0 time
- Been thanked: 0 time
Re: Shandalar Clone
by Sloth » 25 Nov 2010, 13:57
If this doesn't slow down the game, I don't think we need meta data to choose a theme. It was bothersome to modify three files whenever I added a new quest deck.DennisBergkamp wrote:1. Once a random encounter triggers, what kind of colors the opposing creature will be gets calculated by looking at the surrounding tiles (closer tiles have more "weight").
2. As soon as the creature card gets selected based on what kind of colors, first an attempt is made at finding a matching theme for the creature (this could use a lot of work - currently it will just go through all of the themes and attempt to match by the name of the creature, then if nothing has been found, it will try creature types).
3. If no matching theme was found, generate a deck based on the color(s) of the creature.
-
Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Shandalar Clone
by DennisBergkamp » 25 Nov 2010, 17:10
Hmm, the meta data could be contained within the theme file though.
-
DennisBergkamp - AI Programmer
- Posts: 2602
- Joined: 09 Sep 2008, 15:46
- Has thanked: 0 time
- Been thanked: 0 time
Re: Shandalar Clone
by Sloth » 25 Nov 2010, 21:06
That would be ok then. What should it contain? A list of creatures that would have a chance to trigger this theme? A difficulty level?DennisBergkamp wrote:Hmm, the meta data could be contained within the theme file though.
-
Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Shandalar Clone
by DennisBergkamp » 26 Nov 2010, 02:05
For a start, yes it would contain either a (small, hopefully) list of creature names, and/or a list of creature types. Not sure what else we could stuff in there...
-
DennisBergkamp - AI Programmer
- Posts: 2602
- Joined: 09 Sep 2008, 15:46
- Has thanked: 0 time
- Been thanked: 0 time
Re: Shandalar Clone
by Jaedayr » 14 Dec 2010, 21:22
While waiting as patiently as I can for this
I have been thinking of how to link creatures and themes together. This may or may not work so it is just ideas to kick around.
The first link is domain, or the terrain type where the encounter takes place. Each creature and each theme file would have one or more domains out of the five possible. The second link is keyword which would start with a defined list where every keyword is represented one or more times by a creature and one or more times in a theme.
For Example:
Dennis Forgewalker is roaming through the forest one day and triggers an encounter. If it is a Beetle there is one theme that could be chosen. If it is an Elf, there are two themes and if it is a Druid there are four themes.
Keyword selection would be the critical area for this. Some creatures may have several themes possible while others would always play the same theme. Each theme could also be possibly made into three difficulties, an easy, medium and hard, with the same cards in each, just different groups and percentages. Difficulty would be determined from quest progress and added to the creature keywords for theme selection.
When a new theme is added, if it uses existing keywords it would require no changes to any other files, just the addition of the theme file to the proper folder. If a new creature is added using existing keywords then no other changes would be required. Only when adding new keywords would changes be needed to both the creature and themes.

The first link is domain, or the terrain type where the encounter takes place. Each creature and each theme file would have one or more domains out of the five possible. The second link is keyword which would start with a defined list where every keyword is represented one or more times by a creature and one or more times in a theme.
For Example:
- Code: Select all
Creature Domain Keywords
Elf G Elf, Warrior, Druid, Shaman
Druid G Druid
Beetle King G Beetle
Theme
Green G Elemental, Elf, Treefolk, Warrior, Druid, Shaman
Beetle BG Beetle
Generic Elf G Elf, Warrior, Druid, Shaman
Druid G Druid
Human Druid GW Druid
Dennis Forgewalker is roaming through the forest one day and triggers an encounter. If it is a Beetle there is one theme that could be chosen. If it is an Elf, there are two themes and if it is a Druid there are four themes.
Keyword selection would be the critical area for this. Some creatures may have several themes possible while others would always play the same theme. Each theme could also be possibly made into three difficulties, an easy, medium and hard, with the same cards in each, just different groups and percentages. Difficulty would be determined from quest progress and added to the creature keywords for theme selection.
When a new theme is added, if it uses existing keywords it would require no changes to any other files, just the addition of the theme file to the proper folder. If a new creature is added using existing keywords then no other changes would be required. Only when adding new keywords would changes be needed to both the creature and themes.
Re: Shandalar Clone
by DennisBergkamp » 17 Dec 2010, 23:59
Yup, this would be a good way of doing it, and it would allow for multiple themes to be picked.
-
DennisBergkamp - AI Programmer
- Posts: 2602
- Joined: 09 Sep 2008, 15:46
- Has thanked: 0 time
- Been thanked: 0 time
Re: Shandalar Clone
by friarsol » 23 Jul 2011, 15:54
Hooray for reviving Dead Topics.
Dennis, I'm not sure if you've noticed that we've moved off Google Code SVN to Git in the last several days. The great thing about Git is that it allows you to clone the Master Source Control and have your own safe sandbox. If you can get your Adventure code merged into everything you can safely commit code to your Clone without so you don't have to worry about merging a bazillion changes at a later date.
Then when you are confident the merges won't break anything it's relatively straightforward to Push your changes Upstream to the Master Repository.
I'd recommend doing this as soon as you can, as the longer you wait the more changes between the final SVN version and the current GIT version you'll have to wade through. Even better than that once you have your personal repository up, other people can grab a Read Only version of the Adventure Mode, allowing additional testing and suggestions to the code base.
Dennis, I'm not sure if you've noticed that we've moved off Google Code SVN to Git in the last several days. The great thing about Git is that it allows you to clone the Master Source Control and have your own safe sandbox. If you can get your Adventure code merged into everything you can safely commit code to your Clone without so you don't have to worry about merging a bazillion changes at a later date.
Then when you are confident the merges won't break anything it's relatively straightforward to Push your changes Upstream to the Master Repository.
I'd recommend doing this as soon as you can, as the longer you wait the more changes between the final SVN version and the current GIT version you'll have to wade through. Even better than that once you have your personal repository up, other people can grab a Read Only version of the Adventure Mode, allowing additional testing and suggestions to the code base.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Who is online
Users browsing this forum: No registered users and 15 guests