Basically, the ground idea here is to create a simple time-wasting online Three Kingdoms game. People with KMA accounts would compete against other people with KMA accounts (already I wonder about the cheating possibilities here). Each territory would have a population (which would increase with peace and reduce with war and recruiting). Their population would generate money based on a fixed income or through taxation. They could set resources to increase soldiers and the like. Each turn (day) they would be able to perform actions for each territory (movement actions would void the turn of two territories).

Each turn would equal one real-world day. When a person logged in a timestamp in the database would be queried. If the territories had not yet been updated for that day it would be done in the background and a new timestamp entered. If nobody performed an action for the day the game would not update. If someone played daily while others played every other day they would gain extra turns, but resources would be equivalent.

Cities each have flags. Up to thirty players may be possible at once. I’m toying around with the idea of making the color of cities change based on who owns them. That would involve loading up to 60 separate GIF graphics each time the map is viewed. They would be very small and I don’t think bandwidth would be a concern, though.

Money could be used, broadly, to purchase milestone kingdom upgrades (such as improved troops, better population growth, better defenses, whatever). If they ended a turn in arrears they will lose troops equivalent to the deficit.

Attackers will generally be at a disadvantage. It may be modified based on troop count. Terrain type will obviously have something to do with how much a disadvantage the attacker must face. It may be possible to build ships in the first version for use in water paths.

Battles will be automated. You will win or lose. It may be possible to enter general retreat instructions, but I have not decided if that is a version one sort of feature. Both the attacker and defender will receive losses associated with a battle.

I imagine version one would be basic. No complicated officers or detailed kingdom management. Version two, on the other hand, could add the ability for people to serve as officers. As they played their account would become more powerful based on actions they performed. This would make them a better general and would allow people to join a kingdom as an officer. Features such as rebelling or overthrowing a ruler would then become possible. The addition of Three Kingdoms heroes would also become possible.

I’m tempted to use a frameset or inline frame for kingdom management to avoid repeated reloading of the map. It seems preferable to using popup windows. I’m not sure if Javascript can interact with the database or not (remember that adventure, Justin?) so we’ll still have to rely on server-side code. Project, like the rest of KMA, will use PHP, MySQL, Javascript (where appropriate), XHTML, CSS.

So are you thinking a sort of visual and more automated version of SimRTK, James?

As far as I know Javascript can't directly interact with the DB, it being client-side, we will need to rely on server-side. But I would recommend AJAX to cut back on superfluous page loads.

For stuff like the map we could, and I am just throwing this out there, use Flash. Though I personally am not a huge fan of Flash it would increase map interaction and make programming the map easier. For instance your thing about the flag color can be solved with changing the color of one image rather than uploading 30 different images.

The downside to Flash is the interaction with the database. For some unknown reason Flash doesn't support native database connectivity. So we would have to build a small web service handle queries between the Flash app and the database. But then again, a map that sophisticated wouldn't be necessary for the first or even possibly the second release, but I bet Maria could handle something like that, if not her I have quite a few friends that are very strong in Flash and Actionscript.

The whole thing about the map, and I have thought this since playing the Sim on SOC is that I hate having to deal with looking at a map GIF and then matching flag colors with a long key of thirty rulers where two or more colors are fairly similar.

At the very least I would like a basic interactive map. Doesn't have to be anything fancy, you know maybe just make it so you put your mouse over a city and it shows the basic data of that city like who owns it, population, etc.

That wouldn't be hard, and we can make it self updating. Just have a script that updates an XML or dat/txt file, and the Flash program reads from that file.

But once again, the interactive map can wait till a later release. Just throwing that out there.

If we attacked a free city, we would have to fight for it? I like the idea of the game

“You, are a rebellious son who abandoned his father. You are a cruel brigand who murdered his lord. How can Heaven and Earth put up with you for long? And unless you die soon, how can you face the sight of men?”

If you need good ideas about how to model the game, I suggest checking out http://www.cybernations.net. I think the system in that works fairly well. Battles are automated in it, but before you enter them you get to know what percentage chance your forces have of winning. In addition, you have different options for attacking (i.e. you can launch an 'aggressive attack,' a 'planned attack,' or a cautious attack). Depending on how many troops you have deployed and how many troops you have defending, different options work better than others (example: If you have way more troops deployed than your enemy has defending, you should go with an aggressive attack).

