Amazing Collection of online role playing games for your website!

Ugamela TT

HOT
Only registered and logged in users can download this file.
Rating
(0 votes)
Technical Details
Filename ugamela_tt.zip
Size 1.24 MB
Downloads 90
Author Unknown
Created 2006-12-31
Changed 2025-12-11
System PHP 5.x
Price $0.00
Screenshot
Ugamela TT

Ugamela TT is a Polish sci-fi empire builder inspired by the OGame era: expand across a persistent universe, manage metal–crystal–deuterium economies, and coordinate fleets, research, and defenses with your alliance. Its template-driven MVC architecture and gettext localization give it a professional sheen, even as it preserves the thrilling zero-sum battles and galaxy politics that defined the genre.

You’ll grow planets, unlock technologies, and orchestrate timed construction and fleet movements in a living map of galaxies and systems. While this preserved build shows traces of incomplete fleet logic from a Spanish fork, it remains a formative snapshot of mid-2000s space MMORTS design and a strong foundation for restoration.

File Verification
MD5 Checksum
15db5e8461df897fa0fd1c25928c5a48
SHA1 Checksum
4220a53162768d07040992e350487c637bcc9d54

UGAMELA TT - VINTAGE BROWSER RPG ANALYSIS - Game Analysis Report

Game 67/79 in the Collection

---

I. GAME IDENTITY

Name: Ugamela TT (Polish Space Strategy Clone)

Genre: Space MMORTS (Massively Multiplayer Real-Time Strategy)

Language: Polish (polski) with Spanish remnants

Era: Mid-2000s (2006-2007 based on copyright notices)

Original Inspiration: OGame.de (German space strategy phenomenon)

Description:

Ugamela TT is a Polish clone of OGame, the legendary space-themed browser strategy game. Players build mining colonies, research technologies, construct fleets of spaceships, and wage interstellar wars across a persistent universe. Unlike the fantasy/medieval games in this collection, Ugamela is pure sci-fi - players manage metal, crystal, and deuterium resources to expand their galactic empires. This version features Polish localization and custom modifications while retaining the core OGame gameplay loop.

---

II. CODEBASE STATISTICS

Total Files: 565 files

PHP Files: 199 files

Lines of PHP Code: 30,588 lines

Database Schema: 474 lines (mysql_schema.sql)

File Type Breakdown:

  • PHP Scripts: 199 files (core game logic)
  • TPL Templates: 162 files (Smarty-style templating)
  • GIF Images: 49 files (icons, backgrounds)
  • JPG Images: 34 files (planet graphics, UI elements)
  • MO Language Files: 28 files (GNU gettext translations)
  • JavaScript: 25 files (UI interactions)
  • TXT Documentation: 18 files (README, TODO, changelogs)
  • PNG Images: 10 files (interface elements)
  • CSS Stylesheets: 9 files (multiple theme support)
  • SQL Schemas: 3 files (database structures)
  • RAR Archives: 3 files (backups/packages)
  • BAK Backups: 6 files (development backups)

Observations:

With 30,588 PHP lines and 162 template files, Ugamela TT is the 3rd largest codebase in the collection (after XNova at 41,815 lines and Travian at 30,713 lines). The high template count (162 .tpl files) indicates a well-organized MVC architecture with separated presentation logic. The 28 .mo (machine object) files suggest professional localization using GNU gettext rather than simple array-based translations.

---

III. ARCHITECTURAL OVERVIEW

A. Core Architecture

Pattern: MVC with Template Engine + OOP Database Abstraction

Technologies:

  • PHP 5.x (object-oriented)
  • MySQL 5.0 with MyISAM engine
  • Smarty-style templating (.tpl files)
  • GNU gettext for internationalization (.mo files)
  • JavaScript (custom timer scripts, AJAX-like updates)

Key Files:

`

common.php - Bootstrap file (126 lines) - loads all core systems

extension.inc - File extension definitions ($phpEx variable)

config.php - Database credentials (placeholder values)

login.php - MD5 password authentication

reg.php - Registration with email validation (257 lines)

overview.php - Planet overview (661 lines) - main game screen

buildings.php - Construction queue management (995 lines)

fleet.php - Fleet dispatch system (279 lines)

galaxy.php - Galaxy view (864 lines) - explore/spy/attack

functions.class.php - OOP database class

includes/ - Core function libraries

  • constants.php - Game constants (building IDs, ship IDs)
  • functions.php - Helper functions
  • db.php - Database wrapper
  • planet_maker.php - Planet generation
  • rank_maker.php - Player ranking calculation
  • planet_toggle.php - Switch between player's planets

templates/ - 162 .tpl template files

language/ - Multi-language support (28 .mo files)

`

