Jump to content


Community Members
  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by agentx

  1. Leper, you mean a click on the minimap to indicate a position? Sounds great. And a bot let it blink/flare/star? > communicate with bots using a menu like Aoe 3 What commands are offered there?
  2. > "Can I have <NUMBER> <RESOURCE>?" > "Help me attack <PLAYER>?" > "Help me!" > "Get off my land!" That's a great start to define a human-bot communication protocol. I think implementation is step 2. If the protocol is well thought out all I need to know as a player is which bot understands which commands. This even may go a step further as RTS games all share a vocabulary with entries like: units, area, resources, buildings, time, etc. I'm still looking for an idea to talk about a specific location. Coordinates, North-South all hardly work.
  3. There are currently two interesting debates going on at HackerNews about JS libs providing functions faster than native JS functions. The trick is to not implement all edge cases the standard expects. E. g. if you loop over an array and know it has no holes you can drop that check. Now at http://jsperf.com/fast-vs-lodash a test case appeared showing fast.js vs. lowdash.js vs. native giving me very mixed results with FF 29 and FF later. A few of the test cases shouldn't be used at all if one wants to go very fast, like forEach vs a simple while loop. But on the other hand fast.js has an indexOf which is surprisingly 15 times faster than the native. Since I tend to implement number crunching parts of a program in small, optimized and inline-able functions, I found some results an eye-opener. And it made clear the JS pathfinder has room for optimizations. Yves, if you read this, it might be a good idea to stick a while longer with SM29.
  4. That sounds depressing, what can I do to cheer up the mood?
  5. Is there a way to have turning costs for ships, so they need time to jibe? May be depending on size?
  6. > In layman's terms, what exactly did Kay fix anyway? It's not a fix, it is an improvement. It caches results and prevents superfluous recalculation. Wraitii, any success with this turbo switch?
  7. Great idea! That's fighting bugs literally. What about day one of feature freeze?
  8. > This isn't about who's right or wrong, this is about discussing how to make 0 AD a good game. Full agreement. However balance is based on numbers. And I'd prefer discussing how to achieve better numbers, without making loopholes somewhere else. You seem to have a different game experience than me. Example: switching from Aegis to Petra was chocking to me, before I could look around there were towers and fortresses all over the place. And I was like @#$%. So I took some time, changed my tactics and still win. Actually now I feel like a better player, because my repertoire of tactics is much better and it was refreshing, too. Just by switching the AI it was a completely different game. That tells me something about the richness of 0AD. I don't want to miss that and I think towers are great just the way they are, as long as they do not start moving around. And logically, you can't expect to have only one master tactic to blew all opponents from the map. At least not in a game where players have incomplete information. The clue is to have a tactic the opponent doesn't expect. At the end this is not chess.
  9. I think, balance is one of the most important content the game provides. An unbalanced game can completely destroy game experience. However discussing this has a subjective component: If player lacks a specific tactic the game can just appear unbalanced. And of course any opponent aware of missing tactics exploits that. Therefore a discussion can only be fruitful if everything is on the table and known to everybody participating. So, IMHO, the real question is: How could balance be presented by numbers so that imbalance gets visible in an objective way?
  10. > you can't do @#$% you can claim the territory upfront or destroy the foundation.
  11. > Players should use a standing army to do their military work, not buildings. see screen shot. Well, military work also includes claiming and guarding territory. I mean, isn't that the whole purpose of arming - to secure or expand your soil? In this sense a tower is just a strong military unit which doesn't run away on attack. Build some siege and level them.
  12. The launcher can now deal with xdotool on Linux. xdotool can move windows, sends keystrokes and mouse clicks, works quite reliable. Also I found glc allows to capture OpenGL windows. Launcher.py is now at github. Here a video showing why this toolchain was needed. It shows Hannibal launching two miner groups and a scout. At tick #10 it switches to SimRate 20. It took some time to make the video caps running, so here the script to save anybody else interested some headache: ## launch 0 A.D. per python script with autostart captureglc-capture --start --fps=30 --resize=1.0 --disable-audio --out=pyro.glc ./launcher.py## convert captured byte stream into mp4glc-play pyro.glc -o - -y 1 | avconv -i - -an -y pyro.mp4## remove 15 secs with black frames at startavconv -i pyro.mp4 -codec copy -ss 15 -y pyro01.mp4## move mp4 header from end to start for better streamingqt-faststart pyro01.mp4 pyro02.mp4## checkmplayer pyro02.mp4
  13. Can't wait, I'm already checking window remote control tools...
  14. No, it's not for game testing, it's for bot testing. I need a possibility to tryout different strategies and don't have the time to actually play them interactively. Imagine it as a very little step towards introducing bots based on Monte Carlo methods or genetic algorithms. There is of course some overlapping - no offense meant here. Engine.SetSimRate(20), anyone?
  15. Wow, without that recursive stuff the planner is down to 0.16 msecs and there is still some room for improvement. That teaches me something about JavaScript. Now I can really go and make it search for the best male/female ratio to achieve city phase fast by checking all possible alternatives or whatever optimization problem come up. Achievement unlocked! grr, profiler error.
  16. > My rig doesn't (i5-3230M @ 2.6Ghz, 6 GB RAM, latest FF) Mmmh, I have a CoreDuo @ 3GHZ and switched now from WXP to Linux and the average dropped from 30 to 12 msecs (FF31). Is 0AD on Linux considered faster?
  17. Here is a Python 0AD launcher which intercepts stdout lines and reacts to certain command. The commands start with hash bang space '#! '. They can be placed everywhere (I think) within JS code. Example: print("#! terminate"); // terminates 0ADCurrently it works with Python 2.6.7 (Ubuntu 14.04 default) and gnome-terminal and probably a lot of other configurations. So far it understands 3 commands: print("#! write Full/File/Path") // opens a file to redirect outputprint("#! close") // closes this fileprint("#! terminate") // terminates 0ADprint("#! clear"); // clears terminal, not yet workingIt's already in use to export the triple store as JSON file. Next steps will be output to multiple files and overwrite files within a bot directory e.g. to relaunch with a different config and somehow marry it with the charts mod. Most pressing question now is: How can I call 'Engine.SetSimRate(20)' from JS or the launcher? I'm not exactly an expert in system programming with Python, but the links of the copy&pasted code are included. Feel free to propose more commands, I'll check everything. launcher.py.zip
  18. Can't help with C++, not in this life. But I understand your concern. A GUI Object that works like a HTML canvas, with lines, paths, rectangles would be great. Here is an implementation for node.js backed by Cairo: https://github.com/LearnBoost/node-canvas. There are probably others.
  19. No prob with public tracker. What is a nice GUI Object, examples...? JS, please!
  20. > Maybe your object can also be send, if it's not too big. Great idea! 120 dots * 12 metrics * 64bit jsnumbers * x players = 92k max + whatever makes it an object. All needed is convincing players to install it and allow sending data. Well, it would improve the bots a lot and it opens door to visualize individual learning curves or something similar.
  21. I think, there should be a method to find out these numbers upfront by reasoning or stochastically and backed by stats. Otherwise each player simply proposes numbers based on his very own experience and tactics leading to endless discussions or a GUI to enter your favorites. What would be an approach to have an objective indicator? PS: Did I mention there is a ticket proposing headless testing to get numbers like this? PPS: Any useful data collected at the lobby?
  22. Mimo, if you want to propose a strength indicator based on female = 0, champions = 2, and heros = 5, I'd like to ask for details from where you got those numbers?
  23. I think indexes like "defense strength" and "attack strength" are a bit opinionated, although I understand the use case. It might happen a player looses despite the fact the opponent had only half of the strength. Let's say this first set of charts is about building a working economy. Making the charts revealing why a game was lost requires more and probably should take balances into account. What might work as a first approach is relative health, reminding the player not to send half dead warriors into battle and accumulated attack strength separated by infantry and cavalry. Is there somewhere a doc explaining the math of hitpoints, pierce, crush, hack, etc.
  24. > only refresh it when loading this screen unless you want to see the exploration Not sure I understand, the screen reuses the dots, so switching metrics refreshes/moves the dots. The data itself is only processed once. Difficulty was default.
  • Create New...