Fish Fight is a tactical 2D shooter. Made with Rust-lang and Macroquad 🦀🌶

Overview

Fish Fight

Github Actions fish-scene

Introduction

Fish Fight is a tactical 2D shooter, played by up to 4 players online or on a shared screen. Aim either left or right; the rest is up to clever movement and positioning in this fish-on-fish brawler! For more information about our origin story (Duck Game et.al.) and big-picture plans, see our design document.

Key Features (WIP)

  • 2 to 4 players in either Local Multiplayer or Online Play
  • Easy to pick up, emphasizing strategy over twitch reaction
  • Customize characters with hats, saved to your cross-platform profile
  • Create & explore user-made weapons, levels, audio and other scripted extensions
  • Smart level creation tools
  • Tournaments & matchmaking built in

Status

The game is fully playable:
https://twitter.com/fishfightgame/status/1424084016467226624

Community

Contributing

Anyone involved in the Fish Fight community must follow our code of conduct.

If you'd like to make something for Fish Fight, check out our help-wanted issues or just ask us on Discord. We'll soon post an updated roadmap for the next month or two of work ahead.

Before committing and opening a PR, please run the following commands and follow their instructions:

  1. cargo clippy -- -W clippy::correctness -D warnings
  2. cargo fmt

Learning Materials

Install & play

  1. Install Rust with Rustup.rs
  2. cargo run

We'll start distributing executables shortly!

Default key bindings

Keyboard left:

  • movement: arrow keys , , ,
  • pick/drop: K
  • attack: L
  • toggle AI: 0

Keyboard right:

  • movement: W, A, S, D (& Space for jump)
  • pick/drop: C
  • attack: V & LeftCtrl
  • toogle AI: 1

Gamepad:

  • movement: direction axis
  • pick/drop: X
  • attack: B
  • jump: A
  • slide: Down + Y

Credits

