World of Pixeltron (WOP)
After much trouble and debugging I have gotten this to connect to a local Express API and successfully:
- signup
- login / logout
- check users
- ping the API
I have not written any state logic for the game part yet. I’m also not the best pixel artist in the world — but the network backbone is working.
Why I’m Posting This
My hope is to find like-minded individuals who want to help create something really neat for folks with Picotron cyberdecks everywhere.
I named the cart WOP for World of Pixeltron.
A Little Background
As of recent months I got pulled into WoW Classic and the whole Turtle WoW “Classic+” hype.
I’ve run my own private WoW server for years, building backend and database systems.
At first, I didn’t think parts of the client were editable… then projects started popping up.
That’s also when Blizzard’s ban hammers started falling.
Many in the community said: “If you’re so good, make your own game.”
They’re right.
So I began writing a framework in Godot using an API + websockets for game state.
Then I found Picotron, got fascinated, and started porting it here.
Tech Bits
- Login returns a session + token (so passwords don’t need to be sent multiple times)
- Uses Argon2 hashing for passwords
- Currently plain HTTP (no TLS)
- GitHub repo coming soon if there’s interest
Call for Help
If you’re into:
- pixel art
- MMO-like systems
- Picotron experiments
- multiplayer frameworks
…then I’d love to collaborate.
This is just the seed of something bigger:
let’s build World of Pixeltron together.
Backend Example
const express = require('express');
const cors = require('cors');
const argon2 = require('argon2');
const Database = require('better-sqlite3');
const db = new Database('pico.db');
db.pragma('journal_mode = WAL');
db.exec(`
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT UNIQUE NOT NULL,
pass_hash TEXT NOT NULL,
role TEXT NOT NULL DEFAULT 'player'
);
CREATE TABLE IF NOT EXISTS players (
user_id INTEGER PRIMARY KEY,
x REAL NOT NULL DEFAULT 8.0,
y REAL NOT NULL DEFAULT 8.0,
facing REAL NOT NULL DEFAULT 0,
updated_at INTEGER NOT NULL DEFAULT (strftime('%s','now')),
FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS sessions (
token TEXT PRIMARY KEY,
user_id INTEGER NOT NULL,
created_at INTEGER NOT NULL,
expires_at INTEGER NOT NULL,
FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE
);
`);
const app = express();
app.use(cors());
app.use(express.json());
// signup, login, logout, ping, pos, and admin routes...
// (full code available if there’s interest) |
[Please log in to post a comment]




