Always define a script function for every DnD action Spend time making (or searching for) proper icons for your extension actionsįorgetting what an action does kills maintainability a descriptive icon will significantly reduce this.
Remember to check whether somebody has not already implemented a particular function in an extension! Document extension actions properlyĭon’t leave any of the fields (such as Description, List Text, and Hint Text) in the extension maker empty, and take care to make the List Text and Hint Text display as much field information as possible (by using the – see the Extension Maker Help Documentation). It is useful to have a general usage extension, that you can use across projects, as well as a project-specific extension. extensions can be put under separate version control, and so reduce the impact of a roll-back.Įvery script function you define should be considered for implementation as a DnD action in an extension.extensions make it easier for more people to work together (people making extensions needn’t modify the main Game Maker file) and.extensions make it possible to reuse functions more effectively.Using extensions provide several advantages: Extensions Make extensive use of Game Maker extensions Using layout functions can greatly improve the ease with which the GUI can be extended or otherwise modified. Laying out a complicated GUI can be extremely labour intensive, so that changes to the GUI layout can become unmanageable. Do as much of the GUI layout programmatically as is possible It also makes it easier to make the GUI skinnable. This makes it easier to change styles in one place, instead of in every widget. Keep style elements (colour, font, borders) in separate objects. Use a widget-and-style approach for complicated GUIsįor complicated GUIs, it is worth defining generic widgets (such as buttons or menus) that can be configured using parameters. Use a grid, and design objects for that grid to simplify world construction and object placement. Loading images from files, creating sprites and objects dynamically, and constructing levels programmatically makes it a lot easier to change assets, since the Game Maker file doesn’t need to change whenever the asset changes. This prevents every change from becoming an error-prone two-step process. …if your main drawing tool is an external tool. Resources Do not make the embedded drawing tool part of the pipeline icon code (if you use one – see below).At the very least, this document should define: Use a Development Standards DocumentĬompile and work from a development standards document to promote consistency across projects and between developers.
Other resource folders should reflect the groups of the objects to which they belong, or be subdivided by their function. Generally, the object folder structure should follow the inheritance hierarchy, with further separation as necessary. Test_name_clash.gmk (19.2KB) Use folders to structure resources The following Game Maker file illustrates how name clashes can lead to bugs: Use postfixes instead of prefixes – this makes it easier to find specific objects in the object tree, and to read your code. To prevent this from happening accidentally, use postfixes to distinguish different types of game-elements (sprites, sounds, objects, rooms, and so on). It is possible (but incorrect) to give, for example, an object and sprite the same name. General Use postfixes to prevent name clashes Here are 60 things to make Game Maker projects more maintainable. This is of course true for any production environment, and there are many things you can do to tame the beast of scale. However, as a project becomes bigger, it becomes more difficult to find things, easier to break it, and generally harder to work on. You can also control certain aspects of layers from code, adding or removing things, or changing certain properties of the layer or what it contains at run time.Game Maker is a great tool it is especially suited for rapid development and small projects. As the name implies, a background layer is simply a sprite asset that is being used as a background on a layer at a set depth within the room, and by stacking layers you can make some things draw over or under others. The GameMaker Room Editor permits you to add backgrounds into any given room using layers.