Jump to content

Radagast.

Community Members
  • Posts

    1.450
  • Joined

  • Last visited

  • Days Won

    16

Everything posted by Radagast.

  1. You are correct, it may only be part of the picture. On the other hand a function is nothing else than a reference to memory just like it is with a variable. So static attribute or static function - both has to be initialized prior to usage.
  2. More variants: (and one black and white basic image for Lion) Edit: Black white was broken. And you are right, we need a purpose .. and I think it's the round artus table and the equally placed chairs by itself that expresses our goals. That's why I put in the top view now ... for you as a base if you are okay with it. Or as a reference. Just how you wish, you're the master.
  3. I tried to save you a bit time by preworking a render:
  4. One more problem. Properties that are only read have not to be copied for threadsafity's sake, or am I getting it wrong? The problem is here in the BaseAI.js (the AI superclass): m.BaseAI.prototype.Init = function(state, playerID, sharedAI){ PlayerID = playerID; // define some references this.entities = sharedAI.entities; this.templates = sharedAI.templates; this.passabilityClasses = sharedAI.passabilityClasses; this.passabilityMap = sharedAI.passabilityMap; this.territoryMap = sharedAI.territoryMap; this.accessibility = sharedAI.accessibility; this.terrainAnalyzer = sharedAI.terrainAnalyzer; this.techModifications = sharedAI._techModifications[this.player]; this.playerData = sharedAI.playersData[this.player]; this.gameState = sharedAI.gameState[this.player]; this.gameState.ai = this; this.sharedScript = sharedAI;//<-- TODO Remove as sharedScript is the live version and for allowing threading should never be written. this.timeElapsed = sharedAI.timeElapsed; this.barterPrices = sharedAI.barterPrices; this.CustomInit(this.gameState, this.sharedScript);}The question is, do we ever write barterPrices? Or is reading also a thread safety issue?Let's examine it: If another thread could have changed data in the meantime, then the data we read could be invalid as it's no longer guaranteed to be consistent for each thread/AI. But wait. Didn't we say no thread is allowed to write, so that's a contradiction and thus no thread can change the data and reading will always deliver valid and consistent dat (if it's not allowed to change it, it cannot change). Thus we store a reference to sharedAI in the attribute sharedScript to cover all reading purposes. Now I'm a bit confused as there are some variables copied that are usually not written: e.g. Is timeElapsed ever written/changed from an AI? Or should it read timeElapsedUntilBeginningOfThisTurn? If it's used the latter way then it's okay to copy it. this.timeElapsed = sharedAI.timeElapsed;gameState as we collect the changes from every AI at the end of a turn I think. So there is no writing involved at all, gameState is only being read. So why should we make a copy of it?Or is this simply because we don't need it for thread safety but just for having all AIs the same values independent of which AI currently is assigned to CPU (as apparently not all AIs can be assigned at the same point of time). But this can only be relevant if the gameState is changing constantly (continuously). The alternative is that it's constant for the whole turn? Usually it should be the latter as every simulation is step based. So essentially it's about if the gameState simulation/evolution time step is smaller that the smallest possible AI time step?Or is it wrong that we should we make copies of variables only if we are about to change it? There must be a reason, I guess why it's used so heavily and I just can't see it.
  5. Thanks for the link and details! I meant it like that and a bit more dynamic. So even a step farther: Have one giant map we work on. (Keep performance up in Atlas by a level of detail system just like in a RPG as the Atlas more is like a RPG than RTS. All out of sight is no longer used for anything. In contrary ingame the AI still needs to operate on all parts which makes the dynamic map loading difficult unless we can warp time without the AI actually being acive - i.e. predict a future state on a unloaded map/part of bigger map without the map/this part actually being loaded and hence the AI also not being active! Otherwise we get heaps of lag as it is detailed on the massive map thread already.)2 possibibilities how to proceed from the giant map:Specify a resolution and eventually limit which parts of the map we want at maximum.No maximum and simply specify a resolution - the map will be loaded part by part by the engine. (the ultimate goal).Then put in the trees from a map (I have a forest map of Earth at hand that Atlas could parse - depending on the resolution a forrest will have more or less trees, perhaps we should also specify a density but I wonder why as for realism this can just be derived from real world values for each climate zone).Continue like with other plants and animals - all automatically.Either acquire a resource distribution world map or place those just like on a random map. Iron can also be found away from mountains, essentially Aluminium for example can be found almost everywhere in the soil. So no problem in realism with random placement I think. We can still rework it later but I would like to save that as this destroys the 'dynamic' of the idea of dynamic real world map generation and loading.Then specify a starting time and place the cultures there. e.g. start at 500 B.C. with Egyptians, Romans, Athens, Sparta, Carthage, Qi/Han chinese, ..As simulation time passes by other cultures will be added to keep up motivation to advance in technology and to have stronger enemies at later games as in this phase the simulation turns more and more lengthy without really opposition usually as the own power has risen dramatically and has a huge economical base (because we don't have natural catastrophes, pests, famines, ... yet - hehe, we're working on it).So there is twofold:Dynamic real world Map creation.Dynamic map loading.If the dynamic map loading not works on a part by part basis, then we could at least replace complete maps. I.e. introduce map hopping from scenario to scenario. We could even make it possible to take over the ressources and units and place them (e.g. resources) somewhere at the border for calling for reinforcements or whatever. This last emergency solution implies we needed to chain maps - and perhaps even store the state of the old map to make it possible to hop back. So each map we are not on currently will simply pause. => No AI action, no pathfinder, ... time standing still.
  6. As we foresee our Council of Modders we hope to get a closer link to the dev team .. thus to the repository and finally a complete Mod-activation/deactivation system handled centrally. The Council of Modders umbrella will help join all the incredibly widespread work around dozens of posts into one mod repository (collection). The Chinese fit into all epochs of 0 A.D. as they simply were there constantly from thousands of years before 0 until now and into the future (as it seems). Okay, the religion, borders and cultures were on the move permanently. But that's been on almost every continent. (I think Antartica is the exception .. ) Weren't there other beliefs prior to buddhism? I know the mongols some time converted to islam at least one of their Khans .. shortly before they destroyed the center of islam (Baghdad at those times) and tried to conquer the last remnants in Egypt too (what failed miserably because of successor problems .. well the typical problem, no?). Anyway ... GREAT ARTWORKS!! High talents in this forum just like on blenderartists ... really amazing ... thanks for sharing!
  7. Good points, the reinforcements are planned as you mentioned already. The mercenary idea I was not aware of before you sent me here to read it up. Thank you for the info. The problem with the GUI is, I'd need it more dynamic, more flexible. Something like two panels: A vertical dynamically fillable bar - directly below the hero icon (with a gap). There I plan to put in the subordinates of the unit you currently control. The reasons for this are:To be able to see quickly the state of your direct subordinate armies. (and position)To be able to read messages up quickly and easily and to see immediately from which subordinate the envy was sent. (Okay, The government/senate for the Roman Republic also needs an icon as it also sents messages frequently.)To be able to send commands to subordinates quickly and/or answer questions (yes/no) in time for your military action not losing momentum.Another icon for requesting reinforcements (essentially a shortcut for an envy being sent to the headquarters! so reinforcements will need time to arrive. If they will be sent of course. And if they are not destroyed or delayed underway.). The importance of the vertical panel below the hero is that we will manage that in a list/vector .. so that we can add subordinates and armies on the fly. Perhaps even have it as a tree, so to access the subordinates of your subordinates. The fountain of health will be covered by our plan for adding water as a resource/requirement for units. Units as I foresee it and work on need both food and water in their baggage otherwise they may starve slowly. This means we will have an inventory, that we solve by reusing the already existing prop functionality. Uultimately this will lead to real physical resources like swords, arrows, javelins. A unit can always bear food and water and will automaticall resupply at wells and oasis as long as it's safe (no crododiles, not attacked, ...). A unit may only bear as many javelins as its force/strength stats allow. Speed will be calculated as a function of the weight a unit is bearing. Yet another level of detail for realistic strategy. Will you strip your units of water and of armour to make them manoeuver more quickly? The trade post idea is interesting. Also that fog of war will be relieved in the independent traders' surrounding. The free soldiers/mini cultures are possible too - as the AI currently in development will also allow own citizens to leave its tribe/AI out of frustration, essentially settling on its own until it is subdued .. or is paying tribute for safety. We have a decentralized AI, that is the decisions are made by the units, not a central magic power. (Of course the now independent mini culture settlements will also have its own AI, just the usual one .. even the colours of the old tribe they belonged to will remain for a while .. then slowly turning into Gaia's colours as time passes by.) In my opinion our ideas are worth the effort. Still I wish to keep it as real and non-data/input heavy as possible. Hence the dynamic GUI proposition, so that it's not hardcoded ... will save a lot of time. There is another alternative way to gain support by foreign mercenaries: If you subdued a foreign tribe, they will not only pay tribute, they will also follow into war. This might lead to a rebelion, especially if the expedition/defensive action is unsuccessful and the subdued people lost a lot of warriors. It could also turn out as putting aside a rebellion as the subdued state might no longer have enough trained troops to be confident enough to start a largescale uprising. A more close relation to allies whom you can bring presents and send envoys is also planned to make them more easily join your activities or fight a rearguard for you should the invasion fail and turn into hastened retreat.
  8. Sorry for noob question what is RotE? Another 0 A.D.? You have already done brilliant work on supply lines with Sander, so really you're one of our masters, Niek. I think we should keep it as informal as possible. Hierarchies and strict sign-up procedures will keep away other modders, devs and artists. So why not simply including all modders automatically and the rest happens following LordGood's ideas: having an umbrella that help out, that overstretched modders can contact, that modders can put their mods under ... formally allowing them to reuse and drive it further. The council of all modders will unite us mentally and make oneself realize, you are not alone, we drive it further in tenfold speed in a joint venture. Motivation being the other part. Reusing artwork/scripts/toolchains will also be made much easier ... Let's save Lion of the signatures .. we can use the artus knight round table. This will even have enough space next to our current signatures (for those that have one). Here a very bad effort for the aquila. The dragons are from blendswap from a master, so only the Aquila has been modeled by me ... the extrusion is really hard. Have to sculpt details .. and then - again - retopology .. oh dear. Also how do you bake Normal maps on Linux? For Windows there is crazy bump ... oh, just found Insane Bump for Linux from a blenderartist. In future that does it all ... a pity it's neither open source. (put it in ~/bin/linux on linux, the AO is baked into the normal map as an alpha channel. To work around this, turn AO way down.). The council also could collect open source 3D model repository links, e.g. http://opengameart.org/content/wip-flare-defense-tower In this repository everything has CC-0 license, even the textures. Some models from Unknown Horizons are also there. They use isometric renders (no mesh) for their open source game ... but the models to create those renders still are 3 dimensional. Communication .. well both is okay, forum and chat. The prob is chat is a time killer. In emergencies we can also leave messages in the git repository. That is if everyone updates the repository regularly (git pull) or has a look at it online.
  9. You are the master not me. It was just a guess ... lucky it turned out useful. Can still be random. Sometimes working, sometimes not. Could have also been some magic null pointer assignment. All not directly your fault for sure. Sometimes it's simply crazy! The problem of static and template mixed is related to the compiler not implicitely "seeing" if it's used or not according to C++ specification. So it's instantiated at runtime at a random order and bang ... if it [the variable/function...] is used somewhere prior to being initialized, then it breaks with segmentation error. Thank your for all your time going into our spidermonkey issues! (interesting words those mozilla folks think of ..) A colleague from stackoverflow, Johannes wrote something about it: Static Member Init Template Fun Inside.
  10. In continuation of striving towards realistic reenactment of history let's create a realistic giant real world map using elevation data from our spaceventures (e.g. from NASA). The goal is to have one giant map we work on and which we convert/export (perhaps automatically) into smaller chunks. Parameters to set could be: Tile map size,tiled map count to export,which tile (starting coordinates 2D),ORspecify the desired resolution,and the desired final map dimensions.The latter approach should work hand in hand with a level of detail system. Still have to think more about this. The benefit would be that we could quickly reuse artistic/territorial realistic map design. As ultimate goal, we could specify a timeframe and the climate zones and continents would adapt but hey I think that's overkill.
  11. Using static and template induces implicite instantiation. There the compiler doesn't use a specific order and it's completely random order of instantiation and even differs from compiler to compiler (so Visual Studio compiler or GCC or whatever you use ...). A solution could be to explicitely declare all participants in any source-file similar to: template<>jsval ScriptInterface::myToJSValStaticTemplate<int>;
  12. The idea of LordGood that this council will help overcome low tides is what I love most. It's good you put this up, Romulus. Let's save Lion from the signatures and simply take the Council Logo? That even had enough room next to your current logo, Romulus. The skillset, well, it's not much. Blender (Modelling, a bit sculpting, limited animation, basic UV unwrapping, basic texturing Python/Addons, ...)Programming (usually hardware, so C, C++, Java, Python, ...),Photoshop limited and abandoned because too expensive and not open source => GIMP.History & Fantasy - my passion.Currently heavily involved in Hardware and AI developments and writing my final thesis.
  13. Are you talking about javelinist in towers? Or ontop an elephant? I think via JavaScript you could decide yourself which unit to attack. So compare the nearest enemy position to your units position and decide whether the javelins' reach is enough. Once the enemies are coming too close draw back the javelinists and send in the melee. (all in javascript)
  14. Lots of fine ideas ... How about joining efforts with Millenium A.D. - it covers the time period from 500 A.D. until 1500 A.D. The vikings including ships are already quite far evolved and we recently try to join more efforts with devs and artists from all the other mods. https://github.com/CouncilofModders/ <-- Here we probably collect all MODs for increasing reusability. --> Viking thread. Niektd and my humble self partly seem to work on the same features like you. I like your ideas (and your castles ).
  15. Found it in FeXoR's links ... With raiding I meant "raids" or incursions into foreign territory. So exactly what you explained niektd. Also I see our team is very powerful. Niektd has already added to the C++ and simulation base some very important features for supply chains! And the artworks from our community itself are more than convincing. Today I put together the state machine for the new combined/hybrid senate/leadership AI: Built using: http://madebyevan.com/fsm/ Note this is the high level. Each state has its own set of commands available. E.g. in the subdued one can only set up civil commands. Whereas in the rebellion all commands within the categories civil,resources,militarybut not e.g. diplomacy are available. Within each command the decision taking takes place as outlined several times before (e.g. in the Roman Mod or the AI tournament thread).
  16. Have you tried changing the mode of aggressiveness to a more defensive value? Never experienced such behaviour before. Did you change some underlaying code?
  17. That's probably the best that can happen to 0 A.D. other than all RTS and RPG genres suddenly going open source or giving their art and dev departments at our service. So seen realistically, I thank you for setting this up. Me probably am the one that is responsible for the confusion due to my initial post. Thanks for clarifying. So, of course I offer my bow as a help if you wish.
  18. Very nice artwork! Looking forward to your mod. Transforming ox-wagons to tents just like it is for the roman catapults would also be fine. Edit: Just returned from a wonderful journey in the realms of DevianArt. Your signature led me the way. What shall I say, no words will make up for it anyway ... this is what makes this planet worth living so much. I never want to miss art! Thanks for sharing ...
  19. I'm looking forward to see the outcome of this council. Still have to grasp the full implications of this council. Looks like you are much more familiar with what is going on ...
  20. That's good news! I had to think a bit about it and now I think I understood the implications you talked about. Very interesting insights. The long and short pathfinder giving different results, never really thought of this. Though for bridges and walls I might give it a try. Especially if we really get around to include the pathfinder rewrite. This would allow us to place eye-candy objects too I guess. And fences then could be used for captives/corralling/herding. @AI News: It's taking shape. I hope to be able to test it soon once I have the military front line math ready (I use vectors to calculate it... so another useful information you posted was that the y-Axis is pointing up! Thx.).
  21. The only models from blendswap that are only usable for non-commercial use are the ones marked as Fan-Art. So the artistic works is the same license like 90% of the models of blendswap. As is the 0 A.D. program code itself which is LesserGPL2 license and the AI is GPL2 - both non-permittive for proprietary non-open source works but allowing for open-source but commercial use.. For the Fan-Art models you are correct, we should not use those! CC-0 and LGPL and GPL should do as the program itself have those licenses. Easy to find licenses in a local SVN or GIT copy via find ~/0ad/ | grep license. Though I don't know for the artistic license. Good you mentioned that problem with the Fan-Art, that's important indeed! I've checked the models, they are all free for commercial use, they are not Fan-Art. Not even that one: But it has horned helmet. That's bad. Thanks for the input. So this one will be okay? Interesting, so probably they are completely independent. The details make the different I guess. And construction-wise you are right too - not too much in common. (only because it's all round it must not be equal, my fault!) Cool! I meant not too small a giant. It was just a bigger viking, so no real giant. Yes, something like that sounds fitting. I think so too. Even the Romans had ties to foreign countries like the Asian world in the form of merchants. So I think it's finally difficult to tell who was inspired by whom. Though it's still possible that they developed it themselves. Nowadays there also are many independent scientists that invent many equal things at the same time. Thanks for the links, so this is the correct helmet:
  22. Btw, nice references, looks a bit similar to those celtic entrenchments as found in east europe? Apropos East Europe, just hope all this civil war thing stops spreading. We should become more tolerant .. and definitely need leaders that act more wisely and less selfishly than that what we largely see currently in Europe and around the world. Hope everyone's fine here at least. Perhaps we have viking blood in our venes .. so that we're addicted to the military part - raiding and such. Will raiding be part of this mod?? I mean there once was one single giant viking soldier at a bridgehead that kept back a whole army (50 heavily armed men were struck by this giant of a viking without armour that they left back with their ships and a warhammer only). At least from an artist perspective this variation in size will add a fresh effect. Looking forward to see your viking giants if you plan them (perhaps as champion unit??).
  23. Yes, here they are. (but blendswap is cool, they are non-commercial, actually only blenderartists that put up that server) By adccident I couldn't download the last one (65 MB and bandwidth per month is limited around 150 MB)... the only condition is credit for all of them. Can use it anywhere in your own scenes, renders, 0 A.D. .. can adapt it rework it, change, you know all is allowed as long as it's noncommercial besides that one that is even free to use for commercial purposes according to its CC-ZERO license: viking--veque_extraclothing_vikinghelmet.zip viking--helmet--artist_tomipalombo.zip 13523_viking_props_blend.zip 27058_vikingrar.zip cc-zero-license_vikinghelmet.zip
×
×
  • Create New...