Asset - Project Free Asset - Monastery Framework

Kezarus

Member
Monastery Framework

OBJECTIVE
Create a framework project on GM2 that have some useful functions, GUI elements (buttons, panels, containers), basic Options menu, start Ini files that houses preferences, the basic setup for music, sound and particles.

DESCRIPTION
Ok, I will have to do something like that for me, so I plan to make a humble pack with what I deem basic functions and put it on the marketplace. I do not plan to profit on that, but help people with basic things that I find frustrating that GM don't have.

If you want to help, I would like to kindly ask you to:
  • Ask for features (yes! what do you think is important and basic?);
  • Help me keep functions and nomenclature inline with what is to be expected;
  • How I could well document it;
  • Give proper credit if need be;
  • General advice;
I didn't find a basic framework like that, just bits and pieces scattered that I have to sew together. If I am wrong, please point it out. =]

CONTENTS
This list is a work in progress. It could be improved, some features could pop in or out.

Live Backlog and Dev Diary.

Functions
  • chance( percentage ): returns true or false depending on a random chance
  • wave( from, to, duration, offset ): returns a value back and forth in a duration based on time
  • jump_to(distance, direction): teleports an instance to a x, y
  • alert( str, real ): a quick and short debug message
  • split(string, delimiter): return an array of string based on a delimiter
  • nine_slices( sprite, x, y, width, height): creates a tiled image, good for buttons and panels
  • screen_shake: a basic screen shake that moves the camera by x, y and angle for a time
  • draw_text_outline: draw a text with a border
  • draw_set_font_ext( font, colour, halign, valign, alpha ): a short version of a paragraph that I use to write everytime I have to draw some text
GUI
  • Panel
  • Button
  • Slider
  • Checkbox
  • Textbox
  • Content panel: that scrolls for objects and texts
  • Modals: a box that pops out that freezes the game, show a text and ask a question
  • Basic options menu
    • Sound
    • Music
  • Profile
    • Preferences (save ini)
Basic:
  • Sound system setup

Some of these features I already made myself and use them quite often, but in GM1.4. Share your thoughts! =]


Cheers!
Kezarus
 
Last edited:

Samuel Venable

Time Killer
TL;DR are you just looking for assets to put in a convenience bundle?

In the case of modals, feel free to bundle my Dialog Module extension as a part of this.
https://www.dropbox.com/sh/h1z7qmn2r7semj7/AABEdXp58KL_4YqN_M2v1JVea?dl=0

That free dropbox link gets updated just as frequently as paid marketplace asset, and I have it on dropbox for people who don't want to or can't pay for it for whatever reason, (which is more or less a very loose secret now).

Screenshots and more details here:
https://marketplace.yoyogames.com/assets/6621/dialog-module
 

Kezarus

Member
In the case of modals, feel free to bundle my Dialog Module extension as a part of this.
https://www.dropbox.com/sh/h1z7qmn2r7semj7/AABEdXp58KL_4YqN_M2v1JVea?dl=0
Wow, really Samuel? I am flattered! Thank you. =]

Answering your question, in fact, I am planning to make most of things and put it in a bundle for people to use. I am really tending towards a free package with all these features. I will need that myself, so, why not share?

I just wish I could deliver a good thing for people to use. =]
 

Samuel Venable

Time Killer
Wow, really Samuel? I am flattered! Thank you. =]

Answering your question, in fact, I am planning to make most of things and put it in a bundle for people to use. I am really tending towards a free package with all these features. I will need that myself, so, why not share?

I just wish I could deliver a good thing for people to use. =]
Yep. As long as you credit me, the asset can be free or paid, in whatever way you want to do that, and if you ever happen to sell it, you don't need to share any profits with me. The C++ and Objective-C source code is included with the extension package inside the zip's. (Also available on Github). Normally I don't require crediting, but that's only when people use it in their games or software. When including it in a bundle or in the case of just redistributing my work by itself as well, I prefer to be mentioned. When the asset package of yours is complete, by all means let me know in a PM and I can link to your project from my asset's page to make it all the more accessible.
 

Kezarus

Member
Well, did some work and refactoring for easy of use. All panels and buttons use a randomly generated 9-slices function that gets a pools of options and draw the GUI. I am thinking about make a function for animated 9-slices but I am not sure about the exact need for this, so I am open to sugestions about this. =]

Apparently I can't draw a button to save my life (I tried)... so I'm using Kenney's for now. Also I am very undecided about the font. But, all could be customized on the framework user's side anyway. ¯\_(ツ)_/¯

I am keeping a live Backlog and Dev Diary if anyone is interested. And a private git that I plan to make public when things are done. =]

Here is a little example.

upload_2019-11-21_20-52-29.png
 

Kezarus

