Unnamed summoner's quest by duudel
Unnamed summoner fights their way to redemption!

About the game
You play as a summoner / sorcerer fighting their way through hordes of enemies and monsters. With WASD or arrow keys you can move around and avoid getting killed by the enemies. With mouse you select monsters to summon from cards you receive every 5 seconds. Each card consumes some mana, which regenerates slowly. Be aware, the monsters you summon might not be really happy to see you.
Summons: - Deamon: a simple "get close and attack" type of guy. - Spooks: will regenerate mana by sucking it from the enemies. - Hog: a simple damage dealer. Faster than the deamon.
The game and its source code are uploaded to Itch.io. There is Linux and Windows binary. The version 0.9.0 is the LD 55 submission (the only release for now).
Development
Concept
I had voted for the theme "summoning", but when it was announced, did not remember what ideas, if any, I had actually had for it. Well, I did have a strong feeling I would incorporate cards somehow into the game, and maybe they could be used for summoning, so maybe it was something vague like that. And in the end, after some brain storming of mechanics, that is what I went with.
I started with the idea of a SHMUP side scroller and where the player would be progressing forward automatically, but instead of directly fighting enemies, would need to do so by dropping summoned monsters to the battle arena. I also was thinking of restricting the player movement to a smaller section of the whole play area, and the enemies could drop souls that the player would need pickup, like power-ups in SHMUPs. This I ended up not having time to implement or try out how it would work. Another idea was that the summons would be potentially targeting the player, if no other targets are close by. This I ended up getting into the game, though it might not be that important mechanic at the moment.
I drew a beautiful :ok_hand: picture of this to convince myself that it might work, before starting to implement anything.

