Page 2 of 8

Re: New release planning (3.2.4)

Posted: 27 Dec 2017, 08:41
by Berserk Cyborg
I have made some progress on the change log and probably need to add even more to this already 82 line additions.
Edit: New patch in my post below viewtopic.php?f=6&p=139456#p139453.

Re: New release planning (3.2.4)

Posted: 27 Dec 2017, 14:17
by Prot
Berserk Cyborg wrote:I have made some progress on the change log and probably need to add even more to this already 82 line additions.
0001-Update-Changelog.patch
Thanks.. i translate it to russian https://yadi.sk/d/KwUASV-I3R2EmR

Re: New release planning (3.2.4)

Posted: 27 Dec 2017, 17:29
by montetank
Berserk Cyborg wrote:
I think the default AI should be either SemperFi-js or Nullbot (not able to decide which one myself).
.
Hello Berserk Cyborg, let me decide for you. No Question: Nullbot.
SemperFi is to weak, always follows one and the same strategy. SemperFi isn`t a challenge IMO.

Re: New release planning (3.2.4)

Posted: 27 Dec 2017, 18:37
by NoQ
Nexus AI has historical value. I suggest we keep it as deprecated (not default, probably marked as deprecated) for a while before we remove wzscript support. Probably (unlikely) someone would be willing to do a line-by-line translation to javascript, but wzscript API is not corresponding one-to-one to the javascript API, so it would not be trivial, nor reliable.

Re: New release planning (3.2.4)

Posted: 27 Dec 2017, 19:11
by Berserk Cyborg
It would take quite a lot of time to convert Nexus which is massive compared to any of the older campaign scripts (I more or less relied on observed behavior for the campaign scripts myself rather than try deciphering that arcane stuff). That is a project for another time. Anyway, Nullbot for default AI. :)

I think I have everything noteworthy of this release in this revision of the change log.
0001-Update-Changelog.patch

Re: New release planning (3.2.4)

Posted: 27 Dec 2017, 19:14
by Prot
montetank wrote: SemperFi is to weak, always follows one and the same strategy. SemperFi isn`t a challenge IMO.
According wzait, last semerfi-js edition much more interesting, than old one in 3.2.3 version. Its like two different bots.

Re: New release planning (3.2.4)

Posted: 27 Dec 2017, 21:45
by Forgon
Semperfi should be removed from the game because SemperFi JS has made it obsolete.

Re: New release planning (3.2.4)

Posted: 28 Dec 2017, 04:45
by NoQ
Forgon wrote:Semperfi should be removed from the game because SemperFi JS has made it obsolete.
Semperfi-JS has nothing in common with the original Semperfi - neither code, nor behavior, nor purpose. The old semperfi is a tweaked Nexus that implements a few new strategies such as tower rushes. Semperfi-JS is a hello-world AI designed to be a JS API tutorial.

Re: New release planning (3.2.4)

Posted: 28 Dec 2017, 23:56
by JimmyJack
I think the more AIs the better.
How hard would this be?

Nexus ships (downloads) with the game as always. Then when you start the game and the main menu opens. You click on Options / Game options / Select Default AI.

Then you could have the default AI you want and Nexus would still be in the AI list and you could play it as you wanted to.

I don't know how good an idea changing the AI on the campaign would be. Maybe it should remain Nexus?

Re: New release planning (3.2.4)

Posted: 29 Dec 2017, 00:22
by Forgon
JimmyJack wrote:I think the more AIs the better.
How hard would this be? [...]
The main difficulty in allowing more AIs is not to break the GUI at the minimum screen resolution of 640x480 pixels.

Re: New release planning (3.2.4)

Posted: 29 Dec 2017, 06:30
by NoQ
I don't know how good an idea changing the AI on the campaign would be. Maybe it should remain Nexus?
Nexus AI is not used in campaign. In campaign, every mission has its own simple hand-crafted AI script: "this factory produces this stuff in this order", "produced units attack that often", "these units stand and defend this spot", and that's pretty much it. Campaign AI doesn't need to know how to build the base from scratch, research sensible technologies, adapt to player's choices, so it's kind of easier. Though if i were to make a new campaign from scratch, it is probable that i would have just made a custom NullBot personality for every mission, like i did in my single-player challenges.

Re: New release planning (3.2.4)

Posted: 29 Dec 2017, 18:43
by MIH-XTC
What are your guys thoughts on how Nexus was written in one large file (Nexus.slo) with one config file (Nexus.vlo) as opposed to breaking it up into smaller files? I’ve always wondered which is considered best practice from a development perspective.

It seems in most projects people break things up into many smaller files but I prefer large, self-contained files like Nexus.slo. I like how everything is organized in a header fashion, all of the constants, triggers, functions and everything is right there at the top of a single file. IMO it’s easier to trace the flow of things. Having multiple files doesn’t make things any more modular because you can still do an import.

NoQ wrote:Nexus AI has historical value. I suggest we keep it as deprecated (not default, probably marked as deprecated) for a while before we remove wzscript support. Probably (unlikely) someone would be willing to do a line-by-line translation to javascript, but wzscript API is not corresponding one-to-one to the javascript API, so it would not be trivial, nor reliable.

This is on my TO-DO list, but it’s months into the future. I want to work on porting Contingency+EB into 3.2 first and then I’ll work on porting Nexus to JS. I’m not that familiar with JS but Warzone is the perfect project to learn. I remember you saying in some other thread that you preferred Python instead of JS, me too I know Python very well compared to JS 😊

Re: New release planning (3.2.4)

Posted: 29 Dec 2017, 21:30
by NoQ
I don't care about single file vs. multi file when it comes to simply chopping up large masses of code that would not be usable separately otherwise. But it helps greatly when the same file can be used in multiple places. For instance, you won't be able to make libcampaign without putting it into a separate file, or you wouldn't be able to easily add NullBot personalities unless the common code that ties the personalities together lives in a separate file. So you definitely need a separate file for every reusable module, but the rest is completely personal-taste-driven.

Nexus is split into .slo and .vlo because that's what the language requires - to put global variable declarations in .vlo, with .vlo-specific syntax, and then write imperative code that uses them in .slo, which is a completely different language.

Warzone is not necessarily the best place to learn JavaScript because modern JavaScript is a lot more about the huge amounts of rapidly evolving web frameworks than about the language itself, which Warzone obviously doesn't teach. But as long as you're not going to dive into web development (i sincerely wish you to find something more interesting than that), this should be just fine.

We should also keep an eye on our ES6+ support, because the whole language is just so much better there.

Re: New release planning (3.2.4)

Posted: 29 Dec 2017, 21:54
by Per
Berserk Cyborg wrote:I think I have everything noteworthy of this release in this revision of the change log.
0001-Update-Changelog.patch
I have some notes of my own for the changelog, but I think you should commit this first, then I can modify yours as appropriate.

Re: New release planning (3.2.4)

Posted: 29 Dec 2017, 23:26
by Berserk Cyborg
Per wrote: I have some notes of my own for the changelog, but I think you should commit this first, then I can modify yours as appropriate.
Ok, I pushed it in 7e9a52df8a4bd4baa7fc12252c89e32c16e3291f.