It is currently 20 Nov 2017, 06:03
   
Text Size

Dominion .NET (by Rio Grande Games)

A version of Asmadi Games' game by jatill

Moderators: jatill, CCGHQ Admins

Dominion .NET (by Rio Grande Games)

Postby Jurek » 26 Aug 2011, 20:53

Greetings, all!


My development site (currently very lean) is at:
http://dominion.technowall.net/

The latest release r389 (2016-09-19) is at:
http://dominion.technowall.net/files/Do ... 20.NET.zip

Release notes for each release can be found at:
http://dominion.technowall.net/releasenotes.html

You will need .NET 4.0 Framework installed for this to work. If all works as expected, you should just be able to extract the .ZIP file to a directory of your choice and launch it from there.

Features:
  • All sets and promo cards (except those listed below) are implemented
  • Support for Kingdom presets
  • Support for Kingdom card constraints, such as Must Use, Cannot Use, Is part of Set, Category Contains, Is in Group, Sets to use
  • Ability to save/load games
  • Automatic version update detection & upgrading
  • Graphical card tooltips
  • Kinetic scrolling of card display area (think iPhone interface)
  • Under the hood, a completely OO class hierarchy with an event-driven communication system
  • Color-coded player turn view
  • Drag-and-drop reordering for ordering cards (e.g. Cartographer)
  • Undo playing of basic Treasure and Action cards
  • Kingdom card preview window
  • Summon promo card
  • Adventures, & Empires

Current bugs/limitations:
  • Alchemy's Possession, Black Market, Adventure's Inheritance, & Empire's Enchantress still have yet to be implemented

There are currently 6 levels of AI:
  • Basic -- Completely random for all decisions; obviously the easiest of the opponents
  • Standard -- Currently the better-informed AI, which will make slightly different decisions; jatill's AI was the initial base for this. Ongoing AI development will be in this level
  • Big Money -- Very simple "Big Money" AI that concentrates solely on buying Treasure and Victory cards
  • Big Money (Advanced) -- Based on the "Big Money" AI, but also buys +Card Action cards
  • Action Hero -- Similar to "Big Money" but opens up buying to Action cards
  • Interaction -- Likes to buy Attack cards early & mid-game
  • Random AI -- Randomly chooses one of the above AIs to play as for the whole game

Screenshots:
Main UI Screenshot
Settings Preset & Constraints Screenshot


This is a work in progress and development is still ongoing. Any bugs/questions/comments/suggestions are appreciated.
Last edited by Jurek on 19 Sep 2016, 22:48, edited 31 times in total.
Jurek
DEVELOPER
 
Posts: 31
Joined: 04 Mar 2011, 15:19
Has thanked: 0 time
Been thanked: 7 times

Re: Dominion .NET (by Rio Grande Games)

Postby pinkymadigan » 30 Aug 2011, 01:55

I have some code snippets in the end of the source code for card selection. Looks like you have some similar ideas implemented, but would love to see things like must include 'extra buy' card, must include '+2 action' type cards, etc.

Also, looks a bit buggy. I click money and it asks if I want to do that (since I have actions left). I click OK, it adds the money, then when I click more money it asks me again...
pinkymadigan
 
Posts: 36
Joined: 08 Apr 2010, 22:07
Has thanked: 1 time
Been thanked: 0 time

Re: Dominion .NET (by Rio Grande Games)

Postby Jurek » 31 Aug 2011, 00:51

Thanks for the quick feedback!

The Cost "code snippets" have been updated to display ¢ for Coin and ¤ for Potion in the costs. That was on my "todo" list, and your feedback made me push it up in priority.

The Prompt bug has been fixed -- I normally don't play with this setting enabled, so I guess I missed that. Thanks!

The extra constraints that you mentioned have been implemented. There is a new constraint type, called "Card is in Group", which has a bunch of groups with looser definitions than those given in the card benefits. More can be added; the ones that are there now are the ones that I grabbed off the "Dominion Shuffle" Android app, with a few additions and fixes.
Jurek
DEVELOPER
 
Posts: 31
Joined: 04 Mar 2011, 15:19
Has thanked: 0 time
Been thanked: 7 times

Re: Dominion .NET (by Rio Grande Games)

Postby pinkymadigan » 31 Aug 2011, 01:29

Ha cool. Well I didn't write my post clearly, but I meant I have two giant code blocks in the 'Source Code' post on this forum, last page. That wasn't very clear upon reviewing my post.