B. Database Schema (25+ Tables)

User & Authentication:

  • ugml_users - Player accounts (86 fields!) including tech levels, alliance, ban status
  • ugml_buddy - Friend system
  • ugml_banned - Ban records with time limits

Universe & Planets:

  • ugml_planets - Individual planets (fields, buildings, fleets, resources)
  • ugml_galaxy - Galaxy grid (10 galaxies × 500 systems × 15 planet slots)
  • ugml_lunas - Moons (special defensive satellites)

Fleet & Combat:

  • ugml_fleets - Active fleet movements (attacks, transports, espionage)
  • ugml_flota - Fleet templates/shortcuts

Alliance System:

  • ugml_alliance - Guild data (description, ranks, member count, points)
  • Alliance-specific fields in users table (ally_id, ally_rank_id, ally_request)

Administrative:

  • ugml_config - Game settings (speed, maintenance mode)
  • ugml_errors - Error logging
  • ugml_admin_acl - Admin access control lists
  • ugml_admin_modules - Admin panel modules

Reporting & Communication:

  • ugml_zglos - Player reports/complaints (5 fields)
  • ugml_zglos_zlego - "Report bad player" system

Multiple Database Schemas:

Three SQL files found:

  • mysql_schema.sql (474 lines) - Full schema
  • mysql_basic.sql - Simplified version
  • sql.sql - Unknown purpose

---

IV. GAMEPLAY SYSTEMS

A. Core Space Strategy Mechanics

Resource Management (3 Resources):

  • Metal - Basic resource for buildings and ships
  • Crystal - Advanced resource for technology and ships
  • Deuterium - Fuel for fleet movement and energy

Hourly Production:

  • Metal Mine - Produces metal per hour (levels 1-30+)
  • Crystal Mine - Produces crystal per hour
  • Deuterium Synthesizer - Produces deuterium (requires energy)
  • Solar Plant / Fusion Reactor - Generates energy for other buildings

B. Building System

Infrastructure Buildings (20+ types):

`php

// From constants.php and buildings.php:

Metal Mine (ID unknown)

Crystal Mine

Deuterium Synthesizer

Solar Plant

Fusion Reactor

Robotics Factory - Faster construction

Nanite Factory - Ultra-fast construction

Shipyard - Build ships

Research Lab - Research technologies

Alliance Depot - Store alliance resources

Missile Silo - Build interplanetary missiles

Terraformer - Expand planet size

`

Construction Queue:

`php

// From buildings.php line 995:

$planetrow['b_building_queue'] // Building queue stored as TEXT

$planetrow['b_hangar_id'] // Ship construction queue

`

Buildings use time-based queues processed by cron or page load updates.

C. Technology Research (16 Technologies)

From ugml_users table fields:

`sql

spy_tech - Espionage level

computer_tech - Max fleet slots (+1 per level)

military_tech - Combat power boost

defence_tech - Defense bonus

shield_tech - Shield strength

energy_tech - Energy efficiency

hyperspace_tech - Unlock advanced ships

combustion_tech - Slow ship speed boost

impulse_motor_tech - Medium ship speed

hyperspace_motor_tech - Fast ship speed

laser_tech - Weapon power

ionic_tech - Ion weapons

buster_tech - Plasma weapons

intergalactic_tech - Long-range research network

graviton_tech - Death Star requirements

`

Research is conducted at the Research Lab and provides permanent bonuses across all planets.

D. Fleet System

Ship Types (15+ Ship Classes):

Based on OGame standard ships:

  • Small Cargo Ship - Transport 5,000 resources
  • Large Cargo Ship - Transport 25,000 resources
  • Light Fighter - Basic combat ship
  • Heavy Fighter - Improved combat
  • Cruiser - Mid-tier warship
  • Battleship - Heavy warship
  • Bomber - Anti-defense specialist
  • Destroyer - Anti-bomber ship
  • Death Star - Superweapon (destroys planets)
  • Colony Ship - Found new planets
  • Recycler - Collect debris from battles
  • Espionage Probe - Spy on enemies
  • Solar Satellite - Generates energy in orbit

Fleet Missions (9 Mission Types):

`php

// From fleet.php and overview.php:

1 = Atakuj (Attack)

3 = Transportuj (Transport)

4 = Stacjonuj (Station/Deploy)

5 = Destruir (Destroy - likely Spanish remnant)

6 = Szpieguj (Spy/Espionage)

7 = Stacjonuj? (Unknown variant)

8 = Zbieraj (Harvest/Collect debris)

9 = Kolonizuj (Colonize)

`

