Skip to content

Commit c572bb6

Browse files
zicklagTekhnaeRaav
andauthored
feat: add new bones logo. (#520)
Co-authored-by: Tekhnae Raav <tekhnaeraav@katharostech.com>
1 parent a6c3ce7 commit c572bb6

File tree

3 files changed

+1377
-40
lines changed

3 files changed

+1377
-40
lines changed

README.md

Lines changed: 67 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
<div align="center">
2-
<img src="https://raw.githubusercontent.com/fishfolk/bones_branding/main/renders/logo-rect.svg" align="center" width="250px" />
2+
<img src="logo/bones_logo.svg" align="center" width="200px" />
33
<h1>Bones</h1>
44

5-
A 'meta-engine' framework made to facilitate the development of moddable, multiplayer 2D games.
5+
A 'meta-engine' framework made to facilitate the development of moddable,
6+
multiplayer 2D games.
67

78
[![Documentation](https://img.shields.io/badge/documentation-fishfolk.org-green.svg?labelColor=1e1c24&color=f3ee7a)](https://fishfolk.org/bones/overview/introduction/)
89
[![Crates.io](https://img.shields.io/crates/v/bones_lib?labelColor=1e1c24)](https://crates.io/crates/bones_lib)
@@ -15,31 +16,47 @@ A 'meta-engine' framework made to facilitate the development of moddable, multip
1516

1617
</div>
1718

18-
Initially borne out of [Jumpy](https://github.com/fishfolk/jumpy), Bones will eventually be the engine of choice for all [Fish Folk](https://github.com/fishfolk) games. It is suitable for any other games with similar requirements.
19+
Initially borne out of [Jumpy](https://github.com/fishfolk/jumpy), Bones will
20+
eventually be the engine of choice for all
21+
[Fish Folk](https://github.com/fishfolk) games. It is suitable for any other
22+
games with similar requirements.
1923

20-
By default Bones is rendered with [Bevy](https://bevyengine.org), but it is fundamentally engine-agnostic and comes with its own lightweight ECS, asset server and user experience. Bones is officially focused on 2D games and models itself after the likes of [Corgi](https://corgi-engine.moremountains.com/). It can however be used for 3D games as well, if you are willing to create custom rendering integrations.
24+
By default Bones is rendered with [Bevy](https://bevyengine.org), but it is
25+
fundamentally engine-agnostic and comes with its own lightweight ECS, asset
26+
server and user experience. Bones is officially focused on 2D games and models
27+
itself after the likes of [Corgi](https://corgi-engine.moremountains.com/). It
28+
can however be used for 3D games as well, if you are willing to create custom
29+
rendering integrations.
2130

2231
## Overview
2332

2433
### Bones ECS
2534

26-
Bones is designed around a simple, custom Entity Component System (ECS), designed to make it easier to get a few features that are important to us:
35+
Bones is designed around a simple, custom Entity Component System (ECS),
36+
designed to make it easier to get a few features that are important to us:
2737

28-
- **Determinism:** Bones ECS is deterministic by default, making it easier to get a re-producible and predictable gameplay.
29-
- **Snapshot/Restore:** The Bones ECS world can be trivially snapshot and restored.
30-
- **Modding/Scripting:** Bones ECS is built on our [`bones_schema`] system, which allows for runtime reflection and the ability to interact with data types defined outside of Rust.
38+
- **Determinism:** Bones ECS is deterministic by default, making it easier to
39+
get a re-producible and predictable gameplay.
40+
- **Snapshot/Restore:** The Bones ECS world can be trivially snapshot and
41+
restored.
42+
- **Modding/Scripting:** Bones ECS is built on our [`bones_schema`] system,
43+
which allows for runtime reflection and the ability to interact with data
44+
types defined outside of Rust.
3145

3246
[`bones_schema`]: https://fishfolk.github.io/bones/rustdoc/bones_schema/index.html
3347

34-
Determinism and Snapshot/Restore are also key features for getting excellent **network play** with the rollback networking model, while requiring no changes to the core game loop implementation.
48+
Determinism and Snapshot/Restore are also key features for getting excellent
49+
**network play** with the rollback networking model, while requiring no changes
50+
to the core game loop implementation.
3551

3652
### Bones Lib
3753

38-
The [`bones_lib`] contains the [`bones_ecs`] and the [`bones_asset`] system. It defines the concept
39-
of a [`Game`] which contains all of your game logic and data in a collection of [`Session`]s that
40-
each have their own ECS [`World`].
54+
The [`bones_lib`] contains the [`bones_ecs`] and the [`bones_asset`] system. It
55+
defines the concept of a [`Game`] which contains all of your game logic and data
56+
in a collection of [`Session`]s that each have their own ECS [`World`].
4157

42-
Bones lib has no rendering components or even math types, it is only concerned with organizing your game logic and assets.
58+
Bones lib has no rendering components or even math types, it is only concerned
59+
with organizing your game logic and assets.
4360

4461
[`bones_lib`]: https://fishfolk.github.io/bones/rustdoc/bones_lib/index.html
4562
[`bones_ecs`]: https://fishfolk.github.io/bones/rustdoc/bones_ecs/index.html
@@ -50,52 +67,62 @@ Bones lib has no rendering components or even math types, it is only concerned w
5067

5168
### Bones Framework
5269

53-
On top of [`bones_lib`] there is the [`bones_framework`], which defines the rendering components and
54-
math types. Right now [`bones_framework`] is focused only on 2D rendering. 3D is not a priority for
55-
us now, but there is no technical limitation preventing community developed 3D rendering components
56-
either on top of [`bones_lib`] directly or as an extension to the [`bones_framework`].
70+
On top of [`bones_lib`] there is the [`bones_framework`], which defines the
71+
rendering components and math types. Right now [`bones_framework`] is focused
72+
only on 2D rendering. 3D is not a priority for us now, but there is no technical
73+
limitation preventing community developed 3D rendering components either on top
74+
of [`bones_lib`] directly or as an extension to the [`bones_framework`].
5775

5876
[`bones_framework`]: https://fishfolk.github.io/bones/rustdoc/bones_framework/index.html
5977

6078
### Bones Bevy Renderer
6179

62-
A game created with only the [`bones_framework`] is renderer agnostic, allowing us to create
63-
rendering integrations with other engines. Our official integration is with the [Bevy] engine.
80+
A game created with only the [`bones_framework`] is renderer agnostic, allowing
81+
us to create rendering integrations with other engines. Our official integration
82+
is with the [Bevy] engine.
6483

65-
Rendering in the [`bones_framework`] is intentionally simple, and some games may need more advanced
66-
features that aren't supported out of the box. Bones, and it's Bevy integration, are designed so
67-
that you can create custom rendering specific to your needs. That means you can still take advantage
68-
of any fancy new Bevy plugins, or maybe use something other than Bevy entirely!
84+
Rendering in the [`bones_framework`] is intentionally simple, and some games may
85+
need more advanced features that aren't supported out of the box. Bones, and
86+
it's Bevy integration, are designed so that you can create custom rendering
87+
specific to your needs. That means you can still take advantage of any fancy new
88+
Bevy plugins, or maybe use something other than Bevy entirely!
6989

7090
### Bones Scripting
7191

72-
[`bones_ecs`] is built to be scripted. Effort has also been made to avoid putting unnecessary
73-
performance limitations into the scripting system. Bones comes with an integration with the
74-
[`piccolo`] VM to enable Lua scripting out-of-the-box.
92+
[`bones_ecs`] is built to be scripted. Effort has also been made to avoid
93+
putting unnecessary performance limitations into the scripting system. Bones
94+
comes with an integration with the [`piccolo`] VM to enable Lua scripting
95+
out-of-the-box.
7596

76-
This integration allows Lua scripts to access the ECS world in a way very similar to the
77-
Rust API. Rust components and resources can be annotated with `#[repr(C)]` to enable direct
78-
access by Lua scripts, and if a type cannot be `#[repr(C)]`, you can still manually
79-
create your own Lua bindings for that type.
97+
This integration allows Lua scripts to access the ECS world in a way very
98+
similar to the Rust API. Rust components and resources can be annotated with
99+
`#[repr(C)]` to enable direct access by Lua scripts, and if a type cannot be
100+
`#[repr(C)]`, you can still manually create your own Lua bindings for that type.
80101

81-
Allowing both Rust and the scripting language to talk to the _same_ ECS world allows you to easily
82-
blend both languages in your game, and have them interact quite easily in many circumstances. If
83-
a portion of your game needs extra high performance or low-level access, you can use Rust, but
84-
if you want hot reloaded and moddable elements of your game, you can use Lua.
102+
Allowing both Rust and the scripting language to talk to the _same_ ECS world
103+
allows you to easily blend both languages in your game, and have them interact
104+
quite easily in many circumstances. If a portion of your game needs extra high
105+
performance or low-level access, you can use Rust, but if you want hot reloaded
106+
and moddable elements of your game, you can use Lua.
85107

86-
The scripting system is not limited to Lua. Using the simple dynamic API to [`bones_ecs`], you can
87-
create your own integrations to any language or system you desire.
108+
The scripting system is not limited to Lua. Using the simple dynamic API to
109+
[`bones_ecs`], you can create your own integrations to any language or system
110+
you desire.
88111

89-
The scripting system is new and work-in-progress, but all of the major things have been
90-
successfully implemented, and it is going to be actively used in Jumpy.
112+
The scripting system is new and work-in-progress, but all of the major things
113+
have been successfully implemented, and it is going to be actively used in
114+
Jumpy.
91115

92116
[`piccolo`]: https://github.com/kyren/piccolo/
93117

94118
## Contributing
95119

96-
If you would like to contribute, feel free to reach out on our [Discord](https://discord.gg/4smxjcheE5) server to ask questions!
120+
If you would like to contribute, feel free to reach out on our
121+
[Discord](https://discord.gg/4smxjcheE5) server to ask questions!
97122

98-
We also use [TODO Issue][tdi] to automatically create issues from all of our `TODO` comments in code. You can check out the [todo issue list][tdil] to see if there's any thing you'd like to take a hack at.
123+
We also use [TODO Issue][tdi] to automatically create issues from all of our
124+
`TODO` comments in code. You can check out the [todo issue list][tdil] to see if
125+
there's any thing you'd like to take a hack at.
99126

100127
[tdi]: https://github.com/DerJuulsn/todo-issue
101128
[tdil]: https://github.com/fishfolk/bones/issues?q=is%3Aissue+is%3Aopen+label%3Acode%3Atodo

logo/bones_logo.jpg

29.7 KB
Loading

0 commit comments

Comments
 (0)