SFML community forums
General => SFML projects => Topic started by: SleipnerGames on August 20, 2021, 05:21:33 pm
-
(https://i.imgur.com/oqF8Opc.png)
Hi everyone!
We are a developer duo that have been working on Alkali for over 3 years alongside university. We are using C++ and SFML with no other libraries. A goal with this project was to make everything from scratch except for anything that is platform dependent.
Alkali is a precision platformer inspired by the chemical reactions of alkali metals. Use your physical properties to propel yourself across a variety of dangerous levels, coupling traditional platforming mechanics with the mass-based mechanics of the alkalic main character. Collect chunks of metal to grow yourself, leap into the water for an explosive jump, or barely graze past a whirring saw with just a sliver of body remaining.
https://youtu.be/bjJaFggT3vI
Some notes about the project
- Custom collision detection using SAT (https://gamedevelopment.tutsplus.com/tutorials/collision-detection-using-the-separating-axis-theorem--gamedev-169), supporting all convex polygons and circles.
- Custom menu system (http://youtube.com/watch?v=FYUseSslYkw) created from the ground up (this took waaay longer than expected… but it now supports a variety of menu objects such as buttons, bindable keys, sliders, etc.).
- Rebindable controls where the game automatically identifies connected controllers based on the SDL controller mapping database (https://github.com/gabomdq/SDL_GameControllerDB) and displays sprites from Xelu’s OpenGameArt (https://opengameart.org/content/free-keyboard-and-controllers-prompts-pack) submission.
- Custom level editor coded from scratch, with selection and undo-redo functionality.
- Language support that’s easy to extend by the community, based on simple txt-files.
- Ground tile sprites are loaded as a large block, and cut-and-connected as sf::Images for the various shapes.
- GLSL fragment shaders for water, as well as Dark World effects.
Website: https://www.alkaligame.com/
The game will be released on Steam on Nov 10: https://store.steampowered.com/app/1968790/Alkali/
We have a big focus on speedrunning, with a speedrun.com (https://www.speedrun.com/alkali) leaderboard. The fastest any% run so far is actually insanely fast.
https://youtu.be/glH1hGJ5-4I
Alpha screen shots
(https://i.imgur.com/u0WHKzS.png)
A level in world 2 with rising water
(https://i.imgur.com/DGdLxGA.png)
World map of world 1
(https://i.imgur.com/Iun3VuT.png)
Level editor
(https://i.imgur.com/R4Yo67b.png)
Custom level selection menu
-
Patch 0.4.4 just got released. It contains fixes to the dashgrip mechanic (when you dash into a wall you get temporarily stuck and can jump out from it) and shader fixes. Several players are playing on really old computers, so we have changed some GLSL functions to older ones. The only GLSL error that we still know of but haven't been able to solve is the following error message: "ERROR: 0:1: '=' : c". We are loading the shader from a const string.
-
This looks pretty nice. Good work and congrats on getting something playable out there :)
-
This looks pretty nice. Good work and congrats on getting something playable out there :)
Thank you! Feels really good to finally have something that is released and playable.
-
The water shader uses the following technique to create the waves: https://gamedevelopment.tutsplus.com/tutorials/make-a-splash-with-dynamic-2d-water-effects--gamedev-236
In the new patch we included an option for shader quality, that also affected the number of springs used for the waves. It greatly improved performance on lower end machines, but took some time to make the waves look similar on the different settings. We could probably optimize the shader much more but that's nothing we prioritize at the moment.
-
We got several requests about an easy way to see your stats. Especially time for each level and aggregated time, both used by speedrunners. We did this by adding the “Journal”, a book you can open while you are in the overworld that tracks all this data. We also added general stats like “number of double jumps” and “time in water”, which can be used for challenge runs. Previously there was no easy way to verify challenge runs, making it less accessible.
(https://i.imgur.com/WPNdPUp.png)
World stats in the Journal
(https://i.imgur.com/TLkdhKl.png)
General stats in the Journal
-
Since the last post we have updated the graphics, created the remaining content and improved the editor. Alkali will now be released in a couple of days, on Thursday, Nov 10.
https://youtu.be/bjJaFggT3vI
The game will be released on Steam (https://store.steampowered.com/app/1968790/Alkali/).