Fleet Movement:

`php

// From ugml_fleets table:

fleet_start_time - Arrival time at target

fleet_end_time - Return time to home

fleet_start_galaxy - Origin coordinates [G:S:P]

fleet_end_galaxy - Target coordinates

fleet_resource_metal - Cargo being transported

`

Travel time calculated based on distance and ship speed.

E. Galaxy Exploration

Galaxy Structure:

  • 10 Galaxies (maximum, likely 1-9 in practice)
  • 500 Systems per galaxy
  • 15 Planet Positions per system
  • 7,500 Total Possible Planets per galaxy

Galaxy View Features (galaxy.php - 864 lines):

`php

// Coordinates format: [Galaxy:System:Planet]

// Example: [1:234:7] = Galaxy 1, System 234, Planet 7

for($i = 1; $i < 16; $i++){ // Loop through 15 planet slots

$galaxyrow = doquery("SELECT * FROM {{table}}

WHERE galaxy='$g' AND system='$s' AND planet='$i'","galaxy",true);

}

`

Players can see:

  • Planet name and size
  • Player name and alliance
  • Debris fields from battles
  • Moon presence (from destroyed fleets)

F. Combat System

Battle Mechanics:

  • Fleets arrive at target → automatic battle calculation
  • Attack vs. Defense stats
  • Ships have Hull, Shield, Weapon values
  • Destroyed ships create debris fields (metal + crystal)
  • Rapid Fire bonuses (e.g., Destroyers vs. Bombers)

Espionage:

`php

// From overview.php and fleet.php:

$probes = $mojaplaneta['spy_sonde']; // Spy probe count

`

Send espionage probes to scout enemy defenses, fleet, and resources. Counter-espionage determined by spy tech level difference.

Defense Structures:

  • Rocket Launcher
  • Light Laser
  • Heavy Laser
  • Gauss Cannon
  • Ion Cannon
  • Plasma Turret
  • Small Shield Dome (protects all defenses once)
  • Large Shield Dome (stronger version)

G. Alliance Features

Alliance System (ugml_alliance table):

  • ally_tag - Alliance abbreviation (3-8 characters)
  • ally_name - Full alliance name
  • ally_owner - Founder user ID
  • ally_description - Public description
  • ally_text - Internal text
  • ally_web - Alliance website URL
  • ally_ranks - Custom rank system (TEXT field)
  • ally_members - Member count
  • ally_points - Total alliance score

Alliance Requests:

`php

// From ugml_alliance:

ally_request - Pending join requests

ally_request_waiting - Queue of applicants

ally_request_notallow - Block join requests

`

H. Advanced Features

Moon System (ugml_lunas table):

Moons form from debris fields after major battles. They provide:

  • Hide fleet from espionage
  • Build Sensor Phalanx (see enemy fleet movements)
  • Build Jump Gate (instant fleet travel)

Interplanetary Missiles:

`php

$rmp = $mojaplaneta['interplanetary_misil']; // Missile count

`

Destroy enemy defenses from afar (up to X systems distance based on impulse tech).

Vacation Mode:

`php

// From ugml_users:

urlaubs_modus = 1 // Vacation mode active

`

File: buildings.php line 19:

`php

if ($user['urlaubs_modus']==1)

message("Masz włączony urlop. Nie mozesz nic budowac","Error");

`

Freezes account to prevent attacks while player is away.

---

V. SECURITY ANALYSIS

A. Critical Vulnerabilities

1. MD5 Password Hashing (No Salt)

File: reg.php (lines 133-136)

`php

$newpass = $_POST['haslo'];

$md5newpass = md5($newpass);

doquery("INSERT INTO {{table}} SET

password='{$md5newpass}'", 'users');

`

Severity: 🔴 CRITICAL

MD5 hashing without salt is vulnerable to rainbow table attacks. No evidence of bcrypt or password_hash() usage.

File: login.php (line 18)

`php

if($login['password'] == md5($_POST['password']))

`

Direct MD5 comparison with user input.

2. Placeholder Database Credentials

File: config.php (lines 3-7)

`php

$dbsettings = Array(

"server" => 'HOST',

"name" => 'NAZWABAZY',

"user" => 'UZYTKOWNIKBAZY',

"pass" => 'HASLODOBAZY',

"prefix" => 'ugml_',

"secretword" => "3ec496e2bac8743fccbad171efca40d7"

);

`

Severity: 🟡 MEDIUM (placeholder - requires manual configuration)

