New release planning (3.2.4)/ 3.3.0

Discuss the future of Warzone 2100 with us.
Post Reply
Per
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 3753
Joined: 03 Aug 2006, 19:39

New release planning (3.2.4)/ 3.3.0

Post by Per » 18 Dec 2017, 00:05

I think we should aim to get a new stable release out before new year (or just after). It is starting to get a while since last time, and we've accrued quite a few fixes since then.

Is campaign stable enough now for a release? What remaining campaign issues need to be fixed?

What other issues need fixing before we can release 3.2.4? Please list them in this thread.

Before releasing, I think to should make one of the javascript-based AIs the default (rather than the wzscript-based Nexus that is default now). Is there any other javascript-based AIs you would like included in the release? Any opinions on which should be the new default?

After this release, I hope to start merging some of the larger remaining tickets like DDX-stored textures, that may need some time to get stable on all platform configurations.

User avatar
Berserk Cyborg
Code contributor
Code contributor
Posts: 615
Joined: 26 Sep 2016, 19:56

Re: New release planning (3.2.4)

Post by Berserk Cyborg » 18 Dec 2017, 01:35

Per wrote: Is campaign stable enough now for a release? What remaining campaign issues need to be fixed?
I would say so (I managed to fix a few nasty campaign bugs on the source side). The mission scripts themselves work without any asserts. Campaign library would be where anything goes wrong now. Gamma has yet to be tested intensively, but a few people other than Bethrezen and alfred007 have played though Gamma so it must not be too bad. I do know:

1. Campaign library may send a truck into a VTOL factory and cause a non-fatal assert (only two missions will be a bit noisy). Should be fixed in f00ca92fa4b0f0814a6ce73fa2f44ad62a4129c5.
2. Not allowed to donate the player HQ in the Nexus home base attack mission.

Also destroying factories, be it campaign or skirmish, has a very good chance of causing asserts with scripts and seems impossible to prevent (more of an annoyance really). Sample output:

Code: Select all

error   |10:06:43: [recvStructureInfo:349] Could not find structure 123 to change production for
[/s]Should not be too noisy since 616f142c6a031fc36aceb05f8c40156c563225bb.

I would like to see ticket #3009 fixed. It does not always happen though so it can be a bit tricky to track down the root cause (likely areas I would suspect would involve getDroidsToSafetyFlag() around in the source). Ticket #4633 could be worrisome though I never experienced it yet.

I think the default AI should be either SemperFi-js or Nullbot (not able to decide which one myself). As for adding more AI, we should retire wzscript semperfi and just drop the -JS from SemperFi-JS. Don't know what you want to do with Nexus, but we can add Cobra and BoneCrusher (should Prot be motivated to use a more acceptable code style for the repository and disables the logging/3.1.5 stuff).

Maybe with 3.2.5 we could remove all of wzscript dependence (right now my weather change is breaking the scriptState.es file. Otherwise we could be free of wzscript once and for all assuming Nexus is replaced or converted).

EDIT:
One thing the js AI are missing out on are events for alliances.Now in 3670bbdb5b193a8ff59342e171810fe44415d9bb.

