First off, if you're reading this I'd like to sincerely thank you for still following along the game's progress. It's been a long, bumpy ride but I think we're finally in the home stretch. It may be hard to believe, but it's been near 2 years since the game's real public inception and it's been a rough ride. I've overcome numerous struggles and to see it finally wrapping up is a fantastic experience.
On that note, today is going to be an update post talking about a few reasons we've been delayed, what's been worked on, and what's to come.
Engine Upgrades & Optimizations
As most developers know, upgrading your compiler is once of the worst things you can do while you're working on a project. Well, if you know me, you know I have a blatant disregard for these things. Alright, all kidding aside, the engine was upgraded for more reasons than just kicks. We had a decent amount of problems, including workarounds for functions that were included in the updated compiler but not in our older version, massive integration bugs with steam, and lag problems stemming from ways things were being calculated. In other words, a mess. In order to fix this, we decided to do the unthinkable and actually upgrade the engine and compiler. MANY bugs were introduced upon doing this, but we were able to clean then up. It took a very long time unfortunately, and it's one of the reasons we momentarily went dead on updates outside of some small GUI pictures. Here's a list of the interesting stuff that's been fixed/upgraded:
- Pathfinding Optimization - node finding is near 2x as fast and multi-room pathfinding is now stable
- Weapon Synergy - Synergies are calculated faster, effects process and execute faster. Better open hooks allow for easier modding integration without lag.
- AI - AI processes actions faster without killing FPS; sprite glitches have been fixed
- Map Loading - Almost instant; custom map loading is now twice as fast as well
- External File Access is now quicker and does not drop FPS by nearly as much; drops are barely noticeable if any when loading mod
- Miscellaneous optimizations for processes throughout the game
As you can see in this messy test above, The Map Editor is actually fully functional. Some features include:
- Multi-layer Mapping
- Multiple Tilesets, including base game assets
- Importing Unlimited amounts of Custom TIlesets
- Instant Export button for instant import to play
- Object placement, with a variety of objects including items, doors, spawns, and more
- Custom Object import
- Object Settings Editor
- Background editing
- Collisions Placement
- Region and pathfinding editor, for creating custom paths and "regions"
Mod Editor / Modding
Possibly the hardest thing in the game besides multiplayer, this is taking the longest to finish. The Mod Editor is a mixture between an IDE and a drag and drop; you selected settings from a web and then fill the settings out through there. Below is a basic idea of Mod Packages:
Mods are separated into 6 different types; it's also notable that you can include multiple types of mods into one package, as each object is interpreted separately. One mod can therefore contain for example, maybe a few entities, a gamemode, and an asset package than run separately.
Controller, Entity, Weapon/Weapon Modifier, Map, Asset Package, and Game mode.
Controller - A passive object which works in the background with no physical form; for example, an object which changes music depending on certain conditions or a an object which regulates points and creates GUIs for an event.
Entity - An active object with a physical form; examples include an enemy, a trap, a pickup item.
Weapon/Weapon Modifier - Self Explanatory.
Map - Self Explanatory.
Asset Package - A set of assets that replace current ones, such as maybe replacing a player sprite, music, or the announcer.
Game Mode - Self Explanatory.
Excluding Maps (which are handled separately for obvious reasons), all Mods have a similar setup. A single .ini file and two folders (one folder for Assets and one folder for Scripts). The .ini files lists when each script executes, conditions, and details. Scripts, which run in a somewhat modified version of formal GML, are stored in the Scripts Folder. All assets, such as images and sounds, are stored either in the Assets Folder directly or in sub-directories. As far as scripts go, there's about 200-300 custom functions you can use, and custom triggers and such. Many in game variables and assets can be altered and changed, and custom functions and variables can be made as well. "Dependencies" allow for mods to cross communicate without errors.
This terrible chart below is a basic idea of how mod content is connected:
And furthermore this chart explains the basic mod loading/running sequence:
The basis of multiplayer is finished; We're currently working on reducing lag and better event syncing and more customization for servers.
We're also working on multiplayer modding; more information will come in the future but all mods (and maps) that work in single-player will also be loadable on servers.
More information will come in possibly the next post.
Functionality for Arcade Mode is finished, we're just finishing up the mapping and event scripting.
The default maps included in the game are still being mapped.
I believe that's it for now. The game is progressing well as you can see, and I hope this proved we weren't dead! I live a very busy lifestyle so sometimes it's hard for me to sit down and write long posts like this. Nevertheless I promise the game will be finished. Our goal is the end of the summer; hopefully this'll finally be the year if all goes well.
Thanks again for reading,