While these are obviously placeholder values (Polish variable names like "NAZWABAZY" = "DATABASENAME"), the "secretword" appears to be an MD5 hash (32 hex characters). This is used for cookie validation but its purpose is unclear.

3. SQL Injection via mysql_escape_string()

File: login.php (line 11)

`php

$login = doquery("SELECT * FROM {{table}}

WHERE username = '".mysql_escape_string($_POST['username'])."' LIMIT 1","users",true);

`

Severity: 🔴 CRITICAL

Using deprecated mysql_escape_string() (note: NOT mysql_real_escape_string()). This function was removed in PHP 5.5 and is vulnerable to certain multi-byte character attacks.

File: common.php (lines 1-10)

`php

error_reporting(E_ERROR | E_WARNING | E_PARSE);

set_magic_quotes_runtime(0);

extract($_GET,EXTR_SKIP);

`

Severity: 🔴 CRITICAL

extract($_GET) directly extracts GET parameters into variables, allowing variable injection attacks.

4. Domain-Based User Limit DRM

File: common.php (lines 56-96)

`php

$serwer = $_SERVER["SERVER_NAME"];

$tab = explode('.', $serwer);

$host = $tab[1];

// Jeżeli yoyo.pl

if ($host == yoyo){

$za = doquery("SELECT * FROM {{table}",'users');

$i = mysql_num_rows($za);

if ($i == 15){

header("Location: http://ugamela.advance.webd.pl");

}

}

`

Severity: 🟢 LOW (DRM, not a security vulnerability)

This is anti-piracy code that redirects to the official server if a free hosting provider (yoyo.pl, ugu.pl, lua.pl) has more than 15 registered users. Clever DRM to prevent pirated copies on free hosts, but easily bypassed by commenting out the code.

5. Cookie-Based Authentication (Weak)

File: login.php (lines 31-35)

`php

$cookie = $login["id"] . " " . $login["username"] . " " .

md5($login["password"] . "--" . $dbsettings["secretword"]) . " " .

$rememberme;

setcookie($game_config['COOKIE_NAME'], $cookie, $expiretime, "/", "", 0);

`

Severity: 🔴 CRITICAL

Cookie contains: [USER_ID] [USERNAME] [MD5(PASSWORD+SECRET)] [REMEMBERME]

Problems:

  • User ID and username are plaintext in cookie (information disclosure)
  • Cookie validation relies on MD5 (weak)
  • No session regeneration after login (session fixation risk)
6. Planet Deletion Password Check

File: overview.php (line 66)

`php

if(md5($_POST['pw']) == $user["password"] &&

$user['id_planet'] != $user['current_planet']){

$destruyed = time() + 606024; // 24-hour delay

doquery("UPDATE {{table}} SET destruyed='$destruyed',

id_owner=0 WHERE id='{$user['current_planet']}'","planets");

}

`

Severity: 🟡 MEDIUM

Allows planet deletion with password confirmation. The 24-hour grace period is good, but MD5 comparison is weak.

7. Email Sending Without Validation

File: reg.php (lines 17-36, 51-62)

`php

function sendpassemail($emailaddress, $password) {

$email = "Twoje hasło to: $password"; // Plaintext password in email!

$status = mymail($emailaddress, "Rejestracja na WarGame", $email);

return $status;

}

function mymail($to, $title, $body, $from = '') {

return mail($to, $title, $body, $head); // No SMTP authentication

}

`

Severity: 🔴 CRITICAL

  • Passwords sent via email in plaintext
  • No SPF/DKIM/DMARC headers
  • Uses PHP mail() function (easily spoofable, often blocked by ISPs)

B. Security Assessment

Overall Rating: 🔴 3/10 - SEVERE VULNERABILITIES

Critical Issues:

  • MD5 passwords (no salt, no bcrypt)
  • mysql_escape_string() instead of prepared statements (SQL injection risk)
  • extract($_GET) variable injection
  • Weak cookie authentication
  • Plaintext passwords in registration emails
  • PHP 5.5+ incompatible (mysql_* functions, mysql_escape_string)

Positive Security Features:

  • 24-hour planet deletion grace period
  • Domain-based DRM (creative anti-piracy)
  • Vacation mode (prevents exploitation while offline)

Remediation Requirements:

  • Migrate to password_hash() / password_verify() with bcrypt
  • Replace all mysql_* functions with PDO/prepared statements
  • Remove extract($_GET) and manually validate all inputs
  • Implement proper session management with regenerate_id()
  • Use SMTP for email with proper authentication
  • Never send passwords via email (use password reset tokens instead)

---

