spacebake / loungeware Goto Github PK
View Code? Open in Web Editor NEWA Warioware-style collaboration game
Home Page: https://loungeware.games/
A Warioware-style collaboration game
Home Page: https://loungeware.games/
As a new developer i want to be able to create microgame meta data in IDE and not have to learn external tools or schemas.
As a git maintainer I want to ensure that devs are able to independently manage their games microdata without it interfering with git and git history. Common pitfalls include master meta game file, and using git-ignored included files
The solution we landed on was creating a 2 part macro that
This logic is required because we have no guarantee of script execution order on boot. Whoever gets there first needs to create the datastructures
Developers would stick this in their microgames/authorname/ folder in a script inside the IDE which is automatically called on game boot.
As an example:
// __some_private_file.gml
#macro MICROGAME_BEGIN if(global.microregistry == undefined) { global.microregistry = ds_list_create(); // etc // etc ds_list_add(global.micro_registry,
#macro MICROGAME_END ); }}
// microgames/n8fl/n8fl_penguin_blast.gml
MICROGAME_BEGIN
{
init_room: n8fl_rm_penguin_blast,
duration: 4,
etc,
etc
}
MICROGAME_END
All jsons would be removed from included files and recreated in new gml files.
It is still desired to have the meta data validated. There is already a rule based validation tool FConfigLoader or some shit. This struct knows how to take a directory, recursively find all json files, read them all, validate all their fields with a set of rules and log any warnings found. Finally this is fed into the global data storage for use in the rest of the app.
This validator will still mostly work, but small adjustments need to be made
Changing the input of the struct. Instead of a directory to search we already will have a list or map or something of all the microdata. File calls removed and functions changed to accept a collection
Some asset validating rules are based around name comparisons and are expecting strings. Some fields such as init_room
will now be asset references like n8fl_rm_penguin_blast
instead of "n8fl_penguin_blast". These rules will need to be updated.
Finally, this now validated collection needs to be assigned as regular to the global app storage to be used in the rest of the app.
also make the button prompt reflect the difference when on html
we need to get some of these fixed so we can close them
Everything is in-gml-now
Then we can scrape this for the website automatically! Win-win!
to reproduce: run microgame in test mode, pause, select gallery, and try to run another game
probably fixable by just not allowing pausing while in test mode
like data structures, particle systems do not get destroyed on room change and need to be destroyed manually.
i think we need another macro override to make sure they get destroyed between games
fields we know have this problem:
date,
cart colours
and ...more?
it's all arcade mode
increasing difficulty after X microgames
gameoverscreen/score screen after all lives lost
example:
var larolds = [
["funky booty larold", "bakusaii"]
];
RRGGBB is a much more common way of writing hex colour. Even gamemaker's sprite editor uses rrggbb.
is there any reason we can't do this @torontofangirl ?
@NuxiiGit >:(
Increase time or increase paw movement speed (or both)
possibly have a little system on the website where you a presented with 2 larolds and you pick which you like better, this would result in ranking for each larold. The top 1-3 larolds could be displayed somewhere prominent
The PROMPT macro returns an empty string, instead of a string containing the prompt, until the first step event in your game's room.
This is kinda janky for games that use array prompts and have to do some sort of setup depending on the prompt, as they'd have to run that code once in step instead of create/room_start :/
black screen crash when starting wandaring candyland in html5, with the ever so descriptive error Unhandled Exception - Uncaught TypeError: Cannot read properties of undefined (reading '_S12') in file undefined at line undefined
everyone should remind net to do his shoulder stretches
if you think this is a good idea i'll add it
It's annoying, especially on the HTML version.
We should either:
a) Remove this behavior entirely
b) Only hide the cursor on fullscreen
depressed
This should resize the application surface to the view size, resulting in nice pixels for low resolution games.
I ripped up a shit ton of code see commit here.
I'm requesting help to review this commit, find the things that need to be made out as separate issues, and then also do those issues.
SFX are not being stopped when you hit "resume" in the pause menu when playing in the gallery. So sounds keep playing after the game has restarted. This is especially bothersome when it comes to sounds with looping enabled, as they'll just keep stacking if you resume multiple times.
Examples:
The ability for modders to create their own games without the use of the IDE could be pretty neat, I think. These games could live separately from the base game, and even use Catspeak to handle custom code execution on specific events (e.g. collision events, input events, etc.).
Because of the implementation of Catspeak, we can guarantee that modders aren't able to modify any important game state, since only functions required by the interface would be able to be called. Catspeak can be executed over multiple frames, so there is also no fear of lagging a game with while true { }
. Additionally, any errors that occur can be captured and handled without crashing the game, so the implementation would be entirely stable.
It's an idea, but I think having a way for people to add games to the program even after this project has been abandoned would be neat!
As a new developer I want to be able to easily get involved with making microgames and not have to deal with setting up a external json file for testing my games. I want to be able to use in-game commands or menus to enter dev mode and to select a particular game to test.
As a git maintainer I want to ensure that devs are able to set up different configurations without bogging down git history or creating conflicts. Common pitfalls include registering in-ide configs and git ignored configs in included files.
Prerequisite is that in the game now there is a concept of a "Shipping" macro config, this is what we use in game to disable dev only menus or features from final shipping builds and should be used here.
Prerequisite it is possible to figure out if the user is IN IDE by parsing the process arguments for -game.
The solution looks like this:
If dev mode is enabled
If dev mode is not enabled
All these ideas allow the new developer to be mostly hands off on configuration, and they just need to interact with menus.
Hey what about a demo game that has the absolute bare minimum set up to be a game. some simple press one button thing. this can be the game we point to that has very verbose commenting and all the basic functionality one would expect to need examples for.
timer for epic fire truck seems to be longer than it needs to be. even after winning there are usually 3-4 seconds left on the timer.
( i'm presuming win is triggered when you put out 1 fire).
Redirects to https://loungeware.games/https:/github.com/spacebake/loungeware
smh
@net8floz
If you press any button on a connected gamepad when running in HTML5 the game just freezes. Music keeps playing. Tried both xinput and directinput pads (360, DS4), same thing happened.
hello world ๐ฅต
If you win quickly by being an epic shaun-code-knower or just get lucky, or lose quickly, you can end up just sitting there doing nothing for 9 seconds. This game should implement the early end.
@torontofangirl
Just like Enter can be used to select menu items, Escape should be able to be used to exit a sub-menu. This would work just like how pausing uses Escape.
This test should now have a clickable title
just remind myself to check this out
example:
#macro audio_play_sound __throw_sound
#macro space_approved_play_sound audio_play_sound
function __throw_sound() {
throw "use sfx_play";
}
notes:
seperate function for each not allowed function so you can pass arguments without meaning anything
any objections?
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.