 |
|  |
 |
|
Natalinasmpf
|
|
Well we all know there are some shortfalls in SMAX/SMAC, that could be solved if there was a sort of version two, or the source code was released. I recently thought of the idea: why not rewrite it from scratch? The engine isn't impossible to replicate, and users could contribute to this (open source ), and someone good in graphics could make the graphics. I plan to write this in C/C++, and then use openGL for graphics, and this also will not take off without volunteers who can contribute in any way, any form.
This might not be an impossible task, again, already I have a source code file in the works that functions as the calculation code for battles. Ie. take factors, calculate, return, and integrate with the rest.
Main objectives:
Improve game balance and social balance - crawlers, choppers, ICS (ICS, you must agree, has to be toned down somewhat)
Fix some bugs
I think its also good if we thin the line between "builder" and "momentum" things - I mean, people in real life do not adopt a strategy like that at all.
Rewrite social engineering - its quite good, but could use improvement.
Even more dynamics! More SP's! More ways of representing the rhythm of unrest that surges through society, more ways of representing of representing the heavy hand of oppression, more ways of representing social structure ! More terrain improvements! Lets make a new wave of possibilities!
Warfare immersion:
Improve graphics
Make more movies?
Flexibility in community changes - easier to modify the AI/engine/graphics/etc for a new mod, make it open source.
Some sort of flexible engine: ie. its easier to modify one part without modifying all.
Changes in detail:
Moves and attacks: Have a separate value for how many times a units can move, passively, and how many times a unit can move, actively. This might fix the chopper problem. Ie. a fission copter will have 8 moves but only can attack twice.
Crawlers: Crawlers will now have to move to collect resources. They might now have to represent a worker as in RTS, they collect for a few turns, then they return to base. This might create a nice chain of "trade" though - crawlers will move between bases to collect resources, to be more efficient, (transport them assembly-line like). Economic techs might increase the capacity of crawlers, such that they return every four turns instead of eight. (Also a new command to make them return in emergencies, etc.). This is also makes for interesting situations where crawler dependent cities might effectively have supplies cut off in a siege. Commerce might also deal with this.
Some more, need suggestions!
So, what do you think? I am also aware of other failed similar projects, but perhaps we can continue their cause. Import their code and the like.
|
|
|  |
 |
|
Natalinasmpf
|
|
Well I'm looking for contribution in any way I can. Basically you can reccomend me a kind of structure for code to use, or any tips, or any ideas or suggestions, because any help is a great help.
So far I've mostly done just void functioname() functions which do some calculations or cross-references, etc. which I intend to call up later. Quite inefficient as of now (cross-references where its not needed), actually, so perhaps you have some experience in that area?
I haven't gotten far as well, but if I get some good momentum going, I think I will.
|
|
|  |
 |
