Page 1 of 1

Question: Disable grid based movement? Allow free movement.

Posted: Sun Jan 12, 2025 11:20 pm
by stevemac100
Hi all. Thanks for taking the time to read this.

I have been craving a very specific type of dungeon crawler. Mainly a First Person Diablo 1 experience.

I think Grimrocks look and feel is perfect for the framework.

I just need to know if you can disable grid based movement and let the character more free.

Any help would be very much appreciated.

Re: Question: Disable grid based movement? Allow free movement.

Posted: Mon Jan 13, 2025 9:22 pm
by minmay
Sure, you can do this by writing your own movement system from scratch (and only by doing that). You can prevent the player from moving or turning the party normally, freely set the transforms of objects, and can use your own camera position and rotation (CameraComponent), although your control over its projection matrix is very limited unless you use a umod.

Since many Components assume the existing grid-based movement system, you'll need to avoid using the following Components (including subclasses), at least in any of their usual contexts: BlastComponent, BrainComponent, ChestComponent, ClickableComponent, CloudSpellComponent, DiggingToolComponent, DoorComponent, DynamicObstacleComponent, ExitComponent, FirearmAttackComponent, FloorTriggerComponent, ForceFieldComponent, GravityComponent, HealthComponent, IceShardsComponent, ItemComponent, ItemConstrainBoxComponent, LadderComponent, MeleeAttackComponent, MonsterComponent, MonsterActionComponent, ObstacleComponent, PitComponent, PlatformComponent, PortalComponent, ProjectileColliderComponent, ProjectileComponent, PushableBlockComponent, RangedAttackComponent, RopeToolComponent, SocketComponent, StairsComponent, StonePhilosopherControllerComponent, SurfaceComponent, TeleporterComponent, ThornWallComponent, ThrowAttackComponent, TileDamagerComponent, WallTextComponent, and WallTriggerComponent.
You'll also need to avoid all of the built-in damage-dealing spells.

If you want items or monsters or whatnot in your dungeon, you'll need to implement your own versions of them largely from scratch, or find a way to prevent all grid-related code in them from running (e.g. for ItemComponent you'll need to make sure it can never be picked up, thrown, or dropped, and can never fall).