Classic Pacman with procedurally generated infinite vertical maze.
I came across Eller's algorithm for maze generation, a few months back. Eller's algorithm creates a perfect maze, by generating next row, on basis of current row. Giving us ability to create maze with infinite rows.
Since then I have been toying with idea of creating a game around it. It wasn't until a few days ago that I finally decided to use Pacman as the basis for game. I had experimented with Ebiten 2D game engine a bit and this gave me a good opportunity to use it. For maze generation I slightly modified Eller's algorithm to create non-perfect mazes.
Using go get
& without go modules.
$ go get -u github.com/skatiyar/pacman
$ cd skatiyar/pacman
$ go get ./...
$ cd build/pacman #goto build dir
$ go build -o pacman main.go
$ ./pacman
Using git clone
& go modules.
$ git clone https://github.com/skatiyar/pacman.git
$ cd pacman/build/pacman #goto build dir
$ go build -o pacman main.go
$ ./pacman
Golang code is converted to JS by using gopherjs. Ebiten supports browsers by using webgl.
Note: Setup repo beforehand, as shown above.
To build just go code.
$ go get -u github.com/gopherjs/gopherjs
$ cd pacman/build/pacman
$ gopherjs build --tags=pacman --output=pacman.js
To build gh-pages.
$ go get -u github.com/gopherjs/gopherjs
$ cd pacman/build/pacman-pages
$ yarn install && yarn build
- Use
arrow keys
to move pacman. - Gain points by eating
dots
. - Ghosts try to chase player and on collision player
looses
a life. - Player starts with 5 lives and can have upto 7.
- Collect
diamond
to increase lives. - Use
flask
to gain ability to destroy ghosts, ability lasts for10 Sec
& ghosts try to runaway from player. Eating
a running away ghost gives a bonus of200 points
.
- Hajimehoshi for Ebiten 2D engine.
- Classic Gaming for Pacman & Ghost character-art & sounds.
- Golang community for awesome tools and libraries.