edibotopic / sqong

Pong clone made with Odin and Raylib

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sqong

v0.1.3

Pong-clone written in the Odin language using the Raylib programming library. The game was initially made in a weekend to learn the basics of the Odin language. I have since revisited the project to learn more about entity systems and memory management.

Running

To compile and run you will need to have Odin installed and on your path. After you git clone this repo, change to the /sqong/ directory and run make.

cd sqong
make

This will build a sqong executable in the /bin/ directory. On Linux, this can then be run with ./bin/sqong.

Note that the makefile invokes odin with a -o:speed flag to optimise for performance:

odin build . -o:speed -out:bin/sqong

If you want to develop with the code just run:

odin run . -out:bin/sqong

This will compile faster and also run the executable.

Audio

Theme music and score FX are original, quick-and-dirty compositions.

The collision FX consist of my own gently processed mouth sounds.

You are free to reuse both.

Scope

This is (currently) a bare bones implementation.

A game is first to 4.

Your player is on the left, the CPU player is on the right.

That's it.

To-do

Priority

  • Improve CPU/AI movement
  • Less clunky title menu
  • Continue refactoring code
  • Basic entity system

Nice-to-haves

  • Allow window resize
  • Menu with choices for theme/difficulty/audio
  • Visible countdown before each serve
  • Matches and games with side-switching
  • Stress/stamina/aggression meter(s)
  • Music adapts to game situation
  • Game modes
  • Better spin physics
  • Additional strike styles (chip, arrow/straight, powershot)
  • Pseudo-3D (ball scales close to net, casts a shadow)
  • Context-dependent physics (grass level [no slide], ice level [slide], etc.)

Changelog

  • v0.1.3: added an entity system, moved logic to external functions
  • v0.1.2: added pause, started refactoring, updated readme
  • v0.1.1: added makefile, updated instructions, added links
  • v0.1.0: initial release

About

Pong clone made with Odin and Raylib


Languages

Language:Odin 98.3%Language:Makefile 1.7%