Jump to content

fcxSanya

WFG Retired
  • Posts

    1.083
  • Joined

  • Last visited

  • Days Won

    12

Posts posted by fcxSanya

  1. 1 hour ago, fabio said:

    With the triggers a custom game dialog similar to the one showed by The Undying Nephalim could be shown at game start <...>

    I believe triggers are simulation scripts and can't introduce custom gui. Also they are bound to specific maps. Am I wrong?

    1 hour ago, fabio said:

    <...> while the technology uses a different, less obvious interface, especially if the hero choice is a strategic one for that gameplay...

    That's why I said "with a custom UI to select one of them at the match start", i. e. the mod will have that custom dialog at the match start which will list (and allow to select one of) civ-specific technologies of a special type.

  2. 2 hours ago, fabio said:

    A Silent Day In Gaul map has some trigger support for making choices while in-game. This may be a starting point for developing what you propose.

    In my understanding A Silent Day In Gaul is a narrative scenario, so it's notable for player in-game actions (not just UI interaction) affecting the story progress.
    So I believe your second alternative is more relevant here:

    2 hours ago, fabio said:

    Alternatively some civilizations have some alternative tech choices that enable different heroes and champions, <...>

     

    2 hours ago, fabio said:

    <...> but it's not exactly what you want here

    Why not? For me it looks exactly like 4 mutually exclusive technologies, each unlocking its own set of heroes / units with a custom UI to select one of them at the match start.

  3. 7 minutes ago, The Undying Nephalim said:

    Yes indeed. I'll attach my music file: music.js

    Hm, it looks ok. Are you sure you have multiple peace tracks in your civ json?
    You can try to put something like warn(uneval(this.tracks.PEACE)); before the startPlayList to check what tracks are in the list (not sure whether it would properly print the list of objects though).

  4. 15 minutes ago, The Undying Nephalim said:

    I've added this part into my music.js file ( under Music.prototype.updateState = function() ).

    In "case this.states.PEACE:"? Or you did replace the entire updateState body? Can you share your entire music.js?

  5. 15 minutes ago, The Undying Nephalim said:

    I'm not entirely sure what to do with everything after this.track.PEACE.

    The image from the browser console is just a test to check how concat/shuffleArray combination works, see the last 3 identical calls of

    [this.tracks.PEACE[0]].concat(shuffleArray(this.tracks.PEACE.slice(1)))

    which produce different results (with the first element always on the first position):

    [1, 5, 4, 3, 2]
    [1, 3, 4, 5, 2]
    [1, 2, 4, 3, 5]

    this is an emulation of tracks order :)

    What you need in your music.js is that one line (+comment):

    // Play the first track first and then the remaining ones in a random order
    this.startPlayList([this.tracks.PEACE[0]].concat(shuffleArray(this.tracks.PEACE.slice(1))));

    where I forgot two other params of startPlayList btw, so it actually should be:

    // Play the first track first and then the remaining ones in a random order
    this.startPlayList([this.tracks.PEACE[0]].concat(shuffleArray(this.tracks.PEACE.slice(1))), 3.0, true);

    You need to put it in "case this.states.PEACE:" of updateState (where your two startPlayList's currently are)

  6. 4 hours ago, The Undying Nephalim said:

     

    
    		case this.states.PEACE:
    			this.startPlayList(this.tracks.PEACE, 0, true);
    			this.startPlayList(shuffleArray(this.tracks.PEACE), 1.0, true);
    			break;

     

    I believe you should call startPlayList only once, otherwise it seems like you are starting to play one list (non-shuffled) and then immediately switching to another (shuffled).
    What I suggested to do in the that second item ("2. shuffle only second and subsequent tracks for the 'PEACE' state in 'updateState'") is something like this:

    // Play the first track first and then the remaining ones in a random order
    this.startPlayList([this.tracks.PEACE[0]].concat(shuffleArray(this.tracks.PEACE.slice(1))));

    I didn't test it in the game, but "on paper" (in the browser console) it looks fine:

    image.png

    (randIntInclusive and shuffleArray definitions are from random.js and utility.js respectively)

  7. On 9/6/2017 at 8:02 AM, wowgetoffyourcellphone said:

    I think this is a must. If a skirmish player is unassigned, then the skirmish objects should go to null and disappear from the map altogether. Their abandoned/open starting position on the map would just be a nice expansion point the other players might race to claim.

    We have a ticket for it: #1306 .
    I tried to glance at the related code the previous time it was brought up, but didn't find how to fix this quickly enough and didn't return to it afterwards.
    Player assignments are managed in gui scripts (in gamesetup.js in particular), while entities initialization is performed in MapReader.cpp (see CXMLReader::ReadEntities). Map loading is obviously ha ppening after the gamesetup, but I'm not sure whether the MapReader has access to the player assignments (it has some 'LoadPlayerSettings' which goes into simulation2, which may or may not have the relevant data).

    On 9/5/2017 at 11:06 PM, WhiteTreePaladin said:

    BFME also made the starting bases visible on the map preview image and you could assign the starting point for each player if you didn't like the default starting positions. A player number was displayed on top of the starting position icon and directly clicking on those icons on the preview image cycled through the remaining player numbers. We can indirectly do this in 0 A.D. by rearranging the players, but it requires trial-and-error to see where everyone actually ends up.

    This is more complicated. Our previews are arbitrary images rather than minimap-like schemas. I guess we may implement an additional optional 'schema' (or 'placements') element for maps consisting of an image and metadata (player locations on the image), which preferrable should be autogenerated by Atlas. This schema then will be displayed in the gamesetup somewhere besides the regular preview.

    • Like 3
  8. On 07/08/2017 at 1:16 AM, The Undying Nephalim said:

    On the subject of videos, does 0AD support any kind of video format for cinematics? My game has a lot of cinematics that I'd port over from from the Total War version. It would be great if mp4 or wmv formats were supported.

    This wasn't answered yet, right? (I don't see any follow-up discussions skimming over the subsequent posts)

    There are no videos, nor video support in 0 A.D. as far as I know, and I even don't remember (and can't find) any discussions or tickets related to it. I think the current (maybe somewhat vague) plan is to have in-game cinematic scenes for campaigns.

    On the other hand it's a somewhat basic and expected feature for a game engine. Also it's self-contained enough so shouldn't be hard to maintain.

    I've created a ticket (#4724 (Video playback)) and will try to do some basic research for it unless someone else would do it faster or will link to an existing implementation / discussion etc.

    • Like 4
  9. 16 hours ago, The Undying Nephalim said:

    I tried replicating the way it's done for the main menu music, but the civ's json file will no longer load

    JSON is a data format, you can't write code (i.e. call 'concat' and 'shuffleArray') there. What civ json files do is they define civ-specific collections of tracks. These collections are used in music.js , which is a part of the music manager as far as I understand. music.js is apparently where you saw the main menu track-related logic and that's probably what you have to modify to achieve your goal.

    As you can see, in 'resetTracks' state-specific playlists are filled with default tracks, then civ-specific collections are added into the playlists in 'storeTracks' and finally 'updateState' starts playing the state-specific playlist. For the 'MENU' state playlist is played as is (unshaffled) and 'Honor_Bound.ogg' is always the first track in it (due to code in 'resetTracks'). For other states playlists are shuffled.

    So, unless I've missed something, you can:

    1. remove the default peace tracks from 'resetTracks'

    2. shuffle only second and subsequent tracks for the 'PEACE' state in 'updateState'

    what should result in the first peace track from civ json to always play first and other ones being shuffled.

  10. On 09/08/2017 at 2:50 PM, MOUP9Kcz said:

    This is my first map in 0 A.D. and I am suprised that I actually made it beacuse most of the times I will leave this kind of stuff half done and never finish it.

    It helps sharing the maps (and other content) on the forums, this way you can encourage yourself to push a bit to finish an early version / prototype, then potentially get some feedback / ideas for further iterations. And even if there won't be much feedback and / or you will abandon the map after the initial published version, you or someone else may revise it later or gather some ideas from it.

    On 09/08/2017 at 2:50 PM, MOUP9Kcz said:

    xmb is a cached version of xml. You should share both (original non-cached) xml and pmp files.

    On 09/08/2017 at 2:50 PM, MOUP9Kcz said:

    This is the first version of the map so if you have any suggestions, ideas or feeling that theres something wrong on them map please write down in the comments I will gladly read it.

    I'm not a map-maker myself (nor a much active player), so I can provide only limited feedback. I think the overall idea (player roles and placements) sounds interesting gameplay-wise, but visually the map is very simple / repetitive. Some random suggestions:

    1. it looks like the Roman city has one (single) texture and everything else (besides the cliff and the mountain-walls) is another single one; try to mix multiple textures in those two areas and maybe add some different regions (like a bit of snow on the north of the map or on higher areas or vice versa some desert / steppe areas).

    2. add some landscape details, like roads, rivers / streams, ponds

    3. fill the Roman city with something, either landscape details (texture changes from #1 will somewhat help, but something else is needed also) or maybe slight terrain elevation changes, some eyecandy etc.

    4. mountain-walls look very artificial, maybe you can embed them into a more naturally looking mountain-range?

    5. the cliff is very plain too, try to vary its geometry slightly, mix a few textures, maybe add a few actors (trees, stones etc.) here and there.

    • Like 1
  11. On 08/08/2017 at 6:28 PM, Lion.Kanzen said:
    
    size="50%-280 50%-200 50%+280 50%+150"

    this the size . how i can Interprete this? Specially I want a bigger windows size.

    It's "left top right bottom"

    Using percentage in the coordinates allows to keep the dialog centered despite the resolution, but the dialog size itself is fixed (560 width, 350 height), it doesn't scale with the resolution change.

    diplomacy_dialog_size_labeled.png

     

    • Thanks 1
  12. 10 hours ago, Feldfeld said:

    The game ended after some ppl leaved, and couldn't be replaced (is that possible with the use of STUN to host ? Or i just gave wrong ip ?).

    The proper (automatic and reliable) way to connect with STUN is via lobby. I assume currently the lobby doesn't allow other people to fill the deserted player slots in running games expecting the original players to return (rejoin)? @elexis is this the case? If this is the issue here, then I guess we may provide some way for host to mark deserted player slots as vacant and allow other people to join them from the lobby.

    Regarding manually sharing the IP -- it depends on the network configuration:
    a. if you're behind a port-forwarded (or autoconfigured via UPnP) router, then STUN doesn't affect anything and you can share your external IP + port as before
    b. if you're behind a full-cone NAT (see https://en.wikipedia.org/wiki/Network_address_translation#Methods_of_translation) and an external endpoint was established / discovered via STUN, you can share it instead, people should be able to connect
    c. if you're behind an address- or port-restricted NAT, you have to perfrom a connection negotiation phase with a peer, which is at least inconvenient to do manually
    d. finally, if you're behind a symmetric NAT, with the current implementation you shouldn't be able to host in the first place (which is apparently not the case in your case)

    10 hours ago, Feldfeld said:

    This post may not respect the rules of the subforum, but i would find it pretty boring to create a thread for each replays i want to post, so i made it like this. I won't do it again if i'm asked not to.

    I expressed my opinion on this subject in the a21 topic:

    and it stays the same:
    I think the replay sharing process is already inconvenient enough -- you have to have a forum account, know about this subforum existence, be able to locate the replays, upload and describe them here. Ideally it should be (I hopefully in future it will be) just a button in the summary screen with all the match details gathered automatically requiring only an optional hand-written comment.

    So if you are going over all this trouble and it's convenient to share a replay pack instead of single ones, it sounds perfectly fine for me. If someone has a different opinion -- let's discuss. If you are concerned by the wording in the rules topic let's either rephrase it (after @Itms' approval of course) or just consider it a recommendation with common-sense-justified deviations allowed.

  13. 9 minutes ago, feneur said:

    And while we might not have stated it recently we have at least previously had the opinion that the creator of something is free to decide if he/she does something else with the content. (Obviously you would have to abide by the license if you are e.g. using an existing texture etc, but for something you have created from scratch.)

    There is a section in Creative Commons FAQ on this subject: https://creativecommons.org/faq/#can-i-enter-into-separate-or-supplemental-agreements-with-users-of-my-work

    and something like a short summary in another section of the same FAQ:

    Quote

    All CC licenses are non-exclusive: creators and owners can enter into additional, different licensing arrangements for the same material at any time (often referred to as “dual-licensing” or “multi-licensing”). However, CC licenses are not revocable once granted unless there has been a breach, and even then the license is terminated only for the breaching licensee.

    So, by releasing your work under a CC license, you grant people permission to use the work under the license terms, but you don't restrict yourself from using it in other ways / dual-licensing it etc.

    • Like 1
  14. On 6/11/2017 at 10:24 AM, fcxSanya said:

    2. a new 0 A.D. version (Alpha 22) should be ready soon (I believe in a week or so), so given your situation, you might want to wait for it instead of starting to download Alpha 21 right now

    @SkyOne578 "a week or so" took a bit longer, but Alpha 22 is finally available: https://play0ad.com/new-release-0-a-d-alpha-22-venustas/ so I guess you can start downloading it :)

    • Like 3
  15. On 6/14/2017 at 11:35 AM, Itms said:

    When it was first proposed the subforum would have been quite empty and we didn't know whether it would fill much, but this topic is a proof it would work indeed! I propose we create one when A22 is out, in order to mark the occasion :)

    @Itms let's do it! :)

×
×
  • Create New...