-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
First round of feedback #1
Comments
Some of my initial thoughts: Overall
Ch 1.2 Ch 1.3
the reader is better equipped to understand it. |
On my side, on my journey to game dev with GGEZ I'm currently trying to implement different screen (a start screen, a game screen, a game-over screen et perhaps a settings screen). It may be nice to explain how to do it (at the moment I have no clue, I'm learning ; if I find an elegant solution i could share). GGEZ don't have any built-in for this but we could probably implement it ourself and I think having different screen/stage could be a nice addition to your book too ! :) |
@GuilhermoReadonly when I was playing around with ggez and structuring my solution I approached different screens as State. The overall idea is that your game is represented as a state diagram, via current state (read screens) and transitions (player actions). |
I like your solution with traits for State and Transition ! That is definitively what I had in mind when I talked about elegant solution. :) I think it could be a nice addition to the book (and to my own project too :P ) ! |
Some of my initial impressions:
Overall, I really like where it can be going! Great work so far, wish I ever had patience to work on such detailed tutorials! Let me know what you think! |
thank you so much @wbprice @GuilhermoReadonly @zubivan for you feedback and for the awesome contributions so far, you folks are really helping me make this better! I've edited the initial comment on this issue to reflect all your points and created a bunch of issues for tracking. I think these are all super valid points, the thing that I am trying to balance is keeping the book interesting and not too difficult for beginners, which is why I haven't covered some of the more advanced stuff. My strategy is to keep the reader engaged in the fun task, while dropping Rust knowledge along the way. As the reader gets more comfortable, I'll start explaining some of the more advanced concepts that were kind of hand waved before, otherwise I fear no one would stick with it. So to summarize, definitely planning to cover more advanced ECS, UI, lifetimes, macros, etc. but slowly 😄 @zubivan for your question on whether we should be jumping into ECS to start with, I am basing this on my personal experience of having tried the traits/somewhat traditional OOP approach for my first game and it was super difficult to do anything because of the borrow checker. also I think it's kind of nice to have a "best practice" approach as the starting point of a big series of "lessons", but maybe this would be a good idea to do for a blog post. @GuilhermoReadonly good idea about the title screens and transitions, definitely a pain point for me as well. I have solved it in my game somewhat but it's really not very clean, need to have a look at @zubivan's solution. @wbprice really glad to hear about the ggez choice, I haven't done much with amethyst but I did get the sense it was much more complicated, so I'm really glad this bet paid off. |
I'm still working through the book. I haven't had much free time yet, but wanted to get something posted for now. In 1.1 Project Setup, the &mut self explanation could be a bit clearer. Why is mut necessary? I don't have to do that in other languages? If I was a self taught programmer I might not recognize that mut is short for mutable or what that even means. Maybe explain that other languages default to having mutable variables, but rust defaults to having non mutable variables. In 1.3 Components and entities - Assets section. We are told to add the Resources folder but not the images folder shown in the hierarchy, just a minor inconsistency. #[derive(Debug, Component, Clone, Copy)] 2.1 Map Loading 2.2 Moving the player - Input Events That about as far as I am in right now. But these are mostly nit picky things. I didn't just want to say "yeah its great!" haha |
thanks @ChristianIsaacRoy, made a note of all the points in the original issue! this is good stuff, I think it's really easy as someone who knows that &mut means or whatever to skip past explaining this stuff, so this is great feedback! |
My semester has finally reached its end so I could finally sit down and read through the book. As a first impression; it's great - lightweight, fun and a swift introduction to Rust & game dev. However there are a couple things that nudged me the wrong way (but keep in mind that I had to be pretty nit-picky with these 😅). Chapter 1.2
Perhaps being explicit about the requirements would make it easier on the reader. Chapter 1.3 & Chapter 1.4 Among some other stuff we silently introduce macros and lifetimes in these chapters. Now as far as I can tell we're trying to avoid diving into the details of advanced topics such as macros and lifetimes. I wonder though if it would be nice with a sentence or so explaining that it is for example a macro, what it does and where it's defined. We do this for the General Annotating code sections with their corresponding file path would be really nice. |
hey everyone! just wanted to give y'all a quick update, I am aiming to write up a final section in chapter 3 around testing since I think that is a pretty big unknown, and do some final text edits and tiny fixes, but after that we should be pretty much ready to ship this 🚀 |
hey everyone! another quick update, managed to get through most of the updates I wanted to make before releasing (unfortunately not the testing chapter yet), and deployed the book at sokoban.iolivia.me, check it out at let me know if you have any trouble accessing it. Please don't share the link around yet, I'll start posting on twitter/etc later this week. Oh also I've changed the name of the repository so you might have to re-fork or sync your forks, sorry for the trouble! |
FYI I ported a lot of the tiny fixes to #40 hence closing this. I think most of the other feedback has been addressed in other issues, thanks again everyone! 🚀 |
Thanks a lot everyone who offered to be an early beta tester!
Here are some questions to help structure your feedback:
I'll edit this issue if I can think of more stuff, but it would be awesome once you've gone through the book if you could write a sentence or two on each of the topics above. You can reply here on the issue or if you are not comfortable with that please DM me on Twitter 😄
EDIT: feedback summary
👍positives
🤔to work on/think about
❓questions/more vague
#[storage(VecStorage)]
The text was updated successfully, but these errors were encountered: