sam said:
Hi there,
The topic for my university dissertation is "Design and Build a Java
board game engine" and it is necessary for me to elicit requirements
from the games industry (i.e. anyone who would be interested in using
the completed engine for making an java-based 2D board game). SO...if
anyone is interested in this project, I would really appreciate a
reply, so that we could discuss requirements. Note, there will also be
some user acceptance testing once the project is complete.
I don't really have a lot of time right now (maybe after the holidays)
but this is a long time interest of mine, so maybe I can help a bit.
First, you are definitely not the first person to have this idea. Some
research into public or open source projects that have proceeded you
would be standard, I would think, for any dissertation. I can point out
a few to you, but I would love to see a thorough list of academic
research projects.
Here's my info dump to you:
First, check out Simple Game Format (SGF). This is a very old attempt to
produce a universal board game type system:
http://www.red-bean.com/sgf/
Next, one of the principle people behind SGF was William Shubert, who
eventually produced a free, and excellent, computer board game for the
Oriental game of Go:
http://www.igoweb.org/~wms/comp/cgoban/
William Shubert's current project is a full Java based internet Go
server in partnership with the Keseido publishing company. It's call
the Keseido Go Server (KGS):
http://kgs.kiseido.com/
There's a lot of information on KGS requirements on the net. Basically,
Bill's been doing what you want to do as a side business for the last
ten years or so. The principle KGS watering hole is at:
http://senseis.xmp.net/
Here's a list of user requests from that site:
http://senseis.xmp.net/?KGS#toc7
Here's my short list of requirements, off the top of my head:
1. Compatible with SGF
2. Talk to William Shubert and get his advice on how to extend SGF to
more types of board games.
3. Compatible with bots on Keseido Game Server
4. Visit the gnugames project on gnu.org and collect requirements from
them as well.
5. Visit senseis.xmp.net and collect requirements there also.
6. Include plans for servers as well as clients. Include internet play.
7. Don't forget about multiple player games. Both chess and go have
four player variants.
8. Consider AI for playing board games. Visit the gnugo project and
understand how they implement their AI and how they connect to other
board game programs like CGOBAN and KGS.
9. Include a demo connecting gnugo to your program to show how external
AI can be connected to any board game program.
10. Understand why William Shubert is NOT implementing his latest work
as Open Source.
11. There are XML versions of SGF now. However, they are very verbose.
I'd like to see a universal version of XML-SGF that includes very good
compression for long term game record storage. (Not just Zip.)
12. There are other Java clones of CGOBAN now available. Understand
what they are and what problems the profess to solve.
13. Most of those are for IGS (Internet Go Server). Go there and
understand what UI issues it has.
14. Visit some other internet go sites and understand how they function
as well. I'm not aware of any sites for chess or other board games.
maybe you could find some?
Ok, I think I'm done for now. Please let this list know how everything
goes.