Grimdark Pacman GameMaker project
olrabiesabe / capman Goto Github PK
View Code? Open in Web Editor NEWGrimdark Pacman GameMaker project
Home Page: https://gx.games/games/hhfjr2/capman/tracks/9a1c6496-defa-4611-ba58-963d6fae7f13/
Grimdark Pacman GameMaker project
Home Page: https://gx.games/games/hhfjr2/capman/tracks/9a1c6496-defa-4611-ba58-963d6fae7f13/
If the player eats a powerpill, and then an enemy comes out of its spawn room, the enemy wont be feared. This is correct, it means powerpills have limitations.
However, if the player then eats a second powerpill, it will fail to fear the enemy. This is incorrect, consuming a powerpill should apply fear to all enemies in the instant it's eaten.
After dying to a zombie, the player is supposed to be moved back to the start location. This location is indicated by an obj_player_start instance.
Simply put, this sometimes works, sometimes fails. When it fails, the player just resumes from where they died. Idk why it fails.
When the obj_player dies, it changes its p_isAlive to false. This flags obj_logic_gamemanager to set gameIsOver to true, which flags obj_logic_supermanager to call its p_restartLevel(), which calls obj_logic_gamemanager.p_restartLevel(), which calls obj_player.p_reset().
obj_player.p_reset() is what's supposed to move the player to the obj_player_start instance.
Looking at this, it's obviously spaghetti code. This whole process needs to be simplified. Resetting the level on death is supposed to be a in-game sort of thing, so I think supermanager probably doesnt need to be involved at all.
Sometimes after a player death, enemies fail to respawn.
I can see their debug text, they're getting stuck in the OOB waiting room outside the screen.
When the player is stationary by walking into a wall, they continue to animate. This looks silly.
The player should switch to a neutral sprite when this happens, but detecting it might be nontrivial.
The screenwriter is writing all its text above the scanlines. This is not desirable.
Need to look in to how to fix this.
Enemies can only move in discrete increments, like 1px, 2px, 3.5px.
If a wall is 2px away, but they're currently moving at 3px per step, then they just can't move that way.
This leads to enemies getting stuck in corners and T junctions at some movespeeds, since they cant get close enough to the walls to navigate the turn. It may also happen in other situations.
Currently they're configured to only move a good movespeeds, and frequently snap to the grid just to make sure.
Obv, this is a brittle solution. It would be better to have some kind of system where enemies can tell if they're in some such situation, and move a smaller amount to navigate the turn.
I've been putting object functions in the Create event of said object. This is a cluttered and undesirable way to do things. Instead, I should have been putting most or all functions in scripts. Where possible, I should start moving functions into scripts. In theory I should be able to do this pretty quickly.
I've just noticed some sprites being semi-transparent even though they shouldnt be. I have no idea.
It affects zombies and the score screen background. It also affects the score screen text...
Thought: it might actually affect all sprites. The ones listed above might just be the only sprites that regularly overlap with other sprites.
My guess for a culprit is that prepackaged menu system i added in.
Because there's multiple enemy types, they have a parent-child relationship with a master generic enemy. They override several of its events including Create. But because how Gamemaker handles overriding, this means if i make any change to enemy.create, I need to copy that change to every enemy type. This is tedious and annoying.
I could theoretically circumvent this by moving all enemy functions out of Create and into independent scripts which would be shared by all enemy types. This would require a lot of refactoring though.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.