I believe droids under the command of a commander will at times get stuck on DACTION_SULK (like in #4544).
Last edited by Berserk Cyborg on 18 Dec 2017, 19:35, edited 3 times in total.

alfred007
Trained
Trained
Posts: 434
Joined: 31 Jul 2016, 06:25
Location: Stuttgart, Germany

Re: New release planning (3.2.4)

Post by alfred007 » 18 Dec 2017, 01:41

I think it's a bit too soon for a new release. We have a big problem with the transition from beta to gamma. In over a dozen tries I never get all my four transports with my units to gamma. The first transport I became random units like you get when you start a new gamma campaign from the menu. The transports two to four gave me my units, but because of the random units of the first transport, the units of my last transport from beta are lost. But this is at the moment the only big issue we have. Bethrezen made a board topic with some issues you can see here viewtopic.php?f=6&t=13753. And at the moment I just started testing gamma campaign to have the first look if gamma is stable and Bethrezen just started beta campaign testing to make the levels more similar like 1.10. So we don't know if gamma 2-9 are really stable. I guess it will take until the end of January that we can release 3.2.4.
Per wrote:Before releasing, I think to should make one of the javascript-based AIs the default (rather than the wzscript-based Nexus that is default now). Is there any other javascript-based AIs you would like included in the release? Any opinions on which should be the new default?
I don't know the other AIs. What for AIs do we have and what are the differences?

User avatar
Lord_Kane
Trained
Trained
Posts: 102
Joined: 24 Nov 2016, 21:51

Re: New release planning (3.2.4)

Post by Lord_Kane » 18 Dec 2017, 06:03

alfred007 wrote:I think it's a bit too soon for a new release. We have a big problem with the transition from beta to gamma. In over a dozen tries I never get all my four transports with my units to gamma. The first transport I became random units like you get when you start a new gamma campaign from the menu. The transports two to four gave me my units, but because of the random units of the first transport, the units of my last transport from beta are lost. But this is at the moment the only big issue we have. Bethrezen made a board topic with some issues you can see here viewtopic.php?f=6&t=13753. And at the moment I just started testing gamma campaign to have the first look if gamma is stable and Bethrezen just started beta campaign testing to make the levels more similar like 1.10. So we don't know if gamma 2-9 are really stable. I guess it will take until the end of January that we can release 3.2.4.
Per wrote:Before releasing, I think to should make one of the javascript-based AIs the default (rather than the wzscript-based Nexus that is default now). Is there any other javascript-based AIs you would like included in the release? Any opinions on which should be the new default?
I don't know the other AIs. What for AIs do we have and what are the differences?
I agree with alfred007, lets get some more fixes into the campaign and then release it.

User avatar
NoQ
Special
Special
Posts: 6186
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: New release planning (3.2.4)

Post by NoQ » 18 Dec 2017, 09:12

I don't think Semperfi-JS should be the default AI. It was meant to be an hello-world AI tutorial to show AI developers how to do the basic stuff, but it uses the same easy-to-notice far-from-efficient strategy in every game, so it'd become boring very quickly.

User avatar
Prot
Trained
Trained
Posts: 165
Joined: 29 Nov 2010, 12:41

Re: New release planning (3.2.4)

Post by Prot » 18 Dec 2017, 13:31

For default AI, for a very long time players replace Nexus with Nullbot, but I don't think completely cut Nexus it's a good idea.
Also need to rework the AI interface, to avoid the message.

Code: Select all

[addAiChooser:1824] You have too many AI's loaded for the GUI to handle.  Only the first 10 will be shown.
But I have not yet reached this place. So now I have no patch.
Berserk Cyborg wrote:Don't know what you want to do with Nexus, but we can add Cobra and BoneCrusher (should Prot be motivated to use a more acceptable code style for the repository and disables the logging/3.1.5 stuff).
I don't think BoneCrusher ready to be a part of the game.
Despite the good results the games, he is the monstruos code, pulls a dependency to be compatible with 3.1.5. Completely not able to play on island maps.
I'm already working on a new bot, focused on performance and support only 3.2+ version of the game. But it will be later.
So at this point I think that needs to be Nullbot AI by default.

MIH-XTC
Trained
Trained
Posts: 251
Joined: 31 Jan 2014, 07:06

Re: New release planning (3.2.4)

Post by MIH-XTC » 18 Dec 2017, 16:23

In regards to the AI's,

Nexus is only terrible because nobody bothered to fix the obvious flaws, it's not because of WZscript although WZscript does need to go.

1. Makes random unit designs
2. Researches random items, has no concept of a research strategy
3. Only makes 1 research center
4. Does not know how to spend extra power
5. Does not know how to defend
6. Does not know how to acquire new opponent in 2v2+ games

so it's just a matter of:

- Statically populating the research and template arrays (Nexus.vlo). Dynamically (or randomly) generated research objectives and unit templates won't work, unless it's like Nullbot where the template turret is relative to the opponent.

- Add an if statement to make additional base structures for every 4-5 derricks (e.g. 3 factories and 3 cyborg factories for 15 derricks)
- Add if statement if power > ~4000 start making additional base structures and defense.

- In terms of attacking, just send all combatant droids towards nearest opponent when there is more than 10 idle droids.
- Add function to find enemy droids within 40 tiles of base and send all droids there (defend base)
- Increase frequency of function calls. Instead of checking if we have enough of base structure "X" every 60 seconds, it should probably be more like every 10 seconds.

Then the AI plays 10x better with just these simple fixes.

Per
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 3753
Joined: 03 Aug 2006, 19:39

Re: New release planning (3.2.4)

Post by Per » 18 Dec 2017, 19:13

Berserk Cyborg wrote:EDIT:
One thing the js AI are missing out on are events for alliances.
0001-Add-alliance-events-and-functions-for-JS-API.patch
Patch looks good to me.

cybersphinx
Inactive
Inactive
Posts: 1688
Joined: 01 Sep 2006, 19:17

Re: New release planning (3.2.4)

Post by cybersphinx » 20 Dec 2017, 19:57

The tutorial js conversion removes the message strings from translations, maybe it's just enough to enclose them in _() in the consoleVar array.
We want information... information... information.

Per
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 3753
Joined: 03 Aug 2006, 19:39

Re: New release planning (3.2.4)

Post by Per » 21 Dec 2017, 01:25

Berserk Cyborg wrote:Ticket #4633 could be worrisome though I never experienced it yet.
I think I fixed it, but I'm not sure since I never could reproduce it myself. Also, the fix is a bit risky, so please test all the script movement related stuff and see that it still works as expected. Fix in 9f25071068dd2edefb0f9fc9e17873a7c5e7a230.

User avatar
Berserk Cyborg
Code contributor
Code contributor
Posts: 615
Joined: 26 Sep 2016, 19:56

Re: New release planning (3.2.4)

Post by Berserk Cyborg » 21 Dec 2017, 05:27

cybersphinx wrote:The tutorial js conversion removes the message strings from translations, maybe it's just enough to enclose them in _() in the consoleVar array.
I put the messages in _(). Anything else?
tutorial.js
(15.57 KiB) Downloaded 51 times
Per wrote: I think I fixed it, but I'm not sure since I never could reproduce it myself. Also, the fix is a bit risky, so please test all the script movement related stuff and see that it still works as expected.
I never saw it either. I guess Bethrezen was very (un)lucky and happened to find a bug likely no one else would ever encounter. I see droids moving around normally (nothing uses the safeDest function).

Saves from 3.2.3 for campaign are completely trashed. Too much has been changed for them to work properly. Also been quite a few changes that could impact stat mods for example (or maybe anything that makes changes to rules.js).

For releases, why not do something like a new release every 4 months (April, August, December) or every 15-30 tickets fixed? Speaking of which, Mac builds should be possible now?

Per
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 3753
Joined: 03 Aug 2006, 19:39

Re: New release planning (3.2.4)

Post by Per » 21 Dec 2017, 14:48

Since campaign savegames are incompatible, should we bump the minor release number, to make it 3.3.0 instead of 3.2.4?

We should definitely release more often, I agree.

alfred007
Trained
Trained
Posts: 434
Joined: 31 Jul 2016, 06:25
Location: Stuttgart, Germany

Re: New release planning (3.2.4)

Post by alfred007 » 21 Dec 2017, 17:56

Per wrote:Since campaign savegames are incompatible, should we bump the minor release number, to make it 3.3.0 instead of 3.2.4?

We should definitely release more often, I agree.
Yes

Per
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 3753
Joined: 03 Aug 2006, 19:39

Re: New release planning (3.2.4)

Post by Per » 21 Dec 2017, 20:27

Some proposed Christmas-cleaning of the code:
https://github.com/perim/warzone2100/co ... dadad80c31 Remove end game credits screen
https://github.com/perim/warzone2100/co ... 1cbe6ad011 Remove old cluster code, now unused

User avatar
Berserk Cyborg
Code contributor
Code contributor
Posts: 615
Joined: 26 Sep 2016, 19:56

Re: New release planning (3.2.4)

Post by Berserk Cyborg » 21 Dec 2017, 20:37

*Feature removal & ticket purge intensifies*

Now mission backdrop displays in the right places without ghosting in some situations. I put _() for the tutorial strings in 410869b15d5e57d8774be74b4b7e399fb968527e.

The GUI for mission end (save/continue/quit options) needs to be reworked later. If a mission is failed, the continue option does nothing.
Per wrote: Some proposed Christmas-cleaning of the code:
https://github.com/perim/warzone2100/co ... dadad80c31 Remove end game credits screen
https://github.com/perim/warzone2100/co ... 1cbe6ad011 Remove old cluster code, now unused
Looks good.

Post Reply