Gamekit: Entity and Item Metadata
A new post is fairly overdue. The code optimization is now done and I've actually made the push/release of v1.1 a week ago or so, which is intended as the second to last build. The gamekit has come a long way since February 2016, especially since it's full commercial release is nearing a lot sooner than expected. It makes me excited, what I could and others could do with the gamekit, once it is complete and ready to ship!
Entity and item metadata will likely be the last thing to be brought over to the new dictionary-based data system for the gamekit (this is the term Construct 2 uses, it is misleading, they are actually hash-tables), as when the gamekit ships, it will function internally code-wise by pulling said metadata from the project-JSON files and loading them into the associated dictionaries.
The gamekit kind of already does this now with system-variables and player-data but I want to be throughout and make sure items and enemies (or entities as I've begun to call them) are included as both of these features, inventory and AI, have been long neglected during development besides the expected brushup for code optimization and pushes to ensure clean well-written code.
Entities and inventories will be majorly rewritten in v1.2 (which will be the last prealpha to ship before full commercial release), both from the groundup, function wise as well as adding much needed robust features such as an equipment system, buffs/debuffs, weather interaction with combat, and absent systems such as robust damage calculation (<player-defense>+<armor-defense>+<accessory defense>+<miscellaneous-effects>-<entity-attack>+<entity-weaponattack>=damage) and clean handling of extra-enemy properties in the metadata (such as...a loot table!), so the move to proper metadata care will make said rewrite far less painful, management wise.
However, in my opinion, dictionaries or at least their raw-json format are stil a bit obtuse, enduser wise. Of all the other options provided in terms of data storage required for entities and objects, x/y/z arrays are a lot worse and less user-friendly and potentially far more complicated to get into from a beginner or inexperienced standpoint, especially with my goal to make the gamekit simpler, intuitive and easy for endusers or developers. Not just simplicity itself but features such as having entity-metadata instead stored in XML or JSON files means that development for myself and other users who will use the gamekit is less frustrating and more intuitive. As they say: work smarter, not harder.
What's the current solution that I think is pretty acceptable and actually serves as a great bridge between reading/formatting the metadata from the human-side of JSON? Creating an external visual GUI-app/program to read and edit said metadata.This has actually been in the works on the backburner for a long time as back when the gamekit was using arrays for its data.
I made a simple and kind of frankly ugly little editor-app via Construct 2 back then early in development. Said editor-application will likely return near the end of the gamekit's development or even sooner, as to facilitate the usage of the JSON-stored metadata that Construct 2 will fetch for expressions and calculations for damage/etc and to include out-of-the-box external tools with the gamekit to give it's relatively middle planned pricepoint even more value.
Get A-RPG Gamekit
A-RPG Gamekit
A Construct 2 project and is a SDK for oldschool 2D A-RPG/Zelda-like style games.
Status | In development |
Category | Tool |
Author | LaDestitute |
Tags | 2D, Action RPG, a-link-to-the-past, Construct 2, gamekit, the-legend-of-zelda, zelda, zelda-like |
More posts
- Gamekit: Environment FeaturesNov 14, 2018
- Code Optimization: Debug Mode, Command Console and Edit ModeOct 12, 2018
- Code Optimization: CombatSep 13, 2018
- Code Optimization: Dungeon Mechanics & Quality AssuranceJan 13, 2018
- Code Optimization: Enemy AIAug 18, 2017
- Randomizer Features and Roguelike Influences (5/26/2017)May 26, 2017
Leave a comment
Log in with itch.io to leave a comment.