New release planning (3.2.4)/ 3.3.0
- Berserk Cyborg
- Code contributor
- Posts: 938
- Joined: 26 Sep 2016, 19:56
Re: New release planning (3.2.4)
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.
Edit: New patch in my post below viewtopic.php?f=6&p=139456#p139453.
Re: New release planning (3.2.4)
Thanks.. i translate it to russian https://yadi.sk/d/KwUASV-I3R2EmRBerserk Cyborg wrote:I have made some progress on the change log and probably need to add even more to this already 82 line additions.
Re: New release planning (3.2.4)
Hello Berserk Cyborg, let me decide for you. No Question: Nullbot.Berserk Cyborg wrote:
I think the default AI should be either SemperFi-js or Nullbot (not able to decide which one myself).
.
SemperFi is to weak, always follows one and the same strategy. SemperFi isn`t a challenge IMO.
In case the WZ-game ends in a draw , the game winner will be determined by penalty shoot-out.
Re: New release planning (3.2.4)
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.
Maps | Tower Defense | NullBot AI | More NullBot AI | Scavs | More Scavs | Tilesets | Walkthrough | JSCam
- Berserk Cyborg
- Code contributor
- Posts: 938
- Joined: 26 Sep 2016, 19:56
Re: New release planning (3.2.4)
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.
I think I have everything noteworthy of this release in this revision of the change log.
Re: New release planning (3.2.4)
According wzait, last semerfi-js edition much more interesting, than old one in 3.2.3 version. Its like two different bots.montetank wrote: SemperFi is to weak, always follows one and the same strategy. SemperFi isn`t a challenge IMO.
Re: New release planning (3.2.4)
Semperfi should be removed from the game because SemperFi JS has made it obsolete.
Re: New release planning (3.2.4)
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.Forgon wrote:Semperfi should be removed from the game because SemperFi JS has made it obsolete.
Maps | Tower Defense | NullBot AI | More NullBot AI | Scavs | More Scavs | Tilesets | Walkthrough | JSCam
Re: New release planning (3.2.4)
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?
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?
Transmission ends ...
Re: New release planning (3.2.4)
The main difficulty in allowing more AIs is not to break the GUI at the minimum screen resolution of 640x480 pixels.JimmyJack wrote:I think the more AIs the better.
How hard would this be? [...]
Re: New release planning (3.2.4)
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.I don't know how good an idea changing the AI on the campaign would be. Maybe it should remain Nexus?
Maps | Tower Defense | NullBot AI | More NullBot AI | Scavs | More Scavs | Tilesets | Walkthrough | JSCam
Re: New release planning (3.2.4)
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.
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
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)
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.
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.
Maps | Tower Defense | NullBot AI | More NullBot AI | Scavs | More Scavs | Tilesets | Walkthrough | JSCam
Re: New release planning (3.2.4)
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.Berserk Cyborg wrote:I think I have everything noteworthy of this release in this revision of the change log.
- Berserk Cyborg
- Code contributor
- Posts: 938
- Joined: 26 Sep 2016, 19:56
Re: New release planning (3.2.4)
Ok, I pushed it in 7e9a52df8a4bd4baa7fc12252c89e32c16e3291f.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.