Coder Social home page Coder Social logo

Comments (6)

santiontanon avatar santiontanon commented on August 15, 2024

Hi Scott,

I really like the idea of the configurable main file. There is currently an attempt at this coded by Nicolas Barriga (basically this is what he was using for running his experiments) in test/RunConfigurableExperiments.java. But I haven't used it myself, so I don't know how flexible is it. But this is something that I'd definitively want to do. Your proposal sounds pretty good, so, if that ends up being enough, it should replace the current test/RunConfigurableExperiments.java. Since that would not break anything, if you want to do a pull request with that part, please go ahead, since I think that's be a great addition!!!! (thanks one more time for your contributions!!)

About the project restructuring, I am a bit hesitant about it... on the one hand I have always wanted to add unit tests, but never had the bandwidth to create them. But on the other hand, I don't like the idea to adhere to a given building pipeline (e.g., gradle) (I've had bad experiences in the past committing to certain building pipelines or third-party dependencies, that I never thought would disappear and they did). So, I understand the advantages, but this is something I will need to think about a bit more before deciding one way or the other! I'll keep it in mind though!

from microrts.

scottazord avatar scottazord commented on August 15, 2024

Hi Santiago,

Understandable about the project restructure, thought it was a bit of a stretch myself.

In regards to the configurable main file, i'll send the PR asap. Though at the moment it's only suitable for one remote agent playing against a local bot, is this fine?.

The future plan was to allow the configuration to support N number of remote agents along side M number of bots.

from microrts.

santiontanon avatar santiontanon commented on August 15, 2024

I think it's a good starting point anyway. Perhaps instead of "server = true/false", we could have a "mode = server/client/standalone", and in the third mode, the game would would just run on its own, locally.

The only thing that would have to be added is to specify the opponents to use.

Once this is set up, extensions can be easily added to specify whether we want to save a replay to a file or not, launch a window to see the game progress graphically or not, etc. But those can be added later. And of course, once functionality is complete, I'd like to then remove the test/RunConfigurableExperiments.java class, for not having replicated functionality.

from microrts.

scottazord avatar scottazord commented on August 15, 2024

#20 Have sent a pull request containing the main class.

from microrts.

santiontanon avatar santiontanon commented on August 15, 2024

got it! I'm going to leave this issue open, to remind myself of extending the new main class to support the whole range of configuration options of the game

from microrts.

santiontanon avatar santiontanon commented on August 15, 2024

I just extended your class a bit to allow for Stand alone games. I also changed the "TOURNAMENT" constant to "GUI", since there are more things the GUI can do, and also made some parameters optional (for example, if you are not running CLIEN/SERVER, you can leave out the IP, port, etc. of the config file, and it'll work fine).

But thanks for creating those classes, it was actually a very flexible way to configure the game, and I feel it can be extended very easily now! So, I am going to close this issue, but if there is any additional feature you would like in the MicroRTS.java main file, by all means feel free to reopen! :)

from microrts.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.