Purple Mage demo v. 0.1.0
Premise
My idea was to make a platformer where you can either fight enemies and solve puzzles or avoid them completely. Doesn't sound like too much fun? Well, you don't know until you try it. I had this idea around 2013-2014, but didn't apply enough effort to implement it. Then, in 2018 I finally decided to make a prototype and see how it roks out. The game was made in Game Maker: Studio 2 in two weeks.
The game
The game essentially is a proof of concept. It consists of one short level that can be completed in 1-2 minutes. Here's the video of the gameplay. I also have devlog videos on my channel.
There are basic skills in Purple Mage: jumping and fireball. At the start of each level you can upgrade either of them. This will impact on your playing style. Currently it seems inbalanced: it is much easier to upgrade your jump and hop through the level over enemies and puzzles. But maybe it's just me, I need a fresh playtester.
Development
As I mentioned above, I've had the idea for the game for about 4 years, but didn't try to make it. It took me 2 weeks to complete a prototype, and this is plenty of time for such a simple and short game. Especially considering I had some assets made earlier - e.g. I made the music and sounds in 2014 or so, but didn't bother to make an actual game. Most of the time was spent on tweaking the jumping system (that is not perfect though) and struggling with Game Maker programming concepts. They may be really hard to get into for someone coming from traditional programming languages, like Python.
Conclusion
From the game design standpoint, it turned out that idea of having different (at least two) skills in a platformer is not good. Unless it is a Metroid/Castlevania style game, where you can't explore some areas unless you have a certain item or a required skill level. For a linear, Mario-style straightforward level it will simply result in player missing on the gameplay options, or they have to replay each level with a different set of skills.
From the programming standpoint I have some points to make about Game Maker. It has some strong sides: - an integrated development environment with code editor and tilemap editor (I mean version 2, the original GMS map editor was awful) - easy and lightweight HTML5 export - it converts GML code to actual Javascript. - lightweight desktop export as well - actual machine code, not an Electron running Javascript. No heavy libraries included. - built-in functions to make a prototype running fast, like x and y coordinates, built-in sprites, etc
It also has weak sides, and the worst is the GML programming language. Maybe it's just me, but I can't wrap my head on using it correctly. You have objects and SOME inheritance, but no OOP. You can inherit events, but not methods. There are only two tools to avoid repeating code - objects inheritance and scripts, and they are not very flexible. Objects are created with 40+ built-in variables, and that makes objects composition consume lots of unused memory.
As the extreme opposite, instead of trying to fit your logic in GM concepts, you can totally ignore the built-in objects and write all the code in pure procedural style - and I have seen some GMS games done that way. But then you are missing on all of the good object functionality, like coordinates, sprite animation, physiscs etc.
I'll continue using Game Maker for prototyping and single screen minigames, because it's perfect for these. But I'l have to find something different for more complex ones.
As for the Purple Mage, I need to rethink some concepts before moving on. That means either turn it into a Metroidvania or ditch the original "different skills" idea and make a regular linear platformer.