Formedras wrote:Actually... it's not the variance that worries me. I'm not looking for anyone to tell me what my game's rules should be, since I'm not making a clone of a CCG, but rather a fully-original one. Anyway, that's still easy: tell the game server to wait for events (commands from the clients) and react to them. (Yes, the server. I don't think a P2P model is a good idea; just try to allow both sides to hold and change the game state and keep them in sync. Not gonna happen.) Any programmer should be able to figure that out once they figure out the other parts and events. If not, they probably shouldn't be programming.
Plus... a guy's got to learn somehow. Better a guide that goes a bit over the user's head than pure source without a guide that goes orbital in relation to the user's head.
Anyway, here's what I think should and shouldn't go into a guide like this.
What I'm looking for in a guide:
1. How to set up cards, decks, and players.
2. How to set up turn steps and turn order for a given category of objects, not necessarily players. Players would obviously be the default for most games, but allowing it to be different objects may make things better in the long run, both for the guide and the programmers using the guide.
3. How to create a server to handle the game state and how to connect the clients to it. Obviously, this would involve networking.
4. An Object-Oriented language, using events as the driving force for progressing the game forward.
5. A way to use text and/or markup language (XML, perhaps?) files to provide cards instead of hard-coding them.
6. How to let cards, server-side of course, perform actions.
7. How to set up a basic client, using whatever GUI the language and programming library/framework prefers or otherwise uses.
8. The KISS principle. Some of the other things look like they'd violate this (Client-Server model, anyone?), but I think I've got the requests as simple as they can be while still being usable.
What I'm NOT looking for:
1. A specific programming language. By this, I don't mean "don't use any language", and I also don't mean "don't stick to this language that you know." Probably best to stick to a single programming language (maybe plus a markup and/or scripting language), but whatever the guide designer is using is probably best for now.
2. A specific CCG as a guideline. See point NOT-1. Magic would be the obvious starting point for a guide, but I personally think it's too limited; however, if it works it works.
All considered, I think a wiki/guide format would be best for this. A non-wiki guide would either look bad or mostly like a wiki anyway, and a straight-up tutorial would give every user the same result, which is the exact opposite of what I wanted.
I honestly think this could work. Hellfish is probably right about this being too much for a truly fresh programmer, but ones that have the basics down and need to learn about intermediate concepts like custom Events, Interfaces, Components, etc. could use this.
My experience in useful programming, by the way, is limited to creating basic life counters for Android (thus using Java/Dalvik), and a twin-stick PvP shooter using C#/XNA. (Like Net Rumble, but I had no clue about that source example until yesterday, while I had made my shooter back in December.) In other programming, I've tried to learn C, C++,
Python, VB6, and Java, and I'm taking a class in VB 2010, but for one reason or another I've ditched every language I've tried. (Yes, I will go back to C++ when it's time. And I get the feeling that the time will be somewhat soon.)
If you're still here, thanks for reading. Please, reply about what you think of the possibility of making a guide.