Рет қаралды 137
In this video I'm showcasing a clone of Pong I put together using the features of the engine I've been working on for quite a while (called Grindgine at the time being).
The purpose of this project was to showcase the capabilities of the engine by building a type of game it was not meant to support. Because Grindgine is not a generic purpose engine, this remake requires creative use of engine components to implement the game logic and mechanics.
The entirety of this game is composed of sounds, a texture sheet, fonts and json files, which the engine puts together and interprets into what you can see in the video.
Some but not all features showcased in this game are:
-Full game flow with established rules (game ends when someone reaches a score of 9, ball changes direction when it hits something, etc)
-Variable support which memorize data for later use (score, upcoming ball trajectory, etc)
-Working user input and controllable character
-AI opponent. Not too competent but not perfect either. Will chase the ball up and down but only when close enough
-Collision detection and the game responding to it
-Animation and State based logic that contribute to the game flow (might sound weird to mention, but these play a HUGE role in this engine as the ball and platforms here are actually making use of 1-frame animations playing continuously to simulate movement. States are used to identify, pool and enforce these in an organized and logical manner)
-State flows for the platforms and the ball
-Observers which trigger certain events when they are triggered (i.e. playing sound when hitting the wall, teleporting the ball after scoring, changing the direction when hitting a pad, etc)
-Text which displays the score and a message at the end.
-Randomly switching between 2 different ball trajectories to make the game less predictable (66% for a perfect 45^ angle, 33% for ~30^)
-Randomly choosing a direction (up or down) to throw the ball at the start of a round
-Sounds that play when the ball impacts with the wall, platform and when scoring
-Camera shaking with custom intensity and duration depending on what the ball hits (the cases mentioned above)
-Disabling and enabling of elements (seen at the end of a game)
-The game auto saving at the beginning and allowing for reloading
-Custom resolution scaled at a custom one. The game plays at a 64x48 resolution but is rendered inside a 640x480 window. These can be very easily changed in the game config
-Many others I probably forgot about.
I'm very happy with the progress on the engine and I hope I get to show more GRIND content very soon.