VI. TECHNICAL OBSERVATIONS

A. Code Quality & Architecture

1. MVC Pattern with Template Engine

File Structure:

`

overview.php → Controller (processes request)

templates/ → View (162 .tpl files)

includes/functions.php → Model (database operations)

`

This is one of the best-organized codebases in the collection. Most games dump HTML inside PHP with echo statements, but Ugamela uses proper template separation:

`php

// From overview.php line 47:

$parse = $lang;

$parse['planet_id'] = $planetrow['id'];

$parse['planet_name'] = $planetrow['name'];

$page .= parsetemplate(gettemplate('overview_renameplanet'), $parse);

display($page, $lang['rename_and_abandon_planet']);

`

2. Object-Oriented Database Class

File: functions.class.php

`php

$DataBase = new DataBase($Debugger);

$planetrow = $DataBase->doquery("SELECT * FROM {{prefix}}planets...", true);

`

The {{prefix}} placeholder system allows easy table prefix changes for multi-universe setups.

3. GNU Gettext Internationalization

28 .mo files indicate professional localization:

`

language/

pl/ (Polish)

es/ (Spanish)

en/ (English)

`

Using compiled .mo (Machine Object) files is more efficient than array-based translations.

4. JavaScript Timer System

File: overview.php (lines 119-157)

`javascript

function tfe1(){

v=new Date();

var bxxfe1=document.getElementById('bxxfe1');

ssfe1=ppfe1;

ssfe1=ssfe1-Math.round((n.getTime()-v.getTime())/1000.);

if(ssfe1<0){

bxxfe1.innerHTML="-"

}else{

// Calculate hours:minutes:seconds

bxxfe1.innerHTML=hfe1+":"+mfe1+":"+ssfe1

}

window.setTimeout("tfe1();",999);

}

`

Dynamic countdown timers for fleet arrivals and building completion without page refreshes. Each fleet gets its own timer function (tfe1, tfe2, etc.) - not elegant but effective for 2006.

B. Unique Features

1. Multi-Galaxy System

Most OGame clones have 9 galaxies. Ugamela supports:

`php

// From reg.php lines 150-180:

for($x=$id_g;$x<=10;$x++) // 10 galaxies

{

for($y=$id_s;$y<=500;$y++) // 500 systems per galaxy

{

for($z=id_p;$z<=4;$z++) // 4 starting positions?

{

$p = round(rand(4,12)); // Planets 4-12 only

`

New players are assigned coordinates sequentially to prevent clustering.

2. Advanced Admin Panel

File Structure:

`

admin/ - Admin directory

ugml_admin_acl - Access control lists

ugml_admin_modules - Modular admin tools

`

Supports multiple admin accounts with granular permissions (ACL system).

3. Polish Localization with Spanish Remnants

Mixed Languages in Code:

`php

// Polish:

if ($user['urlaubs_modus']==1) message("Masz włączony urlop...");

// Spanish (from original OGame clone):

5 => 'Destruir', // Destroy mission

$errorlist .= "El nombre de usuario debe ser alfanuméico.
";

`

This suggests Ugamela was forked from a Spanish OGame clone (likely Ugamela.es), then translated to Polish but not all strings were updated.

4. Custom Complaint System

Tables: ugml_zglos, ugml_zglos_zlego

Players can report bugs (zglos = "report") and report bad players (zglos_zlego = "report bad [player]"). This is a moderation feature not found in most clones.

5. Color Customization

From ugml_users table:

`sql

kolorminus VARCHAR(11) DEFAULT 'red' - Negative value color

kolorplus VARCHAR(11) DEFAULT '#00FF00' - Positive value color

kolorpoziom VARCHAR(11) DEFAULT 'yellow' - Level color

`

Players can customize UI colors for resource gains/losses and building levels.

C. Performance & Scaling

1. MyISAM Engine Choice

`sql

ENGINE=MyISAM DEFAULT CHARSET=latin2

`

Trade-off: MyISAM is faster for reads but lacks row-level locking. For a game with thousands of concurrent fleet movements, InnoDB would be safer to prevent race conditions.

2. Time-Based Queue Processing

Unlike Travian (which uses cron), Ugamela processes queues on page load:

`php

// From common.php and buildings.php:

check_field_current($planetrow); // Updates resources since last visit

`

This is simpler to deploy (no cron required) but slower (every page load recalculates production).

3. Massive User Table (86 Fields!)

The ugml_users table has 86 columns, including:

  • 16 technology levels
  • Alliance data
  • Ban/vacation status
  • Color preferences
  • Ranking data

