GithubHelp home page GithubHelp logo

spacebake / loungeware Goto Github PK

View Code? Open in Web Editor NEW
17.0 4.0 27.0 429.71 MB

A Warioware-style collaboration game

Home Page: https://loungeware.games/

Game Maker Language 97.08% GLSL 2.32% HTML 0.35% JavaScript 0.24%

loungeware's Introduction

loungeware's People

Contributors

antidissmist avatar bakumoe avatar biyectivo avatar colmeye avatar doudoudodogang avatar gizmo199 avatar katsaii avatar kilomatter avatar mega-baboon avatar mintypython avatar natestar0 avatar net8floz avatar pizzaandy avatar sambaylus avatar sidorakh avatar spacebake avatar springrollgames avatar tfg1434 avatar thejdlowe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

loungeware's Issues

epic fire truck length

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).

SFX aren't being stopped when you "resume" a game via pause menu

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:

  • Wandaring Candyland (background music stacks)
  • Cookie Dunk (try resuming a bunch of times quickly, you'll hear a bunch of annoying messages all on top of each other)

Demo game

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.

Delay before PROMPT macro actually returns the prompt

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 :/

image

Implement a game mode similar to WarioWare DIY?

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!

larold voting game

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

Finish off arcade mode

it's all arcade mode
increasing difficulty after X microgames
gameoverscreen/score screen after all lives lost

Microgame config refactor

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

Moving Game Meta Data:

The solution we landed on was creating a 2 part macro that

  • Checks if a global datastructure exists, and if not creates it
  • Adds a struct to this global datastructure
  • Allows the caller to fill out this struct
  • Closing macro for any macro side logic that needs to be figured out

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.

Validating the meta data

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.

Web bugs

  • infinite login bug
  • guestbook complains you already submitted when submitting first time.

particle systems can persist between microgames

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

Gamepad crashes HTML5

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.

HTML5 fullscreen bug

I don't know what exactly causes this issue, but it seems to occur when entering and exiting full screen mode. Here is what it looks like:
image

macros for no no functions

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?

HTML5 Issues Generation

I ripped up a shit ton of code see commit here.

393b72c

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.

wandaring done borkedc on the webs

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

2021-10-23.04-24-05.mp4

Larold indexing rapid expansion

  1. Array of larold credits needs to be moved to it's own file
  2. Array of larolds should expand to a tuple of [larold name, authorname]

example:

var larolds = [
["funky booty larold", "bakusaii"]
];

Fix Collision needs microgame_end_early()

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

Dev Config Refactor

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:

  • Creating a boot screen that runs if we know the user is A) Not running a shipping build and B) in the ide. This boot screen will ask to run the normal game, or enter dev config.
  • If enter dev config you are taken to a menu that allows you to enable or disable dev mode ( checkbox ) and select a game. A select widget will need to be created for this that displays all games. Function before form here.
  • When dev config is applied this creates a save file in AppData and game restarts

If dev mode is enabled

  • Game now boots into test mode. It is possible to once again enter the dev menu from the previous steps by pressing some function key ( you choose )
  • Test mode runs as we're all familiar with, loop selected game forever

If dev mode is not enabled

  • Game boots back into selection menu from the first steps. But again, only if in ide and only if not shipping build.

All these ideas allow the new developer to be mostly hands off on configuration, and they just need to interact with menus.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.