In this game, I assume people will create character names right? People won't be selecting historical warlords like Yuan Shu?

If you need good ideas about how to model the game, I suggest checking out http://www.cybernations.net. I think the system in that works fairly well. Battles are automated in it, but before you enter them you get to know what percentage chance your forces have of winning. In addition, you have different options for attacking (i.e. you can launch an 'aggressive attack,' a 'planned attack,' or a cautious attack). Depending on how many troops you have deployed and how many troops you have defending, different options work better than others (example: If you have way more troops deployed than your enemy has defending, you should go with an aggressive attack).

In this game, I assume people will create character names right? People won't be selecting historical warlords like Yuan Shu?

Yeah, there was a game like that a few years back based on RTK. It was free for a while then you had to pay for it. I tried to find it but I believe it doesn't exist anymore.

By what James proposes it sounds like this game will be an advanced version of SimRTK, unless I am misunderstanding him.

Sounds cool to me. If this is going to be tiered we really need to nail down what is going to be in version 1. Once we have requirements the rest is relatively easy. I have some database and SQL experience. I would suggest against PHP/MySQL but you work with what you have I suppose.

Wix The Great wrote:So are you thinking a sort of visual and more automated version of SimRTK, James?

Well, not really. SimRTK will always be SimRTK and if anything this might be something people who play SimRTK will also enjoy <i>while</i> playing SimRTK. This game would require much less attention on their part and would not go into anywhere near as much detail (though I suppose alliances could be forged and such outside the game—or maybe through a built-in message system). SimRTK also allows detailed battles, duels, everything…

Just a harmless passtime.

Wix The Great wrote:As far as I know Javascript can't directly interact with the DB, it being client-side, we will need to rely on server-side. But I would recommend AJAX to cut back on superfluous page loads.

I have largely ignored the concept of AJAX as it has become huge in my own field. I will have to read more about it.

Wix The Great wrote:For stuff like the map we could, and I am just throwing this out there, use Flash. Though I personally am not a huge fan of Flash it would increase map interaction and make programming the map easier. For instance your thing about the flag color can be solved with changing the color of one image rather than uploading 30 different images.

Flash can suck my… oh, wait. Think of the children. I know Flash and I want to avoid it. I can see several benefits in doing so (especially with the map presently posted) but I hate its accessibility and consistency.

Wix The Great wrote:The whole thing about the map, and I have thought this since playing the Sim on SOC is that I hate having to deal with looking at a map GIF and then matching flag colors with a long key of thirty rulers where two or more colors are fairly similar.

I have been considering a new map. I’d take a more natural map from a Three Kingdoms game and remake the paths as vector objects in Adobe Illustrator. A bitmap background could be painted in Photoshop (scaled to the final size of the game itself), little castle icons could be made, and the two could be merged. I suppose general pastel colors could be used for the map to avoid too much attention (and to make a smaller JPG file). Rather than coloring territory patterned color-themed flags could be made.

Wix The Great wrote:At the very least I would like a basic interactive map. Doesn't have to be anything fancy, you know maybe just make it so you put your mouse over a city and it shows the basic data of that city like who owns it, population, etc.

Without using Flash, I’ve considered a few possibilities for doing this. We could do something really fancy with CSS layers and create an inline floating window, but that usually means greater use of Javascript and, well, hidden layers. We could go back to the ghetto and create an inline frame (guess it doesn’t even need to be inline) to the right or below the map for kingdom management. This would, at least, make the database easier to update. Or, we could use popup windows. Same benefits as using the frameset, different accessibility concerns.

Wix The Great wrote:That wouldn't be hard, and we can make it self updating. Just have a script that updates an XML or dat/txt file, and the Flash program reads from that file.

Death to Flash!

Wix The Great wrote:But once again, the interactive map can wait till a later release. Just throwing that out there.

Obviously it would be good for the map to have basic functionality in 1.0.

Dong Zhou wrote:If we attacked a free city, we would have to fight for it? I like the idea of the game

I don’t know—maybe? *Chuckles*Could wipe you out if you send only one small unit to conquer.

