Jump to content

quantumstate

WFG Retired
  • Posts

    1.146
  • Joined

  • Last visited

  • Days Won

    8

Everything posted by quantumstate

  1. That looks nice, I think it could be slightly more high poly, maybe around 500.
  2. The game loaded from a multiplayer save without any errors. Opening the developer overlay failed with an error about the players array. In any case multiplayer saving should be disabled in the normal menu and there would be a hidden dev option to save for debug purposes.
  3. That is a very nice video, the commentary is good, it really helps to have someone talking who knows the game well, unlike most of the other videos where people are just trying it out. Some comments about it are that I think it is paced slightly too slowly, though perhaps that is because I already know about every feature. Also not setting rally points onto resources upsets me .
  4. In case anyone else finds this thread the irc channel is ​#0ad on QuakeNet IRC.
  5. This looks nice, it reminds me of the AoE2 Michi random maps. These had trees splitting the players though, so you had to chop your way through or get siege onagers. Also along similar lines but less extreme are the Starcraft 2 beginners maps which have destructible rocks blocking the entrance to your base. I like the idea of having a few of these maps which work nicely as anti rush beginners maps or just for people to have fun booming.
  6. Currently this isn't possible. The save button should be disabled until we support this to avoid confusing more people.
  7. I have added Josh, Alpha123 and LordGood's name. I didn't add Dashinvaine's name, could someone ask him directly if he would like his name added?
  8. Being careful with this would be a good idea, but I think you also need to be careful wirth your analysis. Your usage of stack seems to be different to how I understand it. In C++ the stack is where local variables get allocated, so if you enter a function the arguments and local variables get pushed onto the stack, then when the function finishes everything is popped off the stack. Fragmenting the stack is impossible, the normal way to overflow the stack is to use too many recursive functions. You seem to be using the word stack for the heap, which is where new and malloc put things they create. The heap can get fragmented as you say. Please could you go through and correct the terminology to match standard C++ terms, otherwise it is quite confusing to read (especially since with containers you allocate the container on the stack but the constructor can allocate memory from the heap for the container to use). Also you mention that you can see the effect of fragmentation in the profiler, have you got this information somewhere (I haven't been keeping up with everything recently). Your example of computeShortPath causing fragmentation seems very surprising, since the allocation is always the same size and is very localised the allocated blocks should be reused. I would have thought that fragmentation will occur when you have a mixture of large and small allocations happening of varying sizes, a classic bad case is a container which is getting items added to it and gradually grows, so keeps asking for larger allocations.
  9. Corrals work completely differently at the moment to how they are intended to. Basically you will 'garrison' animals in them to generate a slow but steady food income.
  10. This is planned, I think the term skirmishes has been used. It requires some support in the editor, so you would place a special entity which gets replaces by the correct civ's starting units/buildings when the game is created.
  11. We do not yet have proper translation support. Just modifying the files directly makes it hard to maintain, error prone and means there is a separate distribution for each language. We do not support translation yet.
  12. This topic doesn't seem to be going anywhere desirable, I have locked it for now.
  13. The zip than the game uses does not compress the files within it, so when you recreate it with compression it will be smaller. It should still work after you remake the public.zip I think, are you sure you kept the same folder layout? You don't actually need to use a zip, the game can read files from a directory, so just have a public directory instead of the zip.
  14. There is a stalled pathfinder improvement patch which uses JPS. http://trac.wildfiregames.com/ticket/1756 Edit: Yves has already pointed to a forum thread about this same thing.
  15. This is not true. Both steps which I mentioned are slow run after an exact distance check has been done. Basically how it works now is that it uses the spatial data structure to get the nearby units, then it filters by the euclidean distance to get precisely the units within range. After this has been done it has a slow de-duplicate step and the slow access to more extensive entity data which it uses to apply non distance based filtering. There are lots of entities because a lot of range queries run with the unit los range which is large. Doom 3 uses a server-client networking model, so they aren't running a full identical simulation on each client. An fps has far less state to synchronise than an RTS. Our current solution works well, it seems to be the standard way to do networking in RTS games. The Blizzard games, AoE, and Supreme Commander work in the same way. I'm fairly sure that fp:precise is not safe across different compilers and platforms. We are going to need significant changes to our build systems to make this work properly, this will probably cause headaches with linux distros who want to use normal packaging systems etc. To me it seems easier to jstu try and optimise our existing use of fixed point, integer arithmetic might be able to replace some bits.
  16. The game has to suffer a 20% performance loss because we don't want random out of sync errors popping up. You say most games use a pattern like this, do you have sources for that statement? This article http://gafferongames.com/networking-for-game-programmers/floating-point-determinism/ has numerous quotes saying that they used the same compiler or replays and multiplayer would not work. The hashing is irrelevant, the little differences will sometimes cause a genuine divergence in the game state. A single multiplayer game could easily have more than a billion floating point operations happening.
  17. I already explained that rounding doesn't work. One CPU will give 1.49999, they other will give 1.5000, one player will get 1, the other will get 2, they will go out of sync. Rounding simply decreases the probability of an out of sync problem. Unless you make every algorithm that uses floats avoid every rounding boundary you cannot solve this. So using fixed is a good design decision because it makes keeping the game in sync manageable.
  18. Very similar isn't good enough. We need exactly the same result or a player will go out of sync. You can't rely on rounding because you will occasionally get a value right on the boundary so it rounds differently on each system. Very carefully designed code might be able to force stability but it would be really hard to do, and it needs to be done all over the simulation so is basically infeasible.
  19. From what I have read floats will not be identical between systems once you start using different compilers and different architectures. Do you know about the stalled pathfinder rewrite at #1756? I had a look at this. The naive subdivision isn't what causes the performance hit, de-duplicating results which are across region boundaries and using an inefficient set for lookup are much bigger factors. Unification like you say might be a good idea though.
  20. These look pretty nice . For the dialog previews could you use a more realistic background with a game screenshot for a more realistic preview.
  21. I believe that is a screenshot of mount and blade.
  22. I added your real name to the list. Contributors.txt says I can't recall if you have submitted any code to the "source" directory. The list from this thread is the more important comprehensive one.
  23. From a technical point of view the games are very different. You would be better off making a skyrim clone then importing the 0 A.D. models and writing a map importer. So this is way outside the scope of 0 A.D. and isn't going to happen.
  24. The code you posted above will work correctly when an angle of 0 means in the positive x direction and and increasing angle moves the unit anti clockwise. Javascript uses radians for trig functions, if you prefer working in degrees just use Math.sin(angle * Math.PI / 180). The game coords have x pointing across the map to the right and z pointing up the map (based on the default view angle). This is about as much as I can help with the information you have given. Generally it is better to work with vectors rather than angles, this gives better performing code and is often clearer if you have a decent understanding of vector maths.
×
×
  • Create New...