Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(1 edit)

I'm really loving this engine, as I do all of your stuff! I'm learning a lot as I go, taking notes about where various things are controlled from. I just have a few questions:

1. How do you add more placeable objects into the stage editor, like items and decorations? I figure it has something to do with yashow_menu and the variables like misc_item_str that is read in the user events in obj_editoroverlay.

2. What would be the most efficient way of adding gamepad controls? I see where to change the keyboard inputs in get_keys and in the camera objects.

3. Do you plan on adding any documentation down the line to make it a little less confusing to create new models using the simple shapes and paths? Genius method, by the way!

Side note: I'm getting around 50-60 fps consistently on the test level in GM 1.4.9999.

Thank you so much for all your work, in this and many other engines!

(+1)

Thanks, glad you like it! ^__^

1: Scripts --> Editor --> Data Definitions is full of scripts that set up these menus. Some metadata needs to be stored on the side, so the strings you've seen really only exist for the menu itself (it's a compatibility function for now-deprecated show_menu that showed a Windows popup menu of the same type you get when right-clicking something)

2: I'd add a new global variable input_device which defaults to a new constant inputdevice_KEYBOARD which is negative. In Asynchronous Event: System events added to the main control objects, set the input device to the new gamepad ID when a gamepad is discovered and back to inputdevice_KEYBOARD if the current gamepad is lost. (Read up on the Asynchronous Event List page for the details on this step). In get_keys, check whether input_device is equal to inpupdevice_KEYBOARD and if so run the current code, else if it's >= 0, read status from gamepad index input_device using gamepad_button_check for buttons and gamepad_axis_value for sticks, with appropriate values for buttons and axes (axes 0 and 1 are the left stick, 2 and 3 the right stick, and there's named constants for all standard buttons).

(You'd probably want to put the gamepad check in a script and have every major menu controller have one of these so the events can't get lost if you change to a room without the player object setup... including putting one in the setup room, perhaps? Not sure how GM will treat that event since it's supposed to trigger at the start of the game but the first room has no objects...)

3: Not really, the system turned out to have terrible performance and I'd do everyone a disservice if I encouraged using it :P The gist of it is that the silhouette described by the path is rotated in 3D space to create the model, and if you have multiple paths the shape will be blended between them. Paths are listed together with an angle; that angle is where the shape will be 100% that path (if you only have a single path to define the shape, you can just use an angle of zero). Finally, the body part is stretched over a radius/height pair, so you get more fine-grained control over its final size (GM paths get kinda wonky when you make them too small so they're several hundred pixels big and then downscaled).

(+1)

Thank you so much, Yal! The method for creating models may not be the most efficient performance-wise, but it really is an incredibly smart way to get around the need of importing them from outside!