zenzoa / mosi Goto Github PK
View Code? Open in Web Editor NEWA tiny game editor
Home Page: https://zenzoa.github.io/mosi/
License: MIT License
A tiny game editor
Home Page: https://zenzoa.github.io/mosi/
License: MIT License
Currently to run a game, user needs to go to the world screen. This can be tiring when testing a lot of small random changes.
Add a Play button at the bottom of each burger menu for easier access.
How to make dead end?
Currently I'm cloning a room using export and then import. After importing, I can see duplicates of all the used sprites from my now-cloned room.
Maybe upon import, you're not checking if a given sprite already exists?
THANK YOU for an awesome tool by the way! This is seriously great
[edit: originally thought deleting the dupes didn't break anything, but it certainly does haha]
Exporting a game generates html file, but opening gives Github's 404 error. Exported file attached (inside a zip, because github does not allow for attaching html files)
index.zip
possibility to animate, set still frame or deanimate sprites via code, like {set-frame 1 player}
I'm trying to set up a behavior where I leave one room by walking off the screen to the right and then have the leftmost cell in the next room have a Move Avatar action that moves me to an offset. But I can't enter that new room if that action is in the cell.
Having the color wheel is nice, but to make the engine really usable user should be able to choose color by hexcode as well.
The mod function always seems to return 0.
Easily reproducible:
{mod 5 10}
Prints 0
I know that the UI is supposed to be mobile friendly, but it also makes the desktop experience less than smooth. This can be remedied by adding some keyboard shortcuts for accessing different panels.
The easiest would be to use numbers when not in a text box. So 1 would be world, 2 would be sprites, 3 - palettes, etc.
When placing tile, clicking left mouse button does not place a tile on top of existing tile. This is on the current Chrome, Windows10.
Clicking right mouse places the tile without an issue, but brings up the RMB menu.
Not sure if this is a bug or a feature ;)
I would recommend modifying clicks with keyboard (not sure how to handle on mobile, maybe multitouch or extra icons?). The way I would see it is:
It would be great to have a built-in option to make the avatar movement discrete. I find it much more aesthetically consistent that way. Once that is changed, it becomes clear the key repeating is quite frequent; I thought setting the repeat rate to the framerate might be a good alternative. I've made sure to keep moving at whatever desired rate based on repeated presses.
I've modified my code and I like how it feels. I thought others might like it this way as well.
cant make more than one for one sprite but needed...
i know idea dumb but why only use 2 colors on one canva if i have 6 or 8 colors in palette ? instead of toggling color at bottom of sprite i want to choose color in picker and then draw such color + adding grid to editor also would be good :/
The default font in the sample project is barely readable to me and looks harsh and aggressive compared to Bitsy. I wouldn’t want to spend prolonged amounts of time reading that font and yet I would be forced to do so playing a Mosi game.
Is there a way to change it? If there isn’t, please consider an alternative font, it’s acceptable for one sentence or a title screen but not for any extended amount of reading.
Hey, I know you're not working on this project at the moment but thought I should record this problem anyway in case there's a fix.
I'm trying to set a variable to contain the data of other variables, like in the example below:
{set-var man-room-x {random 1 3}}
{set-var man-room-y {random 1 3}}
{set-var man-room room-x{var man-room-x}y{var man-room-y}}
location: {var man-room}
When I run the script in my game I would expect it to print something like location: room-testx1y1
but instead I get location: room-testx
with everything after the first variable not printing, including the y
character between the variables. I also get the same results if the original variables are regular numbers or strings.
It might be useful if the {else}
function in the wiki could have its own subheading. (Or at least include {else}
in the current subheading.) I mostly skim through the headings when looking at what code is possible and I completely missed the fact that there's an else function available.
(Can you tell this problem only occurred for me because I was not reading the documentation thoroughly enough 😝 )
If I select various rooms in the World view, the outline doesn't update to highlight the room that's selected. (in Firefox on Win 10)
I uploaded my game to itch.io but when I use the up and down arrow keys to control the game, it scrolls the browser page up and down along with the game.
System information
MacOS 10.14.4
Firefox 66.0.3 (64-bit) + Safari 12.1
Pretty self explanatory - ability to create more than one world, connect them via bitsy like exists. It would allow for larger games or other cool effects (alternative worlds ala Silent Hill, etc.)
I made a new color palette and applied it to 3 rooms. This color palette isn’t applied in the export. I tried deleting the default palette to see if I could replace the palette but I have just broken everything in doing this. I probably shouldn’t delete default things :/. Now I can’t draw anything in the room view.
Through a small phone speaker the music volume is fine but on desktop I have to turn the audio down to about 25-33% of what I normally use because it's so loud. It heavily peaks the audio too so it sounds all scratchy. Could the volume be lowered by 12 dB (25% of original volume) at the very least?
I had a sprite that I wanted to move once the player had advanced past a specific state. Since it's not possible to remove sprites that are in different rooms, I had a check on entering a specific room that if you had an item, it would remove the sprite.
This didn't work, and caused the game to hang. I had to move that check to a trigger tile that you press after loading the room, and that worked fine, though was a bit janky.
if you change the sprite size in settings, the back arrow to exit the settings screen disappears! thankfully the changes are remembered if you refresh the page. using from Chrome on an Android phone :- )
so yes. i have a general problem in browser, that every reboot my lap loses cookies (idfk why) and cant save web storage ;-; .
my idea is - to be able to export such game to a file (either html or custom one), so i can load later and continue.
pls...
BTW - cool engine, gonna make custom "zelda" out of it ;p (WHEN BACKUP WILL BE !!!)
Allow user to access game data in plain text, and exporting and importing of such data.
Currently the avatar animation plays even when the player is not moving. Which can create an odd disjoint if the animation is of the avatar walking.
Add an optional set of animation frames for when sprite is not moving.
I have developed the following features that could be integrated into mosi:
on-update scripts: This script runs after every move of the player.
{check-tile [room: optional room name] [x] [y]} expression: Returns the name of the sprite located at x and y position. Return an empty string if there is no sprite at x and y position.
Display tile coordinates on the room grid: Moving the mouse or clicking (or tapping on the screen) will show the position (x and y) of the tile in the room grid.
You can test these features on my fork: https://github.com/solivo/mosi
The following game was made with the the fork's features: https://github.com/solivo/volunteer-heart
I'm unable to use mosi because clicking "got it" doesn't seem to do anything. I've tried restarting and clearing cookies, but I seem to be stuck. You can see in the BG that it seems to only load some of the room thumbnails. The only thing that works is using it in a different browser.
Any other ideas?
character moves slower in a room filled with tiles than they do in an empty room. first noticed this at 15 pixels/tile, was able to reproduce with 17px/tile.
mosi version:
V 1.0
OS/Device:
OS:Android 9.0
Device: Nokia 1
Browser:
Google Chrome 78.0.3904.62
Issue Description:
By activating the Android keyboard from the Script panel textarea. The layout is broken. Also, the textarea is set to a minimum width.
Steps to reproduce:
1-Open the Script panel
2-Tap on the textarea to active the Android keyboard.
One thing that I really miss in Bitsy is choosing both the 0 and 1 colors for each tile (just like in tiled graphics in microcomputers of the 80s, like Commodore64 or ZX spectrum).
Right now the user chooses color 1, and color 0 stays transparent. This is great for default behavior, but it would open a lot more possibilities if the user could also choose the background color. Alternatively, this can be achieved by allowing sprites to sit on top of one another, like in transparent sprites bitsy hack.
Also, it would be great if we could choose or hack in more than 3 colors, similar to bitsy. I think having up 8 colors would be amazing.
Edit: Attached an ZX spectrum example of the difference between the color0 / bg being constant, and being able to change it.
I can't seem to access a particular song in my project. I can select any other song easily, but this one particular song can't be selected to be edited unless I select it to be used in one of the rooms, after that if I select another song and try to return to the faulty song, the bug returns. This happens even after resetting the program and the computer.
Edit: I've just managed to work out that the song that I can't select to edit seems to be whichever song is currently assigned to the room that I'm editing.
This might be better for a standalone tool, similar to image-to-bitsy, but that would be such a time saver!
Allow the user to import/export .png or similar files into mosi. In a bare-bones mode, a 1bit tile, or in more advanced, accept palette colors from the game.
I can't select a sprite to add to a room. When I tap on one of the sprites I have created, the black border remains around the player avatar sprite. I'm accessing this via an Android device/Web browser.
When I press the fullscreen button to play my game on itch.io, the game does go to full screen but I cannot use any of the arrow key controls. I can press esc
to leave fullscreen but I still cannot control the game until I refresh the page.
System information
MacOS 10.14.4
Firefox 66.0.3 (64-bit) + Safari 12.1
i mean - how many songs, palettes, sprites, code etc in one game. is it based on my machine or defined somewhere?
like if i would to make 1 000 000 000 sprites wont mosi block me smh?
Add support for pixel fonts that are not monospaced (e.g. here i is only 2 pixels wide (one of the letter, one of white space) while w is 6 pixels wide (5+1 white space) )
This can be achieved by letting the engine parse each letter individually and assigning each individual width (as height should be constant, but enabling varied lead to some interesting things.).
To enable the individual parsing the SIZE attribute of .bitsyfont can be changed to 0 0 instead of actual size, or just left blank.
Allow the user to add more than the default 3 colors.
The palette can still be limited (to 8 or so colors), but it will allow for more artistic expression.
if you change the sprite size in settings, the back arrow to exit the settings screen disappears! thankfully the changes are remembered if you refresh the page. using from Chrome on an Android phone :- )
Having a small issue, not sure if this is intentional in the design of the framework or an issue with what I'm doing.
I should go see him.
{remove-sprite}
{place-sprite floor master-3 room-2-1 7 7}
The intention with this was to remove the sprite after the dialogue had finished. However, everything seems to run at once, and he disappears immediately on talking to him.
Is there any way to delay removing the sprite until after the text box has been closed?
Thanks
Currently the text can get pretty big at 8x8 resolution as it is rendered at the same pixel size as everything else. A quick fix for text heavy games could be exporting the game at 16x16 resolution - making all the gfx scale 2x and render the text at now native resolution (making 1px of text being 2x smaller than 1px of sprites - similar to bitsy).
Making the text smaller only after export seems like the easiest approach to me.
If I select a branching action, and then (maybe accidentally) choose an action for the else block, it can't be cleared, the choice seems to be permanent.
The two workarounds are to just use a "dummy" action like a null message, or delete the overall action and start over.
First of all, really like mosi and I hope it will be developed more. Now that I have some free time I will start adding feature requests here :)
Currently there is only "say" script. To make mosi accessible, I can see other script types being blocks that you can add (instead of injecting code into dialogue). The blocks can be organized like code (so top one fires first)
The scripts I would like to see are:
Were games settings removed from the new version? Such as changing the resolution of various things. I couldn't seem to find them anywhere.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.