bobtheuberfish / chiriboga

Implements Netrunner in Javascript against an AI opponent
https://chiriboga.sifnt.net.au/
GNU General Public License v3.0
86 stars 11 forks source link

Dockerfile and docker-compose.yml files for running Chiriboga in a container #127

Closed mikeriley closed 1 year ago

mikeriley commented 1 year ago

Follow the instructions at ?? to populate the images in the image folder, then run "docker-compose up --build -d" to create and run the project in a container after saving the following file contents below:

Filename = Dockerfile:

FROM php:7.2-apache
COPY src/ /var/www/html/
EXPOSE 80

Filename = docker-compose.yml:

version: '3'
services:
  web:
    image: netrunner
    build: .
    container_name: netrunner
    restart: always
    ports:
      - "3000:80"

Once docker-compose has the container running, visit the machine running it with a web browser by opening http://:3000.

bobtheuberfish commented 1 year ago

Thank you for this. Do I just put it in the Wiki or did you have something else in mind?

mikeriley commented 1 year ago

The Wiki is fine, unless you want to create the files and add them to the repo (I couldn't since I don't have contributor access). Eventually, I would also like to add Nisei's Borealis expansions to the set lists as well, though it will take me awhile to grok the attributes in the *.js files for the working System Gateway and 2021 update sets.

bobtheuberfish commented 1 year ago

Thanks, I've added it to the Wiki. I've also invited you as a collaborator. I haven't collaborated on a project before so I'm not sure how this will work. The other option I think would have been to allow public contributions? Usually adding code to the set file is not sufficient to implement a card, since it may come with new mechanics and AI requirements. I'm working on Esâ Afontov at the moment, which first requires me to implement core damage, an 'on taking core damage' callback, and the Sabotage mechanic, as well as handling any interactions I may discover during testing. I plan to overhaul the naming convention for callbacks used on cards. I intend to come up with a convention to make it clear which callbacks are part of the game mechanics (i.e. user can choose which order they resolve) and which ones are 'automatic' as part of implementation. There are cards in Midnight Sun which you could have a go at implementing in the meanwhile if you like. Steelskin Scarring, for example, is similar to Loup. I've created the base files for Midnight Sun, in case that's useful for you to get started.

mikeriley commented 1 year ago

I've added the Dockerfile and docker-compose.yml files to the repo and updated the Wiki. BTW, I also have high resolution images of the card sets. The current card images are fine but the text is a bit blurry especially on high resolution displays. I know there would likely be some extra work to update the dimensions on the play field (I initially tried to swap out the old low-res images with the high-res versions, and the play field and the card effect animations got screwed up pretty badly). Anyway, let me know if these are of interest to provide a 'high-res' mode for players who don't mind consuming the extra resources to display these much better looking card images. Lastly, I may need some guidance on the card definitions in your card set json files. The mixture of key value pair assignments and functions is taking some time to wrap my head around what each one does within the context of the game logic. Should I continue to post questions here or use a different method (email, IM, etc.) for these back channel conversations?

bobtheuberfish commented 1 year ago

If you have Discord you can contact me there. I post in the tools-development of GLC, so you can find me to PM. We can talk about high resolution images there. Hopefully the card definition functions will be easier to understand once I overhaul the naming convention but for now you should take a look at the first section in decks.js, which serves as my documentation for this.

mikeriley commented 1 year ago

I do use Discord but I am unfamiliar with the GLC server. Can you post an invite to the server and I can attempt to locate you there? I'd rather not post my Discord ID in this public message board, as I am sure you can appreciate. Thanks, and I look forward to PM'ing you soon.

bobtheuberfish commented 1 year ago

The Discord link is on https://www.nearearthhub.net/ (fourth line down, you'll probably need to scroll)