A silly game I made in a weekend.
- Connect to the channel's chat using the settings menu (gear icon in the top left).
- Start a game.
- Get chatters to join the game by typing
!join
orjoin
in chat.- Currently there is a max of 20 players.
- You can also click anywhere in the background to add fake players.
- Wait for the timer to finish, the game will start automatically.
- Repeat from #2 when the battle is finished.
Note
When developing in VSCode, use the vscode-swift extension.
- Build once with
swift build -c debug
. - Link the dylibs:
ln -s `pwd`/.build/debug/libSwiftGodot.dylib godot/bin/libSwiftGodot.dylib
ln -s `pwd`/.build/debug/libChatBattles.dylib godot/bin/libChatBattles.dylib
- Open the project from Godot once so it loads the extension.
- Run the game.
- With VSCode: Run the
Debug ChatBattles
launch configuration.
- With VSCode: Run the
- Debug in VSCode
- Run the
Debug ChatBattles
launch configuration. - Run the game from Godot and use the
Attach to PID
launch configuration.
- Run the
- Debug in Godot:
- Build the Swift library (with CLI or VSCode).
- Launch the game from Godot.
- Add option to cancel ongoing game or game that's about to start.
- Make ships more intelligent.
- Delegate the ship veering to a
VeerStrategy
protocol. - Implement different strategies.
- Random.
- Target weakest enemy.
- Target strongest enemy.
- Target closest enemy.
- Avoid enemies.
- Delegate the ship veering to a
- Make game end earlier. Ideas:
- Make ships take damage when game goes beyond 45-60 seconds.
- Add random ships periodically.
- Maybe previously destroyed characters can come back.
- Persist last connected channel.
- Connect to persisted channel on launch.
- Add battle effects.
- Laser when shooting.
-
ExplosionsImpacts on hit. - Big explosion when ship is destroyed.
- Music / UI sounds.
- Ships seem to prefer turning right always.
- Veer strategies should check the viewport to prevent ships from flying outside the screen.
- This game is possible thanks to @migueldeicaza's SwiftGodot.
- Twitch integration is done with swift-twitch-client and TwitchIRC.
- All assets used in the game were created by Kenney and licensed under CC0.
- App icon generated with icon.kitchen.