Comments
  • Bevy Rewrite

    Bevy Rewrite

    Here goes nothing. :wink:

    Web Demo

    Here's a web demo that auto-follows this branch:

    https://jumpy.zicklag.spicy-lobster.katharostech.com/player/bevy-rewrite/

    opened by zicklag 26
  • Critters

    Critters

    Critters would be small entities with relatively simple AI and animations. They wouldn't affect the gameplay in any meaningful way, but they would make the game feel much more organic.

    Small Fish: They would float around the level randomly, maybe form clumps and wouldn't drift too far from each other. When a player gets too close they get scared and swim away. When a bullet passes closely, they could panic and swim away quickly, completely disorganizing the "group". If hit by a laser or a bullet, they could turn into a tiny skeleton (or sushi for family-friendliness) that drops to the ground.

    Crabs: They would walk left-right randomly and stop for a few moments, but they wouldn't walk off ledges on their own. If a player gets too close they would walk away, and drop from platforms if there is no wall to stop them from doing so.

    obraz obraz

    opened by SirGiraffey 23
  • gpu driver crash

    gpu driver crash

    Found a way for FishFight to crash my laptop. Just use the arrow keys to select Network, RT and that seems to crash my GPU driver. (Screen freezes and eventually goes black, while music which comes from youtube keeps working).

    System info (copied from what hardinfo told me)

    OS: Kernel | Linux 5.4.150-1-MANJARO (x86_64) Version | #1 SMP PREEMPT Thu Sep 30 16:13:54 UTC 2021 C Library | GNU C Library / (GNU libc) 2.33 Distribution | Manjaro Linux

    Computer: Processor | AMD Ryzen 7 2700U with Radeon Vega Mobile Gfx Memory | 7079MB (3353MB used) Machine Type | Notebook Operating System | Manjaro Linux User Name | lenscas (Lenscas) Date/Time | zo 10 okt 2021 14:24:15 CEST

    Display: Resolution | 1920x1080 pixels OpenGL Renderer | AMD Radeon(TM) Vega 3 Graphics (RAVEN, DRM 3.35.0, 5.4.150-1-MANJARO, LLVM 12.0.1) Session Display Server | [X11] The X.Org Foundation 12013000

    OpenGL (GLX): Vendor | AMD Renderer | AMD Radeon(TM) Vega 3 Graphics (RAVEN, DRM 3.35.0, 5.4.150-1-MANJARO, LLVM 12.0.1) Direct Rendering | Yes Version (Compatibility) | 4.6 (Compatibility Profile) Mesa 21.2.3 Shading Language Version (Compatibility) | 4.60 Version (Core) | 4.6 (Core Profile) Mesa 21.2.3 Shading Language Version (Core) | 4.60 Version (ES) | OpenGL ES 3.2 Mesa 21.2.3 Shading Language Version (ES) | OpenGL ES GLSL ES 3.20 GLX Version | 1.4

    I'm not sure what logs to look at (if any). So, feel free to tell me where I can find relevant logs :)

    bug 
    opened by lenscas 21
  • ECS refactor

    ECS refactor

    This is a draft PR of a refactor, using hecs in stead of Macroquad scene.

    Firstly, sorry for the delay, guys.

    The merging process shed light on a few problems that I needed to resolve. I had also forgot to implement the sproinger...

    I have integrated all the juicing changes from @legendiguess, so it should be up to date with the state of the master branch. If I missed something or if something is in other ways not as it should, let me know and I will correct it :)

    Please note that the current systems, especially those related to Player, were created with a focus on code reuse. This means that there are a few giant systems that will be cleaned up at a later stage. I am primarily thinking of update_player_state and update_player_inventory, which should both be split up into more appropriate, smaller systems. Using hecs is way more flexible than scenes, though, so it won't be that problematic to clean this up as we go...

    We no longer need to use coroutines now and I have therefore removed the usage of state machines. For now, player state is just a struct of bool flags, for example (this made more sense than using an enum as not all states are mutually exclusive).

    There has also been some minor changes to the JSON API, primarily around items. This is mostly renaming to make the API more intuitive, like renaming animation to sprite, to avoid confusion with its member array animations. I have also added drop and depletion behavior for items and weapons.

    The base Item struct has also been removed and this name is now used for what was previously called EquippedItem. This means that a MapObject can be a piece of Decoration, an EnvironmentItem (sproinger), an Item or a Weapon.

    I have also removed the sprite that we previously used for items that were on the ground as we now just use an animation with the id ground, or idle if this has not been defined, in stead. I have also removed all use of delta time from all the physics calculations as this is not needed when we use fixed updates. This means that when you define force, speed and similar values, you will have to divide it by 120 (I believe this is the number of fixed updates per second), compared to how it was before.

    Decoration has also been implemented properly now and they can be defined in decoration.json.

    In the future we will change the API further, in order to better reflect the internal API. When we implement modding, we will be defining components (pure data types) internally or in JSON and create systems (logic acting on components) either in rust or by using whichever solution we end up integrating for script support. I therefore think we should design the JSON API to reflect this, so an item, for example, would just be a JSON array of component definitions, used as a blueprint when spawning the item.

    EDIT: I forgot to add that I also need to resolve an issue with draw order. Sprite and AnimatedSprite are components in their own right, so weapons are their own entities now (PhysicsBody is just disabled when picked up and position set in the update_player_inventory system). This means that weapons, being spawned after players, will be drawn over all players all the time, in stead of being drawn at a z-depth relative to the player that is carrying it. In other words, if two players pass each other, both carrying weapons, the one carried by the player that is drawn behind the other, will still be drawn on top of the player that is drawn on top of him. I will fix this by adding a z-depth variable to AnimatedSprite which is set in the update_player_inventory system, and just sort the query used by the draw_animated_sprites system by this value. I'll probably add that before this is getting merged, so no need to make an issue about this if you decide to try this version out :)

    opened by olefasting 16
  • Can't Build SDL2 on Wayland

    Can't Build SDL2 on Wayland

    When I try to run cargo run, once it reaches the sdl2-sys dependency I get this compile time error:

      running: "cmake" "--build" "." "--target" "install" "--config" "release" "--parallel" "2"
      Consolidate compiler generated dependencies of target SDL2main
      [  1%] Built target SDL2main
      Consolidate compiler generated dependencies of target SDL2
      [  2%] Linking C shared library libSDL2-2.0.so
    
      --- stderr
      make: warning: -j2 forced in submake: resetting jobserver mode.
      /usr/bin/ld: CMakeFiles/SDL2.dir/src/video/wayland/SDL_waylanddatamanager.c.o: in function `Wayland_data_source_destroy':
      SDL_waylanddatamanager.c:(.text.Wayland_data_source_destroy+0x3f): undefined reference to `wl_proxy_marshal_flags'
      /usr/bin/ld: CMakeFiles/SDL2.dir/src/video/wayland/SDL_waylanddatamanager.c.o: in function `Wayland_data_offer_receive':
      SDL_waylanddatamanager.c:(.text.Wayland_data_offer_receive+0x97): undefined reference to `wl_proxy_marshal_flags'
      /usr/bin/ld: CMakeFiles/SDL2.dir/src/video/wayland/SDL_waylanddatamanager.c.o: in function `Wayland_data_offer_destroy':
      SDL_waylanddatamanager.c:(.text.Wayland_data_offer_destroy+0x3f): undefined reference to `wl_proxy_marshal_flags'
      /usr/bin/ld: CMakeFiles/SDL2.dir/src/video/wayland/SDL_waylanddatamanager.c.o: in function `Wayland_data_device_clear_selection':
      SDL_waylanddatamanager.c:(.text.Wayland_data_device_clear_selection+0x44): undefined reference to `wl_proxy_marshal_flags'
      /usr/bin/ld: CMakeFiles/SDL2.dir/src/video/wayland/SDL_waylanddatamanager.c.o: in function `Wayland_data_device_set_selection':
      SDL_waylanddatamanager.c:(.text.Wayland_data_device_set_selection+0x85): undefined reference to `wl_proxy_marshal_flags'
      /usr/bin/ld: CMakeFiles/SDL2.dir/src/video/wayland/SDL_waylanddatamanager.c.o:SDL_waylanddatamanager.c:(.text.Wayland_data_device_set_selection+0x115): more undefined references to `wl_proxy_marshal_flags' follow
      collect2: error: ld returned 1 exit status
      make[2]: *** [CMakeFiles/SDL2.dir/build.make:3209: libSDL2-2.0.so.0.16.0] Error 1
      make[1]: *** [CMakeFiles/Makefile2:112: CMakeFiles/SDL2.dir/all] Error 2
    
    build 
    opened by billyb2 16
  • Generalize/Categorize items

    Generalize/Categorize items

    Affects #129

    While I was working on writing the section for adding an item to the game (I'm using a sniper rifle as an example), I noticed that a lot of the code I was writing for the sniper rifle was directly copying the musket code. I think that we could reduce code and lower the barrier of entry to contributing to the game by generalizing items into categories. For example, instead of having src/items/muscet.rs we should have src/items/basic_gun.rs. Then we can create a general gun struct:

    pub struct Gun {
        pub gun_sprite: GunlikeAnimation,
        pub gun_fx_sprite: GunlikeAnimation,
        pub gun_fx: bool,
    
        pub bullets: i32,
    
        pub body: PhysicsBody,
        pub throwable: ThrowableItem,
        pub guntype: GunType,
    }
    

    Then we can implement contractors for all the different types of guns.

    impl Gun {
        ...
        pub fn spawn_musket(pos: Vec2) -> HandleUntyped {
            ...
        }
    
        pub fn spawn_sniper(pos: Vec2) -> HandleUntyped {
            ...
        }
        
        pub fn shoot(&self, node: Handle<Muscet>, player: Handle<Player>) -> Coroutine {
            match self.gun_type {
                Sniper => {
                    ...
                },
                Musket => {
                    ...
                },
            }
        }
    
        ...
    }
    

    We should also generalize bullets in a similar way.

    Overall this will lower the barrier of entry to contributing to the game, because new coders/contributors could start off just modifying the gun struct for their new gun with adjusted values.

    enhancement 
    opened by cdsupina 11
  • lua support

    lua support

    Before lua (or any dynamically typed language for that matter) can be added there needs to be a more dynamic way to query the world. This is because dynamically typed languages can't give type parameters to world.query().

    The api that I am currently going for is more like a builder, in which every function adds extra type information to the query that was made.

    local query = FishFight
        .build_query() --can be queried like a world.query::<()>()
        :with_player() --world.query::<&mut Player>()
        :with_player_event_queue() --world.query::<(&mut Player,&mut PlayerEventQueue)>()
        :query()
    
    for entity, player,events in query:iter() do
        print(entity) --do actual work here
    end
    

    but, this is not set in stone and will change based on feedback and whatever else I discover.

    However, it is a bit weird to turn the current way of querying the world into a Builder, as only the types are important. This also means that the current code for the builder is not exactly nice and kind of weird.

    So, before I continue with this (and throw macros at the problem) I would like some feedback on it to see if maybe I just missed a feature of Rust that makes this nicer.

    Before this I tried having 1 struct and using the T to add different implementations so you get something like

    pub struct Builder<T>(PhantomData);
    impl Builder<()> {
        fn new()-> Self {
           Self(PhantdomData) 
       }
       fn with::<T>(self) -> Builder<(T)>
       where (T):Query
       {
            Builder<(T)>(PhantomData)
        }
    }
    imp<T>  Builder<(T)> {
       fn with::<N>(self) -> Builder<(T,N)>
       where (T,N):Query
       {
            Builder<(T,N)>(PhantomData)
        }
    }
    

    This however fails because the (T) is the same as T and from there it conflicts with every type.

    opened by lenscas 10
  • Formatting and Linting

    Formatting and Linting

    This PR does 3 main things:

    1. Includes cargo fmt and cargo clippy in CI.
    2. Formatting with cargo fmt, which can be adjusted in the future with rustfmt.roml
    3. Linting with cargo clippy pedantic. basic rust style

    TODO:

    • [ ] Cargo clippy install can be cached.
    • [ ] Linting with cargo clippy perf to improve performance.
    • [ ] Apply to gamepad-rs
    opened by naomijub 9
  • Crouching down and sliding

    Crouching down and sliding

    The act of crouching or ducking is essential for dodging certain types of high-flying shots, or making sure you’re 99% safe behind a hard platform.

    This will obviously necessitate an additional character art pass as well.

    Crouching at speed results in a slide. Funnily enough, this will position our fish characters in their much more natural horizontally aligned posture 🐠

    help wanted 
    opened by erlend-sh 9
  • Add android support

    Add android support

    This draft pull request is a quick try to add android support to FishFight. Currently, blocked by the following error:

    01-18 21:12:43.619 10287 10287 I SAPP    : NativeActivity onInputQueueCreated()
    01-18 21:12:43.639 10287 10287 I SAPP    : NativeActivity onNativeWindowCreated()
    01-18 21:12:43.639 10287 10310 I SAPP    : Creating egl surface
    01-18 21:12:43.788 10287 10310 I SAPP    : ... ok!
    01-18 21:12:44.110 10287 10287 I SAPP    : NativeActivity onFocusChange()
    01-18 21:12:55.938 10287 10310 E SAPP    : PanicInfo { payload: Any { .. }, message: Some(called `Result::unwrap()` on an `Err` value: "Application didn't initialize properly, did you include SDL_main.h in the file containing your main() function?"), location: Location { file: "src/__mainxZRTw7", line: 125, col: 65 } }
    

    Also, as a temporary workaround, I changed assets dir in main.rs as I couldn't fastly set ASSETS_DIR_ENV_VAR.

    To reproduce this error - you will need to build sdl2 (this helped me) from source with this command: ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk APP_PLATFORM=android-18 (if you are on m1 mac - see this), and place libs/arm64-v8a/libSDL2.so in your target/aarch64-linux-android/<PROFILE>/tools/libSDL2.so. Then install crossbundle (or cargo-quad-apk, I think it will work too right now) and run crossbundle run android --quad.

    Currently, crashing on this stage: Screenshot 2022-01-18 at 21 36 44

    @erlend-sh 👋

    opened by enfipy 8
  • Improve local game setup screen(s)

    Improve local game setup screen(s)

    We should improve the local game setup screen to enable more players in local games.

    Currently we are advertising 2-4 players but this isn't really a limitation that we need to adhere to. Obviously, we can not have more than two players using the keyboard at one time, but there is nothing that binds us to the number four, if there are enough gamepads connected... For starters, though, we should design and implement a game setup process that can accommodate more than one player. I was thinking that we remove the first screen that collect input and sets input scheme and in stead just jump directly to what is today the character selection screen. Here, we can add one character selection panel for each player that is added by pressing some button either on the keyboard or a connected controller. When two or more players are connected and have a character selected, the option to start the game should appear. We should also upgrade the character selection screen to display a flexible grid, scaling and stacking the individual character selection panels according to count (like has been done for the map selection screen, only without pagination).

    enhancement help wanted good first issue refactor 
    opened by olefasting 7
  • Set Game Fixed Update Frames to 60 FPS

    Set Game Fixed Update Frames to 60 FPS

    Currently the game runs at a 45 fixed updates-per-second. We want to change this to 60 FPS.

    The original reason for turning it down to 45 was for performance in the networking rollback mode, but since networking isn't working without desync bugs right now anyway, we may as well let the local play experience be as good as it can be, and fix the networking later, once we have the new ECS model in place that should fix the desync bugs.


    This should be a simple change. The first step is to change this constant to 60:

    https://github.com/fishfolk/jumpy/blob/4a8c0bd0687363e9b2e7628d7d80a1fa7f428146/src/main.rs#L78

    At that point, most of the physics will seem to run in fast-forward, because all the other game constants are tuned for running at 45 FPS right now.

    That means the last step is to go and update all the constants regarding player movement/fall speed, etc.

    The item constants, such as fuse times, etc will be found in this asset folder: assets/map/elements/item.

    There may also be some constants in the player states and the item Rust implementations.

    Pretty much you just have to tweak those numbers until it plays normal again at 60 FPS.

    help wanted good first issue 
    opened by zicklag 2
  • Update Music & Play Specific Music on Different Menus/Screens

    Update Music & Play Specific Music on Different Menus/Screens

    Here's our music list:

    image image

    We already have the music in the music folder, but we need to rename them match the list above.

    Then we just need to update the game to select appropriate music when going to different menus or starting a fight, etc.

    enhancement 
    opened by zicklag 0
  • Cycle through default maps

    Cycle through default maps

    After one of the default maps have been played 3 times, go to one of the next maps. Next map is pseudo-randomly selected; if a map hasn't been selected in a while we'll start prioritizing it.

    Some of the hardcoded behavior herein will be replaced by player-determined selection of some hand-picked or randomized levels bundle.

    opened by erlend-sh 2
  • MVP Release Tracking Issue

    MVP Release Tracking Issue

    We're closing in on an MVP release!

    Currently we have what is probably the final networking architecture basically working. You can matchmake and play with up to 4 people on a map, and we have the basic player controller and sword item implemented.

    There are still lots of little things to fix up before it's presentable, I'll try to track those here.

    I'm opening this to serve as a discussion on what we need to make sure goes into the MVP, so feel free to comment with thoughts and/or edit the list here with important things:

    Tasks

    • [x] Fix the fact that you can grab swords out of people's hand. https://github.com/fishfolk/jumpy/pull/481
    • [x] Try to find what may cause the de-sync during network gameplay. ( This happened once, probably due to non-deterministic entity iteration order. ) https://github.com/fishfolk/jumpy/pull/482
    • [x] Fix the seaweed and anemone decorations https://github.com/fishfolk/jumpy/pull/484
    • [x] Prune the level list to only include the ones we really need to focus on https://github.com/fishfolk/jumpy/pull/485
    • [x] Start local session when starting editor. https://github.com/fishfolk/jumpy/pull/486
    • [x] Improve camera controller https://github.com/fishfolk/jumpy/pull/487
    • [x] Add a level indicator above the big "Pause" header: "Level [n]". https://github.com/fishfolk/jumpy/pull/491
    • [x] Add differentiation between the default and experimental maps. https://github.com/fishfolk/jumpy/pull/492
    • [x] lev04 should be part of the default bundle.
    • [x] Add audio https://github.com/fishfolk/jumpy/pull/495
      • [x] Add Music https://github.com/fishfolk/jumpy/pull/493
      • [x] Add sproinger sound
      • [x] Add player land/jump/grab/drop sound
      • [x] Add explosion sound
      • [x] Add sword sound
    • [x] Make escape button go back in player/map select menus.
    • [x] Add a "Select Level" button to the pause menu. https://github.com/fishfolk/jumpy/pull/497
    • [x] Make pause menu pause for all players in online play. https://github.com/fishfolk/jumpy/pull/498
    • [x] Fix sword turning invisible when dropped while being swung. https://github.com/fishfolk/jumpy/pull/499
    • [x] Add fuse sound effect to grenades using assets from here. https://github.com/fishfolk/jumpy/pull/500
    • [x] Re-implement death zone in Rust. https://github.com/fishfolk/jumpy/pull/501
      • [x] Re-spawn items that fall off the map.
    • [x] Fix desync when playing online and walking up to a pile of items and picking one up. ( It apparently still isn't deterministic which item you pick up. ) https://github.com/fishfolk/jumpy/pull/502
    • [x] Fix map decoration placement on stable maps https://github.com/fishfolk/jumpy/pull/503
    • [x] Get the remaining MVP items implemented
      • [x] #483
      • [x] Boxes https://github.com/fishfolk/jumpy/pull/504
      • [x] Mines https://github.com/fishfolk/jumpy/pull/505
      • [x] Bonk shoes https://github.com/fishfolk/jumpy/pull/506
    • [x] Level 4 should have x2 mines, x6 grenade spots, x2 bonk shoes, and 1x sword down in the middle section.
    • [x] Place items on remaining stable maps https://github.com/fishfolk/jumpy/pull/507
    • [x] Fix GLIBC problem in release build. https://github.com/fishfolk/jumpy/issues/509
    • [ ] Fix the launcher
    tracking 
    opened by zicklag 1
  • 🗒 Update Developer Documentation

    🗒 Update Developer Documentation

    With the Bevy rewrite, most of the technical documentation has become out-of-date. We'll need some major documentation updates including:

    • An update to the book
      • We may want to remove most of the guide-level explanations initially, until we get a better handle on what the modding will look like.
    • An update to the developer-facing architecture docs
      • I think I want to leverage Rustdoc to as the center for most of our architecture documentation. That will make it easier to give in-depth, but contextual information on different game modules and how they fit together.
      • This will be the number-one place for you to learn about how the game is designed and what code you'll need to change to add/modify different features.
      • I'll want a large emphasis on well-documented modules and types so that it will really explain how the game is put together.
      • While this is absolutely still a work-in-progress game, we want to be able to point people to the source and it's documentation for what a "production ready" Rust game can look like in Bevy.
    documentation 
    opened by zicklag 1
Releases(v0.5.0)
  • v0.5.0(Dec 13, 2022)

    This release migrates Jumpy from using Macroquad to using the Bevy game engine.

    What's Changed

    • Add Catty character by @zTecna in https://github.com/fishfolk/jumpy/pull/402
    • Tweak character jump by @legendiguess in https://github.com/fishfolk/jumpy/pull/404
    • Crate juicing by @legendiguess in https://github.com/fishfolk/jumpy/pull/405
    • Add Item: Trident by @zicklag in https://github.com/fishfolk/jumpy/pull/409
    • Fix Subtraction Overflow In Map Editor by @zicklag in https://github.com/fishfolk/jumpy/pull/416
    • Crabs! 🦀 by @zicklag in https://github.com/fishfolk/jumpy/pull/417
    • Passive Effect Sprites by @zicklag in https://github.com/fishfolk/jumpy/pull/414
    • Make Eaiser to Create Animated Sprites From Meta by @zicklag in https://github.com/fishfolk/jumpy/pull/413
    • Fish School Critters and Improved Crab Sprites. by @zicklag in https://github.com/fishfolk/jumpy/pull/418
    • Blunderbuss juicing by @legendiguess in https://github.com/fishfolk/jumpy/pull/419
    • Update fishsticks dependency by @orhun in https://github.com/fishfolk/jumpy/pull/420
    • Fix Reload Resources Button by @zicklag in https://github.com/fishfolk/jumpy/pull/421
    • Item starfish by @zicklag in https://github.com/fishfolk/jumpy/pull/422
    • Kill Fish When They Fall Out of Bounds by @zicklag in https://github.com/fishfolk/jumpy/pull/429
    • Add A New Map: Level 7 by @zicklag in https://github.com/fishfolk/jumpy/pull/427
    • Update Levels by @zicklag in https://github.com/fishfolk/jumpy/pull/434
    • Reduce Camera Pan Threshold by @zicklag in https://github.com/fishfolk/jumpy/pull/432
    • Allow Editing Built-in Maps in Debug Mode by @zicklag in https://github.com/fishfolk/jumpy/pull/431
    • Fix Drag and Drop Object Placement by @zicklag in https://github.com/fishfolk/jumpy/pull/430
    • Add @zicklag To Credits by @zicklag in https://github.com/fishfolk/jumpy/pull/441
    • Derive Eq On Some Structs ( Fix Clippy ) by @zicklag in https://github.com/fishfolk/jumpy/pull/458
    • 0.5 Updates by @zicklag in https://github.com/fishfolk/jumpy/pull/459
    • Rename to Fish Fight: Jumpy by @orhun in https://github.com/fishfolk/jumpy/pull/461
    • Rename to Fish Folk: Jumpy by @orhun in https://github.com/fishfolk/jumpy/pull/463
    • Fix typos in multiplayer.md by @Piturnah in https://github.com/fishfolk/jumpy/pull/464
    • Add desktop file by @tranzystorek-io in https://github.com/fishfolk/jumpy/pull/465
    • clippy: fix unnecessary casting by @darnuria in https://github.com/fishfolk/jumpy/pull/469
    • clippy: use clamp in camera.rs by @darnuria in https://github.com/fishfolk/jumpy/pull/470
    • clippy: use into_values in mod.rs by @darnuria in https://github.com/fishfolk/jumpy/pull/471
    • clippy: use replace with arg-list by @darnuria in https://github.com/fishfolk/jumpy/pull/472
    • Bevy Rewrite by @zicklag in https://github.com/fishfolk/jumpy/pull/466
    • Fix Sword Damage Region Spawning by @zicklag in https://github.com/fishfolk/jumpy/pull/475
    • P2P Networking by @zicklag in https://github.com/fishfolk/jumpy/pull/477
    • Add Bors Configuration by @zicklag in https://github.com/fishfolk/jumpy/pull/476
    • Sword fixes by @zicklag in https://github.com/fishfolk/jumpy/pull/481
    • Attempt to Fix Multiplayer Desync by @zicklag in https://github.com/fishfolk/jumpy/pull/482
    • Re-implement Seaweed and Anemones Decorations by @zicklag in https://github.com/fishfolk/jumpy/pull/484
    • Reduce Map Selection to 3 Maps by @zicklag in https://github.com/fishfolk/jumpy/pull/485
    • Fix Editor Not Displaying Map Elements by @zicklag in https://github.com/fishfolk/jumpy/pull/486
    • Improve Camera Controller by @zicklag in https://github.com/fishfolk/jumpy/pull/487
    • Implement Grenades ( + Other Small Tweaks ) by @zicklag in https://github.com/fishfolk/jumpy/pull/490
    • Add Level Name Heading to Pause Menu by @zicklag in https://github.com/fishfolk/jumpy/pull/491
    • Distinguish Default and Experimental Levels by @zicklag in https://github.com/fishfolk/jumpy/pull/492
    • Background music by @zicklag in https://github.com/fishfolk/jumpy/pull/493
    • Add Missing Sound Effects by @zicklag in https://github.com/fishfolk/jumpy/pull/495
    • In game map select by @zicklag in https://github.com/fishfolk/jumpy/pull/497
    • Sync Network Pause State by @zicklag in https://github.com/fishfolk/jumpy/pull/498
    • Fix Invisible Sword When Dropped While Swinging by @zicklag in https://github.com/fishfolk/jumpy/pull/499
    • Add Stand-in Grenade Fuse Sound by @zicklag in https://github.com/fishfolk/jumpy/pull/500
    • Handle out of bounds by @zicklag in https://github.com/fishfolk/jumpy/pull/501
    • Make System Execution Order More Deterministic by @zicklag in https://github.com/fishfolk/jumpy/pull/502
    • Item placement by @zicklag in https://github.com/fishfolk/jumpy/pull/503
    • Box item by @zicklag in https://github.com/fishfolk/jumpy/pull/504
    • Implement Mine Item by @zicklag in https://github.com/fishfolk/jumpy/pull/505
    • Stomp boots by @zicklag in https://github.com/fishfolk/jumpy/pull/506
    • Update level items by @zicklag in https://github.com/fishfolk/jumpy/pull/507
    • Tweak README Status and Style by @zicklag in https://github.com/fishfolk/jumpy/pull/508
    • Slow Falling & Default-enable Debug Tools by @zicklag in https://github.com/fishfolk/jumpy/pull/511
    • Update Documentation by @zicklag in https://github.com/fishfolk/jumpy/pull/513
    • Update MDBook Version in CI by @zicklag in https://github.com/fishfolk/jumpy/pull/514
    • Networking docs by @zicklag in https://github.com/fishfolk/jumpy/pull/515
    • Add Bevy Framepace Plugin by @zicklag in https://github.com/fishfolk/jumpy/pull/516
    • fix(docs): Try to Fix Broken Docs Links In CI by @zicklag in https://github.com/fishfolk/jumpy/pull/517
    • fix(docs): Add Notes to Networking Doc by @zicklag in https://github.com/fishfolk/jumpy/pull/518
    • Bump Jumpy Version in Cargo.toml by @zicklag in https://github.com/fishfolk/jumpy/pull/521

    New Contributors

    • @zicklag made their first contribution in https://github.com/fishfolk/jumpy/pull/409
    • @Piturnah made their first contribution in https://github.com/fishfolk/jumpy/pull/464
    • @tranzystorek-io made their first contribution in https://github.com/fishfolk/jumpy/pull/465
    • @darnuria made their first contribution in https://github.com/fishfolk/jumpy/pull/469

    Full Changelog: https://github.com/fishfolk/jumpy/compare/v0.4.2...v0.5.0

    Source code(tar.gz)
    Source code(zip)
    jumpy-v0.5.0-aarch64-apple-darwin.tar.gz(23.65 MB)
    jumpy-v0.5.0-aarch64-apple-darwin.tar.gz.sha256(65 bytes)
    jumpy-v0.5.0-x86_64-apple-darwin.tar.gz(24.07 MB)
    jumpy-v0.5.0-x86_64-apple-darwin.tar.gz.sha256(65 bytes)
    jumpy-v0.5.0-x86_64-pc-windows-msvc.zip(23.19 MB)
    jumpy-v0.5.0-x86_64-pc-windows-msvc.zip.sha256(65 bytes)
    jumpy-v0.5.0-x86_64-unknown-linux-gnu.tar.gz(25.19 MB)
    jumpy-v0.5.0-x86_64-unknown-linux-gnu.tar.gz.sha256(65 bytes)
  • main(Nov 4, 2022)

    This is the developer preview build of Jumpy.

    Every time code gets merged, this gets re-built. It's 100% unstable, but you're welcome to help test it out!

    We also run a multiplayer server that matches this preview version of the game. You can use it by going to the "Settings" menu in the game, clicking the "Networking" tab, and setting the matchmaking server to spicy-lobster.katharostech.com:65534 ( this address will change in the future ).

    If you use the SpicyLauncher, you can update the developer version if it changes by uninstalling it, and re-installing it.

    Source code(tar.gz)
    Source code(zip)
    jumpy-main-aarch64-apple-darwin.tar.gz(23.75 MB)
    jumpy-main-aarch64-apple-darwin.tar.gz.sha256(65 bytes)
    jumpy-main-x86_64-apple-darwin.tar.gz(24.16 MB)
    jumpy-main-x86_64-apple-darwin.tar.gz.sha256(65 bytes)
    jumpy-main-x86_64-pc-windows-msvc.zip(23.26 MB)
    jumpy-main-x86_64-pc-windows-msvc.zip.sha256(65 bytes)
    jumpy-main-x86_64-unknown-linux-gnu.tar.gz(25.33 MB)
    jumpy-main-x86_64-unknown-linux-gnu.tar.gz.sha256(65 bytes)
  • v0.4.3(Aug 2, 2022)

    Highlights

    This is a pre-release before 0.5 for renaming the repository to jumpy

    • Rename FishFight to FishFight: Jumpy (or jumpy as short)
      • See #406

    What's Changed

    • Binary is renamed to jumpy (or jumpy.exe)
    • Environment variables have been updated.
      • FISHFIGHT_CONFIG -> JUMPY_CONFIG
      • FISHFIGHT_ASSETS -> JUMPY_ASSETS
      • FISHFIGHT_MODS -> JUMPY_MODS
    • Default file name for mods is updated to jumpy_mod.json.

    Full Changelog: https://github.com/fishfight/FishFight/compare/v0.4.2...v0.4.3

    Source code(tar.gz)
    Source code(zip)
    jumpy-v0.4.3-aarch64-apple-darwin.tar.gz(16.45 MB)
    jumpy-v0.4.3-aarch64-apple-darwin.tar.gz.sha256(65 bytes)
    jumpy-v0.4.3-i686-pc-windows-msvc.zip(16.64 MB)
    jumpy-v0.4.3-i686-pc-windows-msvc.zip.sha256(65 bytes)
    jumpy-v0.4.3-x86_64-apple-darwin.tar.gz(16.57 MB)
    jumpy-v0.4.3-x86_64-apple-darwin.tar.gz.sha256(65 bytes)
    jumpy-v0.4.3-x86_64-pc-windows-msvc.zip(16.71 MB)
    jumpy-v0.4.3-x86_64-pc-windows-msvc.zip.sha256(65 bytes)
    jumpy-v0.4.3-x86_64-unknown-linux-gnu.tar.gz(16.65 MB)
    jumpy-v0.4.3-x86_64-unknown-linux-gnu.tar.gz.sha256(65 bytes)
  • v0.4.2(Mar 4, 2022)

    Highlights

    • New item type: hats! 👒 🧢 🎩 #381
    • New character: Lionfishy 🐠
    • Autotiling #382

    What's Changed

    • Hats and lionfish by @zTecna
    • some networking stuff and game version check for mods by @olefasting in https://github.com/fishfight/FishFight/pull/373
    • Use the package version as game version by @orhun in https://github.com/fishfight/FishFight/pull/374
    • tweens/keyframe animations by @olefasting in https://github.com/fishfight/FishFight/pull/375
    • bump version in Cargo.toml by @olefasting in https://github.com/fishfight/FishFight/pull/376
    • Some fixes to tweening algo by @olefasting in https://github.com/fishfight/FishFight/pull/377
    • Animation fix by @olefasting in https://github.com/fishfight/FishFight/pull/379
    • wasm with wasm-bindgen by @olefasting in https://github.com/fishfight/FishFight/pull/380
    • Hats! by @olefasting in https://github.com/fishfight/FishFight/pull/381
    • Make player fall away from the direction of impact by @olefasting in https://github.com/fishfight/FishFight/pull/383
    • Update PACKAGING.md about environment variables by @orhun in https://github.com/fishfight/FishFight/pull/385
    • add some more hats and add grace time to hat pickup by @olefasting in https://github.com/fishfight/FishFight/pull/386
    • add some more hats by @olefasting in https://github.com/fishfight/FishFight/pull/387
    • remappable controls by @olefasting in https://github.com/fishfight/FishFight/pull/389
    • Update PACKAGING.md about build dependencies by @orhun in https://github.com/fishfight/FishFight/pull/391
    • Add libudev to CI/CD dependencies by @orhun in https://github.com/fishfight/FishFight/pull/390
    • toml config files by @olefasting in https://github.com/fishfight/FishFight/pull/392
    • Add WindowConfig type to Config by @olefasting in https://github.com/fishfight/FishFight/pull/393
    • Autotiling by @Zac8668 in https://github.com/fishfight/FishFight/pull/382
    • Disable debug builds by @orhun in https://github.com/fishfight/FishFight/pull/397
    • Include licenses folder in release archives by @orhun in https://github.com/fishfight/FishFight/pull/395
    • Update license copyright years by @orhun in https://github.com/fishfight/FishFight/pull/396
    • Add RELEASE.md by @orhun in https://github.com/fishfight/FishFight/pull/399
    • Add Lionfishy character by @zTecna in https://github.com/fishfight/FishFight/pull/398
    • Update badge links in README.md by @orhun in https://github.com/fishfight/FishFight/pull/400
    • Prepare for v0.4.2 release by @orhun in https://github.com/fishfight/FishFight/pull/401

    New Contributors

    • @zTecna made their first contribution in https://github.com/fishfight/FishFight/pull/398

    Full Changelog: https://github.com/fishfight/FishFight/compare/v0.4.1...v0.4.2

    Source code(tar.gz)
    Source code(zip)
    fishfight-v0.4.2-aarch64-apple-darwin.tar.gz(16.44 MB)
    fishfight-v0.4.2-aarch64-apple-darwin.tar.gz.sha256(65 bytes)
    fishfight-v0.4.2-i686-pc-windows-msvc.zip(16.66 MB)
    fishfight-v0.4.2-i686-pc-windows-msvc.zip.sha256(65 bytes)
    fishfight-v0.4.2-x86_64-apple-darwin.tar.gz(16.55 MB)
    fishfight-v0.4.2-x86_64-apple-darwin.tar.gz.sha256(65 bytes)
    fishfight-v0.4.2-x86_64-pc-windows-msvc.zip(16.71 MB)
    fishfight-v0.4.2-x86_64-pc-windows-msvc.zip.sha256(65 bytes)
    fishfight-v0.4.2-x86_64-unknown-linux-gnu.tar.gz(16.62 MB)
    fishfight-v0.4.2-x86_64-unknown-linux-gnu.tar.gz.sha256(65 bytes)
  • v0.4.1(Feb 9, 2022)

    Highlights

    • Mod support (Proper documentation is pending. See #366 for more info)

    What's Changed

    • Passive effects can be spawned on hit with active effects by @olefasting in https://github.com/fishfight/FishFight/pull/359
    • Small fix to error types by @olefasting in https://github.com/fishfight/FishFight/pull/360
    • Some cleanup of player state by @olefasting in https://github.com/fishfight/FishFight/pull/361
    • Rename network-core to fishfight-core by @olefasting in https://github.com/fishfight/FishFight/pull/362
    • Expose async_trait in core by @olefasting in https://github.com/fishfight/FishFight/pull/363
    • Cannon juicing by @legendiguess in https://github.com/fishfight/FishFight/pull/364
    • Mod loading by @olefasting in https://github.com/fishfight/FishFight/pull/366
    • Remove schema files from release assets by @orhun in https://github.com/fishfight/FishFight/pull/365
    • Store player characters in a hash map in stead of a vec by @olefasting in https://github.com/fishfight/FishFight/pull/367
    • Add update method to tool trait by @olefasting in https://github.com/fishfight/FishFight/pull/368
    • Some more outlining for Zac by @olefasting in https://github.com/fishfight/FishFight/pull/369

    Full Changelog: https://github.com/fishfight/FishFight/compare/v0.4...v0.4.1

    Source code(tar.gz)
    Source code(zip)
    fishfight-v0.4.1-aarch64-apple-darwin.tar.gz(16.18 MB)
    fishfight-v0.4.1-aarch64-apple-darwin.tar.gz.sha256(65 bytes)
    fishfight-v0.4.1-i686-pc-windows-msvc.zip(16.38 MB)
    fishfight-v0.4.1-i686-pc-windows-msvc.zip.sha256(65 bytes)
    fishfight-v0.4.1-x86_64-apple-darwin.tar.gz(16.29 MB)
    fishfight-v0.4.1-x86_64-apple-darwin.tar.gz.sha256(65 bytes)
    fishfight-v0.4.1-x86_64-pc-windows-msvc.zip(16.42 MB)
    fishfight-v0.4.1-x86_64-pc-windows-msvc.zip.sha256(65 bytes)
    fishfight-v0.4.1-x86_64-unknown-linux-gnu.tar.gz(16.36 MB)
    fishfight-v0.4.1-x86_64-unknown-linux-gnu.tar.gz.sha256(65 bytes)
  • v0.4(Feb 1, 2022)

    Highlights

    • ECS refactor (hecs) https://github.com/fishfight/FishFight/pull/326
    • ARCHITECTURE.md
    • PACKAGING.md
    • First version of Launcher for easier playtesting & future mods distribution.
    • In-game credits screen https://github.com/fishfight/FishFight/pull/315
    • Fish World Pack released on Itch, including full OST.

    What's Changed

    • Improve automated releases by @orhun in https://github.com/fishfight/FishFight/pull/298
    • Tweak weapon mount position by @legendiguess in https://github.com/fishfight/FishFight/pull/299
    • Fix spawn point naming for editor chapter by @tigleym in https://github.com/fishfight/FishFight/pull/301
    • Add CMake to Installation Guide by @kadiryazici in https://github.com/fishfight/FishFight/pull/306
    • Add Vscode to Gitignore by @kadiryazici in https://github.com/fishfight/FishFight/pull/307
    • Update LICENSE by @orhun in https://github.com/fishfight/FishFight/pull/308
    • Add death animations by @legendiguess in https://github.com/fishfight/FishFight/pull/305
    • Juicing kick bomb by @legendiguess in https://github.com/fishfight/FishFight/pull/310
    • Rename /docs folder to /licenses by @erlend-sh in https://github.com/fishfight/FishFight/pull/312
    • Create CREDITS.md by @erlend-sh in https://github.com/fishfight/FishFight/pull/313
    • Update SUMMARY.md by @erlend-sh in https://github.com/fishfight/FishFight/pull/314
    • Add in-game credits screen by @tigleym in https://github.com/fishfight/FishFight/pull/315
    • Update CREDITS by @erlend-sh in https://github.com/fishfight/FishFight/pull/318
    • Juicing sniper rifle by @legendiguess in https://github.com/fishfight/FishFight/pull/317
    • Have in-game credits AnonymousPro-Regular font instead by @tigleym in https://github.com/fishfight/FishFight/pull/316
    • Fix formatting via running rustfmt by @orhun in https://github.com/fishfight/FishFight/pull/319
    • Update README.md by @orhun in https://github.com/fishfight/FishFight/pull/325
    • Remove bundled-sdl2 feature from fishsticks dependency by @orhun in https://github.com/fishfight/FishFight/pull/324
    • ECS refactor by @olefasting in https://github.com/fishfight/FishFight/pull/326
    • Support loading the credits font from a custom assets directory by @orhun in https://github.com/fishfight/FishFight/pull/327
    • Fix gravity and jump by @olefasting in https://github.com/fishfight/FishFight/pull/328
    • Update Cargo.toml & remove unused dependencies by @orhun in https://github.com/fishfight/FishFight/pull/331
    • Update README gif to new graphics by @olefasting in https://github.com/fishfight/FishFight/pull/332
    • Change gif in readme by @olefasting in https://github.com/fishfight/FishFight/pull/333
    • Update preview gif in README.md by @orhun in https://github.com/fishfight/FishFight/pull/334
    • Fix draw order by @olefasting in https://github.com/fishfight/FishFight/pull/335
    • Add ARCHITECTURE.md by @olefasting in https://github.com/fishfight/FishFight/pull/338
    • Add PACKAGING.md by @orhun in https://github.com/fishfight/FishFight/pull/339
    • Reimplement passive effects by @olefasting in https://github.com/fishfight/FishFight/pull/340
    • cleanup of source folder and adjustement of machine gun mount offset by @olefasting in https://github.com/fishfight/FishFight/pull/341
    • Reimplement juicing and fixes by @legendiguess in https://github.com/fishfight/FishFight/pull/342
    • Fix particle system by @olefasting in https://github.com/fishfight/FishFight/pull/343
    • Update book by @olefasting in https://github.com/fishfight/FishFight/pull/344
    • Mines juicing by @legendiguess in https://github.com/fishfight/FishFight/pull/345
    • fix effects platform collision by @olefasting in https://github.com/fishfight/FishFight/pull/346
    • Fix jump not being interrupted when attacking by @olefasting in https://github.com/fishfight/FishFight/pull/347
    • Add debug draw for collider effects and remove segmets from circle collider by @olefasting in https://github.com/fishfight/FishFight/pull/348
    • Use ECS for effect debug shapes in stead of static containers by @olefasting in https://github.com/fishfight/FishFight/pull/349
    • Add drawable component to wrap the various sprite types by @olefasting in https://github.com/fishfight/FishFight/pull/350
    • Add getters to Drawable by @olefasting in https://github.com/fishfight/FishFight/pull/351
    • Add network-core crate by @olefasting in https://github.com/fishfight/FishFight/pull/353
    • Update CI/CD workflows by @orhun in https://github.com/fishfight/FishFight/pull/352
    • bump rust edition up to 2021 by @olefasting in https://github.com/fishfight/FishFight/pull/354
    • some fixes to api trait by @olefasting in https://github.com/fishfight/FishFight/pull/355
    • Some WASM stuff and networking API changes by @olefasting in https://github.com/fishfight/FishFight/pull/356
    • Update README.md about launcher by @orhun in https://github.com/fishfight/FishFight/pull/357
    • Clean up files by @orhun in https://github.com/fishfight/FishFight/pull/358

    New Contributors

    • @kadiryazici made their first contribution in https://github.com/fishfight/FishFight/pull/306

    Full Changelog: https://github.com/fishfight/FishFight/compare/v0.3...v0.4

    Source code(tar.gz)
    Source code(zip)
    fishfight-v0.4-aarch64-apple-darwin.tar.gz(16.15 MB)
    fishfight-v0.4-aarch64-apple-darwin.tar.gz.sha256(65 bytes)
    fishfight-v0.4-i686-pc-windows-msvc.zip(16.34 MB)
    fishfight-v0.4-i686-pc-windows-msvc.zip.sha256(65 bytes)
    fishfight-v0.4-x86_64-apple-darwin.tar.gz(16.25 MB)
    fishfight-v0.4-x86_64-apple-darwin.tar.gz.sha256(65 bytes)
    fishfight-v0.4-x86_64-pc-windows-msvc.zip(16.38 MB)
    fishfight-v0.4-x86_64-pc-windows-msvc.zip.sha256(65 bytes)
    fishfight-v0.4-x86_64-unknown-linux-gnu.tar.gz(16.32 MB)
    fishfight-v0.4-x86_64-unknown-linux-gnu.tar.gz.sha256(65 bytes)
  • v0.3(Dec 11, 2021)

    Short changelog: https://fishfight.github.io/FishFight/09-12-2021.html

    What's Changed

    • Variable tweaks by @erlend-sh in https://github.com/fishfight/FishFight/pull/1
    • score counter by @olefasting in https://github.com/fishfight/FishFight/pull/4
    • Remove empty pickup.rs file by @64kramsystem in https://github.com/fishfight/FishFight/pull/6
    • gamepad-rs: Exit immediately from joystick threads, on Linux, if the device path doesn't exist by @64kramsystem in https://github.com/fishfight/FishFight/pull/5
    • Add grenades by @olefasting in https://github.com/fishfight/FishFight/pull/7
    • Add mines by @olefasting in https://github.com/fishfight/FishFight/pull/8
    • fixes to merge (some use's got dropped in main.rs) by @olefasting in https://github.com/fishfight/FishFight/pull/9
    • gamepad-src Make Controller#info readonly by @64kramsystem in https://github.com/fishfight/FishFight/pull/16
    • Add sproinger item by @olefasting in https://github.com/fishfight/FishFight/pull/10
    • Add bouncyness to PhysicsObject and make grenades bouncy by @olefasting in https://github.com/fishfight/FishFight/pull/18
    • Add crates and shoes by @olefasting in https://github.com/fishfight/FishFight/pull/15
    • Added 6 maps by @SirGiraffey in https://github.com/fishfight/FishFight/pull/20
    • Muscet tweaks by @olefasting in https://github.com/fishfight/FishFight/pull/21
    • Curse weapon by @64kramsystem in https://github.com/fishfight/FishFight/pull/22
    • Make curse single use (on shoot, it will disappear) by @64kramsystem in https://github.com/fishfight/FishFight/pull/24
    • Add machine gun by @olefasting in https://github.com/fishfight/FishFight/pull/23
    • Add Cannon weapon by @64kramsystem in https://github.com/fishfight/FishFight/pull/12
    • Curse: Chase enemy by @64kramsystem in https://github.com/fishfight/FishFight/pull/25
    • Add spread to machine gun by @olefasting in https://github.com/fishfight/FishFight/pull/27
    • Player 1 keyboard control: Encode fire tapping by @64kramsystem in https://github.com/fishfight/FishFight/pull/28
    • Fix continuous fire by @olefasting in https://github.com/fishfight/FishFight/pull/32
    • Add docs folder and current version of physics documentation by @olefasting in https://github.com/fishfight/FishFight/pull/31
    • Add kick bombs by @olefasting in https://github.com/fishfight/FishFight/pull/29
    • Add continous fire for gamepad by @olefasting in https://github.com/fishfight/FishFight/pull/34
    • Add Jellyfish weapon by @64kramsystem in https://github.com/fishfight/FishFight/pull/36
    • Remove damage from most thrown items by @olefasting in https://github.com/fishfight/FishFight/pull/38
    • Clean unused fields (origin_pos), causing compiler warnings by @64kramsystem in https://github.com/fishfight/FishFight/pull/39
    • Seed random number generator by @64kramsystem in https://github.com/fishfight/FishFight/pull/40
    • Add Galleon weapon by @64kramsystem in https://github.com/fishfight/FishFight/pull/41
    • Shark Rain weapon by @64kramsystem in https://github.com/fishfight/FishFight/pull/45
    • Add environmental weapons document by @64kramsystem in https://github.com/fishfight/FishFight/pull/46
    • Fix bullet spawn pos on machine gun by @olefasting in https://github.com/fishfight/FishFight/pull/52
    • Add crouching and down+jump to descend by @olefasting in https://github.com/fishfight/FishFight/pull/50
    • Added TurtleShell armor item by @cdsupina in https://github.com/fishfight/FishFight/pull/53
    • Add weapon pickup hitboxes by @olefasting in https://github.com/fishfight/FishFight/pull/56
    • Add sliding on ground by @olefasting in https://github.com/fishfight/FishFight/pull/54
    • Small correction to physics docs by @olefasting in https://github.com/fishfight/FishFight/pull/59
    • Add Circle shape for collision detection by @olefasting in https://github.com/fishfight/FishFight/pull/60
    • Volcano environmental weapon (MVP) by @64kramsystem in https://github.com/fishfight/FishFight/pull/57
    • Circular explosions by @olefasting in https://github.com/fishfight/FishFight/pull/61
    • Kickbombs and thrown weapons disarm players by @olefasting in https://github.com/fishfight/FishFight/pull/68
    • Add slippery seaweed by @olefasting in https://github.com/fishfight/FishFight/pull/67
    • Minor cleanups (mostly, hitboxes) by @64kramsystem in https://github.com/fishfight/FishFight/pull/62
    • Add Cannonball to erupted items by @64kramsystem in https://github.com/fishfight/FishFight/pull/69
    • Refactored Circle so that it matches up with the Rect API by @olefasting in https://github.com/fishfight/FishFight/pull/70
    • New weapons graphics by @olefasting in https://github.com/fishfight/FishFight/pull/71
    • Added back old actions and new contrib info by @grufkork in https://github.com/fishfight/FishFight/pull/87
    • Granular jump height control by @grufkork in https://github.com/fishfight/FishFight/pull/85
    • Even BETTER and more flexible screenshake by @grufkork in https://github.com/fishfight/FishFight/pull/86
    • Move assets for old weapons (added by @64kramsystem) to temporary assets directory by @64kramsystem in https://github.com/fishfight/FishFight/pull/89
    • Create README.md by @erlend-sh in https://github.com/fishfight/FishFight/pull/91
    • Add CC BY-NC media asset license by @erlend-sh in https://github.com/fishfight/FishFight/pull/90
    • improve default key bindings by @joseluis in https://github.com/fishfight/FishFight/pull/93
    • Re-add the sounds, apply where last left off by @ArcOfDream in https://github.com/fishfight/FishFight/pull/94
    • Rename crate to fishfight by @orhun in https://github.com/fishfight/FishFight/pull/95
    • Gamepad support by @not-fl3 in https://github.com/fishfight/FishFight/pull/96
    • Added netcode explanantion by @ValorZard in https://github.com/fishfight/FishFight/pull/102
    • Network connection UI by @not-fl3 in https://github.com/fishfight/FishFight/pull/103
    • Turtle Shell reimplementation by @Chosenundead15 in https://github.com/fishfight/FishFight/pull/105
    • Set the window title to "FishFight" by @orhun in https://github.com/fishfight/FishFight/pull/106
    • Create mdbook and transfer docs by @cdsupina in https://github.com/fishfight/FishFight/pull/107
    • prevent crash on invalid opponent address for relay connection by @orhun in https://github.com/fishfight/FishFight/pull/111
    • Shoes reimplementation by @legendiguess in https://github.com/fishfight/FishFight/pull/112
    • Grenades by @Chosenundead15 in https://github.com/fishfight/FishFight/pull/114
    • Fix shoes drawing rotation by @legendiguess in https://github.com/fishfight/FishFight/pull/115
    • CI: add linux, remove sourcehut by @not-fl3 in https://github.com/fishfight/FishFight/pull/126
    • Standardised explosives by @grufkork in https://github.com/fishfight/FishFight/pull/113
    • Added release profile checks by @grufkork in https://github.com/fishfight/FishFight/pull/130
    • Put mines back. by @kindaro in https://github.com/fishfight/FishFight/pull/117
    • Support specifying the assets directory at runtime by @orhun in https://github.com/fishfight/FishFight/pull/134
    • Volcano by @Chosenundead15 in https://github.com/fishfight/FishFight/pull/133
    • Reimplement Galleon Weapon by @Zac8668 in https://github.com/fishfight/FishFight/pull/131
    • Jellyfish reimplementation by @legendiguess in https://github.com/fishfight/FishFight/pull/138
    • Use dynamic asset location for the jellyfish asset by @orhun in https://github.com/fishfight/FishFight/pull/140
    • Reimplement Shark Rain by @Zac8668 in https://github.com/fishfight/FishFight/pull/141
    • Add grace time for weapon pick while in mid-air by @orhun in https://github.com/fishfight/FishFight/pull/143
    • Sniper weapon tutorial by @cdsupina in https://github.com/fishfight/FishFight/pull/136
    • Level editor (WIP) by @olefasting in https://github.com/fishfight/FishFight/pull/157
    • Changed collision map layer prop to bool by @olefasting in https://github.com/fishfight/FishFight/pull/158
    • Fix test_level by @olefasting in https://github.com/fishfight/FishFight/pull/159
    • Automate github releases on tag-pushes. by @Animeshz in https://github.com/fishfight/FishFight/pull/161
    • Level editor EditorTool API by @olefasting in https://github.com/fishfight/FishFight/pull/163
    • Fixed bug in main menu tab selection (index bug, not reported gpu crash) by @olefasting in https://github.com/fishfight/FishFight/pull/165
    • Fixed map draw order and a bug in delete tile action by @olefasting in https://github.com/fishfight/FishFight/pull/166
    • Some more fixes to tools by @olefasting in https://github.com/fishfight/FishFight/pull/168
    • Add an action for publishing Fish Fight mdbook by @tigleym in https://github.com/fishfight/FishFight/pull/171
    • Add item entries to items page in book by @cdsupina in https://github.com/fishfight/FishFight/pull/170
    • Replace hex package color decoding by @trs in https://github.com/fishfight/FishFight/pull/172
    • Update contributing.md by @erlend-sh in https://github.com/fishfight/FishFight/pull/173
    • Skip CI builds for markdown files by @orhun in https://github.com/fishfight/FishFight/pull/174
    • Animated Controls Page by @cdsupina in https://github.com/fishfight/FishFight/pull/175
    • Juicing musket by @legendiguess in https://github.com/fishfight/FishFight/pull/179
    • Life ring by @Chosenundead15 in https://github.com/fishfight/FishFight/pull/180
    • Add Flippers by @orhun in https://github.com/fishfight/FishFight/pull/181
    • Replace quad-gamepad with fishsticks by @PotatoTech in https://github.com/fishfight/FishFight/pull/177
    • Kickbomb reimplementation by @grufkork in https://github.com/fishfight/FishFight/pull/176
    • Add bouncy explosives by @grufkork in https://github.com/fishfight/FishFight/pull/184
    • Skip CI builds for json files by @orhun in https://github.com/fishfight/FishFight/pull/190
    • Update fishsticks dependency by @orhun in https://github.com/fishfight/FishFight/pull/189
    • Items api by @olefasting in https://github.com/fishfight/FishFight/pull/191
    • small fix to ai and some changes to item schema by @olefasting in https://github.com/fishfight/FishFight/pull/193
    • Move all item definitions to separate json files by @olefasting in https://github.com/fishfight/FishFight/pull/194
    • Remove some flattening from Items api by @olefasting in https://github.com/fishfight/FishFight/pull/196
    • Optional effect animations for weapons by @olefasting in https://github.com/fishfight/FishFight/pull/197
    • Fixes to collider offsets by @olefasting in https://github.com/fishfight/FishFight/pull/198
    • Reimplementation of kick bomb by @olefasting in https://github.com/fishfight/FishFight/pull/199
    • Adjust kick delay on triggered effect by @olefasting in https://github.com/fishfight/FishFight/pull/200
    • Fixes to triggered effect (kick bomb) by @olefasting in https://github.com/fishfight/FishFight/pull/206
    • Update the books tutorial to use the new API by @olefasting in https://github.com/fishfight/FishFight/pull/207
    • Fix pivot for Sprite and AnimationPlayer by @olefasting in https://github.com/fishfight/FishFight/pull/208
    • Some groundwork for equippable items and a fix to player animations by @olefasting in https://github.com/fishfight/FishFight/pull/209
    • Changes to effects and some debug features by @olefasting in https://github.com/fishfight/FishFight/pull/211
    • Add config file support by @orhun in https://github.com/fishfight/FishFight/pull/212
    • Equipped items and effects update by @olefasting in https://github.com/fishfight/FishFight/pull/213
    • Some quick fixes related to last merge by @olefasting in https://github.com/fishfight/FishFight/pull/214
    • Game menu by @olefasting in https://github.com/fishfight/FishFight/pull/216
    • Main menu improvements by @olefasting in https://github.com/fishfight/FishFight/pull/217
    • button input in main menu, fixes to weapon offsets and collisions wit… by @olefasting in https://github.com/fishfight/FishFight/pull/218
    • (Almost) finalized items API and turtle shell implementation by @olefasting in https://github.com/fishfight/FishFight/pull/219
    • Fix typo in the default config file name by @orhun in https://github.com/fishfight/FishFight/pull/220
    • UI improvements by @olefasting in https://github.com/fishfight/FishFight/pull/221
    • main menu background by @olefasting in https://github.com/fishfight/FishFight/pull/222
    • Add particle controller by @legendiguess in https://github.com/fishfight/FishFight/pull/223
    • Fix effect offset and refactor by @legendiguess in https://github.com/fishfight/FishFight/pull/225
    • Move get_weapon_effect_position fn from Player to Weapon by @legendiguess in https://github.com/fishfight/FishFight/pull/226
    • Update contributing guidelines for Fish Fight code by @tigleym in https://github.com/fishfight/FishFight/pull/227
    • Reimplement musket juicing by @legendiguess in https://github.com/fishfight/FishFight/pull/229
    • Add schema validation for JSON files by @orhun in https://github.com/fishfight/FishFight/pull/232
    • Add support for non-looping animations by @tigleym in https://github.com/fishfight/FishFight/pull/235
    • Juicing machine gun by @legendiguess in https://github.com/fishfight/FishFight/pull/238
    • Update the release workflow by @orhun in https://github.com/fishfight/FishFight/pull/240
    • Add "Editor" chapter for Fish Fight book by @tigleym in https://github.com/fishfight/FishFight/pull/241
    • Menu widget by @olefasting in https://github.com/fishfight/FishFight/pull/242
    • Main menu header by @olefasting in https://github.com/fishfight/FishFight/pull/243
    • Editor map objects by @olefasting in https://github.com/fishfight/FishFight/pull/244
    • Editor io actions by @olefasting in https://github.com/fishfight/FishFight/pull/245
    • Map backgrounds by @olefasting in https://github.com/fishfight/FishFight/pull/247
    • Map loading from editor menu by @olefasting in https://github.com/fishfight/FishFight/pull/248
    • import tilesets from existing maps by @olefasting in https://github.com/fishfight/FishFight/pull/249
    • Collision player event by @olefasting in https://github.com/fishfight/FishFight/pull/250
    • Some fixes to importing by @olefasting in https://github.com/fishfight/FishFight/pull/251
    • Reorder book summary by @erlend-sh in https://github.com/fishfight/FishFight/pull/236
    • Update contributing.md by @erlend-sh in https://github.com/fishfight/FishFight/pull/237
    • Player character definition and selection by @olefasting in https://github.com/fishfight/FishFight/pull/255
    • Simple Gun Weapon Section Updates by @cdsupina in https://github.com/fishfight/FishFight/pull/253
    • Dynamic loading of images by @olefasting in https://github.com/fishfight/FishFight/pull/256
    • Panel bg hack by @olefasting in https://github.com/fishfight/FishFight/pull/257
    • New player sprites by @olefasting in https://github.com/fishfight/FishFight/pull/258
    • rename player characters by @olefasting in https://github.com/fishfight/FishFight/pull/259
    • Add background to level selection by @olefasting in https://github.com/fishfight/FishFight/pull/260
    • remove nanoserde dependency by @olefasting in https://github.com/fishfight/FishFight/pull/261
    • fixes to effects and items data models by @olefasting in https://github.com/fishfight/FishFight/pull/262
    • Update ff-particles dependency by @olefasting in https://github.com/fishfight/FishFight/pull/263
    • Projectile particle fix by @olefasting in https://github.com/fishfight/FishFight/pull/264
    • hot reload resources from main menu or by event by @olefasting in https://github.com/fishfight/FishFight/pull/266
    • Animation player on particle controllers by @olefasting in https://github.com/fishfight/FishFight/pull/267
    • some fixes to previous commit by @olefasting in https://github.com/fishfight/FishFight/pull/268
    • one more fix by @olefasting in https://github.com/fishfight/FishFight/pull/269
    • Added the BlunderBuss by @billyb2 in https://github.com/fishfight/FishFight/pull/270
    • Juice book by @grufkork in https://github.com/fishfight/FishFight/pull/254
    • Add Contributing Art Section by @cdsupina in https://github.com/fishfight/FishFight/pull/271
    • Editor polishing by @olefasting in https://github.com/fishfight/FishFight/pull/273
    • Object placement tool by @olefasting in https://github.com/fishfight/FishFight/pull/274
    • equipped items will have animations set to the same id as the player by @olefasting in https://github.com/fishfight/FishFight/pull/275
    • some updates to the editor section of the book by @olefasting in https://github.com/fishfight/FishFight/pull/276
    • json error type by @olefasting in https://github.com/fishfight/FishFight/pull/277
    • some more convenience/helpers stuff related to parsing of json by @olefasting in https://github.com/fishfight/FishFight/pull/278
    • cleanup of editor windows and a fix to dragging of objects by @olefasting in https://github.com/fishfight/FishFight/pull/279
    • apply scale correctly when converting position to screen space by @olefasting in https://github.com/fishfight/FishFight/pull/280
    • some ui fixes before release by @olefasting in https://github.com/fishfight/FishFight/pull/281
    • formatting by @olefasting in https://github.com/fishfight/FishFight/pull/282
    • disable tileset props and add icon sketches by @olefasting in https://github.com/fishfight/FishFight/pull/283
    • Tile attributes by @olefasting in https://github.com/fishfight/FishFight/pull/285
    • Update fishsticks dependency by @PotatoTech in https://github.com/fishfight/FishFight/pull/284
    • add icons for layer visibility by @olefasting in https://github.com/fishfight/FishFight/pull/286
    • fix color and size of layer visibility icons by @olefasting in https://github.com/fishfight/FishFight/pull/287
    • Is_redundant check on tile attributes by @olefasting in https://github.com/fishfight/FishFight/pull/288
    • New editor icons by @olefasting in https://github.com/fishfight/FishFight/pull/289
    • fix draw order of object layers in editor by @olefasting in https://github.com/fishfight/FishFight/pull/290
    • fix potential bug in indexing by @olefasting in https://github.com/fishfight/FishFight/pull/291
    • Update editor documentation by @tigleym in https://github.com/fishfight/FishFight/pull/292
    • Spawn points fix by @olefasting in https://github.com/fishfight/FishFight/pull/295
    • Grenades juicing by @legendiguess in https://github.com/fishfight/FishFight/pull/294
    • Draft of Release Notes by @cdsupina in https://github.com/fishfight/FishFight/pull/293

    New Contributors

    • @erlend-sh made their first contribution in https://github.com/fishfight/FishFight/pull/1
    • @olefasting made their first contribution in https://github.com/fishfight/FishFight/pull/4
    • @64kramsystem made their first contribution in https://github.com/fishfight/FishFight/pull/6
    • @SirGiraffey made their first contribution in https://github.com/fishfight/FishFight/pull/20
    • @cdsupina made their first contribution in https://github.com/fishfight/FishFight/pull/53
    • @joseluis made their first contribution in https://github.com/fishfight/FishFight/pull/93
    • @orhun made their first contribution in https://github.com/fishfight/FishFight/pull/95
    • @not-fl3 made their first contribution in https://github.com/fishfight/FishFight/pull/96
    • @ValorZard made their first contribution in https://github.com/fishfight/FishFight/pull/102
    • @Chosenundead15 made their first contribution in https://github.com/fishfight/FishFight/pull/105
    • @legendiguess made their first contribution in https://github.com/fishfight/FishFight/pull/112
    • @kindaro made their first contribution in https://github.com/fishfight/FishFight/pull/117
    • @Zac8668 made their first contribution in https://github.com/fishfight/FishFight/pull/131
    • @Animeshz made their first contribution in https://github.com/fishfight/FishFight/pull/161
    • @tigleym made their first contribution in https://github.com/fishfight/FishFight/pull/171
    • @trs made their first contribution in https://github.com/fishfight/FishFight/pull/172
    • @PotatoTech made their first contribution in https://github.com/fishfight/FishFight/pull/177
    • @billyb2 made their first contribution in https://github.com/fishfight/FishFight/pull/270

    Full Changelog: https://github.com/fishfight/FishFight/commits/v0.3

    Source code(tar.gz)
    Source code(zip)
    fishfight-v0.3-aarch64-apple-darwin.tar.gz(13.96 MB)
    fishfight-v0.3-aarch64-apple-darwin.tar.gz.sha256(65 bytes)
    fishfight-v0.3-i686-pc-windows-msvc.zip(14.05 MB)
    fishfight-v0.3-i686-pc-windows-msvc.zip.sha256(65 bytes)
    fishfight-v0.3-x86_64-apple-darwin.tar.gz(14.07 MB)
    fishfight-v0.3-x86_64-apple-darwin.tar.gz.sha256(65 bytes)
    fishfight-v0.3-x86_64-pc-windows-msvc.zip(14.10 MB)
    fishfight-v0.3-x86_64-pc-windows-msvc.zip.sha256(65 bytes)
    fishfight-v0.3-x86_64-unknown-linux-gnu.tar.gz(14.13 MB)
    fishfight-v0.3-x86_64-unknown-linux-gnu.tar.gz.sha256(65 bytes)
A 2d top-down shooter written in Bevy, capable of handling 100K enemies

Bevy 2D Shooter This is a 2d top-down shooter written in Rust using the Bevy game engine. It's capable of handling 100K enemies and uses a kd-tree to

Bones-ai 41 Jul 21, 2024
Small game where you play a big spider chasing small spiders, written in Rust and Macroquad.

Ludum Dare #49 Compo entry - Procedural Spider Small game where you play a big spider chasing small spiders. Each spider you catch makes you bigger! C

Jakub Arnold 16 Sep 5, 2022
Sci-fi run 'n' gun action RPG created in Rust, using Macroquad

Capstone - Twilight of the Archons This is an action/run 'n' gun RPG, created in Rust using macroquad. The future holds huge boss fights, and a mind-n

Ole A. Sjo Fasting 58 Dec 5, 2022
Roguelike Game in Rust using macroquad.rs

Roguelike Game in Rust using macroquad.rs Introduction Welcome to our roguelike game developed in Rust! This project aims to provide an engaging gamin

Andrea Pollini 11 Aug 1, 2023
A framework for making games using Macroquad.

Omegaquad A framework for making games using Macroquad. After writing maybe 5 games and finding myself always going to the previous project to copy-pa

null 14 Oct 13, 2022
My first attempt at game programming. This is a simple target shooting game built in macroquad.

sergio My first attempt at game programming. This is a simple target shooting game built in macroquad. Rules Hit a target to increase score by 1 Score

Laz 1 Jan 11, 2022
Rust-lang Continuous Wavelet Transform(CWT) library inspired by fCWT.

fastcwt Rust-lang Continuous Wavelet Transform(CWT) library inspired by fCWT. This crate is a direct translation of fCWT Library written in C++ by Art

null 3 May 2, 2023
2-player game made with Rust and "ggez" engine, based on "Conway's Game of Life"

fight-for-your-life A 2-player game based on the "Conway's Game of Life", made with Rust and the game engine "ggez". Create shapes on the grid that wi

Petros 3 Oct 25, 2021
An opinionated 2D sparse grid made for use with Bevy. For storing and querying entities

bevy_sparse_grid_2d An opinionated 2D sparse grid made for use with Bevy. For storing and querying entities. Personally, I'm using it for simple stupi

Johan Klokkhammer Helsing 5 Feb 26, 2023
Simple retro game made using Rust bracket-lib by following "Herbert Wolverson's Hands on Rust" book.

Flappy Dragon Code from This program is a result of a tutorial i followed from Herbert Wolverson's Hands-on Rust Effective Learning through 2D Game De

Praneeth Chinthaka Ranasinghe 1 Feb 7, 2022
Endless Trial is a simple 2D bullet-hell-like game made in Rust with Tetra.

Endless Trial Endless Trial is a simple 2D bullet-hell-like game made in Rust with Tetra. To-do Sound Credits This project uses several free sprites:

Vinícius Miguel 11 Dec 14, 2022
A highly customizable snake clone made in Rust with the Bevy engine, named after the Japanese word for snake, 蛇.

Hebi ?? A highly customizable snake clone made in Rust with the Bevy engine, named after the Japanese word for snake, 蛇(へび). Configuration One of the

Elnu 79 Dec 7, 2022
UnoLife is a project made solely in rust for the Timathon jam.

UnoLife, the way of unordinary life This is the perfect app for anyone looking to spice up their life! It has a bunch of apps and features to help you

Bunch-of-cells 9 Nov 23, 2022
The official Game Engine of the Li Institution - Mostly made in Rust. Still WIP

Nengine The Nengine is an open sourced game engine made by the Li Institution. As of writing this, it is in very early development and is definitely n

Li Institution 1 Aug 28, 2022
A Serious (yet fun) Game made in Rust with Bevy

The Omega Ai Test for Brazilian Biome Image Classification PLAY A Serious (yet fun) Game made in Rust with Bevy How well do you know the Brazilian bio

Eliton Machado da Silva 2 Oct 24, 2022
An artisanally made PSD Importer for Godot, written in Rust

PSD Importer for Godot Speed up your import workflow ✨ An artisanally made PSD Importer for Godot 3.5, written in Rust. ✨ Getting Started | ?? Documen

Bram Dingelstad 4 Jan 26, 2023
A game made for the Rusty Jam https://itch.io/jam/rusty-jam

Murder-User Dungeon Introduction Tony is a young man. Finally having its own apartment is a good thing! He will learn how to live by himself and how t

null 62 Dec 6, 2022
2d Endless Runner Game made with Bevy Game Engine

Cute-runner A 2d Endless Runner Game made with Bevy Game Engine. Table of contents Project Infos Usage Screenshots Disclaimer Project Infos Date: Sept

JoaoMarinho 2 Jul 15, 2022
Unbalanced Brawl: autochess made for the LD49.

Unbalanced Brawl Unbalanced Brawl is an autochess made for LD49. See the entry page for gameplay details. Play on itch.io. Setup Put ChevyRay - Bird S

Louis Vignier 32 Jul 3, 2022