Skip to content
This repository was archived by the owner on Jun 6, 2018. It is now read-only.

Commit 189bbf3

Browse files
authored
Update README.md with current state of development
1 parent 3ab8cfe commit 189bbf3

File tree

1 file changed

+33
-15
lines changed

1 file changed

+33
-15
lines changed

README.md

+33-15
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,54 @@ Gunship
55

66
Gunship is an experimental game engine being developed as an effort to learn
77
more about the inner-workings of a modern game engine. It is being written in
8-
[Rust](http://rust-lang.org/) in an attempt to break away from game
9-
development's unhealthy codependence on C++.
8+
[Rust](http://rust-lang.org/) in an attempt to break away from the game
9+
industry's unhealthy codependence on C++.
1010

1111
Design Goals
1212
------------
1313

1414
At this point Gunship is meant to be more of a learning project than a
15-
production-ready game engine (though of course I'd learn the most from building
16-
an engine that's actually used in a game). As such one of the design goals of
17-
Gunship is to do everything from scratch -- no external libraries are used to
18-
provide even basic game-related functionality. The only exceptions that I've
19-
made so far are the Rust standard library, since it's included by default, and
20-
bindings to platform-specific APIs, like winapi-rs. Even then I'm working on
21-
removing standard library from Gunship, so eventually the engine should have no
22-
dependencies outside of the project.
15+
production-ready game engine. The idea is to build as much as possible from
16+
scratch in order to develop myself as a programmer and learn all the parts
17+
of a modern game engine. So far I've allowed myself to use the standard library
18+
and libraries for binding to platform-specific native libraries, but the
19+
intent is to keep dependencies to a minimum, even if there are relevant crates
20+
in the Rust ecosystem.
2321

2422
As for the engine itself high-level design is pretty nonexistent. I'm keeping
2523
development directed by building a game along with the engine, so for the time
2624
being the design motivations for Gunship are "whatever work best for making a
27-
game".
25+
game". At present the design is roughly as follows:
26+
27+
- The renderer is a separate crate from the engine core. It's potentially going
28+
to be usable on its own, though right now that's not a primary goal. Mostly
29+
the renderer's goal is to provide a high level, backend agnostic system for
30+
rendering that can be tested idependently but easily be plugged into the
31+
engine core.
32+
- The engine core provides the scheduler, which makes it easy to write highly
33+
parallel, asynchronous gameplay and engine code.
34+
- The engine core only provides the primitives for gameplay development (e.g.
35+
transforms, lights, meshes, etc.), but provides little-to-no framework for
36+
structuring gameplay code. Such frameworks will likely be provided
37+
as a layer on top of the engine core.
2838

2939
Current Features
3040
----------------
3141

3242
The engine is very early in its development and so doesn't have much to show off
3343
as of yet. That said, it does have a few working features at this point:
3444

45+
- Multi-threaded, async engine and gameplay code makes it easy to write games
46+
while taking full advantage of multiple cores in modern CPUs.
3547
- Basic (*very* basic) 3D mesh rendering support, just basic meshes and limited
36-
support for custom shading. No textures, materials, shadows, real features.
48+
support for custom shading. No shadows, highly inefficient.
49+
50+
Broken Features
51+
---------------
52+
53+
The following features have been implemented in the past but were broken at some
54+
point:
55+
3756
- 3D collision processing with sphere and box colliders. Actually pretty fast
3857
compared to the other collision systems, though very much lacking in
3958
functionality.
@@ -49,9 +68,8 @@ Planned Features
4968
Beyond the obvious (making the existing systems more robust and actually
5069
*usable*) there are a few features that I plan to work on in the near future:
5170

52-
- Proper rendering system, including support for custom surface materials and
53-
shaders, more efficient rendering through batching, skinned meshes, and
54-
particles.
71+
- Proper rendering system, including more efficient rendering through batching,
72+
skinned meshes, and particles.
5573
- [Cross-platform support](https://github.com/excaliburHisSheath/gunship-rs/milestones/Basic%20Cross-Platform%20Support)
5674
for Linux and OSX at least, eventually I'd like to get to mobile support and
5775
consoles, though who knows how long that could take.

0 commit comments

Comments
 (0)