Member
I made this "slide's bonanzza" abomination just to show that sliders are ready and fully customizeable. All drawn with 9-slices.

upload_2019-11-24_11-5-39.png

All you need to do is create the instance, throw the parameters at it and voilà.
upload_2019-11-24_11-8-41.png
 

Kezarus

Member
Just made and Easy GUI update. You draw the components in the room editor, the components understand and translate that to what they need.

Seems complicated but it's was really simple to make. And it will be easier to the user that prefer the room editor (not my case =O]).

upload_2019-11-24_17-39-56.png

upload_2019-11-24_17-42-35.png
 

Kezarus

Member
Did a lot today and I plan to keep trucking and finish this before the end of the year. =]
  • Pause Object: call it and the game is paused, destroy it and the game is unpaused
  • Modals: call a function to pause the game, ask a question, obtain an answer, unpause and callback an event
  • Initial room: to load what is needed
  • Monastery Logo
    sprMonasteryIcon.png
  • Sound: for buttons and typewritter effect. Also the basic setup and load function
There is more to come. If you want to see what was done and what will be, check out my docs Backlog and Dev Diary.


See ya! =]
 

Kezarus

Member
I am almost finishing the framework. Just need to document it and it's done!

Take a peek: link

I also would like to get the code reviewed by any of you guys. If you want to help just let me know and I send the link with code to you. =]

Cheers!
 

Kezarus

Member
Hey people! Monastery Framework is done (for GM v1.4 at least). It have full documentation. Any insight is welcome.

The GM v2 will be coming next. I plan to spread it through the marketplace, itch.io and Git.

Use this as you please, free of charge. Just credit me in your game, nothing more.

Documentation

Git GM v1.4


p.s.: @Samuel Venable, I will use your modals on the GM v2 and credit you. I didn't forget it, and I am very thankful for your offer. =]
 

Kezarus

Member
Ok, converted and tested. Anyone that would like this can clone the project and use it! =]

Git GM v2.0

Will post it to the marketplace as soon as I can. (it's down for me =/)
 

Kezarus

Member
So, I though that I finished the Framework, but I was having some conversation with some forum members and my brother on what else I can put in it. Those are the ideas:
  • Particle System Setup and Playground (where you can test some effects and get the GM code out of it)
  • Multi-Language support (with japanese, chinese and cyrillic)
  • Rebindable Keys on Options menu (basic "wasd" and "fire", control support too)
What do you guys think about it? Is it too much? Should I put more basic things?

I plan to do these only on the GM2 version. If anyone ask, I can port it to GM1.4 too.


Danke! =]
Kezarus
 

Samuel Venable

Time Killer
There's important bug fixes for multiple monitor setups and macOS Catalina support added to Dialog Module and File Manager which may be downloaded here: https://www.dropbox.com/s/lfgcoqpn19qwkon/DialogModule.yyp.zip?dl=0

I couldn't update my asset to the marketplace due to a problem with the site currently. You can simply grab the "extensions" sub-folder from that zip and replace the one you currently have with it in your uploads.
 
Last edited:

Kezarus

Member
There's important bug fixes for multiple monitor setups and macOS Catalina support added to Dialog Module and File Manager which may be downloaded here: https://www.dropbox.com/s/hkd83ko1rpxz2pb/DialogModule.yyp.zip?dl=0

I couldn't update my asset to the marketplace due to a problem with the site currently. You can simply grab the "extensions" sub-folder from that zip and replace the one you currently have with it in your uploads.
Thanks Sam! Will do. That modals of yours are amazing and saved me a LOT of time and trouble, specially with the color picker. =]
 

Samuel Venable

Time Killer
Thanks Sam! Will do. That modals of yours are amazing and saved me a LOT of time and trouble, specially with the color picker. =]
You're welcome! I'm glad I could help!

Edit:

I haven't checked the documentation, but it needs to be mentioned somewhere after a dialog box function has been called, in order for the game window to regain focus, you need to clear keyboard and mouse state:
Code:
keyboard_clear(keyboard_lastkey);
mouse_clear(mouse_lastbutton);
io_clear();
Also the devs need to know the dylib on mac is not codesigned, they will need to do this on their end for the two extensions to be useable on Mac.

Other than that, you're good to go!
 
Last edited:

Samuel Venable

Time Killer
I added support for async dialogs of every function, and support for GMS 1.4 if you wanted to add these changes to your asset:


I will be updating this asset more as time goes on, if you don't want to include certain updates I publish for whatever reason just let me know and I'll stop pinging you every time I publish an update.
 

Kezarus

Member
Hey Sam! Keep me posted if you can. I will update the GM 2 version whenever you send an update.

Those files above, should I subistitute them on the project?

Thanks a ton! =]
 
Top