Thread of Life
A top-down 2D role-playing game

Last Updated: 11/30/2019
Description
A top-down 2D role-playing game, Thread of Life will feature a large world comprised of hundreds of maps rich with NPCs, dungeons, random and scripted battles, and hidden secrets.
Originally, the engine was developed as 32-bit Windows application in C++, and utilized the SDL 2.0 library for input polling and drawing. A custom map editor was also created which supported several map layers and transparency, collision data and NPC scripting. These maps were stored in small (~16 KB) files for easy storage and laoding.
With the evolution of HTML5 and increasing cross-browser support for modern web features, this game is now being developed to be playable in-browser. The game is now written entirely in Javascript, using native keyup/keydown event polling to support keyboard controls, and making use of the HTML5 canvas element for visually rendering the game world.
Tiled is now used to create the game maps, as opposed to a custom-built map editor. I find its UI easy to work with, it is able to support everything that the main game engine needs (including layers and collision data) and it features out-of-box support for exporting maps to JSON (which is a big plus, since the game is written in Javascript).
Some of the core functionality of the game (particularily the player-following camera) is inspired by a project developed by myself in Fall 2013 (entitled "Dusty Vent" with a few other SUNY Fredonia students including Nick Freville, Rob Szkutak and Aaron Chan, as a submission in the 24-hour hack-a-thon "Hack Upstate".
Eventually, the hope is to introduce multiplayer functionality once the game's basic mechanics are finished, so that players from all over can play on the same maps as each other and join forces to take down tough enemies, and chat in realtime as they play.
Controls: Move - W/A/S/D; Pick Up Item - [,]; Open Inventory - I; Open Character Menu - C; Focus Chat - T; Send Message - [Enter]
Click on an item in your inventory to select it. Click an empty spot in the inventory to move the item, or click outside the inventory window to drop the item.
Future Plans
- Create enemy and NPC creation tools for rapid development
- Add item / gold drop system for mobs
- Script story events
- Implement multiplayer using a Node.js back-end and WebSockets (via socket.io)
News
2/20/2020
Improved terrain deformation algorithm in Tank of the Hill game
11/30/2019
Implemented inventory / item pickups for Thread of Life game
9/9/2019
Promoted to Software Architect / Team Lead at Young Consulting
8/17/2019
Updated 3D assets for Fiddle Faddle THREE.js experiment
5/7/2019
Promoted to .Net Team Lead at Young Consulting
4/16/2018
Started role of .Net Developer at Young Consulting
2/5/2018
Improved mobile-friendliness throughout the site
9/5/2017
Created Running Man animation project
7/13/2016
Began HTML5 implementation of Thread of Life
8/5/2015
Updated contact form
3/2/2015
Migrated the site to better hardware!
10/12/2014
Created Broken Link Checker utility
7/21/2014
Accepted a position with Gelia as a Web Developer/Programmer
5/17/2014
Graduated from SUNY Fredonia with a B.S. in Computer Science and a Minor in Web Programming!
11/11/2013
Created the game Tank of the Hill
10/13/2013
Built a protoptype RPG "Dusty Vent" with some fellow SUNY Fredonia Students at Hack Upstate Fall 2013
10/7/2013
jeff-swift.com hits the web!
Jeff Swift

Software Architect / .Net Team Lead
Contact
Email: jeff@jeff-swift.com
Phone: (585) 519-6858