GithubHelp home page GithubHelp logo

olrabiesabe / capman Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 24.76 MB

Grimdark Pacman GameMaker project

Home Page: https://gx.games/games/hhfjr2/capman/tracks/9a1c6496-defa-4611-ba58-963d6fae7f13/

Game Maker Language 11.95% Yacc 87.92% GLSL 0.14%

capman's People

Stargazers

 avatar  avatar

Watchers

 avatar

capman's Issues

Player continues animating when walking in to wall

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.

Inexplicable sprite transparency

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.

Enemies get stuck on walls at some move speeds

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.

Player soemtimes doens't reset to spawn position after death

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.

Move enemy functions from Create to scripts

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.

Move functions from create to scripts

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.

Enemies sometimes fail to respawn

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.

Second powerpill fails to fear enemies

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.