After a long time that I haven’t entered BGDF (for so many reasons but I’m happy to say that some of them are connected to gaming) I reentered and I saw the new “online board game project”. I read the different threads and I think that the goal is a good one but (there is always a but) not realistic, well not in the way people are going at it now.
Real online game that will enable programmers to define their game based on predefined block is a huge task, since there are so many blocks need to be defined (map, cards, tokens, behavior of the elements, interaction etc…). Now think about building the same application with simple UI for non-programmers. This is even a larger task.
I’ll give you some examples of what I mean and give some suggestion.
Lets looks at a “simple” item: maps.
Just from the top of my head I can think of 4 different types of maps:
1: hexagonal or square ordered map. Any AH war game is a good example.
2: Non ordered map: El Grande, Taj Mahal
3: Randomly generated map at the beginning of the game: Settlers is a fine example
4: Randomly generated map that evolves as the game goes on: El caballero, Kings gate and much more.
Just building structures that will enable all these maps is hard (how do you handle a map that evolves during the game is very hard to define). Now take the map case and try to think about different components in different games to see how many cases you have out there. And this is the simple part. Why simple? Because these are the things you are aware of. People here on this group are trying to think of new games. This is good new for all of us as players. It is bad news for people who try to develop generic software. If I want to test a new mechanics, odds are that the system will not support it and I’m back to square 1: no online software to support me.
Can something be done?
Yes and no.
Lets start with the no: Bottom line we (as a community) will not be able to develop a software (well not in realistic time) that will enable no-programmers to build all types of games to play test online.
Yes: there are two ways I think we can go at it.
1: Couple of people who want their games to be tested will define what are the game components they need and simply build the first version that will support those games. Then every game added some programmers would write the addition code and UI that needs to support the new game. After several games, we will have a system that for simple games will work. This is the quick and dirty method. It’s quick because you’ll have a first version fast. Dirty because when adding more games programmers will probably need to rewrite some code in different places.
2: Several people will define all the basic things and the programmers will try and write some basic framework architecture that will support all the basic structures that were defined. Then the first game or two will be built on this framework, adding UI and other elements. This will take longer but the code will be cleaner and probably more stable.
I don’t want to discourage people but the problems should be shown and be in front of the people. I saw too many projects that failed because they were not realistic. Those projects were interesting and fun but the huge goals the people set overwhelmed them and they simply did not know were to start and what steps to take. Documents were written, elements were defined, but then after seeing the work needed they simply gave up.
I don’t want this to be the case. It is not as if we have so much spare time on our hands. Time we put into gaming we want it to be worth something.
Well kind of long but something to think about.
Hi Darkehorse.
Even what you suggest is not enough:
Lets say you have a deck of cards when do you turn a card? who says to the system that does not have any rules when to do what? I think it can be annoying when the players by accident do the wrong action and might ruin the test play since the system will not put any limitation on them.
But I think that in a sense your direction is a direction that should be checked and maybe find a way to prevent accidents or allow some simple logic to prevent mistakes as much as possible
-- ycyclop