Inspiration
I was inspired to make Aim Helper by Minecraft, the world's most sold and an extremely popular video game that I play as a hobby. It is written in Java, a powerful language language albeit not the most popular for game design, and it uses the low level lightweight java game design library called LWJGL. LWJGL bundles OpenGL, the industry standard high performance graphics library used for a vast majority of games and high performance applications. Being so low level comes with the challenge of needing a lot more code for the most basic rendering, but having access to extremely low level drawing operations to be queued to the GPU, as well as being extremely performant. Knowing that I am likely to pursue professional game design in the future, I decided I wanted to try to learn the process of making a basic game application using the low level graphics from OpenGL in LWJGL.
What it does
Aim Helper is a simple, lightweight, configurable, easy to use, and functional software that can be used to help competitive or casual gamers practice their aim and response time with computer mice. Upon starting the program and answering the configuration prompts, a window will appear in which blue square targets will randomly spawn and move across the screen for you to click as quickly and accurately as you can. The size of the targets, their speed, their spawn interval, their maximum lifetime, as well as the window resolution is all configurable in the starting prompts in order to provide players with the best experience possible.
How I built it
Using the IntelliJ IDEA IDE from Jetbrains, I coded Aim Helper in the Java programming language (version 17), using the LWJGL library. For the video, I used OBS and Davinci Resolve to record and edit it.
Challenges I ran into
This was my first time doing any graphical rendering in Java. Not only this, I decided to use the lowest level and most complicated rendering library I could choose from, with no frameworks - being OpenGL with LWJGL. This was extremely challenging and time consuming, as I had to spend numerous hours learning the absolute basics required just to open a window and render a square. Then, with only about 2 and a half days left, I had to implement the rest of the vast majority of the program logic. Additionally I did everything as a solo team.
Accomplishments that I'm proud of
Im extremely proud of how quickly I was able to pick up the basics of OpenGL rendering and in just days turn it into a fully functioning software. additionally, Aim Helper is very configurable which I am quite happy with.
What I learned
The importance of planning ahead. I did not in the slightest account for how long it would take to learn the even very basics of of OpenGL rendering, and thus didn't and couldn't divide my time well. I ended up cramming a lot of work into the last 2 days or so, when I could've avoided all of that just by planning ahead and better spreading out my time.
What's next for Aim Helper
I plan on implementing many of the features I didn't have time to during the week of the Hackathon. Most importantly, a proper menu GUI and configuration GUI. Command line configuration prompts simply don't cut it. Secondly, a better looking scene with proper target sprites and a decent looking animated background. Accompanying this change, I would like to learn modern rendering techniques with OpenGL that render polygons using VAOs and VBOs, rather than individual draw calls per polygon in order to maximize performance with more complicated and detailed scenes.
Log in or sign up for Devpost to join the conversation.