A downloadable game for Windows, macOS, and Linux

Download NowName your own price


WARNING!

Geometry Strike Inbound

Don't let the invaders cross the bottom of the screen!


Controls

Keyboard

Arrow Keys -> Move
Z -> Shoot
X -> Dash
C or Down -> Dodge
Enter or ESC -> Pause

Gamepad

Direction Buttons or Left Stick-> Move
A -> Shoot
R1 or R2 -> Dash
X or Down-> Dodge 
Start-> Pause


Gameplay Tips

Prioritize shooting faster enemies.


While dodging, you are safe from triangles. 

Rate of fire and bullet spread increase!


Dash into enemies to destroy them. 

Letting go of direction key cancels dash.

That can be useful in certain situations, but can become a detriment if you are not paying attention.

After dashing, your rate of fire increases for a short while.


After a set amount of points, your ship levels up and you get to choose a stat change option. 

Some of them are good, some aren't. Sometimes you'll have to choose the lesser of two evils.


Be sure to collect Freeze Pickups or Extra Lives whenever they spawn.


Credits

Game by Benjamim Linhares Machado Marchi, aka Prof. Patonildo.

This game uses the font LCDBlock, by the Nimble Beasts Collective: https://nimblebeastscollective.itch.io/nb-pixel-font-bundle


License

Geometry Strike is licensed under CC BY-SA 4.0

https://creativecommons.org/licenses/by-sa/4.0/

Love2D is licensed under the ZLIB License

https://love2d.org/wiki/License

StatusReleased
PlatformsWindows, macOS, Linux
Release date Dec 13, 2023
Rating
Rated 5.0 out of 5 stars
(3 total ratings)
AuthorProf. Patonildo
GenreShooter
Made withLÖVE
TagsArcade, Retro, Shoot 'Em Up
Asset licenseCreative Commons Attribution v4.0 International
Average sessionA few minutes
LanguagesEnglish
InputsKeyboard, Gamepad (any)

Download

Download NowName your own price

Click download now to get access to the following files:

GeometryStrike_windows.zip 12 MB
GeometryStrike_linux.tar.gz 13 MB
GeometryStrike_macos.zip 18 MB
GeometryStrike.love 8 MB

Development log

Comments

Log in with itch.io to leave a comment.

Cool game! Congrats for your first dollar!

thank you, friend! :D

(+1)

Great game, but also had issues with the qwertz keyboard layout (like the person below). Setting the keys yourself in control options would be nice.

Thanks! I'll be sure to address that in my next project. For now, try using a gamepad to play, that should work.

(2 edits) (+1)

Congrations on publishing your Game!

Hey just downloaded your game. And I seem to enjoy it.

Input
For me on a qwertz keyboard the placing of the keys on the keyboard is a little of, feels weird. You could medigate this by supporting multiple keys wich are easier to handle on multinational keyboards. (For example on my keyboard "yxc" are on the right of the ctrl key ;-), so using y/space/z for shoot would already save the issue for qwertz keyboard users, and space is just the default shoot button right after the mouse)

I am not sure if love2d is able to map keys not by their value (like Z) but by their position... thb I would also like to know ^^.

What medigated that was that there is actual Controller Support! So I just grabbed the controller :D wich works perfectly!

Graphics
You nailed it. The pixelated font is clearly readable. I love the Color sheme and the crt lines. There are no drawn assests in this game, is that correct, all you use are basic geometric shapes right?

Music

The music is catchy and underlines the action packed gameplay.


Gameplay
I am not a huge fan of Bullethells tbh. I play this game as a fellow love2D developer. Therefore I will not say much about it, it feels like easy to learn hard to master like any bullet hells. I did not play long enough to get to later stages, but I assume there are no complex patterns of moving (like enemies comming in sinus waves or circles on the screen). That might be something you could think of adding. There is currently a great tutorial on youtube for Pico8 Bullethells wich covers this topic in great detail.

Tutorial
You might loose a lot of players by forcing them doing the tutorial over and over again ^^. My suggestion would be to add a second button in the menu like:

  • Start (disable this when first opening the game)
  • Tutorial (maybe even on top on first load)
  • options
  • Exit

Then when the player has played trought the tutorial you could transition to the base game (as you do now) and also set a variable in the code wich remembers that. If it is true in the menu, make the play button enabled and let Players directly proceed to the game.

Bonuspoint for saving this to a file so that the game remebers when it is opened the next time.


Curious

How long did you work on that game?

Thank you for the detailed feedback! It's so helpful and makes me glad to see you found the game interesting :D

I thought about making an option to remap the keys, but it seemed too above my current skill level. I'll try improving my input system so my next game will allow for that. If you'd like, I can upload another version of the game with different controls, so you can play more comfortably on keyboard. Gamepad support was important to me, because I wanted to learn how to work with gamepads on Love2D, and because I wanted to be able to play my game on my SteamDeck. I'm glad it was helpful for you :D so many games neglect gamepad support, when it is very important, I feel.

The graphics are all drawn procedurally, with Love2D's internal functions, even the splash screens. I did that to force myself to use the drawing functions, to learn them, and it also makes for a unique look. My next game will be sprite based, so I can learn that as well. Thank you for the compliment on the graphics style! I decided to focus on working with lines and colors, and I think it turned out cool.

The music was also a good learning process for me. I have no music background, but I'm trying to learn the basics of harmony and using music trackers. The song was composed using TIC-80's music tracker. For my next game, I think I will use something more complicated, like LMMS.

The gameplay is very simple. The enemy position is random, so any pattern that emerges was not planned by me in advance. There are some waves that limit the type of enemy that spawns, but when the final wave is reached, it repeats itself, getting more difficult with each level up (enemies spawn more frequently). I did it like this because it would allow me to focus on developing the game's core systems, instead of having to design specific waves or "levels".

I made the tutorial play once per game boot because I felt like it would be a good refresher on the control scheme for returning players. It's also something kind of a warm up for the game. I thought about making an option to disable it, but my options menu was already too crowded and I didn't want to redesign it lol. Making a better menu system is also on my list for my next project.

I started making the game in october, so it took me about 3 months to make. I wanted something short to learn Love2D, as I was curious. I already had some experience with Lua programming because my previous game was made in Pico 8 and that helped me a lot. Learning the Love2D functions was easy because of the wiki. What I found the hardest was implementing the scaling and input systems. I didn't want to use any readily available libraries, so I wrote my own, and that was like a good puzzle for me, a lot of work but also a lot of fun!

(+1)

You could change the input code to the following:


Then you do this


the include function would look like this (thank you chat gpt!)


And no worries your code is safe, I now love2d that is why it was easy for me to extract the code. It looks very clean in my eyes. Found what I was ooking for really fast!

(1 edit)

Thanks! I'll look into that! And no worries, if I didn't want people to look at the code, I wouldn't release the .love file. I plan to release under MIT license the libraries I wrote when I feel like they are polished enough for others to use.

I would advise against consulting chatgpt, though. Most often than not, it is inaccurate, sometimes even completely incorrect.

(+1)

well ;) i do not trust GPT  I miss use it as a text to code generator. In this exempal the code looks fine to be honest.

Also I rarly search for code I could not write myself and sometimes I learn a leaner method to solve something.

Cool! I'm glad it has been helpful for you! I'm a bit old-fashioned in that regard, I feel more at home reading documentation.

(+1)

Very fun to play

(1 edit)

Thank you! I'm glad you enjoyed it! :D You got pretty far into the game!