Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 2014-03-14 in all areas

  1. I have two proposals regarding A* in terrain-analysis-pathfinder.js: Inside the main while loop, values should not get fetched via 'this.' because there is an existence test behind and the ternary (? performs better than 'if/then' if branching is not intended. Estimated improvement >50%. I haven't seen all maps, maybe a bi-directional A* would help too.
    2 points
  2. Some probably know Jenkins already. It's an Open Source tool for automated building and testing. The idea is to notice bugs as soon as possible after they are introduced. Let's compare this situation with and without Jenkins to show what I mean (not using Bob and Alice as names for once): Situation: Yves breaks a test only in debug builds Currently (without Jenkins): Yves has tested his change in the game and he has launched the tests in release mode. Everything works as expected and he commits. Two weeks later there's a forum post about a strange problem with the tests. Leper and Sander both can't reproduce it in their first try. On their systems the tests work well. After a few questions in the forum they figure out it only happens in debug builds and after an hour of collaborative analysis they find and fix the problem. Unfortunately some other commits were based on this change during the last two weeks and more changes need to be done. Future (with Jenkins): Yves has tested his change in the game and he has launched the tests in release mode. Everything works as expected and he commit. Jenkins does some automated building and testing with various configurations. One hour later, Yves gets a mail from Jenkins informing him that the tests don't work in debug mode. Yves has worked on the change just an hour ago and everything is still fresh in mind and he can solve the problem quickly because he already knows where to search for it. That's an optimal case but there are a lot of situations where automated testing can be useful. Just think about how often someone broke a test in the past which caused a lot of unnecessary noise on IRC when this person could just have fixed it an hour after breaking it and nobody would have noticed. I you have some time I recommend watching this video, it explains the topic quite well in my optinion (the general part in the beginning at least): I also recommend this short and general overview of what continuous integration means: I have started experimenting a bit with Jenkins and figuring out what can be done and what could be useful for us. Here's what I have so far: Basic building and testing procedure: Jenkins checks for new svn revisions every 10 minutes. It uses svn update for the checkout instead of doing a fresh checkout everytime. Runs update-workspaces.sh with the newly introduced option "--jenkins-tests" Runs make Runs our test executable and redirects the output to an xml file. Fixes a little incompatibility with the XML schema with sed and then uses the generated XML to display the results of the testsThese steps get exectued for both debug and release configurations. Jenkins has a web GUI which displays and visualizes all kinds of useful information. Unfortunately I don't have a DMZ setup at home, so I don't want to make the server accessible to the internet. But I've made some screenshots to give you an impression of how it looks: This is the overview showing a trend (currently a dark cloud because many builds failed while I was testing). On the bottom left corner you see build with two different configurations (debug and release) running. Here you see the tests listed. They all passed in this run. There are also nice graphs showing a history of the tests either for all tests or individual tests. Of course the graph is not very interesting with only two builds and 100% tests passed in both builds: There's also a build history showing when which tests succeeded or failed: Last but not least, Jenkins keeps track of commits and automatically adds people who do the commits to its configuration. We could assign email addresses to people and send mails if one of their commits doesn't pass a build or a test (I heard you can do that, but I haven't tested it yet). I'll continue improving my Jenkins setup to figure out what can be done and what's useful for us. At some point we should probably think about configuring a Jenkins server which is accessible through the internet. At the moment this would be too early IMO. I know that Philip already has a sever, but as far as I know he only uses it for building and hasn't integrated tests or anything like that.
    1 point
  3. Wololo... Boomshipti..boooooom....... LMFAO
    1 point
  4. I don't see how we can lose overview from specifics. I will however agree that we need a topography/map to structure these ideas in order to better navigate through ideas. I believe this is what LordGood was referring too. What I think make dev, onlookers, newly members etc, irate, is that our ideas are here we discuss them and yet there's nothing tangible if you will, or no substance to it. My message to these individuals is simple: These things take time, and we are no rush and neither do we have deadlines. Sure we will listen to advice, as it's appreciated amongst the council's members, but at the same token, we engage in our discussions, in an amicably fashion in which we fuse our ideas together to form a foundational basis, where as a team we begin to slowly settle into the mindset, and collectively we are on the same footing in all of our understanding. Again I as a member of this council have this as a view: We don't have any deadlines. A and foremost. Therefore we can afford to toss ideas about, because we have the freedom too, not obligated to strict assignments. Further to this, I see ourselves as a council and as a team, slowly settling, gelling together mentally first, before we work together... Same state of mind,... Same expectations. Everything was thought first before it was created.
    1 point
  5. Basically, learning to program just requires a lot of time. Writing code that doesn't work, and then trying to understand why it doesn't work. Because of that, you need to pick something that really interests you. When you have chosen a task, you can always ask for help (and you should).
    1 point
  6. 1 point
  7. What do you want to program? The game is really diverse: Random Map Scripts, AI's, Gameplay, Engine (Not recommended to start with), Graphics (shaders, also not recommended to start with).
    1 point
  8. Well, there's not that much. And the references there are mostly related to the orignal civs (celts, hellenes and rome). It doesn't get used a lot to share references now. Most references come from Lion I think.
    1 point
  9. Plz don't. This will likely not prohibit any spammer activity because they likely generate a new account and then directly act. It will however annoy sanely acting members after a longer absence. If it's really helping, well, OK. But AFAIK it will not.
    1 point
  10. I tried to animate the rotary mill to gain time before A16 will be released. Not looking as good as you X)
    1 point
×
×
  • Create New...