This is poor normalization - technologies and settings should be separate tables. But for 2000s hardware, denormalization improved query speed.

D. Known Issues & Bugs

1. Syntax Errors in Code

File: common.php (line 69)

`php

$za = doquery("SELECT * FROM {{table}",'users'); // Missing closing parenthesis in SQL

`

This query is malformed and would cause a SQL error.

2. Incomplete Features

File: fleet.php (lines 1-15 comments)

`php

/*

por ahora solo se envian flotas fantasmas. (es decir, la cantidad que

hay en el planeta, no varia. Y cuando llegan al otro lado, Desaparecen)

PD: las flotas se agregan desde sql. en la tabla planets.

PD2: las sondas se pueden enviar xD xD xD

*/

`

Translation: "For now, only ghost fleets are sent. (The amount on the planet doesn't change. And when they arrive, they disappear.)"

This indicates the fleet system was never completed - ships don't actually leave planets when sent!

3. Backup Files in Production

6 .bak files and 3 .rar archives in the codebase:

`

buildings.php.bak

reg.php.bak

stat.php.bak

`

Leaving backups in production is a security risk (source code disclosure).

---

VII. HISTORICAL CONTEXT

A. The OGame Phenomenon

Original OGame Timeline:

  • 2002: OGame.de launched by Gameforge AG (Germany)
  • 2004-2008: Peak era - 10+ million registered players worldwide
  • Business Model: Freemium (premium "Dark Matter" currency)
  • Impact: Defined the "space MMORTS" genre for browsers

Why OGame Was Revolutionary:

  • Persistent Universe: Servers run for years; empires grow while you sleep
  • Zero-Sum PvP: Destroyed fleets create debris (resources transferred between players)
  • Alliance Meta: Top alliances control entire galaxies through diplomacy/war
  • No Pay-to-Win: Premium currency gave conveniences (queue slots), not direct power
  • Math-Based Strategy: Optimal building orders, fleet compositions require spreadsheets

B. Ugamela as a Clone Family

The "Ugamela" Brand:

The name "Ugamela" is a clear parody of "OGame" (U + Game + La). Multiple versions exist:

  • Ugamela.es (Spanish) - Likely the original fork
  • Ugamela TT (Polish) - This version
  • Ugamela.pl - Another Polish variant

Evidence of Cloning:

  • Database table structure matches OGame's open-source leaks
  • Ship IDs and building IDs identical to OGame numbering
  • Spanish comments in Polish codebase prove it's a fork

Polish Gaming Context (2006-2008):

Poland had a thriving browser game scene:

  • Travian.pl - Medieval strategy
  • Ikariam.pl - Island empire building
  • Tribal Wars - Village conquest

Ugamela TT was likely created by Polish developers who wanted a localized OGame clone without paying licensing fees to Gameforge.

C. The "TT" Suffix Mystery

The "TT" in "Ugamela TT" is unexplained. Possible meanings:

  • Test/Testing version
  • Developer initials
  • "TanieTechnologie" (Cheap Technologies) - Polish server name?
  • "Travian-style" indicating hybrid mechanics?

No documentation in the codebase explains it.

D. DRM as Social Commentary

File: common.php (lines 56-96)

The domain-based 15-user limit is fascinating:

`php

if ($host == yoyo){ // yoyo.pl = free Polish hosting

if ($i == 15){

header("Location: http://ugamela.advance.webd.pl"); // Redirect to official server

}

}

`

This DRM says: "You can pirate my code, but if you get popular, I redirect your players to MY server."

It's a brilliant middle ground:

  • Doesn't prevent piracy (source code is available)
  • Punishes successful pirates (they lose players after hitting 15 users)
  • Allows "trial" servers (15 users is enough for friends to test)

This reflects the 2000s browser game economy where server operators made money from premium currencies, not game sales.

---

VIII. COMPLETENESS ASSESSMENT

A. Feature Completeness: 🟡 60%

Fully Implemented:

User registration with email confirmation

Multi-planet management (colonization)

Building construction with time-based queues

Resource production (metal, crystal, deuterium)

Technology research (16 technologies)

Galaxy exploration (10 galaxies × 500 systems)

Alliance system (create, join, ranks)

Player rankings (points system)

Vacation mode (freeze account)

Admin panel with ACL permissions

Multi-language support (Polish, Spanish, English)

Complaint/report system

Partially Implemented:

⚠️ Fleet System (MAJOR ISSUE):

From fleet.php comments:

`php

"por ahora solo se envian flotas fantasmas. (es decir, la cantidad que

hay en el planeta, no varia. Y cuando llegan al otro lado, Desaparecen)"

`

