Jump to content

Mentula

Community Members
  • Posts

    85
  • Joined

  • Last visited

  • Days Won

    8

Posts posted by Mentula

  1. 5 minutes ago, Stan` said:

    @Mentula Do you have a stat that computes the number of hours you put in matches ? I wonder how hard it would be to integrate your stats in my replay database.

    Currently not, but it doesn't look hard to implement (at least, in the context of the LocalRatings mod). Basically it's a matter of summing up the game duration, alongside the other players' stats. Cool idea!

    Edit: adding up the game duration might be an imperfect solution. A problematic case is the one of a player early-quitting the game: their stats will be computed until the end of the replay, although the player has left before the end. This problem (although it's probably a minor one) also affects the way LocalRatings currently computes stats; I don't have a good solution to this.

  2. The smell of a new 0 A.D. release is in the air so... here's my TOP30 for the A26 season! :holiday:

    1819754617_Screenshotfrom2023-05-2218-39-42.png.05316046e7191f0e75c514f06460b514.pngMy settings

    Match Filters: games with < 4 players are excluded.

    Player Filters: players with < 5 games are excluded.

    Score Weights: default, apart from exploration weights set to 0.

     

    Few comments

    • Feel free to ignore #1 from the ranking; the mod tends to overestimate the owner's rating.
    • I wished I had more games played with strong players. Unfortunately some of them do not appear in the list due to the small numbers of games played.
    • Like 2
  3. 18 minutes ago, Yekaterina said:

    No. This is standard dev operation. If you want to make any mod for A26, you must unzip the public.zip in order to gain access to the asset files and templates.  I would copy the files away to my mod folder in order to not harm the source code.

    Here we're going a bit off-topic but... this is not standard dev operation.

    If you are a modder reading this, please do not follow this recommendation. There are valid guides on the forum explaining how to make mods for the game.

    • Thanks 1
  4. 4 hours ago, G.O.A.T said:

    The only way to enforce specific mods to be used - some control checksum of specific control js files would need to be generated and regularly sent to host of the game. 

    This way you would avoid "replacing files" on the fly or even putting things to "public mod only" so user would not be spotted in listing of mods.

    Sorry to say this solution does not work. One can run any "pre-approved" mod as a subroutine of another mod (or even a modified version of the engine) which emulates checksum generation, for example, sending a pre-computed checksum.

  5. 12 hours ago, Sevda said:

    so that mods like localratings take it into account. This allows you to farm localratings easily.

    I am trying to make a sense out of this. The whole point of LocalRatings being local is that the mod user is the only one who can see ratings and that ratings are calculated based on the user data. Why would one tweak a rating being the only one seeing it... self-motivation?

    PS: the fact that a user can edit a free-and-open-source project and its files (including replays) should not come as a surprise. Welcome to foss!

    • Like 6
    • Haha 2
  6. Yes, you read the title correctly: this mod causes extinctions randomly destroying your entities. Official mod page on GitLab here.

    It's a semi-serious (working!) mod, whose idea originated from joking conversations in the lobby. Too OP and want to balance games? This is your chance to set it right.

    Features

    • Set the entity reduction rate and the frequency of extinctions.
    • Intensify/alleviate the entity reduction rate and frequency over time.
    • Choose which entities can or cannot be destroyed.
    • Totally voluntary usage: other players don't have to install it to play with you.

    Is that serious?

    Yes and no, I mean... it can be fun!

    On a serious note, scenarios or campaigns can be designed on top of it. After all, the idea is not that different from already existing features such as the rising of water level in the Extinct Volcano map. Events like the spreading of the Antonine Plague, imported by the Roman legions from the Near East, immediately come to my mind; although this example is outside the 0 A.D. time frame, events like this might well fit a scenario/campaign.

    Mod options (screenshot)

    selfnerf.png.e1080bec52f549a9802b0bf8559aa957.png

    Installation

    Click here to download the latest release. Install following the official 0 A.D. guide: How to install mods?

    Alternative downloads: Latest Release (.pyromod) | Latest Release (.zip) | Older Releases

    Contribute

    The public repository is at this page. Everybody is very welcome to contribute, suggest, fork or simply give feedback. Have fun!

    • Like 3
    • Thanks 1
  7. If any of you is wondering why this mod is useful, this is what I do in almost every game: when reaching the population cap I might want to make space for new units (such as rams or elephants), so I do: 1. select all fields, 2. select one gatherer per field (using the mod) 3. destroy the selection.

    Another use case is when floating in food and short in wood. In this case one can: 1. select all fields, 2. select one gatherer per field (using the mod) 3. send selection to wood.

    In these (and certainly other) cases, one can keep field harvesting at its maximum efficiency.

    • Like 1
    • Thanks 1
  8. Hi 0 A.D. friends,

    the FieldManager mod I am presenting in this post is aimed at reducing micro-management on fields. Official mod page on GitLab here.

    The mod has been around for a while and I see players on the lobby already using it. I was hesitant to announce it on the forum, for I wished to come up with more functionalities but... I couldn't :) so here it is! Despite its ostentatious name, the mod provides few but useful features:

    • Select military/non-military/all gatherers from selected fields.
    • Select one gatherer from each selected field.
    • Evenly distribute gatherers across selected fields.

    Here's a screenshot of the commands available when selecting a number of fields:

    FieldManager.png.01605567b23cf5f9aad9d9f001ff6fb9.png

    Be aware that...

    This mod executes automated actions. This can be considered as a cheat. When you play a game with this mod, make sure other players are aware you are using this mod and agree.

    Installation

    Click here to download the latest release. Install following the official 0 A.D. guide: How to install mods?

    Alternative downloads: Latest Release (.pyromod) | Latest Release (.zip) | Older Releases

    Contribute

    The public repository is at this page. Everybody is very welcome to contribute, suggest, fork or simply give feedback. Have fun!

     

    • Like 7
  9. The local.cfg file must be placed in the same folder as the user.cfg file. Therefore, look for user.cfg in your system.

    On a typical GNU/Linux installation, the user.cfg file is in ~/.config/0ad/config, but since yours is a snap installation, I have no clue where to find it. I'm sure you will easily find it with a file search. Surely though, the folder in which user.cfg is placed is not the same of default.cfg.

    Remember that default.cfg is not supposed to be changed. You will only use it to look at all the possible configurable options, and copy-paste from it to your local.cfg, but don't modify it.

  10. I hope this post can clarify things a bit more. There are at least three options to change hotkeys.

    Option A

    Open 0 A.D., then open the Settings > Hotkeys menu. Change hotkeys from there.

    Note: @gui456wSERTDYF I know you are already aware of this solution, but I report it for completeness. This solution can be ok for replacing few hotkeys, but not suitable for changing many hotkeys. For example, this is not ideal for @gui456wSERTDYF's issue (replacing "Ctrl" everywhere).

    Option B

    Look at the default.cfg file present on your computer: this file should look like this. Each line identifies a configuration option. Just to make one concrete example, the default hotkey for attackmove can be found under the [hotkey.session] section in the default.cfg file:

    [hotkey.session]
    attackmove = Ctrl            ; Modifier to attackmove when clicking on a point

    I you wish to rebind attackmove, say for instance to CapsLock, add this line to your user.cfg file:

    hotkey.session.attackmove = "CapsLock"

    Option C (recommended)

    Very similar to Option B. Following the above example, if you want to rebind attackmove to CapsLock (again, as an example), add these lines to your local.cfg file:

    [hotkey.session]
    attackmove = CapsLock            ; Modifier to attackmove when clicking on a point

    The local.cfg file lies in the same folder as the user.cfg file; it possibly doesn't exists: if so, create it.

    The local.cfg file has the same structure of the default.cfg file. In principle, you can copy-paste everything you want from default.cfg into local.cfg and tweak the values at your own needs.

    Note: this solution is probably the one @gui456wSERTDYF is looking for. You can copy-paste all the default.cfg content that includes "Ctrl" into local.cfg and replace the "Ctrl" occurrencies with the key you like. Remember to include the section names (in the above example, the section name is [hotkey.session]).

    Option D (not 0 A.D.-related but OS-related)

    @gui456wSERTDYF if your Ctrl key is not working... have you considered assigning Ctrl to a different key system-wide? In many operating systems (and certainly in the GNU/Linux ones) you can assign Ctrl to other keys, for example to CapsLock.

    • Like 1
  11. Yes @real_tabasco_sauce. Look at these lines (and many view-related others) in the default.cfg file:

    [view] ; Camera control settings
    scroll.speed = 120.0
    scroll.speed.modifier = 1.05      ; Multiplier for changing scroll speed

    What you might want to do is to copy-paste these lines (and others that you wish to change) into your local.cfg file and tweak the values at your own need.

    If instead you wish to change these values in your user.cfg you can add the lines there:

    view.scroll.speed = "120.0"
    view.scroll.speed.modifier = "1.05"

    and all the other lines you want to tweak, with the values you want.

    Basically, there are two alternatives: do it in local.cfg or in user.cfg. I recommend the first of the two options; there are reasons for that, which I omit here.

    • Thanks 1
  12. There is no shared database/cloud/space for replays, as far as I know. The idea of sharing replays has been brought up by other users, and I personally like it, as it has other side benefits in terms of sharing knowledge about the game.

    For what it is worth, my dream is that one day Wildfire Games will have the economic and developing resources to afford own lobby servers. That will allow collecting replays, along with solving many of the major problems affecting the game today.

    • Like 1
  13. I updated ResetQueue to version 0.26.2.

    The main change is a new hotkey that clears the trail of production queues: in other words, all but the current item are removed from the production queue.

    This hotkey is in addition to the existing one, that completely clears the production queue (including the current item).

    Further, with the new version, hotkeys are not mapped by default to pre-set keybindings; I noticed that some users find conflicts with existing keybindings, so it's better to leave the choice open.

    Cheers.

    ResetQueue.pyromod ResetQueue.zip

    • Like 2
  14. Hello everyone,

    I recently had a few conversations with players on the lobby about "how to improve". When I am being asked, I usually reply with: 1. watch replays 2. watch ValihrAnt videos 3. read this file. This file is what I am presenting in this thread: it's a collection of tips & tricks I initially shared with my friends and then made it public on my GitLab page.

    It might be incomplete, it might be wrong in some of its parts, it might give importance to aspects that are not or viceversa, etc... I am not in the position of claiming this is a manual to become a good player. :) However, it might be useful to somebody and I'm happy to share if it helps.

    The file is divided into three sections: 1. Interface, 2. Logistics, 3. Fighting. Each section contains a list of tips & tricks in sparse order; each tip comes with an extra tip.

    Cheers ;)

    Source: https://gitlab.com/mentula0ad/0ad-tips-and-tricks

    • Like 3
    • Thanks 2
  15. Hello 0 A.D. friends,

    I have been thinking about the possibility of making a mod implementing macros and came to the conclusion this is feasible, albeit complicated. Despite my good intentions, I will be in shortage of time very soon, and this is the kind of project that takes a while to be developed. Perhaps, this is also the kind of project that triggers the interest of some of you smart guys populating the forum. If so, this is the topic for you. ;)

    If any of the developers has considered this before, I'd be curious to hear from them. This might not be a new idea after all.

    This post is organized in sections, so a reader can skip the parts they're not interested in.

    1. What are macros?

    Spoiler

    Macros are sequences of actions. Players often find themselves in situations where certain sequences of commands are repeated over the game, or across multiple games. A macro "collapses" several actions into one single action and assigns the "collapsed" action to a hotkey/button/command.

    The main purpose of a macro is reducing micro-management.

    For a more general understanding of macros, see this Wikipedia page.

    2. Why do 0 A.D. players need macros?

    Spoiler

    Macros reduce micro-management and help simplifying repeated actions. For example, the following actions can be automated:

    • At game start, the CC trains a certain unit in a batch of given size, then female citizens are sent to fruit, cavalry to meat, infantry to wood.
    • Every time a building is placed, it is added to a certain control group.
    • Train a certain number of priests from temples and let them guard a hero.

    Once a macro has been defined, it can be assigned to a hotkey.

    3. Why macros, when there are mods around?

    Spoiler

    Some mods certainly provide features that can also provide macro functionalities. There are some benefits in the possibility of defining custom macros though:

    • Macros, if embedded into the core game, will not require installation of mods.
    • There are potentially infinite macros a user can define; not all mods can cover them.
    • Players who don't have the skills or the time for coding, will have the opportunity to create custom macros with nearly zero programming knowledge.

    4. What's the proposal?

    Spoiler

    Making a mod, to start with. Embedding macros as part of the core game will be great.

    5. How can a player define a macro?

    Spoiler

    There are many possible ways to allow players defining macros. My first intuitive though is that

    each macro instruction is a "grammatical sentence", following the (possibly more complex) structure:

    ADJECTIVE SUBJECT VERB ADJECTIVE OBJECT

    The graphical way. Each macro instruction can be defined by a sequence of dropdown menus. For example:

    |wounded| |Infantry| |gather| |closest| |tree|

    The command-line way. Each macro instruction can be defined by a SQL-like query. For example:

    wounded Infantry gather closest tree

    The graphical approach is more intuitive, but the dropdown structure is probably not flexible enough to cover all the possible instructions. The command-line approach, on the contrary, is more flexible but requires some documentation and is less user-friendly.

    6. Implementing macros can be complicated

    Spoiler

    There are several factors that make implementation of macros a non-trivial task.

    One first issue is that not all actions might follow the same predefined grammatical structure. Data required by a certain action is highly dependent on the action itself. Therefore a pattern "to rule them all" might not be possible at all. Therefore, instruction patterns can be complex and require some ad-hoc work to be implemented.

     

    • Like 5
  16. 1 hour ago, poised said:

    Has anyone seen a write-up that explains how ratings work?

    It's on the FAQ page. In short, the page says:

    Quote

    You will start with a score of 1200, which will increase if you win and decrease if you lose.

    The rating adjustment is calculated with a simplified ELO algorithm, the exact details can be found here: elo.py.

    For a general overview on the ELO rating system(s), Wikipedia offers a good explanation.

    2 hours ago, poised said:

    Why can someone who has played hundreds of games against good players have a rating lower than someone who has beaten his mate 10 times?

    As you will notice by looking into elo.py, the adjustment of a player's rating mostly depends on the difference between that player and their opponent. The stronger your opponent is, the more your rating will increase in case of victory. Similarly, the weaker your opponent is, the more your rating will decrease in case of defeat.

    Therefore, having played hundred of games does not say much on the player's ELO rating. Winning/losing "quality" games is what affects the rating most.

  17. @maroder's solution is correct.

    For your information @Thales, you can achieve the same, but without entering the Game Lobby. Just do the following:

    • one of the players hosts the game: from the main menu choose "Multiplayer" and then "Host Game";
    • the other players join the game: from the main menu choose "Multiplayer" and then "Join Game". The joining players just need to enter the IP address of the hosting computer in the prompt.

    If playing with people you know, this alternative solution has some benefits: no need to register/authenticate with a lobby account, no need to set a password when creating a game, no information on your games are made public, risk to be DDOSed is reduced.

    • Thanks 2
×
×
  • Create New...