Jump to content

Vantha

WFG Programming Team
  • Posts

    678
  • Joined

  • Last visited

  • Days Won

    38

Everything posted by Vantha

  1. @Atrik I can relate to the points you mentioned, actually, because I felt a similar way when I first started contributing to this project. What I can tell you from my own experience, though, is that things tend to run smoother and quicker over time, as you would become a more regular contributor and also learn how things run and what to look out for in implementations. Of course, making mods will always be faster and allow for more creative freedom, this is an essential aspect of the opens source philosophy, so I completely understand if people want to take that path. I welcome anyone who wants, though, to also open a PR and try to get the changes into the game, I think with git now it's easier than ever. I always try to work on those PRs as soon as I can, but of course it can take some time, it's important to think long-term I believe. And I'll admit that it can be difficult for me to find the balance between making it easy for the contributor and ensuring the best possible code quality. @Atrik E.g., I'd love to eventually work on the wall snapping you implemented a while ago, if you feel like it.
  2. Ok, maybe my statement was a bit biased. But still, other games usually count connection issues in rated matches as your fault too, no?
  3. I haven't looked at the code yet, but I think we can detect the host closing the match on both sides and send the messages to the bot as usual, as elexis suggested. Or maybe just take note when the game server of the host suddenly disappears before receiving any messages. On the other hand, the case where the client leaves, and the host finishes (and wins) the match on his own is the tricky one. Adding "game start" messages as you suggested would allow us to know which players took part in the game. And if we additionally record clients leaving, we can tell when that situation occurs, and then just accept the game report that the host sends on its own (maybe except if the client was kicked). If we don't want to trust the host with it, we can still just automatically count it as a loss for the client, if he doesn't return within five minutes or so. Well, that could result in some lag, but they still shouldn't repeatedly lose connection entirely.
  4. @Dunedan I made this thread primarily to see whether we could conclude that this is indeed the preferred solution in the first place, or what else. What's your take on this? About the implementation: Your idea of recording the game starts sounds pretty good to me. The rating taking a few hours to update would be suboptimal in my opinion, though, since players might not know or notice that it happens. I guess, better late than never, but maybe we can figure out a way to make it work without such a delay?
  5. It wasn't included in R28 because we were already way to far into the release process by the time I opened the PR. But, yes, the implementations are done, what's left is reviewing, finalising, and eventually merging it. My goal is to get everything into R29. I'm working on it.
  6. There is an ELO rating system implemented in the MP Lobby for 1v1's. A notorious problem with it is that it doesn't handle matches where one of the players disconnected before it was over, these matches simply aren't counted. Some players exploit this by leaving or closing matches when they realise they are about to be defeated, in order not to lose any rating points. This obviously goes against the rules, which is why this thread exists for reporting it: However, I think we can all agree that, ideally, bypassing the rating system like this wouldn't even be possible in the first place. This would save players the frustration and moderators the work of checking submitted replays. While talking about it in this thread the following idea came up: There are two cases of players quitting, firstly the one hosting the match, and secondly the one who joined the hosted game (the client). - If the client leaves, currently, the match continues, just without anyone controlling one side. If the host now finishes the match as usual by defeating the opponent (who doesn't defend himself anymore since the client left), it should still count as a win for the host and as a defeat for the client. If the client disconnected for a different, valid reason and planned to return, he should communicate that to the host beforehand. I'd argue it's the clients' responsibility to ensure they have a somewhat stable internet connection, so that they aren't completely disconnected frequently, and when they are, can still rejoin quickly. The downside is that it incentivizes hosts not to wait for the client to come back, since they no longer have to. - If the host leaves, currently, the match is immediately ended, without the client having a chance to continue the match in the same way as proposed for the host. In that case, the game should count as a win for the client. I know this sounds harsh, but as far as I can tell from the code, this only happens if the host manually exits the match or terminates the program. If the host only loses internet connection, all clients (one, if it's a 1v1) are disconnected from the match, but they are able to reconnect as the match itself on the host side persists. So the only way this can happen unintentionally is if the computer crashes, but again, that's probably something the host is responsible to ensure that it doesn't happen. What do you think? Is there anything I'm missing? An issue I can think of is that it enables hosts to exploit the system by starting a match, immediately kicking the client or blocking his connection deliberately in another way, and then being able to easily win the game and still be awarded rating points. Although, that's something that should just be reported as well.
  7. Both of these would solve that, yes. But I personally wouldn't mind too much if the host was treated more harshly than the client, as @guerringuerrinsaid they have more responsibility already and the main thing is that either side can't ruin the game.
  8. Ideally, yes, but I don't really see a way around it, since the client should be given the chance to reconnect, which isn't an option for the host.
  9. During a MP match, the game state is always present on all clients. Essentially, all players run an ordinary SP game simultaneously, but receive the inputs from each other over the network. And each player simply "feeds" that input (received from the other players) into their own game instance and since the behavior of it is deterministic, all of the instances stay in sync. To be fully precise, it's not the mouse movement or button clicks that are shared over the network, but the game "commands" like moving or training units. What the host does in addition to that is manage the network connections to the individual players and e.g. letting them know when someone disconnects. Therefore as soon as the host leaves, the clients are cut off from each other, can't communicate, and the match is closed for everybody. With the proposed behavior, the disconnected player wouldn't lose anyway, as long as the other player(s) wait for him to come back. Could work I think, but might not be necessary. The problematic case is when clients leave when they're about to lose... then it shouldn't take the host too long to finish it anyway since they were about to win already, no? Depends on the victory condition, though.
  10. Is there any specific reason why that isn't the case yet? I see it the same way: - If the client disconnects from the host, he should only ever do so for a good reason and communicate to the host that he'll return. If he doesn't do that, it should be possible for the host to just finish the game without anyone playing on the other side, win, and consequently gain rating points as usual. - If the host closes the game prematurely, it should simply count as resigning and therefore as a loss in the rating system.
  11. Update: I ended up deciding for "haimaz". I explained my thoughts about it here: https://gitea.wildfiregames.com/0ad/0ad/pulls/8722#issuecomment-135305 I want thank you both for the research and debate, I think the debate itself is also valuable, not just the result. And let's stay on the ground and don't exaggerate the importance of this, after all it is just single term among hundreds in the game. And for the future, let's act in such a way that we'll never have to remove the "No historians were harmed" disclaimer...
  12. Thanks. Can you tell me how you pieced them together?
  13. Can you tell me which? It's supposed to be complete, but it might not have been updated consistently enough.
  14. As hidden in the announcement, there's a mod porting guide on the Wiki (especially for the programming side of things):
  15. @Genava55 Though, it would be nice to add proper Proto-Germanic names to the heroes; Teutobod, Lugius, and Boiorix.
  16. Hmm, the AI names of the other civs are always the Latinized versions.
  17. @wowgetoffyourcellphone's and @real_tabasco_sauce's call I'd say, since they worked a lot on the civ and know the vision behind it. I personally, though, wouldn't mind if they aren't from Cimbrian Wars, as long as the characters are still Germanic, from about 0ad's time frame and ideally also historically relevant or interesting.
  18. Hero names were specifically removed from the AI names a while ago (https://gitea.wildfiregames.com/0ad/0ad/commit/22cbd39bbd46d1bf2e87b8c26ae58f28a6d6fa1e), so that's not an option, unfortunately.
  19. Debate is scientifically very valuable and it seems that you both know a lot about the topic (certainly more than me). But please keep a professional tone and don't get personal. There's nothing wrong with someone simply because they disagree, especially since the language is resconstructed anyway, so there is no right and wrong, just more plausible and less plausible. I think you both made fair points, and with the knowledge I have I honestly am unable to decide which is the better option. Seems right, thanks, I can add it to the PR.
  20. Thanks. I made a PR and went with "þurpą" -> "Wīhsą" -> "Burgz". "Haimaz" is also the root of the German "Heim" (which basically means home), that's why I decided against it in the end. "Burgz" is already used for the Germanic fortress, but that's not a problem, since that's the case for some other civs too already. https://gitea.wildfiregames.com/0ad/0ad/pulls/8722
  21. I will try to be as open about how I feel about the situation as I can: For me the die is cast. There are of course several ways to go about structuring and designing a tutorial and connecting it to a story. For me, though, the focus and primary goal of the tutorial campaign is teach how to play, the story is secondary. Following this mindset, a while ago (easy to miss in this long thread), I first put together quite a detailed plan for the campaign's structure, what to teach in each of the individual matches. And only afterwards did I search for a piece of history in which this preexisting plan could be embedded. We did a lot of brainstorming and I eventually came to the conclusion that the founding of a colony (and then also the story around Carthago Nova and Hasdrubal the Fair) aligned best with what I envisioned. Also, it was something new and interesting for me personally -- unlike Hannibal or Alexander, whose stories I've heard and dealt with dozens of times in the past. I am well aware that this might not be the case for many players and that a classic Hannibal or Alexander campaign might have been more appealing to some. However, considering the size of this project and that I'm essentially the only one implementing it, motivation and personal interest are important resources for me. I was deliberately trying to aim for something that also excites me personally, even if that comes at a slight cost of appeal for others, simply to help myself stay motivated to work on it. Keep in mind that I am still doing all of this in my free time. The main thing is not to make the tutorial campaign absolutely perfect in every single aspect, but to eventually finish it and get it into the game, to help new players learn the game, and along the way to provide better storytelling features for future campaigns. And again, in my opinion the idea with Carthago Nova still fits really well and elegantly onto the learning and teaching process I had in mind. And it's also historically fairly relevant. For these reasons, I want to make the story of the campaign self-contained and only revolve around Hasdrubal. @Thalatta@Genava55 These are good concepts and I can definitely see how they would make for great campaigns, but for this one, I want to go in a different direction. However, making some usual story-focused campaigns as well for more experienced players is still a big goal, and ideas are always welcome. It could make sense to open a designated thread for campaign concepts like this.
  22. Right, but there they're sorted side-to-side instead of front-to-back, not both.
  23. The current sorting is still only one-dimensional, unfortunately, so only front-to-back, not side-to-side.
  24. Me too. The campaign features have higher priority for me since they'll probably be more exciting for players, but as I said in the encyclopedia thread, I am also going to continue working on the encyclopedia eventually and then hopefully finally get it into the game. They are both huge projects, they have taken and will still take a lot of work and time, but it'll be great when they're completed, I believe we gotta think long-term here. In theory, yes, but you always have to account for smaller screen resolutions, where the in-game screen is quite cluttered already, so there aren't really many options. Maybe moving it to the right edge instead could also work, but there on small screen resolutions it'll conflict with the dropdown menu and also the tooltips of the units and buildings in the selection panel. Yeah, I'll do that, it's a comparably quick change, I just want to get a few things of my plate first.
  25. @Gönndolsalv Hey, I only just now saw your message. So here's an update from my side: I remain convinced that the game would really benefit from a new tutorial and that the story around Carthago Nova would make for a great campaign. And this project is still a big long-term goal of mine. And, yes, there absolutely is progress, even though it might no be always visible to the outside. As I explained above, when I started making the campaign last year, I essentially came to the conclusion that the game just lacked the capabilities to tell the story and teach the player stuff the way I had imagined it and would personally be content with. So what I decided to do was to lay down the campaign and instead to first implement these features myself, and only then pick up the campaign again to write it using that new functionality. And in the last year I have worked on all points that I mentioned above: https://gitea.wildfiregames.com/0ad/0ad/pulls/7785 https://gitea.wildfiregames.com/0ad/0ad/pulls/8318 https://gitea.wildfiregames.com/0ad/0ad/pulls/8614 No PR yet, but I have started working on this and more (like highlighting GUI objects to explain what they do) locally. I ended up creating a new set of terrain textures for it from scratch: https://gitea.wildfiregames.com/0ad/0ad/pulls/8214 And the first map is basically done. Now, all of these PRs are still open, meaning the features aren't in the game yet. And realistically, it'll be quite some time before all of them do and until there's an actually playable version of this campaign. Especially since lately I've obviously focused more on stuff for the R28 release. However, even though I can't promise anything right now, my personal goal is to get it all ready for R29. I can always use help, but not really with coding, just input and feedback is always helpful to me. Also, I would love to have illustrations in the campaign, so if anyone is, knows, or finds an artist to draw some images to our story (when we eventually get to writing it) that would be incredible.
×
×
  • Create New...