This repository presents a program written with the Elm language which aims to show that Elm is perfectly adapted for game development.
It uses :
- ✔️ Elm programming language
- ✔️ WebGL as rasterization API (for rendering)
- Audio ?
- Text rendering ?
- Tmx loader ?
Very few Elm libraries have been added (except elm-webgl) to show that Elm contains everything that is needed for GD.
Many improvements can be made to the code: :
- Mesh management is not very flexible and duplicate code is required for each type of mesh (textured or colored)
- The
Player
,Enemy
andBullet
modules have a lot of duplicate code that could be pooled into theEntity
module.- The problem here is to achieve polymorphism/inheritance/composition with Elm Records.
- A better API for rendering (in pipeline mode for example, with a list in which we add the entities to render).
- texture region to load spritesheet instead of single sprite
- HUD for score and life
- Fix page scroll on arrow key down
- Display score
- Wave variant
- Enemy damage
- Explosion animation
- Fix bullet / enemy collision
- Player lives