...And I wasn't sure what to do about it, because it seems like it would be off-topic here for being about programming, but it would be off-topic at Programmers.SE for being about a card game.

Basically, I'm looking for some help with some of the harder parts of writing this software, so I was thinking of starting a chat room to see if anyone was interesting in discussing the finer points Magic mechanics, such as whether a colorless mana symbol is really a symbol. But I wasn't which site to start it under, or even if it's a good idea. Is there a good way to handle this?

Edit: Initial release of the library on GitHub

I don't feel super-confident about the state it's in, but I just need to get it out there, and I think it's good enough. I'd certainly appreciate any feedback, from the people who answered/ commented on this, and of course anyone else who's interested.

  • 2
    This has been bugging me, so I have to say it: I think I know Magic pretty well, and I have no idea what you mean by your example discussion point ("whether a colorless mana symbol is really a symbol").
    – murgatroid99 Mod
    Apr 24, 2015 at 15:44
  • @murgatroid99 Well, certain cards count mana symbols, but no card counts colorless mana in a cost. It's the only type of symbol that doesn't have a symbol, only a number. And unlike all other symbols, it's not repeated to show how much there is. This is reflected in how my manacost data structure works. Basically, I have a Symbol enum, and colorless is not included. Apr 24, 2015 at 15:48
  • I'm not sure I understand the first sentence, but it seems like "converted mana cost" is exactly this. But, for the rest, colorless mana symbols are in fact symbols: see rule 107.4 for details.
    – murgatroid99 Mod
    Apr 24, 2015 at 16:03
  • I don't mean that they're not technically symbols according to the rules of the game, but that they behave in a much different way than other symbols. I really should release my current version of the library so people like you can offer criticism, I'm just trying to figure out how to reach a decent number of people who would be interested in checking it out. And by the first sentence, I meant devotion/ chroma, basically. Apr 24, 2015 at 16:10
  • In that case, I'll just refer to Rainbolt's answer: you have to divide your question into questions based on the rules of Magic and questions about how to program it. Also, I would be interested in both looking at your code and discussing it in our chat room.
    – murgatroid99 Mod
    Apr 24, 2015 at 16:25
  • It sounds like the "is it a symbol" question is actually a programming one - you're thinking about how to represent all the attributes of a card in code, and noticing that some parts of the game (devotion) care about some of those attributes but not others.
    – Cascabel
    Apr 24, 2015 at 19:00
  • @Jefromi Yeah, I think you're right, and it's questions like these that make me think only people who are both Magic players and Java programmers can help. There are some issues I just don't think I break down enough for non-Magic players to help with. Apr 24, 2015 at 20:44
  • @codebreaker People who are both would certainly be better at it, but I think if you work at it you'll be able to explain what you're trying to do to the programming crowd well enough to get useful advice - and the process of figuring out how to explain it may well lead you to the answers without ever having to post a question, analogous to rubber duck debugging.
    – Cascabel
    Apr 24, 2015 at 20:47
  • @codebreaker I have experience in both Magic and programming (and writing Magic related programs), so I think I'd be able to help. If you join our chat room (which Rainbolt linked to), I'd be happy to discuss it.
    – murgatroid99 Mod
    Apr 24, 2015 at 21:19
  • Okay, cool, thanks, I'll try to release it in a few days, and I'll let you know. I definitely agree on the rubber duck thing, I just think that, in object oriented design, modeling something in the most representative way possible often requires knowledge of both the programming language and the thing you're modeling. Apr 27, 2015 at 14:43
  • @murgatroid99 Post updated with a link to my code (not sure if you get notified by the edit itself) Apr 30, 2015 at 20:59
  • As I said before, I would suggest going into our chat room, which Rainbolt linked to, if you want to discuss it.
    – murgatroid99 Mod
    Apr 30, 2015 at 21:02
  • Would it be better to create a separate chat room, or just use the main one? Apr 30, 2015 at 21:08
  • Either one would work. The main chat room is pretty quiet, so using it wouldn't be very disruptive
    – murgatroid99 Mod
    Apr 30, 2015 at 21:10

2 Answers 2


Where can I get casual help?

You can always join Board and Card Games chat or The Whiteboard (Programming chat) to casually discuss pretty much anything.

Where can I get help?

For more involved questions, we'll start off by stating the obvious:

  • Ask your programming questions on Programming.
  • Ask your Magic: the Gathering questions on Board & Card Games.

I have a combo question that deals with more than one topic. What do I do?

Break your combo questions into their respective parts. For example:

What data structure should I use to model the turn structure in Magic: the Gathering?

This question would be hard for a card game expert to answer, and it would be hard for a programming expert to answer. Break it down.

How does the turn structure work in Magic: the Gathering?

This is a perfect question for Board and Card Games SE. You'll get well-written answers from card game experts.

I need to model [insert lengthy, detailed description of the Magic turn structure]. What data structure should I use to model this?

This question is self-contained and on topic for Programming SE. You should get well written answers from programming experts.

You might save yourself a little time and effort by forcing your multi-topic question onto one site or another. If you get lucky, someone who is an expert on both topics will write you a beautiful answer. Regardless, your best bet is to ask focused questions that target focused audiences.


Note: Programmers changed names to Software Engineering since this answer was originally posted.

Software Engineering.SE regular here.

As far as the programming aspects go, there are three sites that might help. In each case, questions about the game mechanics are off-topic. However, it is perfectly fine to say "I am working on a library for M:TG. Here is a game element I am trying to model. Just to be clear, I need help with the programming aspect of the problem, not the game/rules aspect." One of us might already know the problem domain (M:TG) and have good background. If not, we will now have a good idea of what your goal is.

Software Engineering

  • Design review. Here is a class or other diagram for modeling my problem: does anyone have feedback? Be specific: enumerate your concerns, ask specific questions about how it could be improved.

Stack Overflow

  • Code problems. This code does not work (copy/paste/format code into question). I am trying to accomplish XYZ. How do I fix it?

Code Review

  • Code improvement. This code works, but I feel it could be better. Anyone have feedback? If you make recommended changes and are still not satisfied, post a new question, do not update your old one, and edit links between the questions into the question body.

Questions about algorithms are on-topic at both Software Engineering and Stack Overflow, but you are likely to get a better response at Software Engineering despite the smaller audience.

No matter what you post, be specific. The software development sites as a whole tend to attract questions that get closed as "too broad" which helps nobody.

You may need to break up a question into multiple questions (even across multiple sites) to meet quality guidelines. If in doubt, see my next point:

Finally, we have...

The Whiteboard (Software Engineering.SE chat)

  • It is safe to ask off-topic or "too broad" questions here. You might not get an answer, but it is chat, not Q&A.

  • We can help hone your question into a good, on-topic question even if it is not for our site. The regulars in our chat are also experienced with Stack Overflow and Code Review and can help you ask a question at those sites.

See also

  • Thanks for the info, I didn't consider Code Review. I'm not sure if you get notified when I edit my question, but I posted the link to my library if you're interested. Apr 30, 2015 at 20:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .