I discovered Game Maker after a few semesters of Java programming classes. I've always coded, and I wanted to make playful, imaginative things. College wanted me to make piles of apps using JAVA Swing. I began to google for a faster way to play.
So GameMaker. Started by one college professor in the Netherlands to teach students game design. The software provides built-in event handling for common inputs and a 2D graphics system. Basically, you attach pictures to objects, drop objects into rooms, and you're playing a game. It's come a long way since those days, but is still a really fun way to prototype fast and to get into game-making.
Slidge?
You go along dropping graphical objects and event-driven logic into something like a game, but when it's time for text, you quickly realize you need text to “typewrite” itself, and to word-wrap, and to fit within boxes, and you need a character avatar to animate with it, and you need choice boxes on the screen to select the next dialog choice…
It's a problem that comes up on a weekly basis over on the Game Maker Forums. Game Maker leaves a large hole when it comes to pre-configured behaviors and object prototypes. If you just want to drop some working textboxes into your newly coded game…you're going to have to do a lot more coding.
There are other dialog/Visual Novel engines on the Game Maker Marketplace, but these all suffer from a host of difficult problems:
Lack of flexibility in story structure (
VN tools usually have static links: you choose A, it goes to dialog A, choose B and it goes to B. Cut-Scenes are usually limited, too–what if I want the “end scene” of a game to be made from several sets of ending sequences, depending upon choices throughout a game? Most VN tools can't stitch together an ending scene like Mass Effect 2. Slide has these features.
Lack of advanced text features (
There's a lot of expectations on text in modern games: Custom fonts, colors, emojis, “wiggling” animated words, text wrapping, and auto-pagination, for example. Text is often expected to drive in-game events, like changes in character expression, too!
Lack of modular design to add features (
VN tools can get pretty complicated–Slidge certainly is! But some effort should be made to keep the dev-customize-able parts clear. Many of Slidge's parts are interchangeable and modable, and all data is JSON-based.
Requiring tons of engine-specific functions (
Usually, implementing someone's VN engine requires learning a set of custom commands and parameters, and then diving into their code to discover ways to customize the other 90% of the features. Slidge certainly has self-contained custom functions, but launching the engine is simple, cleanup is automatic, and customization is visual.
Inability to preview visuals while designing the game (
Adding dialog via code is a tough way to make custom scenes. Slidge places a visual editor over the top of your game (or an empty game) so you can set everything up visually, then import the resulting JSON into your final game
Lack of data integration between the engine and the rest of a game (
Bringing data into a VN tool from a game shouldn't be hard for the dev! Suppose the player inputs a name into the game, and I want that name to be used in dialog? Suppose I want a choice selected in a dialog scene to affect a stored piece of data back in the rest of my game? Slidge uses a central Map data structure and a tag-based syntax to pull data in and send data out easily.
Sooooo. Using Game Maker? Adding VN elements? SLIDGE!