summaryrefslogtreecommitdiff
path: root/docs/Proposal_feedback.txt
blob: 71dbafa426b745bf7bb4713cdaa91d276a33a3c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
DungeonCrawl

Audrey Fuller (alf9310)
Freya Murphy (tam2214)
Ryan Symons (ras1178)
Yusuf Elsharawy (yse2561)


Good proposal.

A dungeon crawler is a reasonable project.  A 2D, tile-based dungeon
format is a good choice to keep complexity to a reasonable degree.
Unclear if the tile-based dungeon is just with respect to the sprites,
or with respect to the movement within the dungeon (i.e., NES Legend
of Zelda-like or TUI nethack/rogue-like); upon re-reading, it seems
that the intention is the former, which does make for a slightly more
complex implementation.

Proposal seems to suggest a model-view-controller architecture; any
organization that separates the core game logic from the UI is good.
Especially so for testing.

Overall organization of dungeon crate seems fine.  But, think about
how to best use Rust features.  Should items and enemies be `enum`s or
`trait`s?  What are the pros and cons of each approach?  Should
`Player` be a variant of `Entity` or should `Entity` be a component of
`Player`?  Not sure how melee and ranged weapons fit into the game
state; will an arrow or magic attack be a separate `Entity`?

Good to have a graphics framework in mind.  I've not heard about
raylib or its Rust bindings before, but seems to be a reasonable
choice.  egui (https://www.egui.rs/) and Iced (https://iced.rs) are
other popular GUI frameworks.  Not sure if the input.rs is meant to be
a thin veneer over the graphics library or something more low-level.
Many GUI libraries do provide input functions, but perhaps raylib is a
graphics-only library.

Remember to focus on programming in Rust.  That is, while it is fun to
fine tune graphical assets, don't let that overshadow the code
development.

Similarly, the Wave Function Collapse algorithm is an interesting
approach and procedurally generated content is often more dynamic.
While it may require some tuning of parameters to get something that
plays well, don't emphasize playability over code development.  That
is, better to have a project that demonstrates proficiency with Rust
but might be less interesting from a game play perspective than vice
versa.


Score: 10/10