You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(20) |
Jun
(3) |
Jul
(3) |
Aug
(12) |
Sep
|
Oct
|
Nov
|
Dec
|
---|
From: Ris M. <rm...@ne...> - 2007-05-12 00:46:27
|
We got into a discussion of playing and keying hazards today, forwarded below, and here are my added thoughts. There's some good intro discussion quoted below, way down at the end. Adding new stuff to the discussion. So there should be a special way to play a hazard which is not exactly the same as the generic method of playing any card at any time. When you play a hazard, you need to define 3 things, and by normal game rules, you would declare them in this order: 1) What is the hazard keyed to? 2) What is the hazard's target? 3) Does it count against the hazard limit? 2. What is the hazard's target? It makes more sense to start with this one. Every card that enters play, whether a hazard or not, must always have a target. There can only be one target, and there must be one target. The target it either another card (card instance ID) or a game play area. If a card is played "in play" not targeting any other specific card, then the card's target is the "in play game area" Creature hazards are played on a company. The company is a game area. The creature hazard is defined as targeting the company's "game area" object in the game document. Assigning strikes comes later. I'm not going to get into that in this message. A corruption card targets a character card. The character card targets its company game area. The best way to define a UI for this is drag and drop. Drag the card from your hand and drop it on its target, either a card or a game area (release mouse over the empty space or a special icon for "the company" or "the game area" to place a new root card). I think it's technically out of order to choose the target first, before declaring how your hazard is keyed, but it makes more intuitive sense for the UI and the natural flow of play. I don't think there's any impact on the game rules by doing this first. Actually, we should back up and discuss: How to Play a Hazard There are a couple of ways to "Play a Hazard" for which you need to define these 3 things A) play a card from your hand a. just put it "in play" b. on a company c. on a character or other card B) activate a card in play a. usually tap and discard of a hazard permanent event b. More generically: Tap but don't discard any kind of card as activating a hazard i. Then discard it manually as a separate step c. Is this kind of action ever Keyed to the site path? Is it always unkeyed? i. Should we ask how it's keyed? d. Does this kind of action always tap the card? i. Tap it manually as a separate step? I guess that's it. Activating a card that's already in play could have all the same targets as playing a card from your hand. So this is what I mean by "On play of a hazard" . 1) you select a hazard card, either in play or in your hand 2) you click a button or right click and select "play hazard" 3) somehow you select a target. Maybe you drag and drop to imply the "play hazard" command and the target at the same time, or use alternative UIs to select these actions more methodically. Multiple options should be available. 4) somehow you indicate how it is keyed, see below 1. What is the hazard keyed to? Most hazards are played keyed to the site path, and it's important to keep track of how the hazard was keyed, in order to be able to use resources like Elven Cloak: tap Elven Cloak cancel a strike against the bearer keyed to Wilderness. Note that some hazards can be played "unkeyed" such as corruption cards or nazgul as permanent events. We can create a list of options * Keyed to site by name * Keyed to site by type * Keyed to site by containing region * Keyed to region by name * Keyed to region by type * Keyed to region by repeating type * Not Keyed The list is generated based on the available options which are determined entirely by the site path of the current company that's moving. Only the specific options you can use right now would be listed, with the details filled in, so the list above is logical categories, and the list below is what the UI would display. For a starter movement site path from Lorien to The Lonely Mountain, the keying options would be: * Keyed to The Lonely Mountain * Keyed to Ruins and Lairs * Keyed to a site in Northern Rhovanion * Keyed to Northern Rhovanion * Keyed to Wold & Foothills * Keyed to Wilderness * Keyed to Wilderness x2 * Keyed to Borderland * Keyed to Borderland x2 * Not Keyed / Other For a Region Movement site path from Lorien to The Lonely Mountain, the list would add two items in bold, because we have two more ways to key the hazard: * Keyed to The Lonely Mountain * Keyed to Ruins and Lairs * Keyed to a site in Northern Rhovanion * Keyed to Northern Rhovanion * Keyed to Wold & Foothills * Keyed to Anduin Vales * Keyed to Woodland Realm * Keyed to Wilderness * Keyed to Wilderness x2 * Keyed to Borderland * Keyed to Borderland x2 * Not Keyed / Other Many cards have more complicated rules for how they can be played keyed to the site path . something like. may be played keyed to a company with a ranger moving through at least 2 wilderness or arriving at a site in Anduin Vales, Woodland Realm, Western Mirkwood, or Heart of Mirkwood. +2 to the hazard limit. (That is a terrible example, especially because I said "keyed to a company" which is incorrect. anyone want to give a concrete example?) In the complicated cases, you would select from the more limited list, in this case "Keyed to Wilderness x2" and your opponent would see that satisfies the requirements of the card. How do we do the UI for this? Here are some options I see, and I'd like to hear more brainstorming. A) On play of the hazard (as a hazard during the movement/hazard phase while a company is moving), Prompt the user with a dialog box showing radio buttons for all these options. Default to "Not Keyed" so you can quickly just hit enter. This would occur before the card goes into play and before you send a packet to your opponent indicating that as your move. Completing this selection to answer the prompt, after you click OK, it sends the packet indicating both the target (card or game area) and how you keyed the hazard. I like the idea of having a reminder, but it could be annoying to be prompted for every hazard. B) Default all hazards to "Not Keyed" but you can right-click on the hazard after it's in play, and get a popup menu, select Keyed To -> as a submenu, and then select from one of these options as a checkable menu item. This approach would make it possible to ignore this feature of the program for more casual game play, but you would have to always remember to declare how it was keyed. C) Drag and drop the card onto something in the site path to select from a more limited list based only on that site or that region that you selected. This would be how you initiate playing the hazard, so they how would you select a target? It seems like any way we slice it with keying hazards, it has to be a 2-step process to play a hazard. How can we make it a one-step process and declare both the target and the keyed-to at the same time? Did I just prove it's impossible, or can we think outside the box? Option B above is a 1-step process, but returns us to the NetMECCG paradigm of completely forgetting about keying hazards. I am leaning towards option A - just prompt the user prior to sending the packet, and it's just too bad you have to be prompted every time, oh well. This prompt could also provide some feedback to make sure you selected the target you intended. 3. Does it count against the hazard limit? There are cards that change the hazard limit (all manner of short/long/permanent events and effects with hazard limit times 2 or +2, +N, *N, etc), so the hazard limit itself must be under manual control. But we don't want to forget to decrement it each time we play a hazard, in order to keep track of how many more we can play, so we want each play of a hazard card to automatically reduce the remaining hazards that can be played during this phase for this company. But sometimes they don't count. There are cards that change whether other hazards count against the limit or not. For example, Gothmog: Trolls played after Gothmog do not count against the hazard limit. The game engine doesn't know the details of the Gothmog card (not until we write a C++ function describing the rules for every card in the game, which is version 3 or 4) so it is up to the user to declare whether this card counts against the limit. I think this is always 1 or 0 count against the hazard limit. I am not aware of any cards that count double against the hazard limit, or otherwise count as more than 1. How do we prompt for this? I definitely don't want playing a hazard to be a 3-step process eww! But we could have a checkbox on the prompt for how it's keyed [X] Count against hazard limit Some examples Let's say I have a company moving from Lorien to The Lonely Mountain with Region Movement. You want to play a Cave Drake on me. You do this by selecting the Cave Drake from your hand, and dragging it the little fellowship icon in my target company's window, indicating you are playing the Cave Drake targeting my company. A dialog window comes up, that looks like this ------------------------ Play "Cave Drake" on Company: "Company 2" 1 of 2 hazards remaining, 1 played so far (radio buttons) * Not Keyed / Other / Undeclared (default) * Keyed to The Lonely Mountain * Keyed to Ruins and Lairs * Keyed to a site in Northern Rhovanion * Keyed to Northern Rhovanion * Keyed to Wold & Foothills * Keyed to Anduin Vales * Keyed to Woodland Realm * Keyed to Wilderness * Keyed to Wilderness x2 * Keyed to Borderland * Keyed to Borderland x2 [X] Count against the hazard limit You will be able to play 0 more hazards after this one [OK] [Cancel] ------------------------ You select "Keyed to Ruins and Lairs" and press OK or hit the Enter key. The game sends me a packet declaring your action. The hazard limit is auto-decremented because you left the checkbox checked. The Cave Drake moves from your hand window to my company's window for Company 2. Note that Companies can be renamed by played, so it could be "Aragorn's Company" or "Raiders of Beleriand" whatever the player entered, in which case the window title has that name, as well as the target in the "Play hazard prompt window" ------------------------ Play "Cave Drake" on Company: "Raiders of Belediand" 1 of 2 hazards remaining, 1 played so far (radio buttons) * Not Keyed / Other / Undeclared (default) * Keyed to The Lonely Mountain * Keyed to Ruins and Lairs * Keyed to a site in Northern Rhovanion * Keyed to Northern Rhovanion * Keyed to Wold & Foothills * Keyed to Anduin Vales * Keyed to Woodland Realm * Keyed to Wilderness * Keyed to Wilderness x2 * Keyed to Borderland * Keyed to Borderland x2 [X] Count against the hazard limit You will be able to play 0 more hazards after this one [OK] [Cancel] ------------------------ Let's say you already played some hazards, one of which lets you play cave drakes without counting them against the hazard limit, and another which increased the hazard limit. The hazard limit, number of hazards played, and number remaining would all be tracked ------------------------ Play "Cave Drake" on Company: "Raiders of Belediand" 0 of 4 hazards remaining, 5 played so far (radio buttons) * Not Keyed / Other / Undeclared (default) * Keyed to The Lonely Mountain * Keyed to Ruins and Lairs * Keyed to a site in Northern Rhovanion * Keyed to Northern Rhovanion * Keyed to Wold & Foothills * Keyed to Anduin Vales * Keyed to Woodland Realm * Keyed to Wilderness * Keyed to Wilderness x2 * Keyed to Borderland * Keyed to Borderland x2 [ ] Count against the hazard limit You will be able to play 0 more hazards after this one [OK] [Cancel] ------------------------ Note that more hazards have been played (5) than the hazard limit (4). This is because one of the cards didn't count against the limit. I like the idea of being able to see how much I've been able to exceed the hazard limit. Since there are zero remaining, the "count against the limit" box is unchecked by default. It should show up in a different color to warn that you're not counting this card against the limit, an unusual case you don't want to do by accident. If you check the box, it will remain red and show ------------------------ Play "Cave Drake" on Company: "Raiders of Belediand" 0 of 4 hazards remaining, 5 played so far (radio buttons) * Not Keyed / Other / Undeclared (default) * Keyed to The Lonely Mountain * Keyed to Ruins and Lairs * Keyed to a site in Northern Rhovanion * Keyed to Northern Rhovanion * Keyed to Wold & Foothills * Keyed to Anduin Vales * Keyed to Woodland Realm * Keyed to Wilderness * Keyed to Wilderness x2 * Keyed to Borderland * Keyed to Borderland x2 [X] Count against the hazard limit WARNING: Playing this card will illegally exceed the hazard limit [OK] [Cancel] ------------------------ Along with the color coding, selecting "Not Keyed" should appear in red as a warning if it is selected, but appear in normal black if a real Keyed-To value is selected. Just to remind you to select something if it applies. -- Ris _____ From: Birk, Joshua Sent: Friday, May 11, 2007 5:31 PM To: Ris Misner Subject: RE: Darnassus and Ardanet So about hazards. I'm remembering more about it now. It slowly comes back to me, lol. I think for corruption hazards they're really played ON a character not keyed to anything, or played into general hazards as an overall effect. What each hazard is specifically keyed to is very important and needs to be documented, not only to make sure it's valid but also because certain abilities on both hazards and resources are only available when the hazard is keyed in certain ways. A hazard that can be keyed in more way than one on a particular site path definitely needs to be declared for the playing of these other cards. So we should require that the keying of any creature with such type of requirements be declared through the game interface somehow. It should be easy to use as well, cause I found the right click and search through 100 options method in NetMeccg to be a little slow and annoying. It should only list the options available for that particular hazard or something (with an "other option" to always be able to override the program assuming player "always knows best"). Know what I mean? Later, Josh _____ From: Ris Misner Sent: Friday, May 11, 2007 12:16 PM To: Birk, Joshua Subject: RE: Darnassus and Ardanet Hi Josh, I agree about skipping some weeks on Ardanet debugging, and I want to focus on honing my skills for Worlds anyway :P You asked about the hazards. yes playing Adunaphel and then using him counts as 2 separate hazards. This kind of thing is why we need to automate counting the hazard count played vs. the limit, cuz NetMECCG you keep track of the hazard limit in your head and we always forget. You can play a hazard keyed to the destination site, but not the origin site. You can't play a hazard in the site phase, but you can play the hazard on guard during the movement hazard phase so that it becomes revealed and takes effect during the site phase. If you want to play a hazard on guard, you can bluff and play any card, but for a revealable/applicable on-guard hazard that can actually take effect, it must be keyed to the destination site. I don't think you can play a cave drake on guard keyed to wilderness, but you could play the cave drake on guard keyed to ruins and lairs at a ruins and lairs site. I've tried to read up clarifications about the details of on-guard hazards and I only get more confused. Maybe you CAN key it to the regions or site path other than the destination site? Not sure now that I think about it. If the company doesn't move, you can only key hazards to the site. If you're using starter movement, you can't key hazards to named regions even if you're looking at the map knowing that the site path from Rivendel to Lorien is wwbw . you know that route has to go through Anduin Vales to make that site path, because it's the only borderland around, but since it's starter movement, you can't key to Anduin Vales by name, you can only key to the borderland - no matter what you know in this case, you don't REALLY know for sure that it's Anduin Values, it's just an unspecified borderland region (even though you could look at the map and logically deduce that it must be Anduin Vales, that logical deduction isn't allowed by the rules). However, I believe you can key to the origin and destination regions by name because those are listed on the origin and destination site cards, so for starter movement from Rivendel to Lorien, you can key hazards to Rhudaur and Wold&Foothills by name. If you're staying at the same site in Lorien, I can't key hazards to the wilderness region or Wold&Foothills, and can only key to the site itself (haven in this case). There are hazards that can be "keyed to sites in the following regions" in which case you are keying on the site based on the region it's in, and not actually keying to the region itself. So this makes me realize that we need an improved interface for playing a hazard as a hazard. Instead of just "play on company" like we were doing last night, we need the game UI to track a reminder for us about what the hazard was keyed to. think about it. Maybe the company would have it's region list shown with the region cards (or icons for the unspecified regions with starter movement) and when you play the hazard, you play it on the thing it's keyed to. Then you'd get prompted with options based on the target you selected, so if I key a hazard to your destination site Lorien, I would be prompted with options like: * Key to "Lorien" by name * Key to Haven * Key to "any site in Wold&Foothills" * Not keyed (??) Are corruption hazards keyed to something? That is, are there hazards that aren't keyed to anything at all? What do we call that? "unkeyed"? Keyed to the company? Putting a nazgul into play as a permanent event is not keyed to anything, it's just a general hazard. "General Hazard" is that what we call unkeyed hazards? All of the above is based on my fuzzy memory of hazards. I'm glad we both have differenty overlapping holes in our memory so we can remind each other about what we forgot lol. Saves time on a lot of research. -- Ris _____ From: Birk, Joshua Sent: Friday, May 11, 2007 1:33 PM To: Ris Misner Subject: Darnassus and Ardanet Hi Ris, So ardanet debugging was pretty cool last night. Especially the fact that we got it working now! We can keep testing stuff like that when you're ready for it, it's totally fun to do, and I can work on other stuff in between test runs. But I don't think I want to do that every week, or I'll get burned out :P We need to play more NetMECCG :-) That was pretty cool remembering how to play the game and figuring out the program again and stuff. Funny how we had such deadly first turns for both of us, lol. One thing I was thinking about thoguh was how I was playing my hazards. First I think playing a nazgul and using it is 2 hazards not one, and second, can you play something keyed to the site where you arrive or can that only be played during site phase? I totally forget that now! I need to go find my hard copy maps too cause it will be easier to plan stuff out and things while watching the screen at the same time.. It's time to dig out the cards and lists again too I think. I want to get a comprehensive list of the cards I have and the ones I need. My plan is to eventually have at least 1 copy of all the English cards printed (not caring about limited vs. unlimited though). -Josh |
From: Josh H. <jo...@hu...> - 2007-05-11 15:24:53
|
Hey All, Since I'm not up to speed in c++, Ris suggested a good way to help out would be for me to work on the website. So what kind of info do we want to post up there? Is there a logo I can use to start from, or do we still need a logo? I'm not much of a graphic artist, but I can try my hand at coming up with something at least for now if we don't already have something. Also pass on any ideas for what we want there. Two applications I would suggest we integrate into the website for different uses: a forum and a bug tracker. I'm not a huge fan of Sourceforge's bug tracker. It works, but it's not the greatest. Especially when we have a great program like Bugzilla (http://www.bugzilla.org/) already out there. For the forum, I'm very familiar with phpbb (www.phpbb.org), but if you have a different one in mind, I'm up for giving anything a try. --Josh H. jo...@hu... |
From: Josh H. <jo...@hu...> - 2007-05-11 15:09:19
|
> > So far I got the time off work and arranged a place to stay. I priced > airline tickets but didn't buy yet. Still need to get pre-registered for > the qualifier and hope there are openings. If I can't get into the > tournament, this whole plan could fall apart. > You'll have no problem getting in...there's plenty of space left, and as far as I can remember no one has been turned away from Worlds. :) I want to take some hand-outs with me to give to people who are interested. > Something with our website address on it, a very brief description, maybe a > logo, our plea for help... Any suggestions about this? > Something small, with the website address and maybe some brief info on the project would probably be plenty. Business-card size might be perfect. http://www.vistaprint.com/ <-- These guys are cheap and good. If you get the free ones, they just put their logo and website on the back (or that's how it used to be when I've used them). > > What exactly should my hand-out materials say? > > > > Ardanet: The superior solution for playing MECCG online with other > players, including play-assisting features and guides, but still flexible. > In the face of NetMECCG and GCCG, we were disappointed, and designed > Ardanet. Visit us at http://ardanet.sourceforge.net/ for more > information, to volunteer, or offer your suggestions. > This sounds good to me, but I would maybe change the second sentance. Make it something like "NetMECCG and GCCG were good programs in their day, but we knew they could be better, so we designed Ardanet." Otherwise I think it sounds good. > I think it needs something about the project's newness. I liked the > "project infancy" wording from my meccg.net post, but hmmm, maybe I just > TELL them verbally that it's new, without printing that on the hand-out > materials? > I agree. You can just tell them this when passing out info. That way if they put the info on the shelf and don't look at it for 4 months or whatever, they will still want to go take a look. --Josh H. > -- Ris > |
From: Ris M. <rm...@ne...> - 2007-05-11 02:31:25
|
Hi Team, I'm working on my travel plans to go to Worlds '07 in NY. I want to use the opportunity to spread the word about Ardanet and recruit more volunteers. So far I got the time off work and arranged a place to stay. I priced airline tickets but didn't buy yet. Still need to get pre-registered for the qualifier and hope there are openings. If I can't get into the tournament, this whole plan could fall apart. I want to take some hand-outs with me to give to people who are interested. Something with our website address on it, a very brief description, maybe a logo, our plea for help... Any suggestions about this? Should I print out full page fliers on 8.5x11 paper? That seems too big. Cut them into halves or quarters? Fold it in thirds to make a pamphlet? Should I have business cards printed? Would 200 be enough? 100? If it's not too expensive, I don't mind paying for this. Are business cards big enough to say enough about the project? OK I'll give this advertising project a budget of $50 out of pocket, though I'd prefer NOT to spend any money. Can you think of a good way to use MECCG cards as the hand-out material? Maybe use a bunch of commons and tape something onto the face? What exactly should my hand-out materials say? Ardanet: The superior solution for playing MECCG online with other players, including play-assisting features and guides, but still flexible. In the face of NetMECCG and GCCG, we were disappointed, and designed Ardanet. Visit us at http://ardanet.sourceforge.net/ for more information, or to volunteer, or offer your suggestions. I think it needs something about the project's newness. I liked the "project infancy" wording from my meccg.net post, but hmmm, maybe I just TELL them verbally that it's new, without printing that on the hand-out materials? Need brainstorming suggestions here on all aspects. -- Ris |
From: Ris M. <rm...@ne...> - 2007-05-11 02:19:46
|
Hi Team, I created a new document today on the sourceforge site called "Who Is on the Development Team" You can find it here: http://sourceforge.net/docman/display_doc.php?docid=52781 <http://sourceforge.net/docman/display_doc.php?docid=52781&group_id=192968> &group_id=192968 "Here is a brief synopsis listing each member of our development team, the division of responsibilities, and roughly how much time we're all spending on the project." I intend to add entries for anyone new we bring onto the project. The main purpose of this document is to introduce the existing team to new team members when we recruit more volunteers. It's also meant to help the team members find who is the best person to ask for assistance on a particular issue (if not this general mailing list) and I will also use it for project management to help me suggest task assignments. I would be glad to edit this document to show anything you want me to put on there, just email your info to this list, or to me directly. You both have at least a minimal entry already, but I assume you will both have changes you want to make. Also, all developers on the project should have access rights to edit these docs, so you can edit it for yourself if you like, and you're welcome to maintain a small profile here for yourself. Where it says "Submit new <http://sourceforge.net/docman/new.php?group_id=192968> documentation | View <http://sourceforge.net/docman/index.php?group_id=192968> Documentation | Admin <http://sourceforge.net/docman/admin/index.php?group_id=192968> " Click on Admin, you may be prompted to re-enter your password, and then click on the name of the document again and you should be given the chance to edit it. If the site blocks you from doing this, then please let me know and I will fix your permissions. Be aware that when editing these documents, the formatting restrictions are limited to very few HTML tags. When you are done, you should always go back out to view the document to make sure it displays the way you intended. The slightest error with your HTML can cause the whole document to fail to show up. I also noticed a funky sourceforge or IE bug today that to submit my changes editing one of these docs, the button wouldn't let me click with my mouse, but the Enter key worked. That's weird, the mouse clicks always worked before. So anyway there's a bit of a learning curve involved with editing the documents in this area, so like I said, I don't mind making the changes for you if you give me your info. That said, I would still appreciate it if the whole team would help maintain the Who Is and all the other documents in this area as much as possible. Getting back to "Who Is on the Development Team" doc specifically, you can put any amount of info you want and be as specific or vague as you want. There's a "time commitment" listed. I estimated some numbers. You could write "varies" or anything you want. Or you don't have to put anything at all, if you want me to limit your entry in this document to two words: username@sourceforge, then we can do that too. You're welcome to assign your own title to the Role: part, or add any other notes you want. You don't have to follow my format. The point is to list what you want the rest of the team to know about you. While I appreciate verbosity and detail, in this case please try to keep it brief. We all have more thorough sourceforge profile pages to list our full resumes. -- Ris |
From: Ris M. <rm...@ne...> - 2007-05-11 01:14:41
|
Below you will find a forwarded discussion between Ris Misner and Josh Birk about how to draw cards on the screen. In the few days since my last message on this topic below, I have had some new thinking on this issue, so there's some new stuff here too. My thinking has been to use a dialog window with transparent controls and a replaceable background image to dynamically create a display for any card as needed. Most of them show the same information in the same places, so I imagine we can define this layout using the Visual Studio visual dialog editor, which is a WYSIWYG editor where you can drag and drop things where you want them to layout the contents of a window. The layout of the dialog and where you wanted to position everything is stored as a "dialog template resource" in the application executable's resource table (see also the Ardanet.rc source code file). There are a variety of "common controls" offered by the Windows API libraries to render things like text boxes, list boxes, scroll bars, images, and so forth. It's easy to associate event handlers and runtime variables with these common controls. All in all, working with dialog windows is nice, so I prefer to use dialog templates whenever possible. The alternative is a custom drawn window which requires more code to "manually" draw each element on the screen, and handling any interactivity is extremely difficult without using common controls for child windows. To add special behavior to a common control, rather than make a new custom control, one will typically subclass an existing common control. In the few days since my last message on this topic below, I have had some new thinking on this issue. I was considering what it will take to tap a card - to rotate a card window that is shown with a dialog template resource and a CDialog-derived class. The Windows API doesn't offer any native capability to rotate a whole window. We have to resize and redraw the window to create the illusion that the window is rotated by repositioning all of the contents of the window and rotating each individual item. There are text drawing functions that allow you to write text sideways, as needed on a tapped card. But the common controls don't offer that feature by default, so we would have to subclass all of those transparent text boxes in order to add the feature we need to rotate a card window in order to indicate it as tapped, and still draw all the text on it sideways. Rotating the card art image is actually pretty easy, as well as icons. It's only the text that presents us with some problems where I'm not so sure the dialog template idea is going to work out as well as I first hoped. I have a couple of ideas in mind to approach the rotated text issue. A) Subclass the EDIT control so we can render them rotated 90/180/270 as needed. This would theoretically support input boxes that are rotated so that the card is editable in this view while it is in-play. We could still use dialog template resources to create, edit, and maintain the window layout, as well as Visual Studio tools to assist setting up event handlers and the relationship between runtime variables and window data. B) Do it as a custom-drawn window and use GDI routines to draw all of the information on the card window. This would not be interactive, and a separate editor window would be used to edit the card, and the cards would not be editable while in play from that view (maybe a double click opens the interactive edit view). The interactive edit view would still be driven by a dialog template resource so we can make it interactive (interactive custom drawn windows are virtually impossible without using child windows that are common controls like a dialog window). The in-game view of the card would be custom drawn with GDI routines to DrawText() with the parameters to draw sideways for tapped cards. We would NOT be able to use the visual resource editor to define and maintain the layout of this window and instead we'd have to define a custom data table in the code or use an XML file or something to define the pixel coordinates of where to draw everything. The plus side of this approach is that I think it would be easier to implement the custom draw routines than to subclass the common controls for rotation. The more I think about this, the more I think we need to do custom-drawn option B. Consider the concept of "shadow cards" or "ghost cards". This is an idea we had about how to keep track of a card that's having a global effect and which specific cards it's effecting. For example if Scimitars of Steel is in play, this is a hazard permanent event that gives +1 prowess to all orc attacks. Then we play an orc creature hazard, for example Orc-warband. Scimitars of Steel gives +1 Prowess to the Orc-warband, and we want the in-game play assisting features and calculators to count this bonus automatically. So I click on Scimitars of Steel and drag it onto Orc-warband to play the Scimitars of Steel on the Orc-warband the same way I would play a Sword of Gondolin on Aragorn. However, that's not appropriate, because when I discard Aragorn, I want to automatically discard his Sword of Gondolin at the same time, because the Sword directly targets Aragorn. The Scimitars of Steel does NOT directly target the Orc-warband, and I don't want to discard Scimitars of Steel when I discard the Orc-warband. SO. instead of playing the Scimitars of Steel on the Orc-warband, I play a "shadow card" of the Scimitars of Steel on the Orc-warband. This serves as a reminder that Scimitars of Steel is still in play and having an effect on the Orc-warband. The shadow card is in the target card's target list, or vice-versa however that works, so the game calculators find it in the tree search in order to add up the bonuses (and also tell you which cards are giving you those bonuses so it's all transparent and you know it's counting everything correctly) Now consider DRAWING a shadow card. It should look shadowy or ghostly and that's more custom drawing, so all the more reason to go with option B and forget about trying to subclass the common controls for rotation. -- Ris (some non-Ardanet topics have been edited out of this forwarded discussion thread below) _____ From: Ris Misner Sent: Wednesday, May 09, 2007 5:11 PM To: 'Birk, Joshua' Subject: RE: Wintersabor = I'm an idiot, lol Hi Josh, For the card templates, thinking about the Direct Influence stat for a character card. On the printed cards, a character only shows a DI icon with a number if he has >= 1 DI. Zero DI means they didn't print the icon at all. I'm thinking that for card templates for character cards, we would always show a DI icon where it would normally go, and write 0 over it for those characters that don't have any direct influence. The icon would be part of the background image graphic. The number would be drawn by a transparent text box, so that code would not be positioning things at runtime, and that could be controlled entirely by the WYSIWIG dialog editor. For site path icons, that's going to require something trickier, and you're probably right that we'd have to calculate pixel coordinates for where to show each icon, in order to build the icon list for a site path on a hazard card. For the card text, I don't plan to scale the font size to fit all the text in the available space like they did for the real cards. It will use a standard font size and a vertical scrollbar if necessary for very long text descriptions. For character skills Warrior / Sage / etc, and the race, that will be text that's drawn onto the card. The card expansion set icons are a small icon that always appears in the same box, so that's a static icon control that is shown or hidden. It's also irrelevant info we don't really need to show and will have a low priority. For the 2D6 number, those will not be supported. That part of the card template should be blank, or use a card that shows 7. We don't have this info in our card database to know which random 2d6 value is listed on each card. Prowess and Body is the little shield in the same place on every card. A few pixels in a different place is still the same place as far as I care for card templates, and those will have transparent text boxes on top of them to show the current numbers for the current card we're rendering. The title is more overlay text from a transparent text field. So I think it's just the site path icons that require special drawing code. BTW, I hope you're saving all these as *.bmp format, because I'll probably use the Windows API / GDI routines to draw these images on the screen, and those want windows bitmaps. Supporting JPG or GIF images would be harder and require a 3rd party library. If you've been cropping them all into JPEGs or whatever non-bitmap format, maybe we can find a command line tool that could batch convert them all into bitmaps. And yes I'm still considering Worlds. I checked it out and there's a qualifier round on Friday morning at 9, which sounds like an open qualifier but you're right I should email the organizers to make sure. Also, I haven't heard back from my mom to confirm the address, but I'm pretty sure the tournament is being held in the same building where my mom works: the NYU Graduate Center Building, so that may be a sign that I am meant to go. I'm awaiting reply from my mom about whether that weekend is OK with her for me to come stay, but she'll probably be excited about it and it's looking like I will probably go the way I feel about it today. I don't expect to be able to do well in the tournament and probably won't even make it to the semi finals, but the qualifier is 4 rounds, and round-robin tournament means I'd get to play all day on Friday and that could be worth it just to lose. If I'm going to this tournament though, I will need you to play me at a ton more games of NetMECCG than we had planned, foregoing all WoW time together until I'm back into practice with MECCG and ready to complete. I'm still on the fence about it. I don't want to go because I don't expect to win or even stand a chance, but I want to go anyway because why should that stop me? My final decision will depend a lot on the response I get from my mom. -- Ris _____ From: Birk, Joshua Sent: Wednesday, May 09, 2007 4:31 PM To: Ris Misner Subject: Wintersabor = I'm an idiot, lol Hi Ris, Anyway, I finished up some more Against the Shadow card images last night. I should be able to finish with these entirely for that set before tomorrow night so I can send them to you at that time. Then I think I will work on the templates before starting the next set. I was looking at that a little btw, and noticed that all of the info that is put on the sides of the cards appear in little icon graphics which are all different and in different locations even for cards of the same type (especially hazards which are keyed to certain regions or sites). I'm thinking that we will have images which get put here not text. Perhaps for things like mind, and direct influence we can use a graphic with text on top, therefore allowing any # to appear in the icon, or we can just cap it at 10 and make 1-10 graphics. I'd prefer to be more scalable myself, but either way the image will need to be applied on top of the template when needed. I'm thinking all this stuff will be code created objects which are created when needed based on the stats of the card, and placed at specific coordinates directly by the code. It means the code may get a little complicated for that card drawing, but I think it's necessary. I can work on some of this code if you like when the time comes.. We'll see how the project is going at that point I guess and if we have any other people helping out :-) Did you give any thought to going to Worlds in (July?) this year? If you're considering it you should e-mail them and ask about things like qualifying for the tournament and stuff since the nationals for USA aren't mentioned anywhere.. Later, Josh |
From: Ris M. <rm...@ne...> - 2007-05-11 00:30:25
|
(non-Ardanet topics have been edited out of this forwarded discussion thread) Following is a recent discussion of the card database, card templates, artwork, and copyright issues. -- Ris _____ From: Ris Misner Sent: Tuesday, May 08, 2007 5:06 PM To: 'Birk, Joshua' Subject: RE: FYI, Ardanet post Hi Josh, I messed around with the database briefly over the weekend, but my memory of regular expressions was failing me so I gave up on it for the time being. I started on a couple of approaches, both of which wanted me to use regular expressions and I couldn't QUITE get the code to do what I wanted. I want to make a parser/compiler kind of utility app that will read CardList.txt and generate the CardDatabase.cpp file. I figure this can be done with regular expressions and either a python script or a lex/yacc parser. I redownloaded the lex/yacc tool I like (Parser Generator by Bumblebee software, www.bumblebeesoftware.com <http://www.bumblebeesoftware.com/> ) and started a new project wizard kind of thing with it, but immediately looked at the lex/yacc code and thought "oh man I don't remember how any of this works." so then I tried the python script approach and got frustrated with its regular expression library and that's where I left off that effort after the weekend. Lex/yacc is probably the easier way to get it done, but I'll have to do some work to remember how to write lex and yacc code. Since that wasn't as easy as I expected, I started messing around with Python since I can play with data in the interpreter. I thought maybe I could parse the data a little bit at a time in the interpreter without necessarily making a complete tool that would do it all at once, just keep massaging the data through the python interpreter shell and see if I could parse it that way. But I ran into problems making the python regular expression library match the text the way I expected and I had already played around with it for a couple of hours by then so I just bailed out on it and played some WoW at that point. On the card background templates, I imagined it would be a set of different bitmap images with the main card art part blacked out (and dialog controls showing on top of the background image). Which bitmap image should be identified by the card type flags (resource, hazard, site, etc). Twilight is the only card I know of that defies that rule since it counts as both a hazard and resource and might have both bit flags set, but we'll just use a hard coded default rule in that case to show it using the correct resource or hazard background images. Except I think they printed both hazard and resource cards for Twilight with different art in different sets, so I dunno, Twilight will require special handling any way around probably. So that's really disappointing that the data field parts of the card aren't in exactly the same place or the same size on each type of card. Hopefully, the difference is close enough that we can sort of fudge it with the same window layout, so that any data we dynamically write on top of the card will be slightly larger than the area it would normally use on the card, and thus obscures more of the card background image than normal, and thus looks OK though not exactly like the original card. It won't look exact but we should be able to make it look OK. Alternatively, to make it look exact, we could use different dialog template resources to layout the dialog window differently for each type of card so that the data lines up correctly with the background in every case, but share the same code to implement the dialog controls and event handlers behind that window class, just swapping the layouts and background images. On copyright issuesIn general on copyright issues, I'm fairly confident there's nothing to be afraid of, mostly because nobody makes any money from MECCG, so nobody would have any damages to sue me for. Between that and several apparent precedents that almost every part of our project has been done separately by others and we're just putting it all together in one package, I'm fairly confident I could defend Ardanet against any lawsuit. I'm willing to take the risk and responsibility for it anyway, so yeah go ahead and send me the images, and I will be the one to add anything to SVN so that all signs point to me as the only responsible party for any copyright violations. I think 1 image would be OK in SVN, and that seems like reasonable use to me, but I suppose failing that, could you make me a plain white image with a stick figure on it or something to serve as a placeholder graphic of the correct size and data format? I have an additional thought about attaching a license agreement to the Ardanet installer that includes language like "I attest that I own at least one copy of every card printed for MECCG and thus I am already licensed to view all of the card art, card text, and game rules." Sort of push it off on the end-user that you need to be independently licensed by third parties in order to be allowed to use this software that includes some copyrighted materials. Almost everyone using Ardanet would meet those requirements, and the rest will lie and click Yes I Agree anyway. Not sure if such a thing would hold up in court, but it seems like a creative idea to me. Later, Ris _____ From: Birk, Joshua Sent: Tuesday, May 08, 2007 2:54 PM To: Ris Misner Subject: RE: FYI, Ardanet post Hi Ris, Yeah that sounds good! I bookmarked it. But in case I don't check it and some people reply, shoot me a message (I assume you get e-mailed on response or something?) I'd love to see if there's some feedback for that! Here's keeping the fingers crossed! BTW, have you done any work on the database portion of the project? I'm just curious what the current step of that is, since I worked on it in the past and would be interested in helping out with that again after I finish with all the images. I'm about 1/3 of the way through Against the Shadow now. I'm just going to work down alphabetically directory wise. I'll send you zips of the images when I'm done with each card set, but of course won't check those into sourceforge. It will help you with testing, but we obviously can't be sending out all the copyrighted stuff on a free site like sourceforge. I'm even leary to use any image like twilight. Also I'm wondering if the card design/colors and whatnot are copyrighted? Cause we plan to make blank templates which will have text and images overlaid on them, and I'd want to be sure none of that was copyrighted. Have you given any thought to how the template will look? I can work on those too with my photoshop experience, but the different types of cards have slightly different card layouts and portions to them which is why the images in the middle are slightly different sizes. Also each type of card has it's own color which I think we should use as well, so perhaps a different template for each card type? Unless we can find a way to change the coloring of the image with code.. Also the database will need to have a column which specifies which card template to use if we use different ones, or which color to use if we find a way to use one template with diff colors.. That ended up a little longer than anticipated.. -Josh _____ From: Ris Misner Sent: Tuesday, May 08, 2007 11:33 AM To: Birk, Joshua Subject: FYI, Ardanet post Hi Josh, FYI, I just posted this invitation for help with Ardanet. Do you think it looks OK? http://www.meccg.net/dforum/viewtopic.php?p=18652#18652 -- Ris |
From: Ris M. <rm...@ne...> - 2007-05-11 00:25:46
|
(non-Ardanet topics have been edited out of this forwarded discussion thread, and I hope the color-coding comes across) _____ From: Birk, Joshua [mailto:jb...@pa...] Sent: Tuesday, May 08, 2007 8:07 PM To: Ris Misner Subject: RE: weekend Hi Ris, Regarding the other newer e-mail you sent: We decided to use a text based database in a modifiable file so users can change the data, as well as having all the standard cards loaded from binary (the cpp), right? So what you're working on is the initial setup of that cpp file then and parsing the info from the files I sent you into a cpp class file? Just trying to understand the overall effort here and why. I've never used lexx/yacc except for in college for compilers, so I won't be much help there. I was thinking I could finish messing with the data in those files to get them into a format that your parser could read or whatever. Actually what we need is a format which is easily readable by users so they can modify it, and which will be readable by the code. So defining that format and then getting the data into that format is something that needs done, unless you already did that? Was just wondering where that effort was, since I can probably take some of that work on. Ris' replies are in green Ah OK, I see where you're at vs. where I'm at on this topic. My plan is to use the lex/yacc parser (or python or something) to generate CardDatabase.cpp from CardList.txt. This CardDatabase.cpp is an array initializer for the default card database information compiled into the program, and the way we generate our binary database file. It's an array of CCardTemplate object constructors, and the data passed into the constructor calls needs to come from that CardList.txt file. The user can modify the database, but they won't do that by editing an external text file, they'll have to use the built-in features of Ardanet to edit our *.cdb files which use a proprietary binary file format of our creation, implemented by some of my C++ classes. Ardanet will be the card database editor. I have a checkbox in place so far to enable "read only safe mode" on the card database, which is the default setting, so you won't accidentally edit your database. So the lex/yacc parser I was going to make to generate the CardDatabase.cpp array initializer from the CardList.txt file. this would be an external utility exe that would be a "quick and dirty" implementation to do the bare minimum work necessary to create the initial CardDatabase.cpp. We'd run this to create the CardDatabase.cpp used to compile Ardanet.exe, as a manual build step just one time to get the starting point for CardDatabase.cpp. After that, we'd edit the default DB through the CardDatabase.cpp file directly, or we'd use the features of Ardanet to edit the card database in a GUI, and then I'd add a feature to Ardanet to "save as" in the format of CardDatabase.cpp as a special save-as feature on the card database, in order to use the GUI to edit the default database and then use the GUI again regenerate the underlying code necessary to make those changes into the new default data compiled into the EXE. Follow all that? Josh said: So let me get it straight about the background template images. You're saying you want one for each color change? Like one for resources, one for characters, one for hazards, one for sights, etc.? Because each resource type has a slightly different layout (as in the cords may be shifted a few pixels one way or the other). Ris said: Wait wait. Are you saying that the picture is in a different place for a resource permanent event vs. a resource greater item vs. a resource ally, etc? Sheesh I never noticed that. I just assumed all resources are resources with the same layout. But OK, I don't think it's a big problem and we should be able to use a standard resource background. Lets say we use the resource permanent event layout for all resources. As long as the picture is the same size it should be OK. So we're showing items with the permanent event layout and this would mean the picture appears a couple of pixels to the left of where it would appear on the actual printed version of the card. but it's still going to line up and look OK in our display because our background template has a hole in it the exact size of the cropped-out image that we're going to insert in that space, so where that hole actually falls is arbitrary and doesn't make a difference. For other data items on the card like prowess and body. Again, different types of cards might show these numbers in very slightly different places, but we're going to drop a transparent text box on top of that, which is going to be slightly larger text than the original card text so it will come out roughly aligned close to where it should be, but it will clearly not be the same font etc. it's not going to look EXACTLY like the original cards anyway, but it should still come out looking good and "mostly like a printed card." The fact that some things show up a few pixels offset from where they would be on the original cards is splitting hairs and nobody will ever notice. Josh said: Even bringing it down to this coarse grain categories will require messing with a template which works for all the types. I will do so, but I wanted to make sure I knew what you were planning on. I think it should be possible. Also I still feel that we should add a column to the database which defines the template to use. That way on a card by card basis we can do different stuff and even use a unique one for twilight or any other card if we wanted. Ris said: The card background color (actually a textured image) is the same for each kind of card and we already have the card type, so I'm not completely convinced this extra data field is necessary, but I have also thought along the same lines in order to handle Twilight and offer a better flexibility for dream cards. I'm not opposed to adding another data field that indicates the card background image type separately from the fine grain card type bitmask. Josh said: If I can make all the templates have the exact same layout it will simplify things, but I'm not sure I'll be able to do that until I play with them a bit. If we need different layouts, then perhaps a layout def file (in xml?) would be in order, which specifies coords for each type and stuff.. Ris said: That's what RC files are for, so I don't think we need any special XML to do the layouts. If we need different layouts for characters vs. resources in order to render info at different pixel coordinates, then I will make multiple IDD_DIALOG_TEMPLATE resources in Ardanet.rc, one for each background image that we're using. Since that only impacts the location of dialog controls in order to make the picture line up with the black hole that we left for that picture (and other similar data values), the same C++ class can implement multiple IDD_DIALOG_TEMPLATE resources, you just change it to pass the card-specific IDD value up to the MFC base class functions instead of passing the hard-coded value. The card type isn't going to change while the card is in play, so this only has to be defined when the window is created. Josh said: I'm not too worried about being sued by Iron Crown since they probably don't care anymore, but the artists can still make a case in court, and that's where I'd be more leery of crossing copyright. But it's up to you I guess, I'll just send via chat program my stuff when it's done. Gotta go, Josh Ris said: Yeah, I tend to agree actually, but there's some room for debate. To err on the safe side, we should avoid distributing the graphics. But on the other hand, I kinda want to push the issue, and I see a lot of different ways to defend our use of the card artwork in Ardanet based on stuff that's allowed by copyright law based on what I know about it. Since we had been discussing the copyright issues, I spent some time last night drafting a "Copyright Statement" document to put on the project site to document our understanding of where we stand on these issues and note any policies I may need to define. I didn't finish it yet. It would be nice to get some informed legal counsel on these issues, but I imagine that's expensive and I don't want to pay for it. In general, I think that NetMECCG and GCCG set a precedent that we can distribute the game rules, card information, and card artwork, and nobody will stop us. GCCG and the companion downloads for MECCG are especially notable. They've been publicly available on the internet for >=5 years. During that time, any of the numerous artists who own that artwork could have done a google search for MECCG and would have found GCCG pretty quickly, as well as the MECCG companion downloads for GCCG, including all the scans of their artwork. If they were going to do anything to stop it, I think they would have already, which implies we should be safe to distribute the artwork. IMO, whether the artwork is distributed as a separate download like it is for GCCG, or whether the artwork is bundled in one download, is a spurious distinction. In either case, SOMEONE is distributing the artwork and, whether it's strictly legal or not, the responsibility falls on the copyright holder to defend that copyright, and the artists have not been doing anything about it so far, so I think that means they are unlikely to start doing anything about it in the future. Potentially I think it could even be argued that since the artists have not defended their copyrights up to this point, that they have allowed their copyrights to slip into the public domain, and have now lost the ability to block any further redistribution of those digital images. But I suppose the artists could hire expensive lawyers to defeat that point by referencing case law. So let's assume that one of the artists sued us, or even that all of the artists formed a class action suit against Ardanet for distributing the artwork. They'd have to argue that Ardanet caused them damages and come up with a defensible figure with hard numbers to back them up in terms of sales lost, etc. Since ICE is not selling the cards, the artists don't stand to lose any lost royalties from printed cards. We'd be into the scenario where the artists would have to make a case that Ardanet is precluding future speculative sales of MECCG by ICE, based on speculation that they might possibly someday renew their license with Tolkien, and this is a dubious and unlikely case to bring before a court to claim the loss of these speculative profits. The artists would be more likely to make a case that they use this artwork for books, posters, tshirts, and other similar merchandise, and further make the case that Ardanet is hurting their sales, which wouldn't be true. If anything, Ardanet is a promotion for the artists and more likely to generate sales for them rather than cause them any damages. So I tend to think we should be OK to distribute the artwork as part of the Ardanet exe and included in the SVN repository, as long as we credit the artists the same way we credit ICE and Tolkien. However, if I'm wrong it's an expensive mistake, both in terms of real money bankrupting me to pay out damages if it comes to that, or in terms of shutting down and killing the project. So even though it's a very slim risk, it's a non-zero risk, and so I think to err on the safe side, we should avoid distributing the card artwork for now, at least until I can find a well trained lawyer who agrees with my assessment. I have a couple more creative ideas to work around the artwork issue. 1) Add language to the license agreement attached to the Ardanet installer and included in the SVN repository with all the code, reading something like "In order to use this software, I acknowledge that I own a printed copy of every card in the MECCG collection, and thus am licensed by third parties to view the card artwork and interact with the game rules in any way." Possibly by this kind of means, we could pass it off on the end-user that you must be independently licensed to use this content where third party copyrights are involved. This is pretty much the justification behind GCCG allowing the card images as separate downloads and treated as pure 3rd party data, with the assumption that you are allowed to scan your own cards - that purchasing the card grants an implied license to scan that card or view a digital image of that artwork. 2) Get some volunteer artists to make all our own custom artwork to replace the original MECCG artwork. I've seen dream cards with some very nice art so I know this is possible, but finding the people is a problem, and it A LOT of art to make for what, 3 thousand cards or more? But we could do whatever we want with original artwork that was created for us under the open source license. I just saw you sent me another note so I'll go answer that one now -- Ris _____ From: Ris Misner [mailto:ri...@bs...] Sent: Tuesday, May 08, 2007 10:37 AM To: Birk, Joshua Subject: RE: weekend Hi Josh, Awesome that you're making progress on the Ardanet images! Wow that's so cool. I was thinking it should be OK if we commit one sample image to the SVN repository. I think that would fall under "acceptable limited use" in terms of copyright law, so it should be OK to have one. I'm not even remotely ready to start dealing with the images yet, but when you get to "Twilight" I think that would be a good sample image to add to SVN since the card is common (super common like C3 or C4) and counts as both a resource and hazard so it would make sense as a placeholder graphic. It's a thought anyway. -- Ris _____ From: Birk, Joshua [mailto:jb...@pa...] Sent: Monday, May 07, 2007 7:34 PM To: Ris Misner Subject: RE: weekend Hi Ris, Oh so about Ardanet. I've been making the image crops for the cards. The size I'm using is 295x245. It seems that the actual size of the picture depends on the type. Site cards have the smallest size and are actually like 293 pixels wide, so some of those have a sliver on either side you may notice. But most of the other types are like 300x250 and a couple are even bigger than that. But by using this common size it should make things simpler. Anyway I thought I'd share the size with you. I'm starting with Against The Shadow (first directory alphabetical) and I've done 28 of them :P This is going to take a while. Luckily I found a way to make the size the same everytime with photoshop so it's only like 15 seconds per image or so now that I have a system working for it. I updated the code from sourceforge and compiled and ran it. Everything seems in order. I saw the documents there that you added as well. So we'll have to test stuff out on Thursday first before WoW. Later, Josh _____ From: Ris Misner [mailto:ri...@bs...] Sent: Monday, May 07, 2007 2:11 PM To: Birk, Joshua Subject: weekend Hey Josh, I mentioned already that I did some work on Ardanet. I also posted a new description on the sourceforge site - I think it's better, don't you think? "The superior solution." sounds more marketingish. I also want to make you aware of a new document I started which is in SVN under \trunk\Documents\ "Ardanet Software Design.doc" is an updated software design document I hope to keep accurate with descriptions of how I actually implemented stuff (as opposed to the other docs which are all 4-year-old brainstorming). I will probably tend to update this after the fact, but I did already include some speculative info based on how I intend to implement some stuff I haven't started yet. Anyway, the point is for it to be up to date and you should read it occasionally to get up to speed since I don't plan to email you about the details of every design decision. If you sign up for the SVN commits email list, that will also help keep you informed about everything I'm doing with the Ardanet code. Later, Ris |
From: Ris M. <rm...@ne...> - 2007-05-11 00:16:43
|
(the non-Ardanet topics have been edited out of this forwarded discussion thread) _____ From: Ris Misner Sent: Friday, May 04, 2007 4:11 PM To: 'Birk, Joshua' Subject: RE: WoW and Ardanet Hi Josh, The thing that made me want to ask for devs on meccg.net was a link I saw on the NetMECCG download page. They put a link to the forum profile of a guy who made a NetMECCG database editor program, so I wanted to contact him directly to give him an invitation, as well as post a general invitation/project announcement on the forum. Later, Ris _____ From: Birk, Joshua [mailto:jb...@pa...] Sent: Friday, May 04, 2007 1:59 PM To: Ris Misner Subject: RE: WoW and Ardanet Hi Ris, That's cool about Ardanet. I don't have any problem bringing in someone even now so long as we get ultimate control over what they work on/what makes into the final project. I assume admin grants that, and that's cool with me. I have a feeling though that it will be difficult to find anyone else interested, since the community of MECCG players isn't that large, and even fewer of those would actually be able to program C++, but you never know. I assume any "can I join your project" messages would come via e-mail to me? Cause I may not log into the project sight everyday and wouldn't notice otherwise. Later, Josh _____ From: Ris Misner [mailto:ri...@bs...] Sent: Friday, May 04, 2007 10:44 AM To: Birk, Joshua Subject: WoW and Ardanet Hi Josh, I didn't really get to Ardanet last night either, oh well, but I did spend some time on related tasks other than code, to register on the meccg.net forum and download NetMECCG. I didn't install it and refine a deck yet though, because my mom called me and by the time I got off the phone with her I didn't feel like doing Ardanet stuff anymore. What's your feeling on recruiting more devs for Ardanet? I tend to think it's a little too soon or we at least need some updated design docs, but I'm on the fence about it, and maybe recruiting help sooner would be easier than trying to bring someone up to speed with the project later on. I ask because I was thinking of posting a note about it on the meccg.net forums asking if anyone is interested in helping out. On a related note, as you should already know, I made you an admin on the project. I'd like the policy to be that you and I are the only admins and any other helpers we recruit will only get developer privileges. Please feel free to invite anyone you want into the project as a dev, if you know or meet anyone, or if you get any emails from people asking (you're listed first, alphabetically, so you're more likely to get random "can I join your project?" spam than I am). Invite anyone you want, but please don't promote anyone else to admin level. -- Ris |
From: Ris M. <rm...@ne...> - 2007-05-11 00:14:51
|
Hi Josh and Josh, We need to set up a good way to capture suggestions between now and Worlds on July 27. I hope to recruit more help at Worlds or at least generate interest from people who are unable to assist with the project but likely to have a lot of suggestions. I want to be able to capture these suggestions in a good place and keep them well organized. What is the best way to do this? I see several options. 1) Create a public suggestion forum on the sourceforge site. These forums are limited in terms of features, but it's a feature we can enable by flipping a switch, so this is an easy solution. I am talking about the forums found here: http://sourceforge.net/forum/?group_id=192968 2) Since the forums are so limited, perhaps a mailing list for Ard...@li... would be a better approach. Again this would be easy to set up, just by flipping a switch to create a new mailing list. The downside to this approach is similar to using the sourceforge forums feature, in that the discussions of any particular issue may not follow a sensible thread, and it would be up to all writers of each message to quote any relevant past discussions. 3) Set up a better forum system like the one at meccg.net. AFAIK, such forums use a standard available free solution called Ultimate BBS which can be installed and configured with "minimal" work. I've never set one up so I don't know how much is involved. We could theoretically install such a system in our shell area of sourceforge, to run the forum under http://ardanet.sourceforge.net/ 4) On a similar line of thinking, I saw a note on the meccg.net forums indicating that they offer hosting for a private forum for any MECCG-related project. That note was a couple years old, but if that service is still available, perhaps we could apply for a forum area hosted within the meccg.net forums, and point people to it from the Ardanet website. "Have suggestions? Click here" These forums are far more powerful than the forums provided by sourceforge. In addition to a suggestion forum, we will eventually need a support forum. Whatever approach we use for the suggestions, we should do the same for support requests. Both of these systems need to be open to the public so that anyone can submit suggestions or support requests without necessarily having to register or be authorized as a developer on the project. Option 1 definitely allows anonymous access to those forums. Option 2 is a moderated mailing list so I would have to approve any posts the first time a person writes to the list, so that's not good, but hopefully I could turn that off so that anyone can write to the list by default without requiring my authorization as mailing list admin. Do options 3 and 4 support guest logins for public anonymous access to submit suggestions and/or support requests? Oh there's a 5th option: make everyone use the tracker system from sourceforge to submit bugs, feature requests, and support questions. The tracker is less intuitive than the meccg.net forums, and offers less room for an ongoing discussion thread about each issue, but it lets us track duplicate suggestions with references to each other, and we can assign everything as tasks to specific developers on the project with related info about % completeness and so forth. We can also easily keep track of which suggestions are new vs. which ones we have reviewed. I am talking about the trackers found here: http://sourceforge.net/tracker/?group_id=192968. -- Ris |
From: Ris M. <rm...@ne...> - 2007-05-10 01:33:42
|
The original plan for Ardanet was to make a native Windows application. Thinking about the non-native interface of GCCG and the outdated interface of NetMECCG, we decided to use the MFC document/view architecture to as closely mimic the look and feel of Microsoft Office as possible, to create a familiar GUI with dockable toolbars and other familiar Windows features. Considering that Linux users make a big portion of GCCG players, it may be a good idea to revisit this decision. I still want to see a native GUI on Windows, but theoretically, this could be done with a shared cross-platform engine (a static link library or DLL) to share data formats and network protocols, with a separate UI layer (the EXE) that is platform-specific for Windows, Linux, or other platforms. These platform-specific GUIs would not match in appearance, but they would be able to communicate with each other to allow players to play across platforms, and they would support most if not all of the same features in terms of game guides, etc. The network engine we have today uses the Windows Sockets 2 API to open and manage the network connection. Since it's a Windows API, it would have to be part of the platform-specific UI layer, but the message packet formats and all of the ID numbers would have to come out of the common engine. I tend to write code that is fairly well encapsulated anyway, so I think this is possible. We could at least start with the division of engine from UI and implement only the Windows UI layer for the time being, until we get a volunteer to create a Linux layer. An alternative approach would be to use a GUI function library like wxWindows which is cross-compiled for multiple platforms to create a native look on every platform and support the same common APIs from every platform. If we can find a free one that also supports dockable frames and the kind of rotating card views we need, then that may provide us with a way to create a single module that compiles with a native look on multiple platforms based on the same code, instead of separating it into an engine module and a UI layer compiled as separate entities. Or we could be brave enough to create our own conditionally compiled platform adaptation layer into one big module without a separate engine DLL, but I think this would be code that varies wildly across platforms, so I think separating what is common from what is platform-specific is probably the better idea. Comments anyone? |
From: Ris M. <rm...@ne...> - 2007-05-10 01:20:44
|
Stay tuned for a flood of info over the next couple of days when I extract my notes from a variety of emails covering other non-Ardanet topics. |