/agar.pw

The Agar.pw Source Code -- is now public as I am shutting the game down soon. Note: This is the flash game version that was developed after the original version was shut down by Miniclip. This is not the mod version back in June 2015.

Primary LanguageActionScriptApache License 2.0Apache-2.0

Agar.pw

This repository contains the original Agar.pw source code for the client and server(s).

Brief Introduction

Me

The following code for Agar.pw is not necessarily the best code available. You might notice many mistakes, wrong use of code, and simply just very unorganized and unprofessional. I kindly ask you to please refrain from criticizing my work harshly. I am only a high school student and have taken no classes on computer science. Everything here was the result of me teaching myself how to code with the famous tool we have today called the internet. On the other hand, I would appreciate any good programmers to give me suggestions on how to improve my coding skills.

Agar.pw History (Why I shut it down!?)

This project originally started as a fun mod/cheat for Miniclip's version of Agario (agar.io). After being shutdown by Miniclip for copyright infringement, I decided to make my own clone of Agario using flash. This was my first time developing a game and I learned a lot during the process. Unfortunately, Agar.pw never regained the amount of users it once had and because school started, I don't have much time to spend updating the game. Additionally, I also am having trouble paying the bills for servers due to lack of funds and ad revenue. I still struggled to keep Agar.pw online, but what ultimately set the nail in the coffin for Agar.pw was Miniclip. I have again been attacked by Miniclip, but this time for trademark infringement. I am tired of dealing with this nonsense and I decided to shut the game down and start a new project. For anyone curious, my next project involves the game "American Truck Simulator".

Game Servers

Notice:

  • All our game servers are based on Ogar however, due to some modifications, the original Ogar server will not work with the Agar.pw client!!
  • All instructions below are based on an Ubuntu 14.04 Server (however they should work for other linux servers such as Debian with little to no modifications)

Basic Necessities

The following instructions assume that you have installed a LAMP stack on your server (Apache, MySQL, PHP).

If you haven't and need help with this use Google. There are many tutorials on how to do this.

Set up policy server

Due to flash security, in order to connect to an Agar.pw Server, you must have a flash socket policy server running on each of your Agar.pw gameservers.

Step 1 - Updating & Installing Nodejs

In the linux terminal type in the following commands to update the server and install node.js and npm.

  • Node.js: "javascript platform for server-side programming"
  • npm: "Node.js package manager"
sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm

Step 2 - Installing Policy Server

Installing the socket policy server is easy if nodejs is successfuly installed. Simply input the following command in the linux terminal.

npm install -g socket-policy-server

Step 3 - Configuring the Policy Server

Create a file named socket_policy.xml in your /root/ directory on your server. Inside this file paste the following code:

<?xml version='1.0'?>
<cross-domain-policy>
	<allow-access-from domain="*" to-ports="PORTS_HERE"/>
</cross-domain-policy>

After the to-ports attribute you will need to state all the ports of all the gameservers that will be running on this particular server along with the ports of the stats server (more on this later). To state multiple ports use a comma without a space like this: 2000,2001. You can also try using ranges; however, I am not sure if they work: 2000-3000.

Step 4 - Applying the Configuration

To apply the configuration to the socket policy server type in the following command in the terminal:

npm config --global set socket-policy-server:policyfile /root/socket_policy.xml

Step 5 - Running the Server

You will need the following commands for running, stopping, and/or restarting the policy server.

npm -g start socket-policy-server

Starts the server

npm -g stop socket-policy-server

Stops the server

npm -g restart socket-policy-server

Restarts the server

Create the Agar.pw Skins Database

To avoid running into any technical difficulties, it is best to set up the Agar.pw skins database even if you are not going to be using custom skins.

Step 1 - Loging in MySQL

In the linux terminal of the server you want to have the skins database on, type in the following to connect to the mysql database.

mysql -u [user] -p

Replace [user] with your mysql user.

After you press enter and typed in your database's password, type in the following sql code:

CREATE DATABASE `agarpw`;
USE `agarpw`;
source /root/database.sql;

If everything went smoothly press CTRL+C to log out of MySQL.

You have now created a agar pw skins database with one skin. (sample skin id= opensource)

Set up the Agar.pw Gameserver

You're done installing the policy server and now it's time to install and set up the actual agar.pw gameserver!

Reminder: Credit goes to the Ogar Project, as this is just an Ogar server with modifications.

Step 1 - Downloading the Gameserver

Please download /server/pwserver.zip from this repository and extract it into your /root folder on your server.

Step 2 - Setting Up the Gameserver

cd /root/pwserver

With the linux terminal navigate to the pwserver folder holding the src folder and the Ogar README and LICENSE files.

npm install ws
npm install mysql

Now install the required nodejs packages.

cd src

Navigate to the src folder within the pwserver folder to begin configuring the gameserver.

nano gameserver.ini

Use nano, vi, or your favorite text editor to modify the gameserver.ini file.

First look for the serverPort attribute and change it to the port you want your server to run on.

Next look for the serverStatsPort attribute and change it to the port you want your stats server to run on. This is the server that reports how many people are playing on the current gameserver.

These ports must match the ports you added in your socket policy configuration file (socket_policy.xml) in the previous steps.

Save and close the file. To do this with the nano editor, press CTRL + X, then the y key, and finally the enter key.

Step 3 - More Set-Up

nano PacketHandler.js

Now we need to modify the PacketHandler file still in the src directory.

Scroll down till you see the MySQL CONFIGURATION comment.

Change the host attribute to the ip address of your server with the skins database. If this is on the same server then leave it as localhost.

Modify the user and password attribute to match one of your database's users which has access to the skins table in your agarpw database. If the host is not localhost be sure that you also allowed different hosts to connect to the database with that user.

Save and close this file.

Step 4 - Testing & Running the Agar.pw Server

Congratulations! You should now be able to start your new Agar.pw gameserver with the following command:

nodejs index.js

If the above did not work, try this:

node index.js

Game Client

Simply upload the agarpw.swf on a public html page on your web server with the servers.xml file in the directory.

Need more help with the client? Vote Here