Leaderboard
Popular Content
Showing content with the highest reputation on 2021-03-04 in all areas
-
1) f(x) = (0.6821*x - 0.6818)/(x - 0.6562) 2) f(x) = (0.7012*x - 0.6062)/(x - 0.4146)3 points
-
My concept for slaves: Every unit have a bounty of X slave resource: let's say 10. Civil units could have a greater bounty. Slaves cost X slave resource: if they cost 40, that means that you would be able to train a slave per each 4 units killed. If you kill civil units, the ratio should be lower. Slaves are just plain better on working, but more vulnerable to damage. No life lost to avoid micro. Could had a train limit/ Could be free to train except the "slave resources". The "slave resource" could be exchanged for other resources Aim of the concept A representation of slavery without tedious conversions Raiding and war allows you to improve economy Open diferent strategies: if you choose to stick to citiziens, you are better defended against raids. If you transition to slaves, you're more vulnerable. And you could choose if you train slaves or you sell them. Open space for civ bonus: some civs could have unlimited slave training, some other slaves could have hp bonus/ work rate, some could train special units with the "slave resource", some could train serfs (same cost from slaves, but with citizien stats) No need for extra coding, I think3 points
-
I'm creating this poll to discuss the inclusion of https://code.wildfiregames.com/D2936. Preliminary results show that it can be a significant improvement even on powerful machines. It also points out that corpses might be lingering too long for some reason(That should be fixed separately in the templates) Some team members feel like it's a good idea while others feel like we shouldn't have intermediate values of the option because it makes the game inconsistent. If a player doesn't have a powerful machine, then he should agree to disable entirely some expensive stuff. Some I'm creating this poll to gather the community feedback. corpses.mp4 Options2 points
-
Lol You could maybe have a bit of respect & understanding for literally more than twenty years of work by literally hundreds of people. Yes, multiple parts of the game & the engine are imperfect, flawed, or need improvement. I'd be hard pressed to find an area that could not use improvement, in fact - thus is the nature of these projects. I am getting annoyed by your antics. You do something, ask for feedback, and then when you actually get feedback, you react as if you were persecuted by a shadowy cabal of fake open source people or 'the powers that be' as you wrote. The way I see it, you're not being productive, you're just wasting everybody's time and energy.2 points
-
There are at least three things involved here. Pathfinding is the biggest Then there is rendering (lots of fancy meshes) Then there is the fact that until the blood disappears the units are still there below the ground.2 points
-
That's because I think you are missing a piece here. You looked at shaders, you looked at materials, you looked at the C++ code but I believe you didn't look at the actors and their props using such materials. (Files in binaries/data/mods/public/art/actors/**/*) Those files can use the most advanced material (e.g basic_trans_ao_parallax_spec) with all the defines but also the most simple (default.xml) And the shader slider only decreases quality it doesn't increase it. So if a model uses default.xml it will use that no matter the quality. If you use the fancy material above at 10 it will have all the defines but at 0 it will use basic_trans which has only the transparent define.2 points
-
2 points
-
...not miles, triangles. There is that great wiki page written 22 months ago: https://trac.wildfiregames.com/wiki/ArtPolyCountGuidelines#PolygonCountLimits with recommendations and a link to one artist (a great one) tips. Here are them: Type of object Max triangle count Humanoid bodies 1000 Humanoid props 100 Building props 200 World props 200 Small animal bodies 250 Medium animal bodies 500 Big animal bodies 1000 Trees (per tree trunk with leaves) 1000 Bushes 500 Small buildings 5000 Medium buildings 10000 Big buildings 15000 Wonder 25000 Looking at the game meshes currently (perhaps not exactly in sync with a24b or current revision), I extracted some numbers: name num_faces art/meshes/skeletal/campaigns/mace_soldier 1108.0 art/meshes/skeletal/campaigns/spart_leonidas 1110.0 art/meshes/skeletal/campaigns/alexander 1180.0 art/meshes/skeletal/maur_trader 1202.0 art/meshes/skeletal/trader_cart 1224.0 art/meshes/skeletal/target_marker 1232.0 art/meshes/skeletal/fauna_hippopotamus 1422.0 art/meshes/skeletal/elephant_asian_male 1538.0 art/meshes/skeletal/elephant_african_bush 1602.0 art/meshes/skeletal/elephant_african_baby 1666.0 art/meshes/skeletal/elephant_african_forest 1666.0 art/meshes/skeletal/horse_breed 1666.0 art/meshes/skeletal/horse_barb 1682.0 art/meshes/skeletal/horse 1682.0 art/meshes/skeletal/pony 1682.0 art/meshes/skeletal/horse_tessalian 1682.0 art/meshes/skeletal/horse_lusitano 1682.0 art/meshes/skeletal/horse_celtic 1682.0 art/meshes/skeletal/horse_marwari 1714.0 art/meshes/skeletal/horse_persian 1714.0 art/meshes/skeletal/elephant_asian_armored_03 2248.0 art/meshes/skeletal/camel 2294.0 art/meshes/skeletal/elephant_asian_armored_04 2403.0 art/meshes/skeletal/bear_polar 2528.0 art/meshes/skeletal/bear 2530.0 art/meshes/skeletal/elephant_asian_armored_01 3280.0 art/meshes/skeletal/elephant_asian_armored_02 3444.0 There are more interesting numbers but I won't paste all that here. So: - Do we speak of the same numbers? - Is that expected? - Do the recommendations include the props? - Does it matter? Again, very nice art! Ta-da-da-ta, ta-da-da-ta, ta-da-da-ta, ta-da-da-ta1 point
-
Here it is: float getDiffuseEscapeFractionFromDielectric( float RI ) { float temp = (2.207 * RI) + (RI * RI) - 1.585; return 0.6217 / temp; } float getCosOfAvgReReflectionAngle( float RI ) { return (0.7012 * RI - 0.6062) / (RI - 0.4146); } void RealFresnel ( vec3 NdotL, vec3 IOR_RGB, out vec3 Frefl, inout vec3 sin_t, inout vec3 cos_t ) { vec3 Z2 = WHITE / IOR_RGB; // Assumes n1 = 1 thus Z1 = 1. vec3 cos_i = NdotL; // assignnment for name's sake vec3 sin_i = sqrt( WHITE - cos_i*cos_i ); sin_t = min(WHITE, sin_i * Z2); // Outputs sin(refraction angle). cos_t = sqrt( WHITE - sin_t*sin_t ); // Outputs cos(refraction angle). vec3 Rs = (Z2*cos_i-cos_t) / (Z2*cos_i+cos_t); vec3 Rp = (Z2*cos_t-cos_i) / (Z2*cos_t+cos_i); Frefl = mix( Rs*Rs, Rp*Rp, 0.5 ); // Outputs reflectivity. } void DielectricOverDiffuse ( vec3 ray_A, vec3 normal, vec3 MatDiffuseRGB, vec3 RefractiveIndex, vec3 AmbientRGBlight, out vec3 specularFactorRGB, out vec3 diffuseFactorRGB ) { //Getting ready ... float NdotL = max( 0.0, dot( ray_A, normal ) ); vec3 ReflectivityRGB; vec3 sinRefrAngle; vec3 cosRefrAngle; RealFresnel( vec3(NdotL), RefractiveIndex, ReflectivityRGB, sinRefrAngle, cosRefrAngle ); float EscapeFraction = getDiffuseEscapeFractionFromDielectric( RefractiveIndex ); float cosAvgReflAngle = getCosOfAvgReReflectionAngle( RefractiveIndex ); //First reflection (ray_B): specularFactorRGB = ReflectivityRGB; //straight output //First refraction and diffuse bounce vec3 temp3 = (WHITE-ReflectivityRGB) * cosRefrAngle; //Adding ambient light here: temp3 += (vec3(0.5(EscapeFraction+1.0))*AmbientRGBlight); //Multiplying by the diffuse color temp3 *= MatDiffuseRGB; //And computing the first diffuse escape: temp3 *= EscapeFraction; //And now the great simplification for infinite bounces: vec3 r = vec3((1.0-EscapeFraction) * cosAvgReflAngle) * MatDiffuseRGB; diffuseFactorRGB = temp3 / (WHITE-r); } Next post I will try to combine specular and diffuse into one function. I usually keep them separate, but the problem is that in the case of a two-layer material many of the calculations are common to specular and diffuse. And as you saw, we computed outgoing Fresnel spec, even though this was supposed to be the diffuse routine. There's another advantage in combining diffuse and specular in one function: I'm not sure how good the compiler is at optimizing a shader on load, but it can't hurt to pre-optimize by interspersing specular and diffuse calculations to reduce dependencies. EDIT: I'm having second thoughts about adding ambient in this routine, though. In a multiple-light situation, where this routine would be called for each light, doing so would add ambient light multiple times. Better leave it out. EDIT: OTOH, the fact that ambient light bounces multiple times too, using the same instructions instead of repeating them, is a good thing. In the case of multiple lights, a user of this shader could add ambient to the first call and pass BLACK as argument for ambient light in subsequent calls. I'll postpone this decision for now.1 point
-
In the repeating cycle, LightEscapingRGB = ExplodingRGBlight * EscapeFraction; diffuseFactorRGBacc += LightEscapingRGB; LightIncomingRGB = ExplodingRGBlight - LightEscapingRGB; ExplodingRGBlight = LightIncoming * cosAvgReflAngle * MatDiffuseRGB; LightEscapingRGB = ExplodingRGBlight * EscapeFraction; //..... all that matters to us is light escaping. The ratio of light escaping's for subsequent cycles is constant; we just have to work out what it is, now. The second line is just output to an accumulator. The third line is a bit of a problem, as it relies on the previous cycle's ExplodingLight and LightEscaping to obtain light coming back in for another diffuse bounce. However, we can also compute incoming light from LightEscaping. How? LightEscaping is previous Exploding times a constant for this call, EscapeFraction. LightIncoming is previous Exploding times (1.0-EscapeFraction). So LightIncoming = ((1.0 - EscapeFraction)/EscapeFraction)*LightEscaping Yes? Then we have the next Exploding bounce = LightIncoming * cosAvgReflAngle * MatDiffuseRGB. And finally the next escape: LightEscaping = Exploding * EscapeFraction. Putting it all together: NextEscape = ((1.0-EscapeFraction)/EscapeFraction)*ThisEscape*cosAvgReflAngle*MatDiffuseRGB*EscapeFraction. But now, if EscapeFraction is a constant, then (1-EscapeFraction)/EscapeFraction is a constant too. Furthermore, far to the right we are multiplying by EscapeFraction, so divide and multiply simplify out. So, let DontEscapeFraction = 1.0-EscapeFraction, and we can write, NextEscape = DontEscapeFraction*ThisEscape*cosAvgReflAngle*MatDiffuseRGB So, NextEscape/ThisEscape = DontEscapeFraction*cosAvgReflAngle*MatDiffuseRGB And so we have that after we calculate light escaping from the first diffuse bounce, call it FirstDiffuse, the subsequent escapes will be, float r = (1.0-EscapeFraction)*cosAvgReflAngle*MatDiffuseRGB; TotalDiffuse = FirstDiffuse * (1 + r + r^2 + r^3 + ... ) = FirstDiffuse * (1/(1-r)) Next post I write the simplified code. EDIT: Some astute reader might ask "Haven't you forgot specular ambient light? This is one HUGE mistake often made by shader hackers... Specularly reflected ambient light ***IS*** the environment mapping. Environment mapping accounts for 100% of specularly reflected ambient light. In fact, ambient light should not exist in a shader that has a sky-box, as readings of ambient light can be taken from the sky-box itself, along the object's normal (or bent normal). Ambient light is an average of the environment; not something that in any way "adds to" the environment.1 point
-
In the picture you can see the renderer performance profiling for this feature. The graphs are showing the frametime. Lower frametime means higher fps. Btw. sorry for the offset on the x-axis. The red graph representatives the current vanilla version. The green shows the limitation to max 100 corpes, while the blue is showing the limitation to 50 corpses. As you see the start doesn't differ that much. At this time nearly 500 units starts fighting. In the following more and more units die and corpses are generated. As you see, the blue and green graphs are falling, because the amount of corpses are bigger now than 50/100, so they get removed. In parallel the amount of fighting units decreases, which leads to a lower workload. In the red graph, no corpse is removed, the workload doesn't decrease. For my personal experience I can tell, that a limitation of 100 is a good compromise, as you wont notice the removal of the corpses that much.1 point
-
Okay, this is the whole thing put together now: const vec3 WHITE = vec3(1.0); const vec3 BLACK = vec3(0.0); float getDiffuseEscapeFractionFromDielectric( float RI ) { float temp = (2.207 * RI) + (RI * RI) - 1.585; return 0.6217 / temp; } float getCosOfAvgReReflectionAngle( float RI ) { return (0.7012 * RI - 0.6062) / (RI - 0.4146); } void RealFresnel( vec3 NdotL, vec3 IOR_RGB, out vec3 Frefl, inout vec3 sin_t, inout vec3 cos_t ) { vec3 Z2 = WHITE / IOR_RGB; // Assumes n1 = 1 thus Z1 = 1. vec3 cos_i = NdotL; // assignnment for name's sake vec3 sin_i = sqrt( WHITE - cos_i*cos_i ); sin_t = min(WHITE, sin_i * Z2); // Outputs sin(refraction angle). cos_t = sqrt( WHITE - sin_t*sin_t ); // Outputs cos(refraction angle). vec3 Rs = (Z2*cos_i-cos_t) / (Z2*cos_i+cos_t); vec3 Rp = (Z2*cos_t-cos_i) / (Z2*cos_t+cos_i); Frefl = mix( Rs*Rs, Rp*Rp, 0.5 ); // Outputs reflectivity. } //The saga, from the beginning (from sun-ray): void saga_of_a_photon( vec3 ray_A, vec3 normal, vec3 MatDiffuseRGB, vec3 RefractiveIndex, vec3 AmbientRGBlight, out vec3 specularFactorRGB, out vec3 diffuseFactorRGB ) { //Getting ready ... float NdotL = max( 0.0, dot( ray_A, normal ) ); vec3 ReflectivityRGB; vec3 sinRefrAngle; vec3 cosRefrAngle; RealFresnel( vec3(NdotL), RefractiveIndex, Reflectivity, sinRefrAngle, cosRefrAngle ); float EscapeFraction = getDiffuseEscapeFractionFromDielectric( RefractiveIndex ); float cosAvgReflAngle = getCosOfAvgReReflectionAngle( RefractiveIndex ); vec3 diffuseFactorRGBacc = BLACK; //repeating cycle vars: vec3 ExplodingRGBlight vec3 LightEscapingRGB; vec3 LightIncomingRGB; //First reflection (ray_B): specularFactorRGB = Reflectivity; //First refraction (ray_C): LightIncomingRGB = WHITE - Reflectivity; //First diffuse bounce vec3 ExplodingRGBlight = LightIncoming * cosRefrAngle; //Adding ambient light here: ExplodingRGBlight += (vec3(0.5(EscapeFraction+1.0))*AmbientRGBlight); ExplodingRGBlight *= MatDiffuseRGB; //<Sound of trumpets here.> //First iteration of our repeating cycle: LightEscapingRGB = ExplodingRGBlight * EscapeFraction; diffuseFactorRGBacc += LightEscapingRGB; LightIncomingRGB = ExplodingRGBlight - LightEscapingRGB; ExplodingRGBlight = LightIncoming * cosAvgReflAngle * MatDiffuseRGB; //Second iteration of our repeating cycle: LightEscapingRGB = ExplodingRGBlight * EscapeFraction; diffuseFactorRGBacc += LightEscapingRGB; LightIncomingRGB = ExplodingRGBlight - LightEscapingRGB; ExplodingRGBlight = LightIncoming * cosAvgReflAngle * MatDiffuseRGB; //.............................................. // repeat infinite times; then ... //.............................................. diffuseFactorRGB = diffuseFactorRGBacc; } Note that I added ambient light there; that's because ambient light follows the same multiple bounce rule as the multi-bounce cycle of diffuse lighting. And the choice of 0.5*(EscapeFraction+1.0) as a factor for the ambient light, it is a bit of a gut feeling... You would think the cone of escape is the cone of ambient light that gets in there. By that reasoning you would use EscapeFraction as the factor. However, light refracts from 180 degrees all around INTO that cone; so by this reasoning you'd say the factor should be 1.0. However, not all of the light refracts in; some of it reflects out. So I figured somewhere between EscapeFraction and 1.0 lies the true answer. Next I'm going to try to simplify the repeating cycle to a single factor.1 point
-
Buenas a todos, desconozco si el tema de la moneda de Publio Carisio y el peculiar yelmo con facial está zanjado ya; pero bueno, me gustarÃa aportar algunas fuentes de información por si fuesen de utilidad. En este artÃculo académico sobre numismática (especialmente sobre la ceca de Emérita Augusta) se relaciona (en la página 37) ese facial como algo eminentemente romano: Emerita Augusta y sus imágenes monetales I - Dialnet (unirioja.es) En el artÃculo del siguiente blog (llevado por dos arqueólogos), se ahonda más en el tema; explicando el verdadero origen de la moneda (es cierto que Publio Carisio era gobernador de la Lusitania, pero en realidad la moneda está relacionada con la toma de Lancia y la derrota de los últimos reductos de resistencia astur-cántabra en el contexto de esta conocida guerra; por lo tanto, la panoplia mostrada se asociarÃa más bien con estos; o bien con los vencedores, según lo planteado en el anterior artÃculo) y dando una hipótesis interpretativa diferente (lo relacionan con los cascos hispano-calcÃdicos, propios de los celtÃberos): Proyecto Mauranus: Casco, hacha y puñal: la panoplia de un jefe astur en una moneda de Carisio Intentaré buscar más al respecto si fuese necesario, espero que sea de utilidad. Desgraciadamente, no he sido capaz de encontrar nada en inglés, sólo en español. Un saludo.1 point
-
1 point
-
@nani Any chance you could do me one more matlab favor? This is the angle of incidence after every diffuse bounce and internal reflection, as a function of refractive index: refractive cos of average index reflect angle ========== =========== 1.0 0.0000 1.5 0.4115 2.0 0.5023 2.5 0.5494 3.0 0.5786 3.5 0.5985 4.0 0.6132 4.5 0.6242 5.0 0.6329 Thanks in advance.1 point
-
First of all huge thank you @Stan` for working on this. Ideal situation would be that we would have switches for on/off on Blood, corpses, all kinds of projectiles with additional possibility to specify amount either by slider with steps or field for specifying amount. I believe that performance wise blood/gore , corpses, could also be projectiles are performance heavy especially there is a lot of them. The other things witch are performance heavy in renderer is when you are viewing bodies of water or packs of trees as compered to wasteland or some other low forest, water type thing.1 point
-
1366x768 as minimum supported resolution for the vanilla version of 0 A.D. sounds most reasonable for me. It also shares the same aspect ratio (16:9) like the de-facto standard 1080p which allows the same proportions for GUI elements when scaling. However, when talking about GUI, resolutions are only one part. What I miss in 0 A.D. is something more immersive and organic/natural than the current (flexible, but kind of technical for a historical game) one... Note that the following examples also use a minimum of text, numbers and/or signs which every good gui should aim for IMO (in any case make extensive texts optional, as part of an overlay and/or in-game encyclopedia). I really liked the old settlers games in this regard, where the gui featured marble surfaces and small decorative plants: or Stronghold Crusader1 point
-
1 point
-
Is this the reason why combat demo lags so much, even after the corpses have completely "sunk"? Because they're actually still there? Forgive me I do not understand how it works on a technical level.1 point
-
1 point
-
And I can't understand, given I have my shader effects slider maxed out, I cannot understand why some variables declared inside #IF USE_SPECULAR are not getting defined, and such. I spend hours puzzling over each of these leg-traps; and if I succeed at solving them it is usually without understanding what I did to solve it. I'm falling into a bear-trap at every step, and the work takes forever like this.1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
Helots in Sparta are different than Athenians slave, IIRC. They are state-owned and also join war as missile units, while Athenian slave were personal property and never enlisted as soldier. My idea is that slave should be limited to one per citizen1 point
-
1 point
-
1 point
-
Yes, it is the most functional that has been achieved so far. Even better than the concept I had initially come up with. -The slave appears from the second phase. -That they must have the skill of "forced labor" and that it takes away his life, Especially in mining work. -and that they are worth less than the workers (cost).1 point
-
I honestly like the Delenda Est mod approach with citizen units and slave units both with male and female variation. With slave units being better at hard work.1 point
-
whats wrong with my comment? restricted balance forum makes sense anyway. and why do you blame me for it?? LOL1 point
-
Very cool to know that there are people working based on my mod.1 point
-
A rather old RTS and not so easy to run these days, but Nemesis of the Roman Empire, also known as Celtic Kings: The Punic Wars ("TPW"), by Haemimont Games (still around) was one of my favorite games growing up! It's not the most historically accurate in retrospect (mixing Imperial and Republican Roman eras), but still a lot of fun. Came out around 2004 I believe, or around 0 A.D.'s early days. I put together a rather mediocre playthrough with commentary (haven't played in nearly a decade so excuse my rust and poor placement on map!): Interestingly it has both a time period overlap and several core mechanic overlaps with 0 A.D.: Capture of structures is prioritized over destruction (in TPW/NRE, buildings cannot be destroyed at all anyway; gates can be broken down though). Units have levels and gain experience through combat or stationing in a building which gives them experience trickle. Each unit has its own strength, xp, and armor ratings. Units garrisoned in a settlement/structure will fire from its defenses. Each civilization is supposed to feel totally unique, and it definitely does this very well in TPW. Wild animals roam around, including hostiles. But TPW also goes off careening in a totally different direction sometimes: Resources are localized, not unified. Each settlement or structure has its own resource levels, which are sent around the map using mules which carry up to 1000 food or gold each. You can easily set up repeating routes which will run whenever the value reaches over a threshold (100 units of resource). Two-resource economy: food and gold. Food is produced in the rural villages, gold in settlements. The number of population in each controls the rate of production. When you train units, you take pop out of the settlement, meaning gold production drops. You can add more population by sending it from villages, which reduces food production. There is no troop limit, but you can reach a point where you cannot support your army's food consumption, if you do not have enough villages or they are captured. Likewise, if you run too low in population, you will not generate enough gold to train more troops or have enough pop to raise them. Units require food to live and carry a small supply, care must be taken to supply food or an army will starve and become easy prey. You can manually train mules to carry food and attach them to the army. Rather than just armor and damage, units also have a bonus ability, such as dodging the first strike, reflecting damage back to their attacker, each subsequent hit gives more experience or ignores a greater portion of the enemies' armor, and causing a % of the enemy health as bonus damage. This sets up complex relationships much deeper than Rock-Paper-Scissors of traditional RTS, where certain combined-arms relationships are extremely effective (archers knock off more health on full-health, high-health enemies, making them perfect to strike an enemy first so infantry can finish off). The actual damage of a unit is a range (e.g. 18-48), the exact value being determined by the difference in level between the combatant and their enemy. Thus, even heavy units can be overcome by a highly-trained weaker unit. There are no mobile siege units in the game. Instead, 1-10 units can build a stationary siege weapon (ballista, catapult, siege tower) on the map in any location. The weapon then attempts to fire at the target, at a rate set by how many units are stationed inside. Such weapons are very vulnerable to a sally-out, but not vulnerable to fire from towers. Only archers and siege weapons can directly damage buildings. Damage is not used to destroy the building, but rather harm and eventually kill the enemies stationed inside. Once the units inside have been pacified - or they have fled - the army will then attempt to capture the structure. Rather than units being freely formed into formations, they must be 'bonded' to a Hero who will lead them and enforce their formation. The Hero also gives bonus levels and can apply modifiers in battle. Without bonding to a hero, units will fight okay, but they will just sort of wander around without any formation. Heroes are limited to 50 units. Around the map are various special ruins and structures which give benefits. E.g. Ruins contain powerful artifacts which only high level heroes can pick up and use, which can cause damage or heal allies or grant bonus damage/health. Healing wells will heal passing or nearby units regardless of side. Capturable forts, trade outposts, stone outposts, and training outposts each provide benefits and lots of LOS to their owner. Forts slowly convert stationed villagers into macemen, trade outposts convert food into gold, stone outposts gain 8 gold/s interest when at least 2000 gold is placed inside of it, and training outposts behave like barracks in 0 A.D. and give experience trickle to units stationed inside. The cheesiest voice acting ever recorded. Some stuff I really like from TPW I wish was in more RTS: Spacebar brings up FULL SCREEN "mini"-map from which you can issue orders even. Makes the logistics and overview of the battlefield much easier. When entering combat, formations will sort of 'merge' into a battle, finding enemies to fight like in a real melee, and try to push beyond just the closest enemy. Iberian priestesses don't heal but instead gift units experience up to a certain level when a tech is researched. Units in other cultures gain experience by having mock-combat with their buddies. Priests help them to heal while this goes on, though if an enemy attacks it can be disastrous!1 point
-
Preliminary results for our statistics: 800x600: 0.31% 1024x768: 0.88% 1280x720: 2.28% 1280x800: 2.11% 1280x1024: 1.80% 1360x768: 1.49% 1366x768: 21.68% 1440x900: 4.52% 1536x864: 4.43% 1600x900: 5.05% 1680x1050: 2.68% 1792x1120: 0.39% 1920x1080: 37.87% 1920x1200: 1.67% 2048x1152: 0.44% 2560x1080: 0.79% 2560x1440: 5.70% 3440x1440: 0.92% 3840x2160: 1.40% Other: 2.15%1 point
-
Yeah, I don't understand the argument against them having this ability. If it looks "weird" for an elephant to do this on their own, then just add a driver?1 point
-
You misunderstood what Vulkan is. Vulkan is a new framework that is an alternative to OpenGL (* important to note it's not meant to be a replacement). Rather than the monolithic state machine OpenGL is, Vulkan implements a completely different pattern where you can squeeze out even more performance since Vulkan doesn't suffer from most of the overheads OpenGL does. I noticed that drawcalls in Vulkan are pretty much negligible overhead whereas in OGL, it's a nightmare. Since 0AD does not have instanced drawing, switching to Vulkan will actually help a lot. Then again, who's got the time to write a new rendering backend.1 point
-
Elephant Archers are no real citizens, they are rather champions. And in A24 they are also a spam unit, this brings the following new unit type into the game: Spampions!1 point
-
@DanW58 Honestly, at this moment a lot of what you post is overwhelming for a lot of us. You go into a lot of (exquisite) detail that will (eventually) be very useful if you continue on your course and improve the renderer as you plan. I like your "fall back" ideas so that we need fewer materials and map types "default" lower to a 1 texel image. That will be very helpful to us modders and artists, your documentation. Please continue and I encourage you to try the IRC channel and join other discussions regarding other aspects of the game. First and foremost, recognize that in this development environment it is a marathon, not a sprint. Personally, I have been involved with the development of this game in one way or another since 2005. I know this isn't the technical feedback you want, but i hope it helps regardless.1 point
-
Delenda Est, correct? I will be honest in that I am developing the mod for my selfish aims---developing the game to my own liking, and then hoping other players and fans enjoy what I come up with. So far this has been relatively successful, but I agree that there are a few blind spots, such as the UI. My plan is to continue on my current course and once the game reaches beta or a more complete state focus more on compatibility issues such as what you bring up.1 point
-
The Italic Embassy of Carthage, shortly before the collapse: https://www.pexels.com/photo/low-angle-view-of-tower-against-blue-sky-286746/1 point
-
1 point
-
Dear @user1, my username is quierohasercaca and I played a game against mbr1305 . After I was wining he quited the game without resigning. I did get rejoin and he quited again. mbr1305 is a known quiter. its not the first time. Cheers, commands.txt1 point
-
Dear @user1, my username is quierohasercaca and I played a game against Titiboi92 . After I was wining he quited the game without resigning. I did get rejoin and he quited again. Titiboi92 is a known quiter. its not the first time. Cheers, commands.txt1 point
-
Hi! 31.01.2021 23:20 (GMT+2) Raffut1969 ended without resigning a rated 1v1 game vs me (stormwalk) which he hosted and was about to lose, an d left. metadata.json commands.txt1 point
-
Hi all, I've made a new map that is actually a remake from a map in Red Alert 2: Yuri's revenge. I've played this map quite alot back then because it was definitely one of the harder maps to play out there. It felt as if the AI was extra aggressive on that map in Red Alert. I really like the layout because you can do pretty much any strategy you like with it. Anyway, here a quick comparison: This map will be included in my new mod that includes player position randomnization and makes sure that ridges cannot be abused by ships by unloading units over them. I've done my own take on the iber defense on the start of the game which can be seen in the screenshots below. Download my mod here New mod: Grapejuice - Game Modification - Wildfire Games Community Forums1 point
-
Hello, mbr1305 quit without resigning Vs SuperSpartacus Thankscommands.txt1 point
-
1 point
-
@user1 My name: Feilongbay Enemy: mbr1305 commands.txt1 point
-
Hi. My name: Daniel_Kinq Enemy: Rafut1969. He just min ago broke my hearth. I was wining and he quit without saying nothing ;/. Such a looser ;p. @user1 commands.txt metadata.json1 point
-
It depends on your camera position. If you're not looking at a battle then pathfinder is more expensive.0 points