I revisited my original movement and cleaned it up quite a bit. I tried adding pushing, and I managed to effectively have the player pushing objects around, with proper collision detections for both backdrops and actives. The problem is that it's moving 1 pixel at a time, which works well for pushing around things that are in the way, but not so good for pushing blocks to solve puzzles. Because it's pixel perfect, if you nudge a block a little it might screw up being able to get through a path of blocks. So I'm going to do a separate pushblock system that will move a block in perfect 32x32 tile spaces (more like Zelda)
I actually went back and played a little Zelda:ALTTP, and I noticed why they did things the way they did. They made sure to make it as easy as possible for players to solve block puzzles and move around. Here are a few things I noticed that will come in handy and some that are just odd:
1. movement isn't grid based, but pushing blocks is. this is to keep blocks from getting pushed 1-2 pixels and having the player not be able to get through the empty space
2. the player is pushed to slide around corners when pressing against them. this also aids in helping players get around edges.
3. the player must be precisely against something in order to perform an action on it. (reading signs, talking to npcs, lifting bushes, etc) I found this odd because I thought I remembered it not having to be so precise. but I like it this way so I'll keep it like that, instead of doing what I was originally going to do and have it so the player could do the action even if they were a few pixels away
4. all baddies and moving NPCs draw entirely over the player, even if the player is standing below them. I just thought this was funny and probably wouldn't be very acceptable by today's standards.
5. objects are thrown 4.5 32 pixel (160 pixel total) tiles in distance. I'm wondering why they picked such a number, instead of going with 4 32 pixel blocks away, they went for 4 1/2... Very strange but I'm sure they have a reason for this.
6. sword swinging was as fast as the player could press the attack button, however during the swing the player is not able to move. you can swing before the previous swing is even finished. I feel like this is one reason why the action feels more fast paced and exciting. if you make it so the player cannot swing again until a full sword swing is completed, it slows down the attack rate quite a bit. I'll mess around with both options and see which one I prefer.
Anyway, the overall progress is good so far. I added in that corner sliding to the custom movement, and bug tested it quite extensively... so I'm pretty happy with it. I feel like the engine itself should be finished before the end of the month and I'll be working on graphics and other stuff during this time as well. Should have a pretty solid test app by the end of the month and definitely some screenshots.
Progress is staying the same for now. I feel like I made progress but I lost time and haven't really made any noticeable progress as of yet.
|