Bevy
- https://github.com/nicopap/cuicui/tree/fb1e175c76803a2050e2b5e8db89dade15bd8c37/richtext
- https://github.com/nicopap/cuicui/tree/fb1e175c76803a2050e2b5e8db89dade15bd8c37
- https://crates.io/crates/egui_dock
- RenderLayers good
- Wasm compression stuff
- https://crates.io/crates/bevy_mod_picking
- https://maciejglowka.com/blog/bevy-roguelike-tutorial-devlog-part-1/
- https://www.youtube.com/watch?v=BZYdJuggHfM
- https://bevyengine.org/learn/migration-guides/0.9-0.10/#migrate-engine-to-schedule-v3-stageless
- Bevy Basics Reflect - YouTube
- https://bevy-cheatbook.github.io/cookbook/cursor2world.html
- https://bevy-cheatbook.github.io/features/camera.html#zooming-the-camera
- https://www.youtube.com/watch?v=TQt-v_bFdao&list=PLVnntJRoP85JHGX7rGDu6LaF3fmDDbqyd
- https://bevy-cheatbook.github.io/introduction.html
- https://saveriomiroddi.github.io/learn_bevy_ecs_by_ripping_off/introduction.html
- https://mbuffett.com/posts/bevy-snake-tutorial/
- https://caballerocoll.com/blog/bevy-chess-tutorial/
- https://caballerocoll.com/blog/bevy-rhythm-game/
- https://maz.digital/bevy/list
- https://github.com/bevyengine/bevy/tree/latest/examples
- https://gist.github.com/cart/87c0215aa650170f09164fcffc252139
- https://promethia-27.github.io/dependency_injection_like_bevy_from_scratch/introductions.html
- https://github.com/bevyengine/bevy/blob/main/tests/how_to_test_systems.rs
- https://docs.rs/bevy/0.9.1/bevy/sprite/struct.MaterialMesh2dBundle.html
- https://lecoqjacob.github.io/bevy-gol-explore-part-1/
- https://lecoqjacob.github.io/bevy_shader_playground/bevy_gol_example/index.html
Steamworks stuff
- https://partner.steamgames.com/doc/features/cloud
- https://partner.steamgames.com/doc/features/achievements
- https://partner.steamgames.com/doc/features/microtransactions
- https://partner.steamgames.com/doc/sdk/api/example
- https://github.com/HouraiTeahouse/bevy-steamworks/issues/4
Cheatbook
- Error adding function as system
- 2D objects not displaying
- Borrow multiple fields from struct
- Do not use std::time::Instant::now() to get the current time. Get your timing information from Bevy, using Res<Time>.
- UV coordinates in Bevy
- In Bevy, the vertical axis for the pixels of textures / images, and when sampling textures in a shader, points downwards, from top to bottom. The origin is at the top left.
- This is inconsistent with the World-coordinate system used everywhere else in Bevy, where the Y axis points up.
- Same as wgpu as I was used to before anyway
- If the images of your 2D sprites are flipped (for whatever reason), you can correct that using Bevy’s sprite-flipping feature:
- ECS intro
- Granular as possible for multithreading
- Resource if componenent exist once
- Exclusive system, blocking but access to the entire world
- schedules
- System Order of Execution
- Resource initialization
- You can use empty structs to help you identify specific entities. These are known as “marker components”. Useful with query filters.
- Bundles are like “templates”, to make it easy to create entities with a common set of components. Note that you cannot query for a whole bundle. Bundles are just a convenience when creating the entities. Query for the individual component types that your system needs to access.
- Events Everything’s useful in here.
- Local Resources
- Local resources allow you to have per-system data. This data is not stored in the ECS World, but rather together with your system.
- Local<T> is a system parameter similar to ResMut<T>, which gives you full mutable access to an instance of some data type, that is independent from entities and components.
- The type must implement Default or FromWorld. It is automatically initialized.
- A system can have multiple Locals of the same type.
- Local<T> is always automatically initialized using the default value for the type. If you need specific data, you can use a closure instead. Rust closures that take system parameters are valid Bevy systems, just like standalone functions. Using a closure allows you to “move data into the function”.
- Run criteria outdated, ilyes merged in 0.10 etc, wait for rewrite
- States
- Change Detection
- System Piping
- ParamSet
- NonSend (probably will never need this)
- General Game Engine
- Coordinates: Right Handed
- 2D The X axis goes from left to right (+X points right). The Y axis goes from bottom to top (+Y points up). The Z axis goes from far to near (+Z points towards you, out of the screen). For 2D, the origin (X=0.0; Y=0.0) is at the center of the screen by default. When you are working with 2D sprites, you can put the background on Z=0.0, and place other sprites at increasing positive Z coordinates to layer them on top.
- UI For UI, Bevy follows the same convention as most other UI toolkits, the Web, etc. The origin is at the top left corner of the screen The Y axis points downwards X goes from 0.0 (left screen edge) to the number of screen pixels (right screen edge) Y goes from 0.0 (top screen edge) to the number of screen pixels (bottom screen edge) The units represent logical (compensated for DPI scaling) screen pixels. UI layout flows from top to bottom, similar to a web page.
- Transforms
- Visibility
- If you hide an entity that has children, they will also be hidden, regardless of what their individual Visibility value is set to.
- https://bevy-cheatbook.github.io/features/camera.html Viewport for letterboxing?
- Time and Timers - Unofficial Bevy Cheat Book
- Logging, Console Messages Basically what I know + some bevy stuff
- Transforms
- Fixed Timestep
- Coordinates: Right Handed
- https://bevy-cheatbook.github.io/assets/hot-reload.html
- Input
- Scan vs Key code
- https://bevy-cheatbook.github.io/patterns.html
- Cookbook
- https://bevy-cheatbook.github.io/platforms/windows.html
random
- Component Storage (Table/Sparse-Set) Probably almost always want table for us
- Schedules
- System Sets System Sets allow you to easily apply common properties to multiple systems, for purposes such as labeling, ordering, run criteria, and states.
Plugins
- https://github.com/FraserLee/bevy_sprite3d
- https://crates.io/crates/bevy_tasks
- https://github.com/leafwing-studios/leafwing-input-manager
- https://github.com/jewlexx/bevy-discord-rpc
- https://github.com/HouraiTeahouse/bevy-steamworks
- https://old.reddit.com/r/bevy/comments/11hrnmz/bevy_rustgpu_joins_the_fray_write_shaders_in/
- https://github.com/nicopap/bevy-debug-text-overlay
- https://github.com/RichoDemus/bevy-console
- https://github.com/aevyrie/bevy_framepace/tree/main
- https://github.com/BlackPhlox/bevy_midi
- https://github.com/makspll/bevy_mod_scripting
- https://github.com/Lucretiel/autodefault
- https://github.com/jkb0o/pecs
- https://github.com/SergioRibera/bevy_splash_screen
Assets loading
- https://github.com/NiklasEi/bevy_asset_loader
- https://github.com/IyesGames/iyes_progress (maybe unneeded thanks to asset_loader)
- https://github.com/hanabi1224/bevy_assets_bundler reference if we want to make an archive for the engine
SVG
VFX
a11y
FSM
Audio
Animations
Controls
Netcode
Physics
UI
- https://crates.io/crates/bevy-ui-navigation
- https://github.com/jakobhellermann/bevy_egui
- https://github.com/StarArawn/kayak_ui
Graphics
Probably don’t care
Tools
- https://github.com/jakobhellermann/bevy_editor_pls
- https://github.com/jakobhellermann/bevy-inspector-egui
- https://github.com/jakobhellermann/bevy_mod_debugdump
- https://github.com/jakobhellermann/bevycheck
3d stuff and whatnot
transparency_3d tonemapping spotlight spherical_area_lights pbr many_lights lines load_gltf lighting 3d_gizmos 3d_rotation 3d_scene 3d_shapes many_cubes many_foxes animated_fox empty empty_defaults skybox
Probably useful but too dumb to understand
component_change_detection apply_system_buffers atmospheric_fog compute_shader_game_of_life fog font_atlas_debug
Maybe useful
thread_pool_resources return_after_run (probably not that useful) animate_shader animated_transform audio (probably not same lib) audio_control (probably not same lib) cubic_curve custom_skinned_mesh custom_vertex_attribute decodable rotation scene scene_viewer screenshot spatial_audio_2d spatial_audio_3d
Buggy
texture_binding_array anti_aliasing blend_modes (probably useless, 3d) post_processing
could be useful but maybe no mobile
array_texture
Legit no idea
mesh2d mesh2d_manual mesh2d_vertex_color_texture minimising ??? no_prepass ?? orthographic?? overflow?? overflow_debug???
Cool examples
- bloom_2d
- 2d_shapes
- asset_loading
- async_compute
- bevymark breakout button char_input_events clear_color contributors custom_asset custom_asset_io custom_diagnostic custom_gltf_vertex_attribute custom_loop custom_query_param drag_and_drop ecs_guide event external_source_external_thread fixed_timestep flex_layout game_menu grid hierarchy iter_combinations keyboard_input keyboard_input_events keyboard_modifiers (press ctrl shift a) log_diagnostics logs low_power many_animated_sprites many_buttons many_glyphs many_sprites mouse_grab mouse_input_events move_sprite multiple_windows nondeterministic_system_order parallel_query parenting pixel_perfect plugin plugin_group reflection reflection_types relative_cursor_position removal_detection render_to_texture resizing run_conditions scale scale_factor_override split_screen sprite sprite_flipping sprite_sheet state system_closure system_param system_piping text text2d text_debug text_input text_pipeline text_wrap_debug texture texture_atlas timers transform translation transparency_2d transparency_ui transparent_window ui ui_scaling z_index window_resizing window_settings
All
shader_defs shader_instancing shader_material shader_material_glsl shader_material_screenspace_texture shader_prepass shadow_biases shadow_caster_receiver size_constraints trait_reflection transform_hierarchy two_passes update_gltf_scene vertex_colors wireframe without_winit
gamepad_input gamepad_input_events gamepad_rumble gamepad_viewer generic_reflection generic_system gltf_skinned_mesh touch_input touch_input_events