Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mvasilkov/neatness2022

The Neatness (js13kGames 2022)
https://github.com/mvasilkov/neatness2022

astar-algorithm dda-algorithm flood-fill-algorithm game-development js13k js13kgames typescript

Last synced: 3 days ago
JSON representation

The Neatness (js13kGames 2022)

Awesome Lists containing this project

README

        

# [The Neatness][1]

**Disclaimer:**

The author of this work does not condone the repackaging of "The Neatness" as any kind of NFT or blockchain-related technology. The use of this work for such purposes is not supported by the author and may result in unintended consequences, including hospitalization, disability or permanent damage. Consider yourself disclaimed.

***

> A walk through life, however thorough,

> Ends on a hill a bit too steep.

> Bear witness, not to strife and sorrow, –

> Bare neatness of eternal sleep.

Written by Mark Vasilkov for js13kGames in 2022.

If you feel it's too easy, try the Coil levels from the
level select screen. They are cursedly hard.
(If you don't have Coil, append `#coil` to the URL.)

For best experience on Android, use the 'Add to Home screen'
feature. Seriously, it's amazing how much better the game runs
if started from that shortcut.

Thank you for playing!

Released under the [GNU General Public License version 3][2]

[1]: https://github.com/mvasilkov/neatness2022
[2]: https://www.gnu.org/licenses/gpl-3.0.en.html

## Acknowledgements

*The Neatness* is inspired by

* *The Looker* by Bradley Lovell
* *The Witness* by Jonathan Blow

The following data structures and algorithms
were harmed in the making of this game:

* Digital differential analyzer (DDA) based on
[Raycasting tutorial][ack1] by [Lode Vandevenne][ack2]
* Explained beautifully by [OneLoneCoder][ack3] in his video
[Super Fast Ray Casting in Tiled Worlds using DDA][ack4]
* Scanline flood fill inspired by Pavel Kukov's q-floodfill
* Which in turn cites
[QuickFill: An Efficient Flood Fill Algorithm][ack5]
by John R. Shaw
* Priority queue by [Francis Stokes][ack6] aka LowLevelJavaScript,
see [Implementing A Generic Priority Queue][ack7]
* `A*` based on the excellent
[Introduction to the `A*` Algorithm][ack8] by [Amit Patel][ack9]

Updated implementations of all of these are available in [natlib][natlib].

[ack1]: https://lodev.org/cgtutor/raycasting.html
[ack2]: https://github.com/lvandeve
[ack3]: https://github.com/OneLoneCoder
[ack4]: https://youtu.be/NbSee-XM7WA
[ack5]: https://www.codeproject.com/Articles/6017/QuickFill-An-Efficient-Flood-Fill-Algorithm
[ack6]: https://github.com/LowLevelJavaScript
[ack7]: https://youtu.be/M6OW0KNkhhs
[ack8]: https://www.redblobgames.com/pathfinding/a-star/introduction.html
[ack9]: https://github.com/redblobgames
[natlib]: https://github.com/mvasilkov/natlib