Foxy Misfortunes
A downloadable game for Windows, Linux, and Android
Foxy Misfortunes
A simple top-down shooter game made in Castle Game Engine for Lewdie Jam, 2021.
Content warning
This game contains material suitable only for mature audience (cartoon nudity, mild suggestive themes). You can play this game only if you are a legal adult.
Optional censored mode (off by default) removes the unnecessary detail from the graphics but doesn't change the mature nature of the game.
Story
Follow the (mis)adventures of Foxy and her fellow students from the College of Magic who decided to test their skills, were curious or simply silly and by chance have gotten themselves into embarrassing situations leaving them significantly less dressed than it is socially acceptable.
Gameplay
Use WASD or arrow keys to move. On Android there is a touch controller in the left bottom of the screen.
Click/tap the map to shoot in that direction. Each shot costs mana, the character's mana is displayed on top of the screen.
ESC pauses the game, there's also an on-screen button. F11 toggles full screen mode, F5 makes a screenshot.
Picking up coins, powerups and killing monsters increases the score. The goal of the game is to earn as many points as possible. Each character has individual high score.
There are many types of monsters and powerups available in-game, from time to time a tutorial message pops up with additional information.
Clothes are hit points. When the character is totally naked it's game over.
Hitting a specific high score unlocks new characters. Reaching even higher score unlocks new skins for the current character. Only one item can be unlocked at a time. Check the character's bio to see how many points are needed to achieve the next goal.
Support the development
If you like the game and want more content like this - play the game and have fun! As simple as that! The download count alone is something that helps me to keep going. Perhaps even spread the word around social networks to help more people have fun?
In case you want to help even more - leave a good comment at the game's page. It's free and shouldn't take you long, but you really can't overestimate what miracles can player feedback do to my motivation :) Did you like the game? Why not tell about it? Or maybe you see something that can be improved? - I can't promise to implement every requested feature (there are limits to what can be done within a reasonable amount of time), but will most certainly consider it.
And if you really want to be more eloquent and believe that merely saying "thank you" is not enough... No, I don't have a Patreon, at least not yet, but I highly encourage you to consider supporting Castle Game Engine. If it weren't for this Game Engine this game would have never existed. And thanks to this Engine I've gotten my full-time dream job as a game developer, so by supporting it you are indirectly financially supporting me too ;)
Credits
Game by EugeneLoza
Created in Castle Game Engine (castle-engine.io)
Music by Ivan Stanton (northivanastan) and Ted Kerr (Wolfgang)
Sound by SubspaceAudio, altfuture, uEffects and reg7783
Character art and story by EugeneLoza
UI by pzUH
Map tileset by pzUH, StudioFibonacci, sixsixfive, rMiszczak, bocian, Arvin61r58 et. al.
Fonts by Wojciech Kalinowski and Peikos
Status | Released |
Platforms | Windows, Linux, Android |
Release date | Oct 31, 2021 |
Rating | Rated 4.3 out of 5 stars (7 total ratings) |
Author | EugeneLoza |
Genre | Action |
Tags | 2D, Adult, Arcade, Erotic, Furry, NSFW, Open Source, Singleplayer, Top down shooter |
Code license | GNU General Public License v3.0 (GPL) |
Average session | A few minutes |
Languages | English |
Inputs | Keyboard, Mouse, Touchscreen |
Links | Source code, Patreon |
Download
Install instructions
Windows
No installation required - just extract the game into one folder and play.
Linux
No installation required - just extract the game into one folder and play.
Sometimes you might also need to set "executable" flag for the binary (`chmod +x foxy-misfortunes` or through file properties in the file manager).
You need the following libraries installed to play the game:
- libopenal1
- libpng
- zlib1g
- libvorbis
- libfreetype6
- You also need X-system, GTK at least version 2 and OpenGL drivers for your videocard, however, you are very likely to have those already installed :)
Alternatively on Debian-based systems like Ubuntu you can download the DEB package and install it through a package manager or by `dpkg -i foxy-misfortunes-*-linux-x86_64.deb` command.
Android
Download and install the APK. The game requires Android 4.2 and higher.
You may need to allow installation of third-party APKs in phone/tablet Settings.
Development log
- Version 2.1.854 - Small upgradeMar 31, 2023
- Version 2.1.845 - Hardcore modeJun 18, 2022
- Version 2.1.828 - Random improvementsJun 15, 2022
- Version 2.1.823 - Skins have unique bulletsJun 14, 2022
- Version 2.0.755 - Performance increaseMay 28, 2022
- Version 2.0.751 - Fix installation on Android 12Apr 09, 2022
- Version 2.0.746 - Upgrade EngineFeb 28, 2022
- Version 2.0.738 - BugfixesJan 13, 2022
Comments
Log in with itch.io to leave a comment.
Oh mani miss this game su much
Nice update, really glad to see the suggestions being followed through with!
Yeah, thank you! I hope I’ll be able to add a few more soon :)
Such a beautiful game! The graphic and sound design + the weapon feedback is extremely well thought-out. On my PC, it felt like I was playing a lite version of the acclaimed mobile game Soul Knight, combined with that one flash game where you go around splatting slimes made back in the day called "Amorphous Plus+" (don't know if you've played that game)
The controls are extremely tight and concise, and the ladies are also beautiful. The small backstory that accompanies the character selection also provides a bit of character depth and detail about the heroines.
Now, only a few suggestions:
Leaving all that out, I found a bug where creatures can touch you through corners (as well as you being able to hit them through corners), once again not sure if this was by design or not.
5 Stars, keep up the good work!
Huge thank you for your review! Things like that really help me to keep going on :D
About the pause screen - Yeah, I’ve been thinking about that… but… I just literally don’t have place to put the buttons :D That was the only reason to cover the gameplay field… I would wanted that feature myself, but alas, I’m bad at UI design. Always end up with no free space to put things.
About poses - unfortunately that’s complicated. First of all on the art side (all those poses need to be drawn, and I’m a bad painter, which among other things makes drawing extremely slow). Yes, I definitely want poses in the latest project - Vinculike. But in this game… it’ll just be way too much drawing.
I thought a lot about CGs… At least one for winning the game. But again that bumps into the problem that I can’t properly draw - and among other things it’ll take just enormously lot of time… I even abandoned a whole project just because of “too much art needed” (I’ll polish the prototype a bit and will hopefully release it tomorrow). It’s just much more efficient to me as a programmer to focus on making gameplay-oriented games, than adding (a lot of) art.
Ability to choose map tileset - could be easy. The only problem… there’s literally no place to put a new button :D
The bug with corners - yes, it’s a bug. A bug which eventually “became a feature” :D This game was initially made for Lewdie game jam in 12 hours, therefore the “foundation” below it is quite shaky, it was rushed and not done properly. Reworking the behavior to a better collision system is possible, but will most likely require reworking a great lot of game systems. So for now it looks much more reasonable to invest this time into Vinculike game project where it’s done right from the very beginning (and yet even there glitches occasionally).
And again, huge thank you for your feedback! I wish I could actually fix those issues instead of excusing myself… They all make perfect sense, and clearly show my two biggest weak spots - art and UI design.
In retrospect, I would like to make another suggestion. Squirrly's dash cooldown bar should be moved to being around her marker in the map itself, so that you don't need to constantly look at the mana bar in order to see when to make a run for it and when to rest.
That’s most certainly doable and perfectly reasonable. I’ve created the ticket and will try to fix that in the nearest future.
Thanks for looking into my suggestions. A few final comments:
Best character for me was Deery, because the buildup of the pressure with this character felt organic and also felt fun to play as. The ripping magic is a nice touch on a character that gets progressively hectic and I feel like she is the one who requires the most amount of skill to play properly. Squirrly has to be the most frustrating to play because her base movement speed is so slow and she gets a dash out of nowhere if you stop for a moment to catch your breath, leading you to rocket towards your desired direction at triple the speed.
I noticed that there was a unique set of music playing for Lizzy, was there other sets of music planned for all the different characters at one point? I also feel like different skins could have different coloured attack sprites for an extra amount of variety, since their in-game sprite gets changed already. Also I wish there was a way to go "Hardcore Mode" with everything spawning at once from the beginning while playing with Lizzy, but with all the other characters.
Thanks a lot!
Originally I’ve made this way for the same reason - there was no place on screen for multiple rewards. But I think I understood where I can put more now - I’ll try to fix it soon.
Good idea! Fixed! I’ll make a build soon. Most likely with some of other fixes (and hopefully tomorrow :D)
About Deery and Squirrly - yeah, I feel exactly the same. Deery is the most fun character to play. And squirrly was an experiment that eventually kinda failed. In the beginning it’s fun to 1-2-3-move-1-2-3-stop-1-2-3-move-1-2-3-stop but it gets frustrating soon. Maybe softening the difference between dashing and moving would benefit - I’ll try that tomorrow (too sleepy already to make proper test if it works well or not).
Well, I personally love when the game has a lot of soundtracks. But it was rather hard to find fitting music for this game and I barely managed to get 3 good-sounding tracks. In the meanwhile I’ve found 3 good tracks, but which didn’t match the first 3, so using them for a “unique character” was kinda reasonable. Of course, having unique tracks for all characters would be cool, but I think I went through all related tracks at OpenGameArt and there wasn’t anything more of good quality and consistent with the current style.
Yes, this is possible. The issue here is that currently we’re using 1024x1024 texture for all objects on the map, and it’s packed up completely. It’s not a big deal to increase it to 1024x2048 size, but will need some time to. I’ll try to look into it soon.
Should be easy to add - I’ve been using this manually to record some videoclips, we only need to add a UI for the Player to change the settings. I guess I’ll just put this button into Options together with “Tileset” choice.
i have 2 questions.
1, dose this game have cross platform saveing or i have to do everything over agin if i decide to play on phone?
2, since this game is open source, is modding allowed?
Hello there!
No, unfortunately there is no cross-platform saving and I’m not sure how to implement one. Theoretically you might be able to copy C:\Users(username)\AppData\Local\foxy-misfortunes\foxy-misfortunes.conf into /internal storage/Android/obb/io.castleenginefoxymisfortunes/misfortunes.conf and it might even work… However, note that the game is approximately twice as difficult on Android than on Desktop due to less comfortable controls and Android version of the game makes use of this fact - the necessary score to unlock skins and characters is twice lower. I.e. it may only make sense to copy unlocks, not high scores, though, again “copying” them may be tricky. If it’s really needed, I’d rather just add a cheat menu to unlock some characters/skins.
Yes, absolutely. However, note that at current state (it was just a small game jam game) everything is “hardcoded”. However, it can easily be extended to read data from XML files, e.g. to change all parameters of the monsters, characters, change the number of characters, art, etc. Installing a mod on a “regular version of the game” would be as simple as copying a few files into “data” folder of the game. However, again, on Android it will become significantly more complicated. The “shortest/simplest” path would be to create a separate APK for a modded game. If you need that done a couple of times, I can easily prepare APKs for you, or teach you how to do that if you’ll need a large number of builds (e.g. to test the game balance on Android) - it’s not too hard, but will require running a few commands in Docker and approx. 22Gb of HDD space for a Docker image.
alright. thanks for the information :)
Note that the “modding” feature now is limited to editing the game’s source code, e.g. here https://gitlab.com/EugeneLoza/foxy-misfortunes/-/blob/master/code/gamecharacters.pas#L238 . If you need a “simpler tool” where you can get the result without recompiling the game (though after setting up the Castle Game Engine it’s relatively simple, unlike building for Android), ping me, it’s relatively easy to add this feature. I’m working hard on a new game right now but will distract back to this project if it’s needed.
thank you very much sir!
Good
Thank you! :)
Hello! There's some issue with the pack of the game. It won't start. Can you help me, please? Error: Exception "FreeTypeException":
Error 1 while loading font 0 from file C:\Users\??????\AppData\Local\foxy-misfortunes\cache_font_1138746899.ttf
Also, cache_font_****** - new number and file itself appears in that direcoty while trying to launch the game. What could go wrong?
Log for "foxy-misfortunes".
Version: 1.7.451.
Started on 2021-12-03 at 14:41:57.
Castle Game Engine version: 7.0-alpha.snapshot (unstable).
Compiled with FPC 3.2.2.
Platform: Desktop, OS: Win64, CPU: x86_64 (64-bit).
LibPng detected (version 1.4.0).
WinAPI: Dots (pixels) per inch is 96.00 (1.00 * default 96.00)
-------------------- Rendering Context Initialization begin
OpenGL information (detected by foxy-misfortunes):
--------
Version:
Version string: 4.6.0 - Build 26.20.100.7325
Version parsed: major: 4, minor: 6, release exists: True, release: 0, vendor-specific information: "- Build 26.20.100.7325"
Vendor-specific version parsed: major: 26, minor: 20, release: 100
Vendor: Intel
Vendor type: Intel
Renderer: Intel(R) HD Graphics 620
Fglrx (ATI on Linux): False
Mesa: False
Buggy glGenerateMipmap(EXT): False
Buggy GL_LIGHT_MODEL_TWO_SIDE: False
Buggy VBO: False
Buggy shader shadow map: False
Buggy FBO rendering to multi-sampling texture: False
Buggy FBO rendering to cube map texture: False
Buggy swap buffers with non-standard glViewport: False
Buggy 32-bit depth buffer: False
Buggy GLSL gl_FrontFacing: False
Buggy GLSL read varying: False
Buggy Pure Shader Pipeline: False
Buggy Texture Size Above 2048: False
Buggy Shader Bump Mapping num_steps: False
------------------------
Real versions available:
(checks both version string and actual functions availability in GL library, to secure from buggy implementations)
1.2: True
1.3: True
1.4: True
1.5: True
2.0: True
2.1: True
3.0: True
3.1: True
3.2: True
3.3: True
4.0: True
---------
Features:
Shaders (GLSL) support: Standard
=> Enable deprecated (fixed-function) support: False
Multi-texturing: True
Framebuffer Object: Standard (or ARB "core extension")
Multi-sampling for FBO buffers and textures: True
Vertex Buffer Object: True
GenerateMipmap available (and reliable): True
Cube map textures: Standard
Compressed textures supported: [DXT1_RGB, DXT1_RGBA, DXT3, DXT5, ASTC_4x4_RGBA, ASTC_5x4_RGBA, ASTC_5x5_RGBA, ASTC_6x5_RGBA, ASTC_6x6_RGBA, ASTC_8x5_RGBA, ASTC_8x6_RGBA, ASTC_8x8_RGBA, ASTC_10x5_RGBA, ASTC_10x6_RGBA, ASTC_10x8_RGBA, ASTC_10x10_RGBA, ASTC_12x10_RGBA, ASTC_12x12_RGBA, ASTC_4x4_SRGB8_ALPHA8, ASTC_5x4_SRGB8_ALPHA8, ASTC_5x5_SRGB8_ALPHA8, ASTC_6x5_SRGB8_ALPHA8, ASTC_6x6_SRGB8_ALPHA8, ASTC_8x5_SRGB8_ALPHA8, ASTC_8x6_SRGB8_ALPHA8, ASTC_8x8_SRGB8_ALPHA8, ASTC_10x5_SRGB8_ALPHA8, ASTC_10x6_SRGB8_ALPHA8, ASTC_10x8_SRGB8_ALPHA8, ASTC_10x10_SRGB8_ALPHA8, ASTC_12x10_SRGB8_ALPHA8, ASTC_12x12_SRGB8_ALPHA8]
3D textures: Standard
Textures non-power-of-2: True
Blend constant parameter: True
Float textures: True
Depth textures: True
Packed depth + stencil: True
All extensions: GL_3DFX_texture_compression_FXT1 GL_AMD_depth_clamp_separate GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ARB_ES2_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_cl_event GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_compute_shader GL_ARB_conditional_render_inverted GL_ARB_conservative_depth GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_draw_indirect GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_robustness_isolation GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_bit_encoding GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_stencil_export GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shading_language_100 GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_spirv_extensions GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_anisotropic GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_separate_stencil GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_clip_volume_hint GL_EXT_compiled_vertex_array GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_object GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_polygon_offset_clamp GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shader_framebuffer_fetch GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_compression_s3tc GL_EXT_texture_edge_clamp GL_EXT_texture_env_add GL_EXT_texture_env_combine GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod_bias GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_IBM_texture_mirrored_repeat GL_INTEL_conservative_rasterization GL_INTEL_fragment_shader_ordering GL_INTEL_framebuffer_CMAA GL_INTEL_map_texture GL_INTEL_multi_rate_fragment_shader GL_INTEL_performance_query GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_KHR_context_flush_control GL_KHR_debug GL_KHR_no_error GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_ldr GL_NV_blend_square GL_NV_conditional_render GL_NV_primitive_restart GL_NV_texgen_reflection GL_SGIS_generate_mipmap GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SUN_multi_draw_arrays GL_WIN_swap_hint WGL_EXT_swap_control
---------------------------
Current buffers bit depths:
Color (red / green / blue / alpha): 8 / 8 / 8 / 8
Depth: 24
Index: 32
Stencil: 8
Accumulation (red / green / blue / alpha): 16 / 16 / 16 / 16
Double buffer: True
Multi-sampling (full-screen anti-aliasing) possible: True
Current: 1 samples per pixel
-------------
Stack depths:
Attributes: 16
Client attributes: 16
Modelview: 32
Projection: 4
Texture: 10
Name: 128
-------
Limits:
Max clip planes: 8
Max lights (fixed-function limit): 8
Max eval order: 32
Max list nesting: 64
Max pixel map table: 65536
Max texture size: 16384
Max viewport dims (width, height): 16384 16384
Max texture units (shader pipeline): 32
Max texture units (fixed-function): 8
Max cube map texture size: 16384
Max 3d texture size: 2048
Max texture max anisotropy: 16
Query counter bits (for occlusion query): 64
Max renderbuffer size: 16384
-------
Memory (in Kb):
Total: 0 (unknown)
Current: 0 (unknown)
Current for VBO: 0 (unknown)
Current for Textures: 0 (unknown)
Current for Renderbuffers: 0 (unknown)
-------------------- Rendering Context Initialization end
Path: Program data path detected as "file:///C:/Users/%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB/Desktop/foxy-misfortunes/data/"
Loading font through a temporary file "file:///C:/Users/%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB/AppData/Local/foxy-misfortunes/cache_font_32875645.ttf"
Exception: Exception "FreeTypeException":
Error 1 while loading font 0 from file C:\Users\Кирилл\AppData\Local\foxy-misfortunes\cache_font_32875645.ttf
$000000010024213D
$00000001002421FB
$000000010024236C
$0000000100242DB5
$00000001002438B3
$00000001002437EC
$0000000100240349
$0000000100234F8D
$00000001002360CF
$0000000100235FD0
$0000000100235DE8
$0000000100258019
$0000000100257A46
$00000001000F1BCB
$0000000100021BAF
$0000000100020912
$000000010001D7E6
Warning: Font is missing glyph for character К (Unicode number 1050)
Warning: Font is missing glyph for character К (Unicode number 1050)
Warning: Font is missing glyph for character и (Unicode number 1080)
Warning: Font is missing glyph for character и (Unicode number 1080)
Warning: Font is missing glyph for character р (Unicode number 1088)
Warning: Font is missing glyph for character р (Unicode number 1088)
Warning: Font is missing glyph for character и (Unicode number 1080)
Warning: Font is missing glyph for character и (Unicode number 1080)
Warning: Font is missing glyph for character л (Unicode number 1083)
Warning: Font is missing glyph for character л (Unicode number 1083)
Warning: No further warnings about missing glyphs will be reported for this font (to avoid slowing down the application by flooding the log with warnings)
Thank you for report! I’ll look into it ASAP.
I looked at the problem and it seems to be a bit complex - it’s a bug of FreeType library (though definitely should be possible to fix). However, in your case there should be a simple workaround - try putting the game into folder with only ASCII characters, e.g. not on the desktop but somewhere on D:\Downloads\foxy-misfortunes... (just copy-paste it)
Попробую (увидел, что Вы и по-русски разговариваете)
Спасибо! Заработало. А я думал, что проблема в шрифте в самой папке с игрой - система на русском и имя пользователя соответствующее. Всё оказалось гораздо проще)
Да, это ошибка в библиотеке, её можно исправить, просто “сегодня” не получится :) Рад, что заработало, а корень проблемы попробуем исправить в ближайшее время.
G'day, Eugene! At first i wanna ask you - da you speak rus? depending on the answer, the conversation will go differently. I will explain why later:0
Да, есть такое немного :)
//Yes, I can speak Russian.
кашерно , а то на англе язык сломаю попытаться построить грамотный диалог . Не спрашивал бы про это , не возымея , глядя на твой ник, мысли, что ты русский :)
В общем...для начала хотел бы спросить , чем для тебя является данный проект ? Первая проба в NSFW , я так поглядел. В целом для тебя это хобби или что-то более этого?
Геймдев - моё хобби с раннего детства. Недавно захотел попробовать что-то “новенькое” и, похоже, не промахнулся :)
Ну и работаю гейм девелопером на работе тоже, уже второй год :)
Приятно видеть человека , любящего своё хобби и относящегося к нему не просто как к чему-то, на что тратишь время :)
В Таком случае могу больше спросить конкретно про эту игру - раз уж это первый и очень удачный опыт, в будущем, уверен, будет выходить больше и качественнее . Но сейчас пойдёт речь конкретно от этой игре - планируешь ли ты ее как-то ещё развивать ? Или может уже метишь в какой-нибудь финальный апдейт ?:0
Если первый вариант, могу пару идей и предложений накидать .
К сожалению, эта игра была изначальна “ограничена в масштабе”. Т.е. она была сделана “чтобы получить быстрый результат” (для гейм-джема). Без существенной переработки (так называемого рефактора) значительно расширить её не получится. А “рефактор” это дело скучное и грустное, а главное, не гарантирует что действительно откроет дорогу к существенным улучшениям.
Пока, я планирую добавить ещё одного персонажа и картинку-поздравление “с победой”. А также несколько новых типов противников (в сумме будет 8 разных врагов - в трёх группах по способностям), туториал и всякие разные мелочи. Вполне возможно что получится без особых сложностей добавить “варианты” уже существующих персонажей (с разными одёжками и раскрасками). Это будет финальный апдейт. По идее можно попробовать что-то ещё добавить, но, опять-таки “много” не получится (за идеи буду благодарен, но обещать что-то, увы, не могу :))
Гораздо эффективнее после этого будет заняться “новым проектом”. Сейчас отложен другой, более масштабный проект (тоже немного NSFW :)) Морского Боя, уже почти год в разработке. Но по оценке мне нужно часов 150-200 только на одно рисование. И вчера-сегодня меня “осенило”, что, возможно, веселее будет сделать (вполне возможно, параллельно) проект с меньшим количеством картинок и более простым интерфейсом, набросал геймдизайн экшен-рогалика в стиле Unexplored и Enchanted Cave (т.е. по факту что-то близкое к текущей игре, но с существенно большим размахом - инвентарём, навыками, уровнями, посёлком, магазинами и т.п.) - пока что складывается вполне просто но разнообразно и интересно.
I'm going to be honest, I don't like Wolfy. I can't get past 1500 without losing atleast one piece of clothing. She is a high effort low reward character, though I do like how much of a challenge it is to actually play her, it's a bit frustrating though. I also thought of a new idea that you could implement: "skins". And by that, I mean change the color of the fur/outfits for each character so you can have a 3000 goal in order to unlock a "skin" for that character that's just a different colored outfit, 4500 for another skin where the fur is changed ect. Just a random Idea that I've had that I decided to share.
Indeed, Wolfy was meant to be “hard to play” and the next character - Squirrly is supposed to be even harder. As I’ve managed to get the same high-score with Wolfy as with other characters (around 4k for me, also surprisingly consistent on Android where inconveniences in control are extreme) I thought it’s balanced, but indeed increasing the rewards is a good idea.
Also, maybe you could come up with an idea “what exactly is frustrating”? The long recharge time or slow movement speed, or both? I also feel that it’s kinda takes too much effort, but increasing the rewards alone may not be enough to compensate for that. My first guess would be that speed is the major culprit, as it doesn’t really serve a lot of purpose here + slower movements make the game a bit more tedious. WDYT?
(UPD) And I’ve forgotten to add one more mechanics to Wolfy - she is supposed to kill all enemies nearby when losing clothes.
Skins system is possible. Not something too dramatic, but changing the main tone of the character is definitely doable, even without too much effort. I’ll see how to in the nearest future. For clothes it’s more complicated as they contain several different colors and simply colorizing them may be not enough. (UPD: Ok, I think I know how to change different colors on the clothes independently)
Wolfy gets 2.5 shots per energy power up and had a recharge at 4 seconds per shot, making her the least efficient character when it comes to energy. While true she has 12.5 shots to start with, it can quickly dwindle down. That in addition to her cool down in between shots and slow speed make it very easy for her to either run out of energy while surrounded by enemies resulting in what might be a instant loss (Which could be taken care of by the mechanic you intended to add) or take damage due to poor crowd control. One thing you could do is give her more value out of the speed and shield power ups, making them have a better effect or last longer, and another thing you could do is make her shots AOE or fire 3 spells for one shot. These would make it more rewarding and fair to play Wolfy while also making it still difficult, though if these hypothetical changes were to be implemented Wolfy might have to see a slight nerf in some other area of her kit just to keep her balanced.
That’s exactly the mechanics I want to add for the upcoming characters :D
Squirrly will fire 2 bullets per shot (initially I want to implement that through familiar mechanics [not implemented yet, but mostly requires only graphics, coding part is easy]) and Lizzy will make use of AOE [mechanics is already implemented] also Deery will have piercing bullets [mechanics is already implemented], that will also have some efficiency of AOE.
Actually I think I indeed should prioritize now implementing familiars, as I also see that while Cheety and Foxy don’t have powerful familiars, those start playing an important role from Wolfy and later on.
Meanwhile I’ll also add more speed and shields to Wolfy and we’ll see how it works out. Maybe also add her a short shield when she shoots, as I planned originally.
6502 and I gotta say: I love cheety. The visual design is decent and the coloration is much better then before. I do feel as though the red in the clothing does collide with the yellow a little and the red could be a bit brighter, but aside from that it looks fine. I'm also now realizing that power ups spawn a little to rapidly, but the game is still at a good spot.
Thank you! I’ll see if I can do something with clothes colors, indeed I’ve forgotten to change them from the previous orange design.
Yeah, powerups spawn faster because Cheety relies on powerups as her own mana regeneration is poor. They spawn even faster for Wolfy, because her mana regeneration is even slower. BTW, Wolfy is finished, I’m doing the final tests… will be available in about an hour unless I find something badly broken.
Good update
Thank you! :)
6579 and I must say: excellent. The game is at a great state and the balance is just about perfect where it's difficult but you have more then enough to last. In terms of gameplay, I don't know if there is much you can do to improve it other then making it so the enemies are a bit more predictable, because atm it feels really random. Other then that, gameplay is a 9/10. Good work.
Thank you!!! I’m really glad to hear that.
Good idea! I’ve also noticed that I’m getting a hit rather randomly (if the enemy spawns too close and I’m too slow to react, or when the enemy changes course too abruptly and avoids the shot) than through a “consistent situation” - more often my reaction fails, than strategy.
I’ll think of what can be done here - definitely something should be done :D I believe I just have to stop being lazy and implement a better (and hence a more predictable) AI, not just random walking as it’s now.
I'm a idiot when it comes to coding, but I have seen a youtube video showing different kinds of "maze finding AI" and maybe you could...take one of those and...reverse engineer it to find the shortest route to the player or something. I'm sure it doesn't work like that, but I figured I would suggest it anyways. Maybe if you could make the AI find shortest possible routes to the player that could also help. Again, I'm a idiot when it comes to coding so aside from ideas in extremely basic form I don't know if I can help much.
Oh, don’t worry about that. I already have the maze solving algorithm ready (technically most of my games involve mazes in some variant :D). I’m just a bit too lazy to apply it here. In the end I wanted to add a few “smart enemies” that would carefully plan their route unlike their numerous but dumb friends that would randomly wander around.
The problem here would be that the Player will actually have to kill all the enemies to survive - now the crowd is relatively manageable, and good maneuver can ensure the survival even when the player is overwhelmed with numbers. If the enemies will run directly into Player’s position, they’ll be quite efficient with that. But that’s all pretty goes down to balance - we can just introduce “not always follow the best route” with a chance that allows both a) keep the number of enemies on the map high (I like zombies :D) and b) keep them predictable and require actual skill to avoid even when mana is not enough to kill them all.
10055 and the game seems to have gotten easier and the AI seems to have gotten worse. The number one thing I would do if I were you is to make it so you have passive recharge on you energy, but not enough/barely enough to keep up with enemy spawns and make it so there are items you could pick up to restore energy, and once you pick up that item it would respawn somewhere randomly in the map. That way you have a objective to maintain survival.
Thank you!
Interesting. AI shouldn’t have gotten into the issues except unable to walk through the walls now except for blue slime. I’ll look into it.
That’s exactly how the difficulty is handled now. Recharge is 2 seconds, enemy spawns are 5 seconds, and going down to 2 seconds roughly after 4.5 minutes.
However, I wonder, maybe it’d be reasonable to increase the spawn rate even further - that the player most certainly cannot survive “infinitely” even if missing no shots.
Note that the current build contains an already-fixed bug that you can kill several enemies with one bullet. This doesn’t happen too often, but still can shift the balance to player’s favor.
Most likely the problem is that the average speed of enemies dropped, so even when there are more enemies, the threat level decreased. I already see this issue and will address it in the next update.
Yeah, I’m dead set on implementing powerups, and it’s close to be finished (got a bit more complicated than I’ve initially expected) - I hope I’ll be able to roll out an update today or tomorrow.
Also powerups will be taken into account here, that will make the curve even harder.
By "the AI seems to have gotten worse" I men't that more in the sense of "dumber", like they seem less 'aggressive' and aren't moving around walls to get to the player as much in addition to not making a straight line (Which is why I thought at first that the player was faster then the enemies), but that might just be me interpreting it as such.
I say it is reasonable to make it so the player can't survive infinitely. After all, this is a game where you are suppose to lose after a certain point. There could still be progression in the game without changing the gameplay to , where after you get a certain number of points you are allowed to progress after you finish your game where you are while still able to try and get a high score where you're at.
And a few random ideas here: each time you collect a recharge power up it because less effective, recharge and spawn time get reduced to 1 second to increase intensity along with spawn time for coins, everything has increased speed (progressively or originally), if you are going to have a level system you could have a ghost level, different types of coins that could give you more or less that are RNG based though have rarities (I.E: "blue coins" give you 20 but are slightly less commen then gold, silver gives you 5 and are also slightly less common then gold, reds are worth 50 and are even rarer ect), change the sound effect for when you click on something (it sounds like a tight fart and it's a little annoying), boss level (after you have already developed a progression system).
That's all I got for now, not sure if any if this feedback is useful but I hope it helps.
Thanks a lot for you reply and suggestions!
I’m looking into AI issue. Maybe it got broken when I “fixed” collisions with walls.
Yes, they aren’t making a straight line - they are moving in curved trajectories that end up in Player’s position. Just like in good old Pac-Man :) This is a feature, and for now it seems good. I’d more eagerly improve the pathfinding (or rather add it, because now it’s just randomly walking around the map).
Just done, and indeed it looks really cool.
I have a bit more extensive way for “progression”. Right now I have stories for 6 characters, and most of their unique abilities (that would allow to survive longer) are already implemented, such as piercing or exploding bullets, dash movements, individual patterns of powerups and (not yet implemented) monster spawns. However, they’re badly lacking art - so I’ll need to give 5x6 = something like 30 hours to paint them. Each character will have its own “target” high score and the next character will be unlocked when it’s achieved.
Yes, I’ve finished implementing powerups now (still want to add a “speed” powerup, but that may come later), and there is plenty of space now for different score for different rarity of powerups (i.e. coin is 10 points, I’ll most certainly add something more rare and valuable in the next release).
I’ll try to prepare the next update in a few hours. I feel like releasing the “current version” may be a bit confusing, so I want to implement some additional improvements (tutorial popups; enemy spawn rules; speed-up powerup; more valuable and rare coins - all of those should be relatively quick and easy).
It really helps a lot, many thanks! :D
7283 on the new update. It's pretty hard and I honestly like it more this way. Thanks for the update.
Thank you!
11502 is my new high score
Amazing job! That feel when with my 2750 high score I thought I’m damn good at this game…
One thing I've noticed but liked is that you can collect coins and enemies can pass through diagonally through blocks, which I would imagine is a unintentional design, but I like it and I would vote to keep it in, and maybe improve on it kinda like how blizzard did with Lucio being able to ride on walls in overwatch. A complaint I do have is that the game seems to easy and to shallow atm. The ways how I would fix those is by making it so every 300 points or so, the monsters speed and health increase, and I would also make it so that there is either a requirement for regaining energy like picking up something on the field to regain energy instead of recharging it passively, a nerf to recharge speed, or a bit of both. This game seriously has alot of potential, and I would recommend capitalizing on it by creating a patreon and making it so that you would have to be a patreon to play the newest build assuming you would want to invest into this project you got going, I also have plenty of other ideas and could give more feedback if you would like and would happily answer any question you have or give advice. I wish you the best of luck and hope things work out for you no matter what you choose.
Thanks for the heads up!
Yeah, I was fighting with this bug for a few hours, but couldn’t fix it. I finally know how to make this work properly, but exactly as you’ve noticed, I like this behavior. I plan to add different enemy types (I have 8-9 good but simple-to-implement ideas) and want to leave blobs, the most generic enemy type, to be able to pass diagonally :D
Yes, unfortunately I accidentally broke this balance by making the game more convenient when implementing gameplay improvement for Android (now it’s easier to hit enemies, which in turns makes player miss less). I want to keep convenience of the game, but I have already made the difficulty curve more steep - in the current build the game runs up to 90% of max difficulty after 9 minutes of gameplay, I changed it to 4.5 minutes. That’s the moment when the amount of generated monsters is just 10% less than mana regeneration - i.e. player cannot miss more than 10% of the shots, otherwise the map will get crowded with more and more monsters. Testing, maybe I should make the runs even shorter. I’ll most likely release the new binaries today.
About shallowness - I planned addition of more monster types, including shooting ones, and one more spell (summon familiar, a she-wolf who will act as a piece of clothing, but can be called multiple times) will hopefully add more depth to the gameplay. However, the game originally was planned as “small and simple” so, there won’t be much of depth anyway.
For around half a year by now I’m working on another mature game, Piratess in Distress (adult variant of Sea Battle), which obviously planned as much more complex project and would have much more variability and depth (still keeping it simple). I’m still in the early prototype stage though - most mechanics are already working, but almost no graphics completed (and even those 10 girls x 13 hours each is still hell of time to go :D).
Yes, you are reading my thought exactly :D I played with mana regeneration speed and it’s much more fun if the regeneration would be 50%-100% slower. But it requires implementing powerups (mana refill, shield, speed, etc.) which is simple, but not done yet.
I thought about that, but for me the problem is that I’m from Ukraine and e-banking works kinda weird around here. I was planning to recommend people to support Castle Game Engine development though which made this game possible - https://www.patreon.com/castleengine - and thanks to which I got a wonderful full-time job as a game developer, so indirectly financially supporting me too!
That would be most welcome! You may directly create ideas at https://gitlab.com/EugeneLoza/foxy-misfortunes/-/issues - you may find some of your ideas already there just waiting to be implemented :D Or write here - in any way convenient for you! I can’t promise I will implement everything, but as for the ideas above - most likely I’ll be able to make them happen even this week.
Good update
Thank you!
Cool game but frist or later you can make a version apk?
I can easily make an APK. The problem here is that I have no idea how to implement “twin-stick” input on Android. I’ve experimented with this mechanics in the past, and it’s practically unplayable on touch screen. Maybe you know (or anyone else knows) some game that does it well? So that I can see it for inspiration.
unfortunately I don't know I'm only at the beginning the only thing I know is to transform the decimal numbers into binaries and vice versa, but i can se for that
No, I mean I can implement whatever we need. I just have no idea how UI should look for that. I can easily implement movement UI (I believe the Engine even has something ready out-of-the-box for this). But when touching the screen for shooting the finger covers the gameplay area and it’s frustrating. Implement two sticks? - It’s very hard to aim this way. But maybe I’m missing something obvious - a screenshot from a similar game with good UX should give me a hint :D
ok i can try to find
You can control a game called free fire or call of duty for mobile