Using Raylib
I had put together a simple example project to try out Raylib during the week. This was the first time I was using it and at least at first glance it looked good for the jam. I even got cross compilation working quite easliy, so I was able to produce Windows build on my Linux development machine. Later I realized I should have made a bit more comprehensive test case, as there were quite many issues I encountered while trying to implement simple features for the game.
Some things I thought should be easy, like setting up the projection matrix or model-view matrix, ended up costing many precious minutes. Had to look into the implementation of Raylib to work out how it worked or did not. I did not need any fancy matrix stacks, but some confusing in the Raylib "rlgl" implementation would not allow me to just set the matrices and use them. To use the OpenGL 1.0 like immediate mode interface I had to do some extra API calls to make the implementation pre-transform the vertices. I then discovered that I had to manually call a function to end the active batch of primitives before touching any global render state. Otherwise things would not appear on the screen.
Another thing that caused a bit of grey hairs was, alpha cutout / alpha test is not supported out of the box. I had to figure out how to implement this with custom shaders with Raylib's conventions. Luckily I was able to lift the needed structure of the shaders from some example.
I also used quite a lot of time trying to get some text to show up in the screen, but in the end did not have good luck with that. It is unclear what state is needed for the built-in text rendering to work. Sometimes I was able to get the text to appear, but then some unrelated change in another place would cause it to disappear. Probably failing back face culling or depth test. In the end there is no text showing in the game, so all that time was wasted.
After getting through these issues, most of the rest of the development went quite nicely. Tough, the rendering was the only part I'm happy with doing myself, so did not really need Raylib for it. Other features, like sound and music playing provided by Raylib, I would have liked to use, but did not have enough time to add into the game. So, as it stands, I have not yet decided if I would use Raylib for my next jam project, or rolling something myself. I might go with SDL or GLFW and OpenGL, and separate library for audio.
Game mechanics
In the end I did not have time to implement most of the ideas I had, just getting the basic stuff working took quite long. And then I ended up doing too much polish for some parts of the game too early, like some of the art and how the cards work. I'm just not able to focus on the big picture, and instead start tweaking something not crucial for the game to actually work as a game. The enemy has quite polished animations (which were still placeholder to me), whereas the player character clearly is not fleshed out at all. Just some wiggling shadowy figure :sweat_smile: The summons I ended up taking from my quick concept sketch, as placeholders, but obviously there was not enough time to redraw them before the submission. Some of them did end up having a bit of animations, which makes the game feel a bit more "alive". But all of those could have been sacrificed to make the game actually enjoyable.
So, there are several issues with the version I was able to put together before time ran out. I thought I would have some time to do even a round of polish, but as time progressed I realized that would be unlikely--and in the end I barely was able to make it playable! :smiley: Too much time was spent in making even the placeholder art :sweat_smile:
Future
I might use some time to fix issues / bugs and improve the game loop and release a newer version at some point. The sad thing is, it might have not required a lot of time to tweak some parameters to make it work better as a game. Like the player's summoned monsters have way too little hp and are pretty useless.
Here is a short list of things to improve: - Build on Linux system with older GLIBC to allow Linux distros with older GLIBC run the game. - Fix glitches / visual bugs. At least on Windows machines I have seen some weird depth buffer issues. Shadows are occluding objects that should appear in front of them. - Game loop improvements by tweaking summoned monsters' parameters, like damage, hitpoints and speed. - Improving mana regeneration. Spooks should be useful in this, but as it is now, they rarely are alive long enough to have an effect. - Show clearly how mush mana each summon costs and when the player does not have enough to use a card. - Hogs could use charge attacks. - Deamons could be releasing an attack, causing damage and push back effect already while spawning. - Menu or at least possibility to restart
Some ideas for a more complete game - Progression: levels? bosses? - Different types of enemies: ranged one made of paper, teleporting - Improved art and adding sound effects
Known issues
Issue with Linux: - Linux binary requires new version of glibc and will not work on systems with older version.
~~Issue with Windows (maybe Linux)~~ - ~~Rendering objects does not work correctly and objects behind another some how obscure the object in front of it.~~
Works on my machine :tm: :sweat:
Tools used:
- Raylib
- Aseprite
- LMMS (did not have enough time to put in music track :( )
This was my first LD, by the way, and enjoyed it thoroughly :smile: Will be participating again in future.
| Link | https://diipadaapa.itch.io/unnamed |
| Link | https://diipadaapa.itch.io/unnamed |
| Link | https://diipadaapa.itch.io/unnamed |
| Original URL | https://ldjam.com/events/ludum-dare/55/unnamed |
Ratings
| Overall | 303th | 2.929⭐ | 23🧑⚖️ |
| Fun | 303th | 2.81⭐ | 23🧑⚖️ |
| Innovation | 243th | 3.071⭐ | 23🧑⚖️ |
| Theme | 166th | 3.619⭐ | 23🧑⚖️ |
| Graphics | 226th | 3.19⭐ | 23🧑⚖️ |
| Audio | 268th | 2.429⭐ | 23🧑⚖️ |
| Humor | 238th | 2.474⭐ | 21🧑⚖️ |
| Mood | 277th | 2.881⭐ | 23🧑⚖️ |
| Given | 20🗳️ | 19🗨️ |
At least on the windows version there is a weird grafical bug, where creatures seem to disappear. Only the shadow can be seen. Looks a bit like the masking of the images goes wrong.
Is there a way to survive for more than a couple of seconds? The enemies usually overrun me pretty quickly.
You might want to change the category of your main Link. I was about to close the tab since I'm not on Linux. Then I decided to at least look at the source and finally found the windows build ;)
- It seemed the enemy units were much more powerful than the player summoned ones (when taking into account their numerical advantage)
- The walking felt weird, since the enemies followed you and there wasn't really anywhere to run to, except to run from your own units.
Or by making the cards have a summon effect feels very fitting and makes positioning more important! Like the imps have a small explosion when summoned, or the boar comes charging in.
As it stands the latest version on itch is very easy, I just summoned whenever I could and never got hurt. The difficulty curve needs to be faster, but balance you could probably sense yourself. The concept is strong, I hope you continue! Great first LD!
I encountered a bug where creatures would disappear, leaving only their shadows visible. Additionally, the enemy units seemed to be more powerful than the player's summoned ones, making survival challenging.
Overall, it's a promising game with a strong concept that could be further developed to create a more balanced and engaging experience.
Nice job!
Please can you vote on my game too?