Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
A jam submission

BATTY VAMPSView game page

Be a vampire! Turn into a bat and fly around! Suck blood!
Submitted by frenchfriesguy — 2 days, 19 hours before the deadline
Add to collection

Play game

BATTY VAMPS's itch.io page

Leave a comment

Log in with itch.io to leave a comment.

Comments

Got around to playing this finally, made it to wave 20. Once the timer started to really matter and the sonar ability was limited the gameplay loop felt engaging. Would play again if multiple levels were featured and some variety in the music.


Don't see how the girl turning into the bat is really relevant to the game, if I were to suggest something maybe a human form mode where your meter drains faster but you can directly run on the ground making it easier to touch people.

Developer

Wave 20 is pretty impressive at triple speed!

I definitely want to bring her human form into gameplay. I was thinking it would be her 'weak' state, like she gets hit and it breaks her out of bat mode and she has to avoid attacks until she can transform back. But it also could be the opposite for better control.

Submitted(+1)

Felt much easier than previous DD. Flying feels good, and it's pretty nice, puts you in a "zen" kinda mood. Though it seems to lack content for now, all waves are kinda same-y.

Looking forward to see where you take it next!

Submitted

Played with controller on windows executable, all systems nominal. Flying felt pretty good. I had a lot more fun this time, compared to several DD ago, but it's still very simple. Was hoping for some powerup pickups or new enemy types to show up.

Keep up the good work.

Submitted

https://www.twitch.tv/videos/2080105164

Game felt much faster than last time, took a bit to get used to. Think the movement is very sick now - it’s hard, but after a while, managing to land those flights right on the victim, is awesome. (But fwiw I also enjoyed the slower paced gliding nature of previous version.)

The collision seems to have issues, though. At first I thought it was skill issue that I usually collide twice or more when touching ground, but at the very end of the footage I downright clipped into a building and collided 8 times in a row or so. I don’t know, some collision penalty is obviously required to make the gameplay work, but current version feels too random and sensitive.

Developer
Game felt much faster than last time, took a bit to get used to.

This is actually a huge bug, it's running at ~85 fps for you when it's supposed to be limited to ~60. You're playing the game in ~1.4x speed!

This is happening because emscripten (the web build library) isn't obeying the fps I'm sending it in Firefox. I hacked it to work in my Firefox by sending it 120 (which gives me 60 for some bizarre reason), but it seems for you that's giving you a different number. What OS and Firefox version are you running? I'm going to have to figure out why this is being so weird.

I feel bad you played a bugged version for so long.. but thanks for the video, it's a big help to be able to see what people do and what their flying style is.

The collisions are definitely hacky and not good and it's high on my list to fix them. I think the reason you had such difficulty with the ground is that you were less likely to flap because your game was bugged to be so fast already. Flapping gives you a boost upwards as well as forwards. If you're not flapping a lot and getting the upwards boost, it's easier to scrape against the ground.

Submitted

Ah, good old emscripten timing issues. If the framerate targeter uses emscripten_sleep under the hood, you have no chance of getting it to work the same on all browsers. I’ve been there. Best is to decouple the logic framerate from graphics framerate.

This was Firefox v123 on Arch.

I feel bad you played a bugged version for so long.. 

Honestly it was wicked. Felt like Quake3.

you had such difficulty with the ground is that you were less likely to flap

Yeah, I’m not sure, I usually tried just steering up from the ground, but it felt like often that steering was going into the wrong direction. Maybe because the bat is spinning? Might be skill issue. You can see me toggle Inverted Y a couple times in the video, because I confused it so often…)

Developer (1 edit)
Best is to decouple the logic framerate from graphics framerate.

I do have separate timing for each of these (or i do in win32, but removed in web to try to play with emscripten), is there a way in emscripten to let the renderer do whatever but get my gaurenteed 60hz tick? Maybe I should just do a while(true) and give up on the emscripten loop.

Submitted (2 edits)

What I do is this:

  • Keep target timestamp, when next tick is supposed to occur. Sleep aiming for this target or next graphics frame, whichever comes earlier.
  • Whenever code wakes up - assume any amount of time may have passed
  • Check against target: If only 1 tick has passed, set new target = (old_target(!) + tickrate). This is the FPS-independent steady logical tickrate.
  • If more than 1 tick has passed, advance by only 1 tick (avoid frame skip - effectively pause game if tab is not focused). Then set new target=now. Obviously it’s also an option to spin through some or all missed ticks, might be desired if tickrate is not RTS-tier low…
  • Now draw, in case the time has come for a new graphics frame