If you need good ideas about how to model the game, I suggest checking out http://www.cybernations.net. I think the system in that works fairly well. Battles are automated in it, but before you enter them you get to know what percentage chance your forces have of winning. In addition, you have different options for attacking (i.e. you can launch an 'aggressive attack,' a 'planned attack,' or a cautious attack). Depending on how many troops you have deployed and how many troops you have defending, different options work better than others (example: If you have way more troops deployed than your enemy has defending, you should go with an aggressive attack).

Thanks for the ideas, Slick! I don’t know if I would give the user a percentage chance of winning—want more surprise to the game than that. But giving them different attack options is certainly viable. A defensive attack would be more important if food was an element in the game—though I have considered using gold for everything. As for advise on the attack, perhaps the game would have a built-in adviser that suggests, “My lord, it seems this would be a risky move. Are you sure you wish to continue?” “A wonderful idea, my lord!” “My lord, I cannot see a clear path to victory at this time…”

In this game, I assume people will create character names right? People won't be selecting historical warlords like Yuan Shu?[/quote]

Wix The Great wrote:By what James proposes it sounds like this game will be an advanced version of SimRTK, unless I am misunderstanding him.

Nah, it won’t ever be as advanced as SimRTK. SimRTK’s human element, flexibility, and micro-management will always see to that. Instead this will be a fun thing to do online but it won’t really benefit people who want to devote four hours a day to get an upper hand. All they’ll accomplish is driving up my bandwidth bills. Even thirty minutes a day would probably be huge in terms of keeping ahead of everything (though it could take a bit more as the kingdom grows).

Justin wrote:Sounds cool to me. If this is going to be tiered we really need to nail down what is going to be in version 1. Once we have requirements the rest is relatively easy. I have some database and SQL experience. I would suggest against PHP/MySQL but you work with what you have I suppose.

Yeah, don’t want to bite off more than we can chew the first time around. We can use this thread to has out general ideas of what we want to do and, later, when I really have the time to start working on this (about a month from now) we can hash out finer details on AIM. Database is limited to MySQL because it will merge with the already-existing KMA database. ASP would have been fun to consider for this, but my own experience is limited to PHP (which I do very well). Also, our server doesn’t support ASP (nor do I want to place a PHP site on a Windows server). Thoughts?

James wrote:Yeah, don’t want to bite off more than we can chew the first time around. We can use this thread to has out general ideas of what we want to do and, later, when I really have the time to start working on this (about a month from now) we can hash out finer details on AIM. Database is limited to MySQL because it will merge with the already-existing KMA database. ASP would have been fun to consider for this, but my own experience is limited to PHP (which I do very well). Also, our server doesn’t support ASP (nor do I want to place a PHP site on a Windows server). Thoughts?

PHP and mySQL are ok, not great but ok. I would prefer a better database say at least postgreSQL. Something that supports views, stored procedures, triggers, etc. Things that would make this game a lot easier to develop. Using mySQL will involve writing a lot more code in the UI because of the lack of featureset in the DB. Since the hosting is on a linux server I assume PHP is our only real language choice. If someone can find me a good PHP editor I may be able to get over the suck factor for me of PHP faster. Also what about source control? Since we're running open source on dev I suggest setting up a CVS server. I know there a lot of windows/mac CVS clients out there. I am going to strongly suggest a form of source control. The moment someone looses work because someone replaced their code files it's going to get ugly. I might even suggest creating a SourceForge entry for this. We need to decide on these things in advance if we want this to succeed.

1. Are multiple games allowed?
2. Is there a timeframe for the game? ie 30 days, etc
3. After x time does the game reset?
4. Can x player win the game?
5. What kind of signup period (if any) is there?
6. How do players join the game?

Last edited by Justin on Wed Jul 11, 2007 9:48 pm, edited 1 time in total.

Justin, I think there is a PHP editor for VS 2005. I used it for a while, has some debugging features to I believe, thank god!

And James, looks like you share my pure hatred for Flash as well. Wish there was some alternative other than Microsoft for strong interactivity with graphics. We could explore the hiding layers and go with that.

But I agree with Justin, in that we should specify our targets for release 1 (Alpha), Release 2 (Alpha 2, Beta 1?), etc.

And Maria says she wants in, so add her to the dev team .

As for the DB, yes. We should probably use postgreSQL will make internal DB management so much easier. It is a pain to have to use all scripts to mange something that can be done within the DB itself.