Eva - basic Defold module, designed for mobile games with meta-game. It provides a lot of additional API and systems for easier game development.
Features
Eva provides the foundation for your game.
- Use protobuf for data and user profile validation, default values and marshaling
- Rich utilitary API for different actions
- Quests, festivals, offers, daily bonus, etc system embedded
- General event system, with already defined 50+ events
- Tiled support with 3 different grids support + pathfinding (grid, isogrid, hexgrid)
- Single input module to manage all input (in go space)
- Data management with google docs and sheets-exporter
- Customize eva modules with single settings file
- Game time protection: use local, uptime or server time
- Tokens memory protection: protect from memory scanning (cheat engine)
- Monetization (iaps and ads) rich support
- Eva log system and errors caching for analytics
- Customizable modules with your own code (window, quests, trucks, etc)
- User profile migrations
- Eva render with customizable post-effects
- Invoices support: send delayed rewards, mails or time-restricted stuff to the player
- Push support with snooze hours, push count restrictions per day
- Included luax module with extended functions
- Debug functional for easier development included (save slots, reset profiles, game restart, etc)
Social and server integrations(not implemented)
Setup
Eva setup and initial configuration is quite massive, please read install instruction here
Evadata format and export
For some modules, defined specific basic structure.
Proto eva data description can be found here.
Google document with data example can be found here.
Rules for export can be found here (using sheets-exporter).
Tiled exporter
Eva have defined workflow with tiled:
- Make assets (game objects) in defold in separate folder (subfolders allowed)
- Generate tilesets for Tiled via tiled-exporter module](https://github.com/Insality/defold-tiled-generator)
- Make level assets in Tiled via generated tilesets
- Export tmx files to Defold via tiled-exporter module](https://github.com/Insality/defold-tiled-generator)
TODO: write instructions
Custom modules
Eva allows your to define new modules or rewrite existing one
not implemented
Modules
Module | Description | Status |
---|---|---|
ads | Interstitial and rewarded ads integration | |
cache | Provides any external resources cache | |
callbacks | Wrap callbacks to call it via id. Pass callbacks in messages | |
camera | In-game camera with drag, pinch and zoom | |
daily | Provides game daily bonus system | |
db | Contains all game configs, can verify it via protobuf | |
debug | Provides general debug options for eva systems | |
device | Provides utilitary device functions | |
errors | Provides lua errors handler | |
events | Eva event system | |
festivals | Provides single or repeatable festivals system (halloween, weekend, etc) | |
game | Provides utilitary game functions | |
gdpr | Provides GDPR API functions | |
generator | Utilitary generator functons | |
grid | API to work with matrix field | |
hexgrid | API to work with hexagon field | |
iaps | Provides rich API above defold-iap module | |
input | Eva input system in go system | |
invoices | Eva invoices system. Delayed rewards, in-game mail, restricted time reward | |
isogrid | API to work with isometric matrix field | |
labels | Add labels to player for easier clusterization | |
lang | Eva localization module | |
migrations | Provides migrations on player's profile between game versions | |
offers | Provides game offers system | |
pathfinder | Pathfinding on any type of field (grid, isogrid, hexgrid) | |
promocode | Apply tokens and bonuses by promocode. Promocodes can be time restricted | |
proto | Protobuf module, load and provide API to work with | |
push | Notifications module | |
quests | Eva rich quests system | |
queue | Utilitary queue functions to work with sequence stuff | |
random | Utilitary random function | |
rate | "Rate us" in-game logic | |
rating | Rating utilitary functions (elo rating) | |
render | Provides different render effects and other render relative stuff | |
resources | Utilitary bundle resources function | |
saver | Provides API for save/load parts of data | |
server | Provide API to work with server | |
status | Status effects like passive or temporary bonuses | |
skill | Abilities with cast time, stacks and cooldown support | |
social | Provide API to work with social networks (facebook, google play, app center) | |
sound | Eva sound system | |
storage | Simple eva key-value persistent storage | |
tiled | Module to load map from tiled and provide API to it | |
timers | Eva timers/delayed results module | |
token | Eva general token module (any items in game) | |
trucks | Eva trucks system. It is periodic events with timers (foodtrack, traders, etc) | |
vibrate | Android/iOS vibrate module | |
utils | System utilitary functions | |
wallet | Wrap on token module, with player wallet token container | |
window | Eva windows API |
Learn Eva
- Eva setup
- Core concepts / Glossary
- Exporter usage -
eva.db
module - Tiled exporter usage -
eva.tiled
module - Writing protobuf for user profile
- Window setup
- Quests setup
Games powered by Eva
not implemented yet
License
MIT License, Insality
Issues and suggestions
If you have any issues, questions or suggestions please create an issue or contact me: [email protected]