Log In  


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]