Skip to content

IncredibleLego/GoPong

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

261 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoPong Icona goPong

Go Engine License Release Platform

GoPong is a Pong-inspired game made in Go using the graphical library Ebitengine

start

Table Of Contents

Description

GoPong was made starting from this youtube video to start practicing with game programming, design and go development. The result is a modified version of Pong featuring Solo, Computer, and Multiplayer modes, along with high scores and various customization options, that was developed over the course of one year with approximately five months of active development

Gameplay

There are currently three available game modes

Solo Mode
soloGameplay.mp4

In Solo Mode you play against yourself with the ball bouncing on the wall. Every 5 points, the ball increases its speed

Computer Mode
computerGameplay.mp4

In Computer Mode you can play against the computer: you can choose between easy normal and hard difficulties, or manually adjusted in settings. The computer will try to catch your ball, and then return to the center of the game area to always try to be the nearest to the next impact point. The best way to beat the computer is by making shots with great angles as it is more difficult for it to predict them

Multiplayer Mode
multiplayerGameplay.mp4

In Multiplayer mode two players can play against each other: the right player will play with the arrows and the left one with W S

Features

Highscores

GoPong features a highscores section: here it is possible to view the top 10 scores divided by Gamemode (and difficulty: in Computer highscores there are three different leaderboards for the three difficulties). You can move through the tables with Left/Right arrow and between the difficulties with Up/Down arrows (when in the Computer mode tab). Tables report data like time, player name, points and mode of the record

Options

GoPong features many settings that can be adjusted to customize your game experience. The available settings are the following

Game Options

  • Ball Speed
  • Ball Size
  • Paddle Height
  • Paddle Width
  • Paddle Distance: Distance of the paddle from the wall
  • Enemy Difficulty: Difficulty of the computer in computer mode, where Easy = 0.2, Normal = 0.5, Hard = 0.8. You can customize your difficulty with every value between 0 and 1
  • Reset to default: Sets all Game Options to default values

Screen Options

  • Text Dimension: Dimension of Menu Text
  • Screen Size: Various Screen dimensions, if not fullscreen
  • Fullscreen: If set to true the game launches in fullscreen, else it launches in "Screen Size" option
  • Reset to default : Sets all Screen Options to default values

Controls

Action Key
Paddle Up W/Up
Paddle Down S/Down
Fullscreen/Window Mode ESC
Confirm/Select/Pause ENTER

Download & Installation

1) Installer

Installers are available for Windows and Debian-based distributions (.deb)

Launch the installer on your Windows/Linux system to start the install process

2) Build from source

If your platform is different from Windows or Deb, or you simply want to compile the code from source, you will need to install

Requirements:
    go 1.25+

Once done so, you can clone the repository with

git clone https://github.com/IncredibleLego/GoPong.git

Once you enter the project folder, you can simply launch the game with

go run .

Go will download all the needed packages using the go.mod file. Alternatively, you can compile the project with

go build

And obtain a goPong executable that you can launch

Roadmap

There are some known limitations and future plans for the game. In particular the mouse support is not very effective, it can be used in the main menus but not in the option menus. Some features that might be added in the future include

  • Multiplayer online
  • Change default buttons for controls
  • Game Presets: ex. Fast Ball Small Paddle etc.
  • Different color themes to choose from

Credits

  • Inspired by Pong (Atari, 1972)
  • Built with Go using Ebitengine
  • Developed by Francesco Corrado/IncredibleLego
  • Tested and influenced by friends and family suggestions
  • Font used: Press Start 2P
  • Sounds used: Free Pong Sounds

Contributing

Pull requests and issue reports are appreciated to make the game better

License

This project is open source and distributed under the MIT License. Feel free to use it for learning, modification or personal projects. Full license text available in the LICENSE file.

© 2026 Francesco Corrado

About

GoPong is a Pong porting made in Go using the graphical library Ebitengine

Topics

Resources

License

Stars

2 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages