Is game maker a realistic engine for my game project?

Discussion in 'Game Design, Development And Publishing' started by SuperSaabrio, Jul 9, 2019.

  1. SuperSaabrio

    SuperSaabrio Member

    Joined:
    Jul 4, 2019
    Posts:
    13
    I’m currently making/prototyping an action rpg style game like kingdom hearts in game maker studio 2. I’ve made the battle systems prototype along with moves similar to stinger from devil may cry and combos, but I’ve been hearing that game maker studio 2 isn’t good for game with this sort of complexity.

    The game is primarily gonna be a top down style snes jrpg a long with some sections that are like a 2d sideview platformer, but the skills and stats are carried over between both modes. Think of the gameplay style switching like legend of the mystical ninja on snes, where the mechanics carry over both in the top down parts and side view parts.

    I’m also planning to add in little mini games like a snow boarding one which is meant to imitate the snes style mode 7 in visual style.

    I know I’m capable of developing these parts separately on game maker with my current skill set, but I’ve been hearing that game maker will start having issues with games as they have more complexity and that it isn’t good for these sort of games.

    Is it a good idea to start learning another engine like unity (I have very limited knowledge is c++ and java) or should I just stick with game maker 2?

    This was copied from a reddit thread I made on r/gamedev.

    The people there were very helpful, but a lot of them didn’t know much about game makers capabilities, so I thought I’d ask here as wel directly on the forums.

    Also I’ve already decided to start learning unreal engine 4 on the side, but just want to know if sticking to game maker for this certain project is realistic.
     
  2. Lonewolff

    Lonewolff Member

    Joined:
    Jan 8, 2018
    Posts:
    1,088
    The answer is always yes.
     
  3. Pfap

    Pfap Member

    Joined:
    Apr 30, 2017
    Posts:
    547

    Keeping projects clean in GameMaker is a challenge of mine, but the engine itself is fine for what you have described. It really comes down to how disciplined you are with keeping your code readable. Gml has its quirks and as others around here have pointed out the community seems heavily dependent on how do I do X tutorials as opposed to using repeatable design standards.

    So, to answer your question it may be easier to keep your large project cleaner in another language, but if you are confident in your ability to write clean and readable code I wouldn't worry too much.
     
    Phil Strahl and Cpaz like this.
  4. Jabbers

    Jabbers Member

    Joined:
    Jun 21, 2016
    Posts:
    208
    Almost any game project can be realistically produced in GameMaker Studio, perhaps with the exception of the server component for an MMO (it'll just end up slow, but the client itself will be fine) and 3D game development (doable but not a realistic choice by any stretch).
     
    Lonewolff likes this.
  5. Joe Ellis

    Joe Ellis Member

    Joined:
    Aug 30, 2016
    Posts:
    857
    Gamemaker is a development environment in disguise as a simple 2d game engine, once you tap into all the stuff gml can do, you realize it's not that much different to c++, all the code compiles into the same thing, and it's already built a simple dynamic vertex buffer creation and rendering system, but that's only the surface of what it can actually do and anything that it doesn't have built into it can be made with dll's, so I don't think it's a case of whether it's realistic, just if you want to develop stuff in gm or not
     
  6. Lonewolff

    Lonewolff Member

    Joined:
    Jan 8, 2018
    Posts:
    1,088
    That's right.

    It's not a question of can GameMaker do this?

    Its is more of a question of can you do this?
     
    zircher and Joe Ellis like this.
  7. Joe Ellis

    Joe Ellis Member

    Joined:
    Aug 30, 2016
    Posts:
    857
    .. with gamemaker
     
    Niels likes this.
  8. Lonewolff

    Lonewolff Member

    Joined:
    Jan 8, 2018
    Posts:
    1,088
    If you want to get picky :p
     
  9. Joe Ellis

    Joe Ellis Member

    Joined:
    Aug 30, 2016
    Posts:
    857
    Yeah sorry, I just felt that would've made a better famous quote
    I was adding to it
     
  10. Lonewolff

    Lonewolff Member

    Joined:
    Jan 8, 2018
    Posts:
    1,088
    Ask not what GameMaker can do for you, but what you can do with GameMaker.
     
    Joe Ellis likes this.
  11. Joe Ellis

    Joe Ellis Member

    Joined:
    Aug 30, 2016
    Posts:
    857
    Your version was better actually before I added to it, I was pointing out the obvious, some things are better left unsaid
     
  12. Lonewolff

    Lonewolff Member

    Joined:
    Jan 8, 2018
    Posts:
    1,088
    You ruined it man! :p
     
  13. Joe Ellis

    Joe Ellis Member

    Joined:
    Aug 30, 2016
    Posts:
    857
    Welp, hopefully the original will live on:

    It's not a question of can GameMaker do this?

    Its is more of a question of can you do this?

    -Lonewolff 2019
     
  14. Jabbers

    Jabbers Member

    Joined:
    Jun 21, 2016
    Posts:
    208
    It depends what you mean by "realistic." Arguably, it wouldn't be realistic to develop DLLs and find workarounds with GameMaker if another engine already has the functionality you need. You will have to weigh the costs and benefits of using GameMaker, but it's often the case that the simplicity of GML and the rapid development time far outweighs the quirks of the engine (for indie developers at least).
     
    Joe Ellis likes this.
  15. Lonewolff

    Lonewolff Member

    Joined:
    Jan 8, 2018
    Posts:
    1,088
    Dunno man, I often work with both VS and GM open side by side. I have it set up so when I compile in VS it auto-updates the GMS project. Some things I find quicker and easier in GMS, others I find quicker to do in C++. Best of both worlds co-operating nicely.

    I do push GMS to do out of the ordinary things though. That's my way of having fun. I'm not up against any timeline. But everyone has different reasons for doing things and have their own preferred methods.
     
    Joe Ellis likes this.
  16. mikix

    mikix Member

    Joined:
    May 2, 2017
    Posts:
    306
    Devil may cry combos is doable. Just think of a fighting game, this is doable too in game maker. You just need to do lots of counter variables.
     
  17. Joe Ellis

    Joe Ellis Member

    Joined:
    Aug 30, 2016
    Posts:
    857
    "it wouldn't be realistic to develop DLLs and find workarounds with GameMaker if another engine already has the functionality you need"
    But every other engine I've seen with the functionality I need I hate, they're just wrong in alot of ways, and made by someone who isn't planning my idea the same as I am, which is why I use gamemaker cus it's pretty impartial, that's why I compare it to c++ and visual basic, java cus you can build everything from code upwards, the thing I hate about most other engines is the pre-built-ness, and its way harder and seems insane to code things from the ground up with them, which is partly why I think of gm as a development environment instead
     
    Last edited: Jul 9, 2019
  18. SuperSaabrio

    SuperSaabrio Member

    Joined:
    Jul 4, 2019
    Posts:
    13
    I know that parts doable easily, I’ve already made it in fact. But my combo system is similar to kh2 where the main combo is pre set based on your abilities equipped, which I store in an array.

    Yeah there was one guy on reddit who said code management was gonna be the biggest hurdle, but I’ve also been worried about the amount of enemies/instances I have on screen effecting was performance of the game
     
  19. mikix

    mikix Member

    Joined:
    May 2, 2017
    Posts:
    306
    Have it pause the whole screen except for you and the enemy you target maybe?

    Edit: The performance is good with many enemies. Just not if you make the collision be pixel perfect with the animations.
     
  20. Lonewolff

    Lonewolff Member

    Joined:
    Jan 8, 2018
    Posts:
    1,088
    Still, if I'd been using GM for some years and found one thing it doesn't do. It would be much faster for me to plug that hole with a DLL, than it would for me to go and learn an completely different engine from scratch because of it.

    (Actually, I am plugging a hole as I type this)
     
    Joe Ellis likes this.
  21. Joe Ellis

    Joe Ellis Member

    Joined:
    Aug 30, 2016
    Posts:
    857
    ^Yealp, sure would be, who needs other languages? just c++ and gml, ha! I would actually love if they were the only 2 languages to exists in 10 years time
     
  22. Joe Ellis

    Joe Ellis Member

    Joined:
    Aug 30, 2016
    Posts:
    857
    Well, if there's many enemies, try to disable collision checks as much as possible cus they're one of the slowest of all ifs, and the slowness increases the more instances there are in the level, cus each instance is cycling through every other instance and checking collision
    So say you've got 20 instances, each one is checking collision with the other 19, plus itself technically but it ignores it if "notme" is true,
    so thats: 20x20, x20, that's 8000 collision checks, with only 20, (wait, I think it's 400 actually, was getting carried away)
    Soo, the idea is to not make them not do this by default, and only make them do it when active or on screen, afterall, a simple if x > global.view_x1 && x < global.view_x2 && y > global.view_y1 && y < global.view_y2 per instance is roughly 400 times faster than checking collisions with every instance in the level
    I know some instances will need to still check collision when they're off screen, but why do think old games had a thing where things disappear after you go so far away and then spawn back again when you get close?
     
    Last edited: Jul 9, 2019
    mikix likes this.
  23. SuperSaabrio

    SuperSaabrio Member

    Joined:
    Jul 4, 2019
    Posts:
    13
    Making them pixel perfect actually makes the game feel worse. Right now I’ve been using an invisible object that detects collisions in front of the entity attack that destroys itself after the hurt frames of the attack animation. Everything has a rectangular mask/hit box.

    But I’m also constantly using an If statement to check the locked on enemies distance from the player when and was think of incorporating a slight zoom out if the distance gets far enough. I’m worried that the constant if checks for stuff like that are gonna cause a performance issue.

    Also does setting a instanced visibility to off free up the cpu strain or do I need to actually deactivate it?
     
  24. mikix

    mikix Member

    Joined:
    May 2, 2017
    Posts:
    306
    I've had hundreds of frogs the size of about 300x300 or 400x400 in a room that is about 30 000x30 000 big with a 1920x1080 resolution. Every instance was the same instance and it checked if the player was in range and they spawned "bullets" too, that also checked range. So, yes, don't worry about the range. You can even put a boss the size of 2/3rd of the view that spawns a lot of "bullets" in the rooms view too.
     
  25. Joe Ellis

    Joe Ellis Member

    Joined:
    Aug 30, 2016
    Posts:
    857
    @SuperSaabrio Setting visibility to off will make a big boost, and the "offscreen check" would be worth it, especially if there's alot of instances.
    Ideally making a grid system is more efficient, and is quite simple, you ask if floor(x / grid_size) * grid size is
    If you have a locked on enemy, that's only one at a time so that won't be a performance issue,
    setting instances to be invisible off screen can be a good idea, it does help with performance,
    BUT, if performance is an issue, it's normally not related to drawing, more the step event and checking collisions in particular,
    What's the heaviest thing that the game is doing?
    Also, the first thing you said about using an invisible object that detects collisions in front of the entity attack that destroys itself after the hurt frames of the attack animation is a good idea, generally, you've basically made a "hitbox", look that up, loads of other games use that
     
  26. mikix

    mikix Member

    Joined:
    May 2, 2017
    Posts:
    306
    I'd like to also mention that if you want to see if you can zoom out so there are more enemies on the screen and then zoom in. Try putting a lot of your enemies in a big room, make the fps to 60 and make the room speed 120,120. Let your character be at the center of the room. Look how much it lags, when the camera is going to the player.
     
  27. Joe Ellis

    Joe Ellis Member

    Joined:
    Aug 30, 2016
    Posts:
    857
    That sounds weird, it's hard to work out why it would do that, unless gm has a built in thing where it doesn't draw sprites that aren't on the screen, so then zooming in constantly means it has to constantly rebuild the render stack\vbuffer, hmm that could be it, I didn't think it did this though, I'd rather it didn't, I'd rather handle it myself.
    Oh ps\info about sprites and sprite drawing, when you draw a sprite, gm adds it to a vertex buffer which is the vertex buffer of all sprites drawn in that frame, I think it has to split it per texture page, so each draw_sprite call is practically adding 6 vertices to the vbuffer, I'm not saying it's slow but it's just something to think about.
    Also, I don't know if it actually does this, it might draw each sprite separately, which would explain why it works per shader_set(), but I'm hoping it detects a shader_set\surface_set and makes a new vbuffer for that
     
  28. SuperSaabrio

    SuperSaabrio Member

    Joined:
    Jul 4, 2019
    Posts:
    13
    It is only one, but there’s also a soft lock that targets the closest enemy to you in the direction you are facing if you aren’t hard locked on to any enemy but but it only does so within a distance from the player that is determined by a circle that is always drawn in front of the main character.

    Basically it checks every enemy that’s colliding with it and if that ones distance is lower then the target already soft locked then it will switch them.
    Very similar to the one in kingdom hearts.
     
  29. Joe Ellis

    Joe Ellis Member

    Joined:
    Aug 30, 2016
    Posts:
    857
    Yeah I get what you mean, me and my friend were working on a very similar thing up until this week actually, we decided to switch to a platformer for headache reasons with special moves and the animations, fighting games are way harder than they first seem :D, we were working on it for about 8 months, and I coded the moves that you're talking about and did alot of similar things\techniques,

    Well, yeah the soft lock has to check all enemies inside the circle which are facing the right way, so the broadest check is the circle collision, which is actually one of the fastest collision methods cus it only uses single position coordinates and a radius, unlike all the others which need several measurements.
    Hm I just remembered the actual name and reason of this thread, I was gonna recommend another game engine, but I actually wouldn't want to inflict\put anyone through that whole ordeal. Stick with gamemaker, and over time you can learn to alter it's default things and do anything you want at all.
    I'm completely not advertising but I'm just saying an example, look at what I've made: https://forum.yoyogames.com/index.php?threads/warp3d-game-engine-level-editor-model-editor.44159/
     
  30. mikix

    mikix Member

    Joined:
    May 2, 2017
    Posts:
    306
    I don't know why this would lag the game. The only things I know that do lag the game, is drawing way too many things you can handle or draw a 400+ animation frames image as big as your room or making all enemies collide with their pixels, instead of the rectangle mask.
     
  31. SuperSaabrio

    SuperSaabrio Member

    Joined:
    Jul 4, 2019
    Posts:
    13
    It’s not lagging the game, but I’m worried little things like that constantly checking for a condition to be met bunched up would cause the game to lag. Right now everything is running perfect and I’m getting really high FPS. The issue is I haven’t implemented the more complex ai or things like multiple layer collisions and projectile attacks from enemies.


    That looks crazy, but seems way outside my realm of knowledge to do anything remotely like that right now haha.
     
    Last edited: Jul 9, 2019
  32. SuperSaabrio

    SuperSaabrio Member

    Joined:
    Jul 4, 2019
    Posts:
    13
    Just want to add, thanks for all the advice and info. The replies here have really allowed me to move forward with my project in confidence.
     
    Joe Ellis likes this.
  33. javarlucious

    javarlucious Member

    Joined:
    Saturday
    Posts:
    1
    that's only the surface of what it can actually do and anything that it doesn't have built into it can be made with dll's, so I don't think it's a case of whether it's realistic, just if you want to develop stuff in gm or not
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice