SFML community forums

General => SFML projects => Topic started by: NipIsTrue on April 09, 2020, 09:25:52 pm

Title: Bullet Hell Game
Post by: NipIsTrue on April 09, 2020, 09:25:52 pm
Recently I've been working on a bullet hell style game with SFML. The game features "waves" where the player dodges the oncoming projectiles from the top of the screen.

Github repo (game can be downloaded here):
https://github.com/NipIsTrue/SFML-Bullet-Hell-Game (https://github.com/NipIsTrue/SFML-Bullet-Hell-Game)


Features:

This is my first time making a full game on anywhere near this scale, and I would appreciate any feedback. The game is still in progress, and I am working on documentation for the mod system.

Screenshots are attached to the post.
Title: Re: Bullet Hell Game
Post by: Power on April 20, 2020, 04:46:28 pm
Looks very fun, the player is the black square?
Title: Re: Bullet Hell Game
Post by: NipIsTrue on April 20, 2020, 06:42:10 pm
Yes, the player is the black square
Title: Re: Bullet Hell Game
Post by: Power on April 20, 2020, 07:03:11 pm
You should share some video so we can judge the music better.
Also, this forum has many "guests" know that your screen shots do not show only if a member is logged in, just for you information;)
Title: Re: Bullet Hell Game
Post by: NipIsTrue on April 20, 2020, 08:57:12 pm
I realized that after viewing the page when not logged in, I should probably fix it. Unfortunately, the game doesn't have any music or sound right now, because I felt that it was beyond the scope of the original project, and I wasn't sure how to go about making / obtaining music for a game like this. Maybe one day I'll get around to adding some though  :).
Title: Re: Bullet Hell Game
Post by: NipIsTrue on April 30, 2020, 05:29:49 pm
Update:
A new feature has been added to the game: Actions
Actions are a series of commands that are bound to certain keys. They can be used to automatically execute commands for cheats, or to help automate tasks for mod development. Of course, to be used to require cheats to be enabled. Actions are define in config.lua

In config.lua, to use actions you must define a table named "actions". Inside the actions table, to define an action, define a table with the action name. The table must have two members, one for the keys that the action is bound to, and the other for the commands to be executed when the action is run. For example, an actions table might look like this:

actions = {
        advance = {
                keys = {Keys.RShift, Keys.A},
                commands = {"set time 0.01", "set position 200 0"}
        }
        accelerate = {
                keys = {Keys.RShift, Keys.E},
                commands = {"set invincible true", "set tps 500"}
        }
        decelerate = {
                keys = {Keys.RShift, Keys.R},
                commands = {"set invincible false", "set tps 60"}
        }
        invincableon = {
                keys = {Keys.RShift, Keys.I},
                commands = {"set invincible true"}
        }
        invincableoff = {
                keys = {Keys.RShift, Keys.O},
                commands = {"set invincible false"}
        }
}
 

The keys table is an array, where each key in the array must be pressed to execute the action. The commands table is an array of command strings to run, which will be run in order when the action is run. The name of the action for now has no purpose, and you can name your actions whatever you want. However, I do have plans for it in the future.