J
Jacob T Wharton
Guest
Hello!
Before I begin, I have to say I do not have Game Maker: Studio. I am using GM8.0 Pro. Unless I finally decide to get Studio, that is.
I have an idea for a game.
What do you think the efficacy is, of making this game in game maker:
A simple, yet emergently complex, highly interactive, turn-based, somewhat of a 2D "roguelike" game along the lines of Nethack. But the thing is, I want the entire world to be interacting with itself; every turn, the entire world will be updated, not just the instances nearby. So the whole world is one big "room." I want to make graphics, sound, and everything as simple as possible to focus totally on really fun gameplay and interactivity.
Now as you know, in most traditional games, the game world is usually broken into multiple "rooms," and/or far away objects are deactivated in order to simplify things, so that the processor is not overloaded with thousands of instances at all times. But I want the whole world interacting with itself and changing while the player is elsewhere doing other things.
And in a turn based game, no matter how much time it takes to update the current frame, the game will still be playable. In other words, though a slower computer might take longer to update, it would not, in theory, be like the gamebreaking lag or framerate drops you'd see in real-time games when your computer isn't beefy enough. It would just take longer for the computer to calculate the changes made every turn.
But then again, even in a slow tactical game that requires a lot of thought, if every turn update takes several seconds, that could get annoying quickly for those with less patience, especially when nothing is happening and you are just walking around in the world.
I know game maker is not very fast, but I was wondering if you think it could be optimized for maximum speed to allow for a rich, highly interactive world in which, for example: factions go to war, people have routines, towns have events, entities are born and die, and tons of unscripted stuff happens due to the emergent complexity. All entities are treated just like the player, so NPCs will interact with each other greatly.
Some optimization ideas I had:
-obviously no D&D, and optimizing code to the best of my ability
-use one object "obj_update" to update all entities each turn
-all entities are actually only one object (it's probably not worth it to do this, I think, but I could be wrong)
-no animations, only small 16x16 sprites/ tiles
-do not draw objects outside the view
-keep AI as simple as possible. Pathfinding used only when necessary.
-no step events at all unless absolutely necessary; entities do nothing until updated by obj_update. So while the game is not updating, it should hopefully run perfectly smoothly.
-no collision events
-draw events all controlled by one object (is this necessary?)
-use tiles whenever possible (even destructible terrain can be made of tiles, yes?)
-maybe I will opt out of a lighting system, because I remember how costly that was to the CPU the last time I tried to make one. But it would be a shame to miss out on this feature. Anyone know of an optimized way to do roguelike lighting in gml?
With these optimizations (and any other you can share), could you imagine a simple, 2D, turn-based game feasibly working with potentially thousands of entities all being updated every turn, no matter how far away they are from the player?
My dream is to make a "world" that works kind of independently of the player, with some chance added in, but the world is also affected greatly by the player's actions in exciting ways that make replayability high.
Is game maker too weak for this?
Is any platform powerful enough to run such a big game?
Am I way in over my head? I was going to just start off very simple and grow from there, so as not to overwhelm myself. I want to hear from anyone, but especially those who have had experience making sandbox or roguelike games.
Oh, and would it run smoother on GM Studio?
One last question: does simply having instances in the room put a strain on the CPU? Even if a bunch of instances are not doing anything at all, will the framerate drop? I mean no collision events, no step events, no draw events, nothing. It is my understanding that the collision and step events are the most CPU-intensive aspects of objects in GM.
Thanks for reading and thanks in advance for sharing!
Peace and love
Jake
Before I begin, I have to say I do not have Game Maker: Studio. I am using GM8.0 Pro. Unless I finally decide to get Studio, that is.
I have an idea for a game.
What do you think the efficacy is, of making this game in game maker:
A simple, yet emergently complex, highly interactive, turn-based, somewhat of a 2D "roguelike" game along the lines of Nethack. But the thing is, I want the entire world to be interacting with itself; every turn, the entire world will be updated, not just the instances nearby. So the whole world is one big "room." I want to make graphics, sound, and everything as simple as possible to focus totally on really fun gameplay and interactivity.
Now as you know, in most traditional games, the game world is usually broken into multiple "rooms," and/or far away objects are deactivated in order to simplify things, so that the processor is not overloaded with thousands of instances at all times. But I want the whole world interacting with itself and changing while the player is elsewhere doing other things.
And in a turn based game, no matter how much time it takes to update the current frame, the game will still be playable. In other words, though a slower computer might take longer to update, it would not, in theory, be like the gamebreaking lag or framerate drops you'd see in real-time games when your computer isn't beefy enough. It would just take longer for the computer to calculate the changes made every turn.
But then again, even in a slow tactical game that requires a lot of thought, if every turn update takes several seconds, that could get annoying quickly for those with less patience, especially when nothing is happening and you are just walking around in the world.
I know game maker is not very fast, but I was wondering if you think it could be optimized for maximum speed to allow for a rich, highly interactive world in which, for example: factions go to war, people have routines, towns have events, entities are born and die, and tons of unscripted stuff happens due to the emergent complexity. All entities are treated just like the player, so NPCs will interact with each other greatly.
Some optimization ideas I had:
-obviously no D&D, and optimizing code to the best of my ability
-use one object "obj_update" to update all entities each turn
-all entities are actually only one object (it's probably not worth it to do this, I think, but I could be wrong)
-no animations, only small 16x16 sprites/ tiles
-do not draw objects outside the view
-keep AI as simple as possible. Pathfinding used only when necessary.
-no step events at all unless absolutely necessary; entities do nothing until updated by obj_update. So while the game is not updating, it should hopefully run perfectly smoothly.
-no collision events
-draw events all controlled by one object (is this necessary?)
-use tiles whenever possible (even destructible terrain can be made of tiles, yes?)
-maybe I will opt out of a lighting system, because I remember how costly that was to the CPU the last time I tried to make one. But it would be a shame to miss out on this feature. Anyone know of an optimized way to do roguelike lighting in gml?
With these optimizations (and any other you can share), could you imagine a simple, 2D, turn-based game feasibly working with potentially thousands of entities all being updated every turn, no matter how far away they are from the player?
My dream is to make a "world" that works kind of independently of the player, with some chance added in, but the world is also affected greatly by the player's actions in exciting ways that make replayability high.
Is game maker too weak for this?
Is any platform powerful enough to run such a big game?
Am I way in over my head? I was going to just start off very simple and grow from there, so as not to overwhelm myself. I want to hear from anyone, but especially those who have had experience making sandbox or roguelike games.
Oh, and would it run smoother on GM Studio?
One last question: does simply having instances in the room put a strain on the CPU? Even if a bunch of instances are not doing anything at all, will the framerate drop? I mean no collision events, no step events, no draw events, nothing. It is my understanding that the collision and step events are the most CPU-intensive aspects of objects in GM.
Thanks for reading and thanks in advance for sharing!
Peace and love
Jake