Looks like you already have a decent algorithm for deck filling though. It was more for jatill in case he wanted to incorporate it in the vb6 version (obviously it would've needed reworked).
pinkymadigan
 
Posts: 36
Joined: 08 Apr 2010, 22:07
Has thanked: 1 time
Been thanked: 0 time

Re: Dominion .NET (by Rio Grande Games)

Postby jatill » 31 Aug 2011, 12:58

Nice work completing a project like this; I'm glad you were able to find some of my code useful.

I do take issue with calling your UI vastly better, though, since some parts are definitely a step back. The 2 things that bummed me out the most were:
(1) When I want to see the full text of a card, I have to hover then wait. But then if I don't read fast enough it's gone again.
(2) I have to click an itty-bitty icon to buy something.

There are definitely some UI features I like, but 3 turns in, those 2 things are driving me bonkers.
jatill
DEVELOPER
 
Posts: 2118
Joined: 24 Feb 2009, 16:35
Has thanked: 5 times
Been thanked: 17 times

Re: Dominion .NET (by Rio Grande Games)

Postby Jurek » 31 Aug 2011, 14:08

jatill wrote:Nice work completing a project like this; I'm glad you were able to find some of my code useful.

I do take issue with calling your UI vastly better, though, since some parts are definitely a step back. The 2 things that bummed me out the most were:
(1) When I want to see the full text of a card, I have to hover then wait. But then if I don't read fast enough it's gone again.
(2) I have to click an itty-bitty icon to buy something.

There are definitely some UI features I like, but 3 turns in, those 2 things are driving me bonkers.
I'm sorry for any hurt feelings, but I found the mis-aligned text, inconsistent style, and black text on a background with black to be quite annoying myself. If you'd prefer, I'll use "updated".

For the card tooltip, there are 2 settings in the Settings page to control that. There is one to set how long the card stays open (disabled, 2, 5, 10, or 20 seconds). There is also a setting for making it show up on right-click-and-hold only.

For buying, you should be able to click anywhere on the small picture of the card; it doesn't have to be the small white-on-blue plus icon. If that's not what you're referring to, can you elaborate a bit more please?
Jurek
DEVELOPER
 
Posts: 31
Joined: 04 Mar 2011, 15:19
Has thanked: 0 time
Been thanked: 7 times

Re: Dominion .NET (by Rio Grande Games)

Postby jatill » 31 Aug 2011, 14:22

You're not hurting anyone's feelings, just stating your opinion as fact. In any case, who cares, no big deal.

Clicking the small images doesn't do anything for me; I have to hit the small +.
I changed my setting to right-click, and it did nothing. Now that I start a new game, it works. So that's fine.

I don't see how to change the AI options.

I know it's only 1 button click, but I'd like the game to auto-move me to the buy phase and spend my coins for me. It would be a nice option to have.
jatill
DEVELOPER
 
Posts: 2118
Joined: 24 Feb 2009, 16:35
Has thanked: 5 times
Been thanked: 17 times

Re: Dominion .NET (by Rio Grande Games)

Postby Jurek » 31 Aug 2011, 14:34

The button is the entire size of the image, so I don't know what's causing you to not be able to click on it. I'll investigate a bit more and see if I can identify & fix it.

The option to change the AI level is found on the Players (first) tab of the Settings page. It is the 3-position slider in front of the Player #X box. It goes from lowest on the left to "highest" on the right (currently, level 2 is not a whole lot different than 1 and end-of-game scores are relatively close in my testing).

I used to have an auto-play treasure checkbox on the UI before but got rid of it, as that's the way Isotropic handles it. I'll probably add that option back in again, but put it on the Settings page instead of the main UI.
Jurek
DEVELOPER
 
Posts: 31
Joined: 04 Mar 2011, 15:19
Has thanked: 0 time
Been thanked: 7 times

Re: Dominion .NET (by Rio Grande Games)

Postby pinkymadigan » 31 Aug 2011, 21:26

The button thing happens to me as well, but it seems to be related to form focus issues.
pinkymadigan
 
Posts: 36
Joined: 08 Apr 2010, 22:07
Has thanked: 1 time
Been thanked: 0 time

Re: Dominion .NET (by Rio Grande Games)

Postby Inego » 03 Sep 2011, 09:40

The interface is excellent, clean and streamlined.
Inego
 
Posts: 3
Joined: 28 Aug 2011, 10:44
Has thanked: 0 time
Been thanked: 0 time

Re: Dominion .NET (by Rio Grande Games)

Postby pinkymadigan » 04 Sep 2011, 15:55

The level 2 AI can't seem to deal with putting together an engine at all. I've routinely (5 times straight) bought all the highest level victory point cards. The games I've been playing all have at least one action splitter, one trasher, and on extra buy card.
pinkymadigan
 
Posts: 36
Joined: 08 Apr 2010, 22:07
Has thanked: 1 time
Been thanked: 0 time

Re: Dominion .NET (by Rio Grande Games)

Postby dotnetter » 23 Sep 2011, 14:00

I'd like to pick up the torch where Inego left off. Not only is the UI excellent (it's nice to see others making use of WPF!), clean, and streamlined, but the actual architecture and implementation of the application lends to the fact that it was written by a quite capable developer.

After playing many games and perusing the source in detail, I wanted to comment and offer my compliments to Jurek for a wonderful job well done. Based on what I've seen, Jurek's Dominion.NET application is head and shoulders above the competition, and they've done it at a tenth of the overall installed application size of the immediate competition.

I'd like to see the competition out there (pointing at jatill making somewhat negative comments above) open up their projects to the public as well. Simple issues like the UI completely hanging for five seconds in jatill's client when starting a new game aren't things that most users notice or care about, but as a developer it is evident that there are performance and efficiency problems with the way things are organized. It would be nice to be able to make further comparisons based on more than what one sees when they launch the application. I believe that opening things up to the public domain also forces people to write and release better code.

Three cheers for Jurek! You've landed another fan! I look forward to further updates! I may even touch base to see if there is anything I can do to lend a hand as a fellow dotnetter!
dotnetter
 
Posts: 1
Joined: 23 Sep 2011, 13:28
Has thanked: 1 time
Been thanked: 0 time

Re: Dominion .NET (by Rio Grande Games)

Postby oneiromancer » 23 Sep 2011, 22:09

Does anyone know if it is possible, without digging into the code (which my programming skills aren't up to), to compile Dominion .NET on a Mac, perhaps using Mono or something similar?
oneiromancer
 
Posts: 7
Joined: 25 May 2011, 04:12
Has thanked: 0 time
Been thanked: 0 time

Re: Dominion .NET (by Rio Grande Games)

Postby Jurek » 26 Sep 2011, 15:11

dotnetter wrote:I'd like to pick up the torch where Inego left off. Not only is the UI excellent (it's nice to see others making use of WPF!), clean, and streamlined, but the actual architecture and implementation of the application lends to the fact that it was written by a quite capable developer.

After playing many games and perusing the source in detail, I wanted to comment and offer my compliments to Jurek for a wonderful job well done. Based on what I've seen, Jurek's Dominion.NET application is head and shoulders above the competition, and they've done it at a tenth of the overall installed application size of the immediate competition.

I'd like to see the competition out there (pointing at jatill making somewhat negative comments above) open up their projects to the public as well. Simple issues like the UI completely hanging for five seconds in jatill's client when starting a new game aren't things that most users notice or care about, but as a developer it is evident that there are performance and efficiency problems with the way things are organized. It would be nice to be able to make further comparisons based on more than what one sees when they launch the application. I believe that opening things up to the public domain also forces people to write and release better code.

Three cheers for Jurek! You've landed another fan! I look forward to further updates! I may even touch base to see if there is anything I can do to lend a hand as a fellow dotnetter!
Thanks for the kudos, but I please keep things nice here. I'm not here to make enemies, and my goal was to make something that I felt was a better implementation. If I recall correctly, jatill has, or has had at one point, his/her source code available. While it may not be available immediately for anonymous browsing (something I can empathize with), that doesn't mean it isn't available at all.

On a personal level, this has been a good project for me since I've been able to keep my personal knowledge growing -- implementing it in a rigid OO class structure, teaching myself WPF, and getting very familiar with custom events and message passing.
One of the main tenets of this project has been that it should be up to the card itself to know what is involved when it is being played. To that end, all of the game mechanics are built into the cards' classes themselves. I've tried very hard to keep strict, rigid walls between various parts of the code. Each of the cards knows how to play itself, the AIs only know what they can see, the UI is completely cut off from the core game and must communicate with it via messages and events, etc.
Jurek
DEVELOPER
 
Posts: 31
Joined: 04 Mar 2011, 15:19
Has thanked: 0 time
Been thanked: 7 times

Re: Dominion .NET (by Rio Grande Games)

Postby Jurek » 26 Sep 2011, 15:18

oneiromancer wrote:Does anyone know if it is possible, without digging into the code (which my programming skills aren't up to), to compile Dominion .NET on a Mac, perhaps using Mono or something similar?
Mono is unlikely to happen. The developers of Mono have said that they currently have absolutely no plans to support WPF, which my implementation uses (instead of Windows Forms/GDI+). I made a conscious decision to switch to WPF, knowing that that would make Mono building not available. There were several things I had to consider before making that change, but it came down to the fact that Forms and GDI+ in general is very limiting and is showing its age.

Currently, your only real option is to do Bootcamp/VMWare/etc.
Sorry.
Jurek
DEVELOPER
 
Posts: 31
Joined: 04 Mar 2011, 15:19
Has thanked: 0 time
Been thanked: 7 times

Next

Return to Dominion

Who is online

Users browsing this forum: No registered users and 2 guests


Who is online

In total there are 2 users online :: 0 registered, 0 hidden and 2 guests (based on users active over the past 10 minutes)
Most users ever online was 279 on 11 Jul 2013, 22:03

Users browsing this forum: No registered users and 2 guests

Login Form