from Hacker News

Show HN: Teapong – A two-player game for fans of Pong and the Utah teapot

by diegomacario on 1/24/20, 1:04 PM with 12 comments

  • by diegomacario on 1/24/20, 1:08 PM

    Hi everyone!

    After 4 months of effort, I can finally show you my first game!

    I decided to work on this project to gain a deeper understanding of some fundamental concepts of computer graphics and real-time rendering in particular.

    In a way, this game is built on top of my own tiny game engine, but I don't like to call it that because it's not very flexible. It's more of a set of classes that can be reused to build other games.

    There are many things that I'm proud of, but also many things that I know were big mistakes.

    My goal was to write a game without using any global variables, where each game state (e.g. menu, play, pause, win, etc.) would be fully independent and encapsulated.

    And while you won't find any global variables in the code, and while you'll see that each game state is represented by its own class, I did not foresee how sharing components (e.g. the camera, the 3D objects, etc.) between the different game states would essentially make those components global.

    This lead to game states that depend on each other tightly, which is precisely what I wanted to avoid.

    Regardless of that failure (or perhaps because of it), building this game was an amazing learning experience, and the end result is surprisingly beautiful.

    The code is fully open source in case anyone wants to learn from my mistakes.

    I hope you enjoy my first game! :-)

  • by jwilber on 1/25/20, 7:17 PM

    I think a great way to generate both usage and stars (if that matters to you) is to add a gif to the readme showing some gameplay. Looks awesome!
  • by im3w1l on 1/25/20, 10:22 AM

    Does the angular momentum affect gameplay or is it just for show? I never saw the direction change to clockwise.