Kotlin port of ForeignGuyMike's Asteroids project with changes, additional features and improvements.
Gifs in Action
Gameplay on mobile
Controller support on Desktop
Video in Action
Click on image to watch video.
Changes, Additional Features, and Improvements
Ported work included followings
- Works with Desktop, iOS (via MOE), and Android
- Ported completely to Kotlin utilizing several of Kotlin language features
- iOS, and Android build with control (touchpad and etc) suitable for mobile
- Controller support for desktop; but fixed to use Xbox360 layout. If you use another brand, you have to edit code for button mapping.
- Continued with initial intention of the project by using non-texture for game object, only shape-based via
ShapeRenderer. Only texture used are bitmap which is dynamically generated in run time from
.ttffont file via
- Avoid using
java.awt.geomclasses which are
Point2Dclasses which are not supported on Android by creating a wrapper class with functionality intended to be used in this project; just hold the data.
- BBInput, and BBInputProcessor are iterated from previous projects (BlockBunny, and OMO) and refactored to represent much better class to handle input all across the game. It supports keyboard, mouse, and controllers
- Performance improvements
- Better utilize more lambda functions of Kotlin when necessary through out the project especially in Play
- BBInput and BBInputProcessor handles all input from keyboard, mouse, and controller (with up to N players, set in source but this game is single player)
- Properly handle to clear native resource via calling
- Some screens check if game is running on Android, or iOS then dynamically add support for mobile interaction
MIT, Wasin Thonkaew
As ForeignGuyMike didn't mention or include any license to his project but generally publicize through video tutorial, so this project follows along with that intention, thus the decision to be MIT in this case.