Inspiration

The Far West and its iconic duels inspired us to create a game in which typing speed and accuracy are essential to defeat the opponent. We wanted to apprehend the focus, tension and adrenaline in a competitive typing-based game.

What it does

KSGO - Keyboard-Strike: Global Offensive is a dual game where players compete by typing words as quickly and accurately as possible. Each correctly typed word deals improve the stats you will have in the following dual phase. During that phase, you dive in a 2D top-down view gunfight in which the goal is to eliminate the rival before getting eliminated yourself. The game requires both good aim and fast typing, which give players the opportunity to show off the diversity of their skill set.

How we built it

If we had used Unity, Unreal, or Godot, we could have developed the game more efficiently—both in terms of time and amount of game features, potentially completing it 10x faster. However, the real challenge of this hackathon comes from the fact that we chose to run and render the game at a low level, coding 100% in C++ and utilizing the raylib library for graphics rendering, which makes direct calls to the graphics API (OpenGL). Additionally, we had to design and implement our scene management system, adding an extra layer of complexity to the development process. On top of that, we implemented the multiplayer aspect using a homemade peer to peer library, that we coded ourselves during the hackathon.

Challenges we ran into

-Developing: Coding the totality of the game in C++ and utilizing the raylib library for graphics rendering, meant making direct calls to the graphics API (OpenGL) instead of relying on higher-level game engines.

  • Real-time synchronization: Ensuring seamless coordination of keyboard inputs between players.
  • Game balance: Striking the right equilibrium between challenge and accessibility for all typing proficiency levels.
  • Error detection: Developing a forgiving typo correction system while appropriately penalizing significant errors.
  • Designing the interface: Designing a Far West-themed atmosphere.

What we learned

  • Performance optimization: The importance of including real-time interactions with minimal latency.
  • User experience: Striking a balance between challenge and enjoyment to enhance player engagement.

Built With

  • c++
  • cmake
  • p2p
  • raylib
Share this project:

Updates