Ships don't actually leave planets when sent - they're "ghost fleets." This breaks the entire combat system!

⚠️ Ship Construction: Building interface exists but integration with fleet movement is broken

⚠️ Combat System: Battle calculations likely incomplete if fleets are ghosts

⚠️ Moon System: ugml_lunas table exists but no moon creation trigger found

⚠️ Espionage Reports: Probe sending works but report generation unclear

Missing Features (Compared to OGame):

Debris Field Collection: Recyclers can't harvest post-battle debris

Moon Formation: No code for moon creation from destroyed fleets

Interplanetary Missiles: Missile silo exists but launch code missing

Alliance Warfare: No attack declarations, NAPs, or shared sensor phalanx

Premium Features: No "Dark Matter" equivalent or payment integration

B. Code Completeness: 🟡 70%

Working Systems:

  • User authentication and session management
  • Database abstraction layer (OOP)
  • Template engine (parsetemplate function)
  • Resource production calculations
  • Building upgrade queues
  • Galaxy coordinate system
  • Alliance CRUD operations

Broken/Incomplete:

  • Fleet dispatch system (ghost fleets)
  • Combat resolution
  • Email sending (no SMTP config, likely fails)
  • Admin panel modules (table exists but no interface files found)
  • DRM redirect (hardcoded to dead URL: ugamela.advance.webd.pl)

C. Deployment Readiness: 🔴 40%

Barriers to Modern Deployment:

  • PHP 5.5+ Incompatibility: mysql_* functions removed
  • Broken Fleet System: Core gameplay feature doesn't work
  • Placeholder Credentials: Requires manual config.php editing
  • Missing Email Config: Registration emails won't send
  • GNU Gettext Dependency: Requires PHP gettext extension + .mo file compilation
  • DRM Redirect: Hardcoded to non-existent server

Migration Effort Required:

  • Replace mysql_* with PDO (~60 hours)
  • Fix fleet movement system (~80 hours)
  • Implement combat calculations (~40 hours)
  • Add SMTP email (~10 hours)
  • Remove DRM code (~2 hours)
  • Update to bcrypt passwords (~20 hours)

Estimated Cost to Modernize: 212 developer hours ≈ $10,600-$21,200 USD

---

IX. COLLECTION COMPARISON

Ranking Among 79 Games:

Metric Ugamela TT Rank Context
PHP Lines 30,588 🥉 #3 After XNova (41,815), Travian (30,713)
Total Files 565 🥈 #2 After Travian (1,557)
Template Files 162 🥇 #1 Best MVC separation
Code Quality 7/10 🟢 Above Avg Good architecture, poor security
Security 3/10 🔴 Severe MD5, extract($_GET), no prepared statements
Completeness 60% 🟡 Incomplete Broken fleet system
Historical Significance High 🥈 #2 OGame clone from golden era

Unique Distinctions:

  • Best Template Separation: 162 .tpl files (most in collection)
  • GNU Gettext Localization: Only game using professional .mo files
  • Most Fields in Users Table: 86 columns (extreme denormalization)
  • Creative DRM: 15-user limit on free hosts
  • Only Space MMORTS: Sci-fi theme (vs. fantasy/medieval)

Similar Games in Collection:

  • XNova (Game 78) - Another OGame clone, largest codebase
  • Travian (Game 66) - MMORTS but medieval theme
  • Ikariam (Game 31) - Island-based MMORTS

Why Ugamela Stands Out:

Unlike single-player PHP RPGs in this collection, Ugamela is a multiplayer RTS requiring coordination with alliance members across a persistent universe. The template-based MVC architecture is far more professional than the typical echo-HTML-in-PHP approach.

However, the broken fleet system is a catastrophic flaw that makes the game unplayable. It's like shipping a racing game where cars can't move.

---

X. FINAL VERDICT

A. Rating: 🟡 6/10 - PROFESSIONAL ARCHITECTURE, BROKEN GAMEPLAY

Scoring Breakdown:

  • Innovation (7/10): Space theme, good MVC pattern, creative DRM
  • Completeness (4/10): 60% - Fleet system is broken, combat doesn't work
  • Code Quality (7/10): Clean architecture, OOP, template separation
  • Security (3/10): MD5 passwords, extract($_GET), SQL injection risks
  • Historical Value (8/10): OGame clone from golden era, Polish localization
  • Playability Today (2/10): Unplayable due to broken fleet system

Average: (7+4+7+3+8+2)/6 = 5.2/10 → Rounded to 6/10 for architectural quality