let the renderer do whatever but get my gaurenteed 60hz tick?

You’re completely at the browser’s mercy. Usually there is e.g. a hard-limit of one wakeup per second on tabs that are not being shown. If a tab is open, the invocations are still wildly inaccurate from a gamedev pov. emscripten_sleep(10) will wake up after 8-30 ms, depending on browser and os.

setTimeout is already inaccurate, and emscripten_sleep is just a very bad/clever hack that unravels the current stack, stores it and schedules a task with setTimeout which will restore that stack and resume its execution.

My hack against this is to call emscripten_sleep with only 75% of the time I actually want to be delayed, and to never even call it with values lower than 8 ms, but rather just skip those 8 ms and move on directly.

Sdlcoven is now my only emscripten-based web version. The others are based on winit, which is a pain to build around, but nicely communicates "browser requests a draw" (browser always Vsyncs btw.) versus "you wake up because of an event / because you asked to be woken up." It makes for very fluid rendering and gameplay, if it is wired up correctly.

Developer

Ok wow that's pretty interesting and informative, thx. So after writing my last post I decided to try requesting 999 (as big a number as possible) and then doing my WaitTime (raylib function) call at the start of the game loop. I only wait to try to get as close to my 60hz tick as possible. Then the rest of my game loop is the same as win32: if it's time to do logic, do it, if it's time to render, do it (basically what you wrote). This gets me pretty close in Firefox (~58) and exactly 60 in Chrome. Just deployed that change so I'm curious what your Firefox gets since you've been the big outlier.

raylib WaitTime seems to call nanosleep?? No idea what that's calling in web, I'm not compiling emscripten with ASYNC so I don't think I have access to emscripten_sleep without that compiler switch.

Submitted(+1)

Now shows a 59 in the corner. Very mellow experience.

raylib WaitTime seems to call nanosleep?? No idea what that's calling in web, I'm not compiling emscripten with ASYNC

Ooh, very interesting. The libc sleep functions in emscripten should do nothing without -sASYNCIFY. Maybe it is already busy-spinning. 

Game felt much faster than last time, took a bit to get used to.

Frame rate wasn't limited to me either it seems, I was playing at 180 fps!


The fast speed of it did make it more enjoyable though.

Developer

oh that's bizarre. I can't believe how hard it is to find a consistent way to manage time in the browser. What browser, version, and os are you on?

Submitted
Does the flying feel responsive or unresponsive? Does flying feel easy or hard? If you played a previous version, how does the flying compare to the previous version?

What control scheme did you use (gamepad, mouse, keyboard)?

Keyboard footage:

https://mega.nz/file/vV9nha6L#AoCy67xijqYxMsGL3r65l9KnqpvUo3n-8zdT7BAcdT4

That was the best attempt with keyboard. I played 3 keyboard runs before that which they ended at wave 1.

