npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@acmucsd/energium-2020

v1.4.0

Published

fall2020 ai competition! Objective is to collect as much Energium as possible before time runs out

Downloads

23

Readme

Energium AI Competition at UCSD

Upon the dawn of the new millennium, energy has become currency, the most precious resource after majority of Earth's resources have been mined out. You are an energy corporation with the technology of Collectors, robots that can mine a energy rich resource known as energium on the asteroid belts of our solar system.

a pair of collectors

But time is of the essence, and these robots need an AI to help them run effectively and mine as much energium possible before time runs out. What makes matters worse is, there's always a rival corporation on the same asteroid for some reason, trying to mine the resources too. Your goal is to build the best AI agent to control these collectors and get more energy than your competitors. Also, for some reason in 1000 years, Javascript, Python, and Java continue to be prevalent langauges for AI.

See Getting Started to start programming and uploading a bot to compete against others! See Specs for details on how the competition works, and how to develop your bot.

The live competition can be found here: https://ai.acmucsd.com/competitions/energium and will officially conclude October 30th 11:59PM PDT.

Kickoff slides for this competition are here: https://docs.google.com/presentation/d/1hBUV9zxmBHi8wuQEHHaNUJK0xEe4ekS8ofq7u9NE6H4/edit#slide=id.ga1eb4373bd_0_456

Getting Started

Download a starter kit of your choice from Javascript, Python, or Java. Please note, Windows is not supported, please use WSL to access a linux distribution. See this for instructions on how to use WSL.

Make sure you have Node.js installed, of at least version 12 or above.

Install the competition with

npm install -g @acmucsd/energium-2020

To run a match, run

acmai-energium path/to/bot/file.js path/to/other/bot/file.js

and it will output the game results, any relevant logs, store error logs in a errorlogs folder, and store a replay in a replays folder.

If you have some output that doesn't look like an error, then congratulations! You just ran your first AI match! To use our visualizer and watch what unfolded, download our visualizer here: https://github.com/acmucsd/energium-ai-2020/raw/main/bundles/visualizer/visualizer.zip

To install the visualizer, open the zip file, then navigate to the visualizer folder and run npm i in the visualizer's folder. Then run npm run serve to start the visualizer up and it will give you the link to where you can access the visualizer. Upload a replay file and the visualizer will show you what went down!

You can submit your bot to our servers as many times as you like! To submit your bot, zip the contents of your folder by navigating to your bot folder and running

zip -r bot.zip .

Once you submit, our servers will automatically put your bot into matches and store all results, replays, and logs online. Go to https://ai.acmucsd.com/competitions/energium/ranks to see the current leaderboard as well as find matches and watch them.

For more options such as seeding, suppress logs, changing max computation time, use

acmai-energium --help

Keep reading to learn how the competition works and the rules of the AI game

Specs

This is a turn based, 1 vs 1 competition. Each match, two bots compete to get the most energium in store by the end of 200 turns. Each turn, your bot has a second of computation to do whatever it can to win (a second is quite a lot!) and about 1GB of RAM (you probably wont need this much). The computation times are subject to change, but will only ever increase.

You are given a Player object that contains details on your bot's current energium stored, how many collectors it has, and the location of all of its bases. See the Starter kits bot file for details on how to access this data and send commands to run your bot.

You are also given a GameMap object with data on all the map tiles, and the energium values of each tile.

Collectors Collectors can move in 4 directions, North, East, South, West. The starter kit shows you how to move units using the move function.

Each collector has a breakdown level. This breakdown level resets to 0 each time the collector moves over a friendly base. As time passes, the collector slowly becomes more broken down, with the level increasing once every 10 turns. Once the breakdown level is 10, the collector malfunctions and vanishes.

If two collectors, regardless of what team they are on, end up on the same tile on the map after a turn, the collector with the least breakdown level will survive and all other collectors on the same tile will break down. If there's a tie in least breakdown level, all collectors break down.

Collectors automatically gain or lose energium depending on the energium value stored on the tile the collector is on. This energium is then added or removed from the player's store of energium. Be wary that some tiles are severely energy defficient, and can cause you to lose more energium by standing on it. Note that energium is special in that it cannot be depleted anywhere, it will always output that much energium whenever a collector is on it.

Bases

Bases have the ability to spend Energium to produce more collector bots on top of the base to help your corporation mine even more Energium. Caution that if there is a collector already on top of a base, any new collector spawned will either break the existing collector or both collectors will break!

Packages Available and Versions Used

On the competition servers, we are using:

Node version v12.15.0.

Python 3.8.2

Java - openjdk 1.8.0_252

On the competition servers, the following packages are provided for use

For Python Bots: scipy, numpy, pandas, scikit-learn

FAQ

Please join our competition discord for questions, help with bugs, installation, or general strategy talk!

https://discord.gg/XsG5etY