B. Strengths

  • Best MVC Architecture: 162 template files, clean separation of concerns
  • GNU Gettext Localization: Professional multi-language support (.mo files)
  • OOP Database Layer: Modern abstraction, better than raw mysql_* calls
  • Creative DRM: 15-user limit on free hosts (clever anti-piracy)
  • Space Strategy Theme: Only sci-fi MMORTS in collection
  • Polish Localization: Full translation for underserved market
  • Admin ACL System: Granular permissions for multiple admin accounts

C. Weaknesses

  • Broken Fleet System: Ghost fleets don't actually move (GAME-BREAKING)
  • MD5 Passwords: No salt, no bcrypt (critical security flaw)
  • extract($_GET): Variable injection vulnerability
  • Incomplete Combat: If fleets don't move, battles can't happen
  • mysql_* Functions: PHP 5.5+ incompatible
  • Poor Normalization: 86-column users table (maintenance nightmare)
  • Dead DRM Redirect: Hardcoded to non-existent server

D. Historical Significance: 🏛️ HIGH

Cultural Impact:

  • OGame had 10+ million players at peak (2004-2008)
  • Spawned 100+ clones worldwide (Ugamela, OWars, SpaceInvasion)
  • Defined "zero-sum PvP" economy (resources transfer, never created)
  • Popularized alliance-based meta-gaming

Technological Impact:

  • Pioneered browser-based RTS with real-time fleet movement
  • Proved MVC architecture was viable for PHP games
  • Demonstrated freemium model for hardcore strategy games

This Clone's Significance:

Ugamela TT represents the 2000s era of open-source OGame forks. When Gameforge (OGame's owner) refused to launch official Polish servers, Polish developers created their own. The professional architecture (templates, OOP, gettext) shows this wasn't a hobby project - it was a commercial venture attempting to capture the Polish market.

The broken fleet system suggests the project was abandoned mid-development, possibly due to:

  • Gameforge launching official OGame.pl (eliminating demand)
  • Development team ran out of funding
  • Technical challenges in fleet movement synchronization

E. Modern Relevance

For Historians: ⭐⭐⭐⭐

A well-preserved OGame clone showing 2006-era PHP best practices. The DRM system is a fascinating glimpse into anti-piracy strategies.

For Game Developers: ⭐⭐⭐⭐⭐

The template-based MVC architecture is a textbook example of how to structure large PHP projects. Even in 2025, this approach is valid (just swap Smarty for Twig/Blade).

For Security Researchers: ⭐⭐⭐

Classic 2000s vulnerabilities: MD5, extract(), no prepared statements. Good teaching material.

For Players Today:

Unplayable due to broken fleet system. Would require ~80 hours of development to fix core movement mechanics.

F. Preservation Recommendation: 🏛️ ARCHIVE - MEDIUM PRIORITY

Why This Should Be Preserved:

  • Best MVC architecture in the collection (educational value)
  • GNU gettext localization (professional approach to i18n)
  • OGame clone from the genre's golden era
  • Polish gaming history (underrepresented in archives)
  • Creative DRM system (cultural artifact of 2000s piracy)

Preservation Challenges:

  • Requires PHP gettext extension to run
  • Fleet system needs repair to demonstrate gameplay
  • DRM redirect to dead server breaks experience

Archival Priority: 🟡 MEDIUM

Important for studying PHP architecture evolution, but less urgent than Travian (complete game) or XNova (larger OGame clone).

---

XI. CONCLUSION

Ugamela TT is a paradox: it has the best code architecture in the collection (MVC, templates, OOP, gettext), yet it's unplayable due to a broken fleet system. It's like finding a beautifully engineered car with no engine.

The developer clearly knew what they were doing - the template separation, database abstraction, and localization system are professional-grade for 2006. But the Spanish comments in the Polish codebase reveal this was a fork of someone else's unfinished work, and the new developer either:

  • Ran out of time/money before fixing fleets
  • Underestimated the complexity of synchronized fleet movement
  • Abandoned the project when OGame.pl launched officially

The creative DRM system (15-user limit on free hosts) is a glimpse into the 2000s browser game economy where operators made money from hosting servers, not selling code. It's simultaneously anti-piracy and pro-distribution - a philosophy that predates modern open-source licensing debates.

For students of PHP architecture, Ugamela TT is a gold mine. For players, it's a tragedy - a well-built spaceship that never left the launchpad.

Legacy Score: 🟡 7/10 - Excellent architecture, incomplete execution.

---

Analysis Complete: 67/79 Games (84.8%)

Next Game: Game 68 - VA-RPG (unknown genre)

available

Security Warning

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.