MTG Engine: Password Hashing

Magictallguy's avatar

Password Hashing

I'd decided that I'd had enough of re-inventing the wheel when it comes to hashing passwords. Previously, my engine came with a roll-your-own password hashing system that, whilst it worked, it wasn't the more secure option. So, I've switched to PHP's very own password_hash().
The good thing is, if you were using the passHash() function I originally supplied with MTG Engine, you can simply overwrite the files that require password input (currently, auth.php, settings.php and signup.php) with the new system and the old hashes will work - why? Simply said, because of the way I designed the previous hashing system. It was, more or less, identical to how PHP handles it.

So why change? Ah, well that's simple; PHP's constantly evolving! With each new iteration of code released, the methodologies change. That includes how PHP handled hashes.
All-in-all, when it comes to PHP, their own tried-and-tested password hashing method is the way to go. 1-way algorithms for the win!


Magictallguy's avatar


Some clever little git spammed my engine display site with over 1,000 accounts. So after a very easy and small set of queries, I cleaned that up and decided I wanted to supply MTG Engine with a captcha system that was fairly flexible and easy to use (for those that like easy customization (like me!)). I've used Securimage many times before with no issues, so I've decided to go with that and implement it into the engine with a few small customizations as standard.

Thank you random account spammer, you've helped me improve my engine!

Acoustic cover

Magictallguy's avatar

Ring of Fire - Johnny Cash

A while ago, I decided to release my cover of Johnny Cash's Ring of Fire, after being requested to release something for about 3 months.
So, here's my ReverbNation profile and, on it, you'll find all of my covers (well, 1 cover, as that's all I've uploaded so far).

Please forgive the crappy mic quality, I recorded it myself on my laptop with a headset mic - can't afford anything better
Cheeky plug: Wanna help me bring in the cash? :P

MTG Engine: Forum

Magictallguy's avatar


Players can now subscribe to topics. When subscribed, said player will get an event any time someone posts in said topic.
This is a great feature to help turn your single-player game into a community - which is what keeps a lot of games going!
And guess what? There's more features to come soon!

MTG Engine: Forum

Magictallguy's avatar

Basic Functionality

After multiple hours of frustration, hair pulling, and being constantly mithered and bothered by people requesting this, that, and the other (lel), I have finally completed a forum for MTG Engine
It's your basic forum with basic functionality, but I have intentions to expand heavily upon it.

Pretty vague, I know, but I'm tired and highly irritated!

Magictallguy: Blog

Magictallguy's avatar

I Made A Blog

I finally made a blog, my first proper blog too.
Seeing as I actually like this site (thanks to PureCSS Layouts), I'm actually going to post here!

So, check here for up-to-date news by me from the only place you'll find it!

MTG Engine: Protections

Magictallguy's avatar

Brute Force

I've worked with MC Codes v1 and v2 (or MC Craps, as I call it) for years and noticed a distinct lack of basic account protections.
I decided that, because I wish to branch away as much as I possibly can from their flawed system (and create my own flaws!), I should add some form of basic protection.
So, here's the basic brute force protection setup (found in /auth.php). After 5 unsuccessful attempts, which can be made at any time, the account in question will be temporarily locked.
I have yet to decide on whether I'll be adding the next feature to it: Optional notifications to account owner upon account lockout

MTG Engine

Magictallguy's avatar

Introducing MTG Engine

After being requested to make a game engine for about 6 years, I've finally done it. And, what's more, it's open-source!
You can grab your copy, completely freely, from my repo and you can see it in action right here