Hi Domin,Hi,
Would you tell more about the project? What programming language and what kind of graphics library are you using?
You seem to have map drawing already done?
really impressive, if you can to make right features like shorelines i think it can be a cool clone of the game
For such project, in order for it to be successful, some general program scheme/design would be necessary. It would say how the application is supposed to work, what kind of features it is going to have, etc. Then it should be fixed and not changed. And this is work for non-programmers in large part. This is what I have heard from people with experience.
Python and Pygame seem to be very appropriate tools to do it.
Tech\SP blurbs dont seem to be make as much sense
Very interesting! If you're able to get a clone working (especially with working multiplayer, and maybe too optimistically with the simultaneous turn dynamics the original has) that would be pretty amazing. Could you link to the github repository, maybe from the OP?
One thought I'd like to put out there for when you get to AI: Perhaps build the AI as a module which is somewhat exposed to the user, effectively a relatively easily editable script. This would allow users to quickly test tweaks to solve AI stupidity that they encounter, and make AI competitions fun. Have actions that could be taken by AI (including various cheating options) and information that could be gathered by the AI as built in functions, and a basic example AI which does the very basics mostly as an example (probably cheating even more than the official one to stand), then encourage people to tweak and improve, and share their advances.
I feel like having the AI's reasoning be open and adaptable (in a "there is a menu option called Edit AI script" way, not a "Get git set up, download the source code, make changes, reload program" way) would attract people who would be both great for the project and likely to have loved SMAC/X in the past. The game seems like a fun challenge for AI designers, because there's fairly simply structured information and input/output, but enormous complexity and possible advanced strategy in various directions many of which could be improved incrementally by a semi-technical user with good game knowledge if the scripting had good examples (terraforming, unit design, army vs development, research paths, diplomacy, etc). I'd especially love to see different AI's battling each other, and the ability to script your own governors for bases so they make sane choices reducing micromanagement lategame.
@Mart: I think you're thinking of new game design? Cloning a game is quite different, you pretty much just need programmer power for it.
That would help, and perhaps be advisable to think about a fair amount early on to reduce later need for restructuring, but again that's something a programmer (or at least someone with a good understanding of programming) is going to be needed for, unlike a normal game's design phase where you want designers primarily.
Edit: hm, found the github, it looks like you're not including SMAX elements? Is that a later plan (build basic game, add extras), or are you not keen on SMAX? I'd encourage you to aim for the full game, there's a fair amount of added depth to gameplay from the assorted extra features (more native diversity, techs, factions, facilities, SPs, etc), which has lead to most of the users here treating SMAX as standard.
I would certainly like to support pluggable ai modules/scripts. However I think I have not implemented enough of functionality to get good picture of what would the script/ai api look like.Cool that you're interested in the script assisted human play thing, and yep, makes sense to not start on that side until you've got a good idea of the foundation of the rest of the game, though worth keeping it in mind while building it up.
And there is the problem of fog of war to which I don't have solution yet. The idea of script-assisted human gameplay has haunted me for years so I clearly see that there can be overlap between automation done on behalf of human player and ai in narrow sense of fully ai player.
At the time you looked at the source there was nothing specifically smax because I did not get there yet. Personally I don't have a strong opinion on smac/smax issue but have chosen to include smax stuff from the start. As there will be no ai for some time, I suppose the natural things to leave out at first are these which are so far in the tech tree that they rarely appear in multiplayer games. And alien factions - they are mostly useless, especially in this case.Okay, I imagine people who would want pure SMAC could easily enough remove most features with alphax if they wanted. And yea, leaving unused lategame stuff as low priority makes sense.
A thought, when making a game clone - can this be made without faction number limit? I mean, you could start a game having 12 or 14 factions in it.
Haha yeah. I was thinking of making a SMAC clone myself, then I found your project. :D I realized no one had figured out how to read or edit CVR files... which meant that such a project would have to recreate the units from scratch. I suck at modeling and so I thought it would be worth a shot at trying to figure out how the CVR files worked.
I'm honestly wondering if it would of taken less time to recreate the assets. :D But its been fun figuring it out. (except for the normals)
I'd advise against figuring out how the existing files work when making a SMAC clone; most of the arguments for why it's ok to reverse-engineer SMAC for these sorts of projects relies on the fact that it's being used to enhance SMAC rather than compete with it; if you use it for a SMAC clone, I think you're on much more problematic legal ground. (This is why I can't provide much help with opensmac, though if it gets going I'd be happy to help include an equivalent to my patch, and any other changes that aren't in the original.)
-xml (json is more human readable and editable)* The problem is json would require me to manually write a loader and a saver for every variable. (More work)
+Unit tests!* Are amazing. :D
-Java* I'm familiar with it and it works on linux (which I use).
-Loads of code to read and grok already* Almost all of the code so far is just for reading in variables from all the config files. Allot of it is Integer.parseInt(line[2].trim()) and other functions for converting sections of text into int, booleans, etc. Aka... allot of stuff that won't need to be looked at after its written. (I don't even need to worry about optimizing it since it will only run once)
(Point of order, variables in Python are not typeless or even weakly typed. They are implicitly strongly typed.)
* Almost all of the code so far is just for reading in variables from all the config files. Allot of it is Integer.parseInt(line[2].trim()) and other functions for converting sections of text into int, booleans, etc. Aka... allot of stuff that won't need to be looked at after its written. (I don't even need to worry about optimizing it since it will only run once)
* Thats why I plan to ask for help with the code after I've cleaned it up and commented every function I've written.
Python stuff
I've been working on a SMAC clone in secret using Java instead of python. (Sorry Domain :( )
I don't see why json would require manual loaders and savers. Is it a case of library support for xml vs json? There are libraries for parsing JSON in java (though maybe not in the stdlib).
Needless to say you will have full support from the AC2 team if you engage in such project..
Should i start a new board for you? :)
How about the project management and ownership stuff I asked about?