After that I moved on to testing mouse (It's a shame I needed to restart the game to change my controls)

Mouse footage:

https://mega.nz/file/PAklwaYI#OxJi3WuZd5Cdb55HxS-AldxoHb4pyQyqjzh9-tTtmsQ


I did not test with a controller, but I bet it would be as bad as keyboard at least for me. Mouse is definitely superior.

I think flying with mouse feels better compared to what I remember from the last time I played your game.

I think it would be nice if there was an ability to quickly turn around. It could use the blue energy, and use the same input as the echo together with flap input.

I think it would be cool if there was a scoring system and not just wave count. You could give extra points for quick wave clears and getting double kills (it was fun to get them).

Your new lighting makes your characters look metallic, but you already know that.

The first Mouse death was some bullshit. The last Mouse death also seemed like I got hit twice.

What build did you play on (windows, browser (firefox or chrome))?

I downloaded windows build and I played it on my linux machine with Steam's Proton (Wine did not work).

At first I did not intend to record any footage. It was just going to be a quick test, but I think the recording is going to be far more useful than anything I write. I was not commentating, because I thought the mic was turned off, spoiler: it was on.

My last thought: This could be really fun as a multiplayer with friends competing for blood, but I guess you could say that about most movement based games

Developer
I was not commentating, because I thought the mic was turned off, spoiler: it was on.

The frustration noises really elevated the runs haha.

It is striking how much more comfortable you were with the mouse. You seemed to intuit in your last mouse run that the turning stays tighter while holding the flap button. I'd like to push players toward using (in order of my preference): gamepad, mouse, keyboard. But I'm not sure how to direct them that way besides maybe defaulting to them.

The first Mouse death was some bullshit. The last Mouse death also seemed like I got hit twice.

Redoing the collision detection and how Batty crashes is high on my list, it's pretty hacky right now. The last mouse run death was odd but it seems like the collision detection was right. I have a change that will extend invincibility frames so you don't get triple jeopardy like that.

I think it would be cool if there was a scoring system and not just wave count. You could give extra points for quick wave clears and getting double kills (it was fun to get them).

You're not the first player to comment on the fun of getting multikills so I'm going to keep this in mind, looks like a good way to find more fun in the game.

Thanks for the feedback and the recorded videos, those are so crucial for me since it's tough to describe and understand this sort of game through text.

Submitted

Maybe with controller joystick it is at least gonna be better than keyboard, but I like how the game can be played with a mouse.

I am happy you enjoyed the videos and find them useful.

Submitted

I played another run yesterday and got new record


More importantly, I experienced a bug. On wave 15 my blue orb stopped regenerating. I thought that was a feature, like the difficulty going up on that wave, but from wave 16 onwards I had infinite blue energy.

Developer

Woah that's the all time record, very nice!

And thanks for the bug report. I think the opposite was happening, then I thought I fixed it, but I must have just reversed it to be always on.

Developer
More importantly, I experienced a bug. On wave 15 my blue orb stopped regenerating. I thought that was a feature, like the difficulty going up on that wave, but from wave 16 onwards I had infinite blue energy.

Huh, after some hunting I can't reproduce this. I wonder if you echolocated or recharged right on a wave increment or something weird.

Submitted

It was fun.

Controls makes bat air-drift. I got better with waves, but some humans were trolling me with turning back and forth at corners.
Hoped to have someone else to eat in different waves or spaces (like pigeons)
Liked the ability, but maybe make humans glow to see them even better.

Would love to have some invisibility frames, if you hit the ground near a building you could easily get hit several times.

Developer(+1)
Hoped to have someone else to eat in different waves or spaces (like pigeons)

A vampire eating pigeons?? How undignified!

No, you're right though. There needs to be some sort of aerial interaction rather than only swooping down to the ground. I'm thinking helicopters or airplanes get involved?

Liked the ability, but maybe make humans glow to see them even better.
Would love to have some invisibility frames, if you hit the ground near a building you could easily get hit several times.

Good feedback, I'll tweak these.

Submitted

Well, I could suspend my disbelieve at killing humans in just a bat form, but helicopters and air planes are too much for such a small foe.
I could see the helicopter as some kind of boss that has two humans for each of its side and you just need to carefully touch each one for it to fly away. But it would need to be either stationary or slow. 

Good luck with your project!

Submitted

The game's alright, not much replayability in its current state though. Took me a while to realize I could press space to flap so I was just gliding everywhere in the beginning lol. I see an echolocation ability in the screenshots but I couldn't figure out which button lets me use it.

Developer

Thanks for playing. There's an in-game help option that explains the controls. Hopefully it's easier to find when I make a real UI.

How could someone put words or give feedback to a masterpiece like this, I dont feel worth of such thing, some things are simply not possible to be explained. I'll just say that I fucking love this game.

In wave 11 and beyond I became one with the game, I felt there is no distinction between life and the wind passing through my wings, so good.

I have a small documentary on it (unfortunately my dumb brain forgot to record the audio of everything), what a terrible death at the end.

One thing that would make the game even better would be to add a timer and a leaderboard so we can have a small and healthy competition going on, that would be cool.

Ah, I forgot one thing, it would be good if immediately after a collision the player became invincible for 1 or 2 seconds, this would avoid having multiple collisions at the same time, this happens a lot especially in collisions with the ground

Developer
How could someone put words or give feedback to a masterpiece like this, I dont feel worth of such thing, some things are simply not possible to be explained. I'll just say that I fucking love this game.
In wave 11 and beyond I became one with the game, I felt there is no distinction between life and the wind passing through my wings, so good.

Ah thank you so much. This kind of feedback gives me a boost when I'm feeling down about the game's progress.

Watching your video, you have very good control when flying. I'm impressed with how you could make those tight turns! I noticed you don't use echolocation, did you know it's an ability?

One thing that would make the game even better would be to add a timer and a leaderboard so we can have a small and healthy competition going on, that would be cool.
That would be cool, but I'm planning on making the game less arcade focused and more of an open world game going forward.

Replying to your reply here:

it would be good if immediately after a collision the player became invincible for 1 or 2 seconds, this would avoid having multiple collisions at the same time, this happens a lot especially in collisions with the ground

Are you referring to what happened in your video at 1:19? Or are you referring to buggy multiple collisions, like hitting one surface and getting two collisions from it?

There is code to prevent the first type, but it seems too conservative. I'll up the detection time to prevent double jeopardy. If it's the second type, that's an effect of how horrible my collision detection is. I'm hoping to rewrite it this weekend.

Submitted

what is this absolute fever dream lol

the mouse controls were a bit weird to figure out at the beginning, but it was worth it for the wilhelm scream.

Developer(+1)
the mouse controls were a bit weird to figure out at the beginning

Do you mind if I ask what was weird about it? Did you expect the Y to not be inverted? Too sensitive? Mouse controls have given me trouble.

Submitted

yeah i was slamming on the ground all the time before i figured how to angle myself properly

Developer(+1)

It was too sensitive? You wanted the Y inverted? Were you flapping? Just trying to get a read on what could be improved

Submitted

i imagine that having more options is always good

i mean, personally i'm the kind of guy that can quickly readjust from inverted to non inverted and viceversa, but i know people completely unable to play a videogame if it isn't specifically made the way they are used to

Developer

Ok this is good info thanks. You can change the inverted Y setting on the start screen right now. I can understand if it's not obvious though. High on my list is to make a real UI and it will be easier to find then.

Submitted

Optimal strategy was to go as slow and cautiously as possible, usually just hunting on the outside of the city where there aren't any obstacles

please add mouse look support

Add lighting and shadows. mat_fullbright is not a good look

Map was uninteresting

Developer
Optimal strategy was to go as slow and cautiously as possible, usually just hunting on the outside of the city where there aren't any obstacles

What wave did you get to? At wave 4 your blood energy will drain with time forcing you to move quickly.

please add mouse look support

Huh that's a surprising request. You played with keyboard I assume?

Thanks for the feedback.

Submitted

I got bored after around 5 minutes of playing, wave 2

Not much to say, fun little game.

The flying feels way slower now than it was in the last build from a couple days ago. The graphics have gotten uglier too, though I understand that's due to the transition to the new shaders. The new street lights are interesting, I assume you're going to use them for lighting? 

I can't seem to lose any blood unless I hit walls. Not sure if intentional.

The music style is going in a better direction.

Hitting the ground now often results in a stunlock until death. 

Other than that the game is the same as when I last played it.

I'm playing on a Chromium browser.

Developer
The flying feels way slower now than it was in the last build from a couple days ago. 

Looking at my version control I only added color to the Batty model and introduced broken collision detection code since the build a couple days ago. The game does run slower on Chromium browsers, I request 60 fps from the web build but Chromium seems to only give me 55-58, which is surprisingly noticeable in the flying. Firefox gets 65 fps and feels super fast.

The new street lights are interesting, I assume you're going to use them for lighting? 

They actually already are the main 'light sources' in the game. It's not as noticeable as I'd like, the light spreads out really far rather than staying tightly around them.

I can't seem to lose any blood unless I hit walls. Not sure if intentional.

That's intentional in the first 3 waves. I'm pulling out all the stops to try to make the game more approachable and easy. Wave 4 brings the blood drain back.

The music style is going in a better direction.

Thanks! It's fun and easy to record the acoustic stuff so I'm pleased with it.

Hitting the ground now often results in a stunlock until death. 

Thanks for letting me know, broken collision code slipped its way into the build. I just fixed it.

Thanks for the feedback!

Developer (4 edits)

Update since last DD:

https://frenchfriesguy.itch.io/batty-vamps/devlog/690443/lighting-music-flying-u...

Notable change: You can now hold the flap button (I'm worried no one will realize).

Known Issues:

  • If you play in the browser and your FPS isn't at or near 60fps, the game will be screwed up in your browser and either playing too fast or too slow.
  • Collision detection is fucked. Hopefully I can fix it this weekend.
  • Everything is too shiny from lack of materials (I need to write a shader that reacts to materials).
  • Needs a real UI.
  • Needs a skybox.
  • Same old boring gameplay.

Things I would like to know from playtesters:

  • Does the flying feel responsive or unresponsive? Does flying feel easy or hard? If you played a previous version, how does the flying compare to the previous version?
  • What build did you play on (windows, browser (firefox or chrome))?
  • What control scheme did you use (gamepad, mouse, keyboard)?

HOTFIX 3/1/24 22:00 UTC

Like an absolute dummy I pushed broken collision detection code to itch. That's resolved. The ground stunlocking you is fixed.

HOTFIX 3/1/24 23:00 UTC

Added back a bit of blood energy drain on every wave to keep players motivated to fly inside the level and keep moving.