Game Development:
- Design
- Procedural generation:
- Physics:
Graphics:
Game Development:
Graphics:
Gfx and glium are Rust libraries that aim to provide a "rusty" abstraction over graphics programming APIs. | |
Both may look similar, and one of the questions that gets asked frequently on IRC is "what are the differences between gfx and glium?". Here is a comparison table: | |
| Gfx | Glium | |
-------------------------------------|-------------------------------------------------------------------------------------------------------------------|-------------------------------- | |
URL | <https://github.com/gfx-rs/gfx-rs> | <https://github.com/tomaka/glium> | |
History | Papers since Oct 2013. Really started in June 2014. | Private/confidential from Feb 201 |
use cgmath::{Vector3}; | |
use slog::{Logger}; | |
use cobalt_rendering::{Target, Texture, TextureFormat}; | |
use cobalt_rendering_world3d::{World, Model, Entity, Light, EntityId, LightId, Material}; | |
use input::{InputState, FrameInput}; | |
use player::{Player}; | |
pub struct GameWorld { | |
pub player: Player, |
Reasons why Rust can be faster than C++:
__restrict
)Rc<T>
) is lock-free because of being task-localjemalloc
(issue, RFC)It's worth noting that since Rust restricts pointers more than C does, the ordering restrictions on pointers could be relaxed. This hasn't been implemented in LLVM yet since most of the optimization work is based on leveraging the rules of C and C-family languages. Even if they did implement relaxations on the reordering rules, however, storing data in registers will still be easier to optimize.
http://www.cse.chalmers.se/~olaolss/get_file.php?filename=papers/clustered_shading_preprint.pdf
Obligatory disclaimer, this is all opinion and cannot possibly generalize to all problems, workflows, environments, etc. This is meant primarily as a launching point for an open-ended discussion on best practices in debugging code. This is a sketch of what may be a brief book that covers each point below with anecdotes, examples, and techniques.
The ultimate goal of a debugging session is to rule out possibilities until only one remains. All applications of best practices, techniques, and tools should be pointed at this purpose (contextualize all points below against this statement). Debugging is first and foremost a critical thinking problem, and presence of mind is your most critical asset. Establish a mental model but do not be afraid to invalidate it as the investigation unfolds.
See Zed editor: https://github.com/zed-industries/zed
blade-graphics
crate providing GPU abstractionI love Zed! It's lightning fast and has great UX. I want it to run as well on all major platforms. I'm currently using Linux most actively.