|
goomeister
|
|
Well, I can't say I dislike the idea! However, you'll need a lot of community support to pull it off - games require a large investment of resources, not only code, but graphics, sounds, and so on. Granted, SMAC isn't as complex as, say, a flight sim, but don't think it's going to be easy!
quote: Originally posted by Natalinasmpf
However, this is my first time writing code for such a large scale project, so I'm worried how best to organise it. I've seen projects split up their code into different headers and such, and I have little knowledge about tying / integrating it all together. |
A good rule of thumb is, put each class definition in a separate header, and put each class implementation (functions and such) in a separate code file. The idea is to separate interfaces (the way you manipulate classes, which shouldn't change) from implementation (the inner workings of the class, which may change). Modularity is key, it makes maintaining the code a lot easier.
quote: Originally posted by Natalinasmpf
And yeah, I suppose I should have some design documentation up, so within the coming days I shall try to think of some proper structure. |
Definately have a design document before you start working. Outline what you want to do and how you plan to do it. The actual programming should come easily from there.
quote: Originally posted by Natalinasmpf
Flexibility in community changes - easier to modify the AI/engine/graphics/etc for a new mod, make it open source. |
I agree. What you could do is implement a scripting language, such as Lua, to handle game mechanics. You can script the AI, techs, SPs, etc, and have the engine parse the scripts at runtime. This would make it very easy for the community to modify the game, without having to muck around with the engine.
|
|
|  |
 |
|
goomeister
|
|
quote: Originally posted by #endgame
The XML resourcefiles are just to be used to record things like "where do I find the image for unit #234234234?" and changeable game constants like in the alphax.txt (like what goomeister said about using Lua for). |
Well, yes, Lua can do that. But it can do infinitely more - you can change the fundamentals of the game. Right now, the effects of each SP, facility, unit ability, etc are hard-coded. With a scripting language, you could move all of that into easy-to-modify scripts. If you wanted to change the AI, you could just modify the script, no need to mess with the source code. We could give all the modders out there a lot more freedom to tinker with the game.
quote: Originally posted by #endgame
ClanLib is a crossplatform SDK |
You keep saying that, but let's put it into context: "cross-platform" apparantly means Windows and Linux, with your choice of GCC, VC++, Borland, or MingW. A rather short list - note the omission of Mac and CodeWarrior, which leaves me out on both counts.
Cross-platform support is a quixotic goal, and a poor reason to choose a framework. If you must, use a low-level library like SDL, which has implementations on virtually every platform known to man, and avoids some of the problems of higher-level frameworks.
quote: Originally posted by Lord Nword
Sometimes I think just rewriting the code so that some bugs are fixed and maybe extra features are added (while keeping the look, feel, format the same) would be sufficient. |
Indeed, but since we don't have the source, we have to build everything from scratch, and if we're doing that, we may as well go all the way.
|
|
|  |
 |
|
Natalinasmpf
|
|
Okay, since there are several kinds of proposals and approaches (I am intrigued by Lua), I'm going to have to ask you people again for suggestions....
Also I have never done design documentation before, I don't know how to go about it in format and such.
Ie. by using an existing scripting language, how would I go about integrating it? I read its basically "a small library of functions" - so I just include them, or?
Right now I have a good draft, but its on paper which I thought of during my free time - I don't know how to make it into actual design documentation.
quote: But my question is just how much are you aiming to change the game? |
Actually two things concerned mainly: balance and modability. And thirdly, perhaps better graphics, but thats less of a priority.
|
|
|  |
 |
|  |
 |
|
goomeister
|
|
quote: Originally posted by Natalinasmpf
Ie. by using an existing scripting language, how would I go about integrating it? I read its basically "a small library of functions" - so I just include them, or? |
Pretty much. Lua was designed to be integrated into other programs, so it's fairly easy to use. There's a good introduction here.
|
|
|  |
 |
|
DilithiumDad
|
|
A lot of changes can be made jus through alphax.txt. We should collaboraote on a new version and test it via PBEM before starting a massive re-coding project.
|
|
|  |
 |
|
Natalinasmpf
|
|
quote: A lot of changes can be made jus through alphax.txt. We should collaboraote on a new version and test it via PBEM before starting a massive re-coding project.
|
That has been proposed before, but its not enough. I am not just satisfied with alphax.txt changes, because they are insufficient. I am targeting balance, a better graphical system (lower priority though), and the mechanics and engine. The SP's , for example. Also, I want to make modability higher. Just changing alphax.txt isn't going to resolve it.
|
|
|  |
 |
|
H.Humpel
|
|
Ottawa, ON
Aug 2004 time: 00:22
|
|
Hi there,
well, my programming skills are very very rosted and I won't be any kind of help I guess, but a few general thoughts that came up reading the above:
if you're really putting a lot of work and time in a project like this and getting it up all from scratch, you should do it with a lot of feedback in mind.
Make it as portable (Windows, MacOS, Linux, Unix etc.) as possible and use media data that anyone can read/build (JPG, PNG, mp3, MPG etc.), maybe even the option to use different types at the same time (JPG and PNG etc.).
FreeCiv seems to do a quiet good job, although I haven't taken a really closer look at it. But I still remember playing it long time ago on my AMIGA .
ACAX definitively needs a better Custom Faction handling. Putting all files a the main dir is pretty annoying.
A "finer" way to define the Faction would be nice, too (e.g. Interest in Power: 0 to 100 %, or 0 - 255).
One of the best things in ACAX is the way to be able to customize everything within the TXT-Files, XML might be a good choice too, but I guess that this might be a bit scaring to non-programmers. Maybe XML might be the better choice for the very game basic files (which are changed be most MODs) as an "expansion" seems to be easier to handle.
Setting up anything on MODs is a good idea, too. Take a "standard" mod for the normal version/game, and let other MODs install things in their on dir.
A server somewhere to synchronize these things (no MODs/extensions/Factions with the same name) might be a good idea, too.
Just a few things on general planning (which should all be done before getting code hacked in).
|
|
|  |
All times are GMT. The time now is 05:22. Apolyton Time is 00:22. |
top of page
|
|
|
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is ON
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|