Development snapshot of a game engine for Squeak
by Stéphane Rollandin
What is this?
I am providing here a Squeak image with the current state of development of a rather ambitious and experimental game engine for real-time 2D (parallaxed top-down) adventure games.
Since this is a long-term project I am making the code available just as it currently is, warts included - there are already some nice algorithms and useful tools and data structures there, see the list below.
Link: rogue355-64.zip from January 5th, 2021 (based on Squeak 5.3, 64 bits - use the suitable VM)
The image contains many extra packages from different sources. All code of mine (initials are 'spfa') is open-sourced under the MIT license.
I would just like to ask those of you that may recycle part of this back into Squeak to please change the class names, or ask me about it, so that I do not find clashing incompatible versions of my own code in future Squeak releases.
Note that the image also contains all of muO (including LambdaMessageSend and Boadebui).
- A barebone 2.5D roguelite, sort of (see details and instructions in the image)
SwordQuest new play
- Doubly-connected edge lists
- Fortune's algorithm for Voronoi tesselations
DynamicVoronoiField heartOfTheSnakeKing openInHand
- ModularAgency, an original component-based architecture for arbitrarily complex autonomous agents
RogueDemo testDragons333 "type ESCAPE to quit"
- Navigation meshes and funnel algorithm
- A visibility algorithm
VisibilityMorph example openInHand
- Blue noise (Poisson-disk sampling)
Display restoreAfter: [(World bounds poissonDiskSampling: 10) do: [:ea | Display getCanvas line: ea to: ea width: 4 color: Color red]]
- Lindenmayer systems
LSystem hilbertCurve displayOrder: 5
- Polygon utilities and metrics
((StarMorph new bounds: World bounds) breakIn: 15) do: #openInWorld
StarMorph new polygon normalizedPerimeterIndex
Sprite example2b "World spritesDo: #delete"
- Much more...
For more Squeak games, see Saucers! and Guardians.
...and back to the main software page