Version Française
The original idea
Like several other projects on this website, this one started as a game-jam game on the Developpez.com website.The idea was to explore underwater ruins to find keys in order to open doors, until you reached a "throne room". There wasn’t really any challenge in the game, the only one was that keys were hidden in locations that the fixed camera could hardly point at. As the player character, I took the brick-textured cube I used in an earlier project, hence "Swimming Brick".
Humble beginnings. Too humble.
During the jam, I was asked why I didn’t set this game in space, because people thought the current underwater setting was ugly. The truth was that I wanted to do a swimming game because I feel this is something swimming in games was something rarely explored and even more rarely done well.
One of the biggest challenges I had to face during the jam was that my engine didn’t feature any 3D collision system, so I had to make up a buggy one quickly to finish on time.
A few days later, I changed my buggy system to a 3D grid: easier to program and test, but more limiting for map creation.
Evolutions
During the following months, I begin to undertake a big task: rewrite a 3D collision system that allowed the most freedom in map creation.After a few experiments and bad ideas elaborated, I ended up figuring I was making a system similar to Quake and other similar games: I therefore began writing a .map parser - .map is the map file format used by Quake and similar games like Half-Life - , which allows me to create maps using an existing editor, instead of having to write mine.
Since I don’t have any real mapping experience, except a few experiments in WorldCraft for Half-Life when I was in secondary school, I searched which map editors were still used today, and I found TrenchBroom.
TrenchBroom is a map editor for the first Quake game - its mapping scene is still active - and other similar games, released for the first time in 2013, written by Kristian Duske. He wanted to be able to edit maps as if he was doing it from the game itself, therefore his editor allows editing directly in 3D, whereas in older editors like GTKRadiant, the main editing views are 2D and the 3D is used mostly for preview.
While working on this game, I took the opportunity to enhance my game engine in several ways:
- Rendering: I added a spotlight and shadows, a water shader with reflection and refraction, which brought me a reusable render-texture feature for future effects, and the game will require further improvements
- While working on this project, I began creating ceq, my small scripting language
- I began implementing clean text rendering while working on this project
I also decided to replace the fixed camera with a 3rd person camera, enabling more complex maps.
My goal is to make this game commercial-level.
Download the latest released version (Windows)
More info here (in French): https://www.developpez.net/forums/d1600230/applications/developpement-2d-3d-jeux/projets/we-jv6-swimming-brick/