GROM really started as a technical project and learning experience more than anything else. At the time, I was just then learning about how to use arrays in Gamemaker: Studio, and I wanted to figure out some sort of way to practice my skills and learn more about arrays through experience. I figured the best way to do this would be to make a fast-paced game where arrays would have to be checked frequently for the game to played properly. So, the lightbikes game from the old TRON arcade game came to mind.
I started off by creating a simple wall object, a simple controller object, and a simple player parent object. I ringed a room with the wall object to make an arena. I gave the lightcycle player object a speed, a collision event with the wall object, and simple 90 degree controls (W goes straight up, S goes straight down, etc.), and boosted up the room speed to 60 so that way the movement would be smoother. Here's a tip if you ever use Gamemaker: Studio: always boost the room speed to 60. I saw it in a Youtube video once, I tried it, never went back. My games run like butter now, it's great. You may have to adjust your code and animations some, but you won't regret it.
After I finished making the lightbikes minigame, I wanted to add on more - make it more of a minigame compilation - so I added some more rooms and objects so I could make a rendition of the Jai-Alai scene from TRON. I figured the best way I could do that is by repurposing an old platformer engine for the player movement, and making it so the ground the players stood on disappeared when it was hit by the ball being passed back and forth. What I did was basically create a platformer variant of Breakout, where you protect your blocks from the ball and try not to fall down into the pit. I chose to use the platformer engine with Ghosts'n'Goblins physics, because it would mean more risk when the player jumped - whether over a pit or to intercept a ball - and because I felt that would make the games that much more interesting and dynamic. I also toned the jump height down slightly to make it a little bit more realistic, while still allowing for some interesting plays in game.
At first, the main menu for the games was just a title screen with buttons, but I somehow got the crazy idea in my head to replace the simple, easy-to-program buttons with a complex, harder-to-program and use text-based interface to emulate one of those old 80's terminals. This was right around the time that I actually got to see TRON for the first time. I didn't actually like it that much. But that's neither here nor there.
After I finished up the first full build of the game - lightbikes, jai-alai, user data and all - I brought it to my Engineering classroom on a USB for my friends to check out and play. I was surprised how many people actually did genuinely like the game. My friend Logan particularly took to the game, especially lightbikes. When there was spare time, he would challenge me or anyone else in range to a lightbikes duel. However, he didn't like Jai-Alai nearly as much - he thought it was a little too slow and boring compared to the more intense, high speed Lightbikes.
I'm of the philosophy that you should always listen to your testers. They are one hundred and ten percent right, all the time.
To make the Jai-Alai game more exciting to the players - it was the only original game in the package, after all - I got a little lazy and cranked up the room speed to 125%. This I can't recommend. If you bump room speeds up too high, it'll hurt your eyes and give ya headaches, I have learned. Another Gamemaker: Studio tip.