'jebby' said:
Out of interest, how manageable is your codebase now? How have you handled its growing size and complexity?
Well, GameMaker games are basically object-oriented so a lot of the codebase is kept in manageable chunks. On the other hand, there's quite a bit of stuff that was sort of added on as needed, especially in the startup subroutines and in the Hannah object. The startup sequence is pretty complex:
* rm_startup creation code (149 lines): Does startup initialization and loads block data
If you click start, you go to rm_lvl_select containing obj_level_select that populates and manages the level select buttons. Once you select one, the game launches into
* scr_start_level() (206 lines): Selects the level file based on global.level (which was set in the level select menu) and loads its data into arrays, then launches rm_next_level
* rm_next_level runs scr_render() (99 lines): Pre-renders the terrain of the level and saves it to global.blocksbg to be chopped up later, then redirects to rm_level
* rm_level runs scr_create_level() (594 lines): Loads level data from arrays and terrain data from global.blocksbg to construct the actual level, and also create the meta-objects obj_camera and obj_cavemaster which have their own creation code.
If you're loading a user level, then scr_start _level() is replaced with scr_load_user_level() which contains a lot of the same code, but gets the level file from a different source.
Overall, the codebase is fairly manageable, but as always with coding a certain amount of mental gymnastics is needed to keep things straight, and sometimes it's hard to figure out where a bug is coming from because there are so many distinct bits of code. For instance, is that bug that causes enemies to get stuck in fallen (or pushed) objects in the enemy AI code or the enemy collision code? There's a decent amount of overlap between them and apparently the part that I changed was not solely responsible for the bug because it's still in version 0.4.2.
'Rocket Guy2' said:
The scrolling speed is excruciatingly slow, can you speed it up a bit?
I assume you mean the speed at which the text rolls out, in which case yes, I should be able to speed it up a bit. I don't want it to be too fast though.
'Rocket Guy2' said:
Also, could you make it so the messages don't disappear off the side of the level?
Yeah, I'll look into that.
'Rocket Guy2' said:
Climbing ladders also makes the messages really freak out
They look fine to me. What are you seeing them do?
'atvelonis' said:
The new tutorial messages look good! Perhaps we should have the option of using the old texture for the tutorial messages too, though: I think it's mostly nostalgia, but I do really like how they look, even if the pausing was annoying as heck. Perhaps give the player the option to toggle the texture from old/new, and to toggle the pausing of the game on/off (off by default). If level creators want to implement more story into their levels, players will probably stop moving to read the longer messages anyway, so it doesn't hurt to let the game auto-pause if a player would prefer it that way.
It would be hard to unlink the pausing/unpausing from the old and new message style because they're tied up in completely different systems, and it wouldn't really work to be unpaused with the old message system because they block the whole screen.
However, I should be able to add in a way to use the old tutorial messages as well as the new ones. All the code is still there (in fact, it is actually still used if you press ESC), I just need to set up the option in the level file loader.
Also, I think I'll set it up so that the new tutorial messages will only fade out if the player is moving Hannah, so if they hold still to read the message, it won't pause the game per se but the message won't fade until they're done reading it.
'atvelonis' said:
One other thing, it might be good to let the tutorial messages stick around for a couple extra seconds. I can read them just fine, but slower readers might have a bit of trouble, as they disappear pretty quickly after writing out all the text.
Yeah, besides the aforementioned change I think I'll also increase the time before they fade out a bit, especially if I increase the speed it rolls out at like Rocket Guy2 wants.
P.S. - How do I get quotes to say who they quoted? I tried the standard BBcode method but it didn't work.