This is a PoC "desktop pet" à la shimeji using ebitengine that runs on Windows, Linux, and macOS. It currently has these animations:
Idle
Dragging
Right-click
- Randomly
Walk
horizontally - After some time has passed (1 hour by default), a
Hungry
animation will be activated, during which dragging is disabled. - When
Hungry
, right-click to startFeeding
animation and reset to the normal idle state.
Here's a demo video.
Fair warning: I'm a Go noob who mostly has no idea what he's doing. Read the source code at your own peril.
Download latest version from GitHub Releases.
Newer builds straight from master branch are also available as artifacts on GitHub and sourcehut:
GitHub requires logging in to download artifacts, while Sourcehut doesn't have macOS builds. Such is life.
Simply unzip then run the shark-windows.exe
or shark-linux
executable.
Since I'm not participating in Apple's $99/yr protection racket, macOS users will need to jump through some hoops to run this program:
- Double click on the downloaded zip file to get the
Shark
app bundle. (skip this step if you downloaded using Safari, which automatically unzips) - Drag the
Shark
app bundle into yourApplications
folder. - Right-click on
Shark
->Open
. You'll see a warning pop-up saying this application was created by an unverified developer (yours truly). Note: you must right-click instead of double-clicking, because double-clicking will open a different pop-up which hides the option to open the app.
- Click "Open" anyway.
- From now on you can launch the Shark application just like any other app, either from Spotlight or from the Applications folder.
There's also Apple's official guide here.
In the future I might pay the $99 if I end up writing more macOS apps and this becomes enough of a nuisance. Maybe.
If run from a terminal, use the -h
argument to see available options.
Windows users can create a shortcut to save their desired options.
Here are the currently supported options:
-hungry int
The number of seconds it takes for Gura to go hungry (default 3600)
-size int
Size multiplier: make Gura as big as you want (default 1)
-stop int
Chance to stop walking, in % (default 40)
-walk int
Chance to start walking, in % (default 5)
-x int
X position on screen (default 9999)
-y int
Y position on screen (default 9999)
- Clone this repo
- Follow ebitengine's install guide
- Run:
go build -tags ebitensinglethread -o dist/
- Your compiled binary should now be in
./dist/
Alternatively, if you already have Go, you can run go run go.imnhan.com/shark@latest
to compile and run the latest version without
manually cloning the repo. You still need to install ebiten's dependencies
first though.
Apparently it should compile on FreeBSD too but I haven't tried that. Do let me know if it works on your FreeBSD desktop!
The sprites were graciously provided by Mee Way:
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.