The Spring Structure and Techniques
Moderator: Moderators
The Spring Structure and Techniques
I'm wondering what is the structure of the Spring engine today. What are the techniques used, from rendering to an path-finding, or physicals of the game. Over all in an organized way what has already been used, which has been discarded and what has been improved? What are the names of these techniques? These can't be only kludges or can?
I'm not wanting to let anyone upset or angry, I know this is an open source project community, what I'm proposing or considering whether a structure is readable not only in terms of codes, but an higher view of how the game is constructed and its operation.
I want to help by bringing more efficient techniques, like a researcher, anyway, I have interest in develop several ideas for this game, how to enable the airplanes to make evasive maneuvers or use battle tactics, robots that can jump, among others, I'm not just wanting to develop an artificial intelligence that manages units in a context general but one which can use combat tactics, evasive maneuvers, groups stealthy attacks , and so on.
I'm not wanting to let anyone upset or angry, I know this is an open source project community, what I'm proposing or considering whether a structure is readable not only in terms of codes, but an higher view of how the game is constructed and its operation.
I want to help by bringing more efficient techniques, like a researcher, anyway, I have interest in develop several ideas for this game, how to enable the airplanes to make evasive maneuvers or use battle tactics, robots that can jump, among others, I'm not just wanting to develop an artificial intelligence that manages units in a context general but one which can use combat tactics, evasive maneuvers, groups stealthy attacks , and so on.
Re: The Spring Structure and Techniques
I would note that in general the most basic of behaviours ( or sub-AI as we once called them ) should be moved to lua where possible.
Re: The Spring Structure and Techniques
new gameplay stuff like this is now usually added via Lua, a scripting language.I have interest in develop several ideas for this game, how to enable the airplanes to make evasive maneuvers or use battle tactics, robots that can jump, among others
Like a feature request would look more like "allow modders to move units in x,y,z games can make jumping units" rather than "put jumping units into the engine."
ie "jumping robots" in the zero-K game:
http://code.google.com/p/zero-k/source/ ... mpjets.lua
Re: The Spring Structure and Techniques
Volunteering for it?AF wrote:I would note that in general the most basic of behaviours ( or sub-AI as we once called them ) should be moved to lua where possible.
Re: The Spring Structure and Techniques
I think I'm being misunderstood ...
i will give a example: What is the current rendering technique / the name?
i will give a example: What is the current rendering technique / the name?
Re: The Spring Structure and Techniques
We have likely better things to do than writing an essay just for you.
So ask specific questions and tell us a good reason why we should answer it (tell what you really want to do and why this info helps you).
PS: ignore the others ...
So ask specific questions and tell us a good reason why we should answer it (tell what you really want to do and why this info helps you).
PS: ignore the others ...
Re: The Spring Structure and Techniques
Code: Select all
echo apply_filter('auto_polite',$jk_response);
( it's shorter too hmmm )jK wrote:Your question is somewhat open ended, if you could be more specific?
Re: The Spring Structure and Techniques
Forget what i said early, i will ask again then:
What is the current terrain rendering technique? I want to search for one better to implement and i will develop this.
Obs: If this don't make someone understand me, please delete this topic and i will never again post something so stupid or anything.
What is the current terrain rendering technique? I want to search for one better to implement and i will develop this.
Obs: If this don't make someone understand me, please delete this topic and i will never again post something so stupid or anything.
Last edited by Zyre on 14 Sep 2011, 18:36, edited 3 times in total.
Re: The Spring Structure and Techniques
No its just poorly formed, you're asking a very, very open ended question, and expecting a specific answer.
Which part of the engine are you referring to? Rendering? Networking? Syncronicity? The engine behaviours of individual Units? Lua game mechanics? the uber high level game logic loop? multithreading? The skirmish AI interface?
If you're just attempting to build an AI, I advise you go to the AI forum rather than posting in engine development.
Which part of the engine are you referring to? Rendering? Networking? Syncronicity? The engine behaviours of individual Units? Lua game mechanics? the uber high level game logic loop? multithreading? The skirmish AI interface?
If you're just attempting to build an AI, I advise you go to the AI forum rather than posting in engine development.
Re: The Spring Structure and Techniques
Forget what i said early, i will ask again then:
What is the current terrain rendering technique? I want to search for one better to implement and i will develop this.
Obs: If this don't make someone understand me, please delete this topic and i will never again post something so stupid or anything.
What is the current terrain rendering technique? I want to search for one better to implement and i will develop this.
Obs: If this don't make someone understand me, please delete this topic and i will never again post something so stupid or anything.
Re: The Spring Structure and Techniques
You might be interested in the work Beherith is doing on implementing ROAM for terrain rendering http://springrts.com/phpbb/viewtopic.php?f=12&t=19614
Re: The Spring Structure and Techniques
Did I said that I am very bad at formulating texts?AF wrote:Output:Code: Select all
echo apply_filter('auto_polite',$jk_response);
( it's shorter too hmmm )jK wrote:Your question is somewhat open ended, if you could be more specific?

Re: The Spring Structure and Techniques
you guys don't have these informations gathered rigth? then, i will try some more.... how can i gather all these informations?
Re: The Spring Structure and Techniques
by reading the source code.
Re: The Spring Structure and Techniques
Beheriths work adds the ROAM algorithm to the rendering of the SMF map format.
The SMF map format is a tile based format, and Beherith and others have made recent advances in the rendering pipeline in this component ( see next release test builds and git master ).
For reference on how we make the maps, look at mapconv, abma posted a thread not long ago, go there and look at that codebase.
There is also the SM3 map format, but has failed to gain traction. It isnt as fast as it was hoped to be, and it isn't reliable under ATI as some people have reported. The general consensus is to abandon it.
Braindamage also expressed desires to modify or extend the map format, but I have not kept pace with those developments.
The SMF map format is a tile based format, and Beherith and others have made recent advances in the rendering pipeline in this component ( see next release test builds and git master ).
For reference on how we make the maps, look at mapconv, abma posted a thread not long ago, go there and look at that codebase.
There is also the SM3 map format, but has failed to gain traction. It isnt as fast as it was hoped to be, and it isn't reliable under ATI as some people have reported. The general consensus is to abandon it.
Braindamage also expressed desires to modify or extend the map format, but I have not kept pace with those developments.
Last edited by AF on 14 Sep 2011, 19:56, edited 1 time in total.
Re: The Spring Structure and Techniques
only if reading the code? Seriously? I need to read all codes, interpret them, compare them with the techniques that already exist and catalog all ... has sure that it is only through this way?




Re: The Spring Structure and Techniques
Terrain Rendering is a some very complex topic. And other devs already work on it, the reasons why their implementations didn't found their way in the releases yet is that the whole thing isn't as easy and the whole engine needs a few modifications to integrate such a different renderer.Zyre wrote:only if reading the code? Seriously? I need to read all codes, interpret them, compare them with the techniques that already exist and catalog all ... has sure that it is only through this way?![]()
![]()
So you should perhaps search an easier project to start with. Also no matter what you do, you will have to read the engine's code and learn a few things, and none can help you with it (except answering a few more specific questions).
Re: The Spring Structure and Techniques
AF: Hi, just wanted to comment that I am developing my Java AI as my final project for graduation, it seems that you are also XD
Returning to the topic, I was trying to retrieve all the current methods used in the Spring, as the being used in path-finding, if is the A * Heuristic, or which version is, as the current method of rendering terrain, which are trying to do and so on.
I thought maybe there was a simpler way to get to know about it ... therefore I asked through this topic
jK: no problems, someone have to do it, then i will, i have already read the ROAM topic a few weeks ago, this topic came from that, that day I researched the techniques and found out some even better than the ROAM for use in Spring, so I thought about which techniques were currently used, but not only for rendering but rather in all Spring, and found that no list ready so I asked on this topic
Returning to the topic, I was trying to retrieve all the current methods used in the Spring, as the being used in path-finding, if is the A * Heuristic, or which version is, as the current method of rendering terrain, which are trying to do and so on.
I thought maybe there was a simpler way to get to know about it ... therefore I asked through this topic
jK: no problems, someone have to do it, then i will, i have already read the ROAM topic a few weeks ago, this topic came from that, that day I researched the techniques and found out some even better than the ROAM for use in Spring, so I thought about which techniques were currently used, but not only for rendering but rather in all Spring, and found that no list ready so I asked on this topic
Re: The Spring Structure and Techniques
ah, noe, AF is not developing his AI for a studentproject... he bakes cookies. 

Re: The Spring Structure and Techniques
Shard was indeed my dissertation, but I graduated over a year ago and it's no longer and academic project, hence the release of source code.
Pathfinding and the map rendering are unrelated save that they both use a heightmap, but thats fairly obvious, and you neednt modify the rendering code to modify path finding.
Also, theres no reason to modify the main pathfinder when you could always put a dedicated pathfinder in your AI. You wouldnt be the first.
Also Beheriths ROAM implementation required quite a bit of bug fixing and rejigging of the rendering, taking several developers working on it for various reasons. IIRC Kloot did some work to this very end with regards to shadows.
Anyway, there is no high level documentation, the engine for the most part had zero commenting and documentation when it was open sourced. Much of what was there has been refactored and modified to resemble and actual architect of some kind.
Pathfinding and the map rendering are unrelated save that they both use a heightmap, but thats fairly obvious, and you neednt modify the rendering code to modify path finding.
Also, theres no reason to modify the main pathfinder when you could always put a dedicated pathfinder in your AI. You wouldnt be the first.
Also Beheriths ROAM implementation required quite a bit of bug fixing and rejigging of the rendering, taking several developers working on it for various reasons. IIRC Kloot did some work to this very end with regards to shadows.
Anyway, there is no high level documentation, the engine for the most part had zero commenting and documentation when it was open sourced. Much of what was there has been refactored and modified to resemble and actual architect of some kind.