Skip to content
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

📚 Docs: Guide - Hello World & Generative Shape Art #262

Merged
merged 2 commits into from May 9, 2018

Conversation

@dannyfritz
Copy link
Contributor

commented Jan 23, 2018

📚📚📚

Benefits of a Guide:

  • More approachable and friendly than code samples
  • See the process of coding something. Not just the finished product.
  • Common pitfalls explained and avoided
  • Explanations of trade offs
  • Conceptual peeks under the hood of ggez's modules for deeper understanding

Assumptions and Guidelines:

  • User can write a hello world in Rust
  • User hasn't done anything with ggez
  • User has very little gamedev experience
  • Written from the we/us perspective unless an action must betaken, then you/your is used
  • Formatted with Markdown
  • Written in English
  • Conceptually, earlier sections should be easier and later sections should be harder
  • Tone is fun, friendly, and joking
  • Always link to the ggez docs when appropriate
  • Include unguided challenges at the end of each guide
  • Have a brief summary at the top explaining what the User can do after reading the guide

Guide Sections:

  • Hello ggez! (Loop + Window + Conf)
    • Prerequisites
    • Loop
    • Window / Conf
  • Generative Art (Shapes)

For another PR

  • Overview
    • What is ggez?
    • How is it different than X?
  • Mouse Tail (Mouse)
  • Menu (Text)
  • Guessing Game (Keyboard)
  • Image Viewer (Image)
  • Music Player (Audio)
  • Flappy Bird (Physics + AABB + Math)
  • Mini Games (States)
  • Image Filters (Shaders)

📚📚📚

Test to make sure everything is correct by running `cargo run`.

Be patient. This can take a while on the first run. Subsequent builds will be much faster.
Be sure it says `Hello, world!` at the bottom. before continuing.

This comment has been minimized.

Copy link
@0nkery

0nkery Jan 23, 2018

- at the bottom. before continuing.
+ at the bottom, before continuing.

I'm not much into English grammar, but it feels like there's no need in comma at all.

This comment has been minimized.

Copy link
@dannyfritz

dannyfritz Jan 23, 2018

Author Contributor

Probably doesn't need any punctuation at all there. 😄

@dannyfritz dannyfritz force-pushed the dannyfritz:guide branch from 2b01084 to 84004a6 Jan 23, 2018

0. Updating state
0. Drawing

`ggez` provides [`Trait ggez::Event::EventHandler`](https://docs.rs/ggez/0.4.0/ggez/event/trait.EventHandler.html) is the provided loop as a loop for us to use in our games.

This comment has been minimized.

Copy link
@0nkery

0nkery Jan 23, 2018

ggez provides EventHandler as a loop ...
or
EventHandler is the provided loop for us to use ... (but I'd prefer former).

@dannyfritz dannyfritz force-pushed the dannyfritz:guide branch 2 times, most recently from 5d521ab to 8d51de2 Jan 23, 2018

@0nkery

This comment has been minimized.

Copy link

commented Jan 23, 2018

Good start! I believe you'll make an awesome thing.

@dannyfritz dannyfritz force-pushed the dannyfritz:guide branch from 8d51de2 to b4203e3 Jan 23, 2018

@icefoxen

This comment has been minimized.

Copy link
Contributor

commented Jan 23, 2018

I like your roadmap. Things we need to think about from a project perspective (mostly just recording what we talked about on IRC):

  • We need to ensure the guide is maintained and updated as ggez continues evolving and new features get added
  • It would be nice to be able to ensure all code in it is correct, via rust-skeptic or some other means
  • It would be nice to be able to put the guide on the website, and have the website be the actual entry point to useful information rather than the github page
  • We should at least think about the possibility of translations and structure it so they're easy to do if we ever get around to it.
  • Do we want to make this the ggez guide, and commit to keeping it up to date, or settle for it having, I guess, "contrib" status where keeping it up to date isn't a show-stopper for making a release? I definitely want high-quality official docs, but also, getting everything shipshape for an official release is hard, and is only going to become more work as time goes on...
1. Updating state such as player position, health, etc.
1. Drawing shapes, images, etc.

[`EventHandler`](https://docs.rs/ggez/0.4.0/ggez/event/trait.EventHandler.html) is a loop provided by `ggez` to use in our games.

This comment has been minimized.

Copy link
@termhn

termhn Jan 23, 2018

Contributor

I think this is better put as, "EventHandler is a way for us to interface with--and implement our own logic on top of--ggez's internal game loop." or something similar.

@termhn

This comment has been minimized.

Copy link
Contributor

commented Jan 23, 2018

Sweet! I like the direction this is going and am definitely interested in helping out as it progresses! :D

@dannyfritz dannyfritz force-pushed the dannyfritz:guide branch 2 times, most recently from 2883ec1 to b7c5c7f Jan 26, 2018

@dannyfritz dannyfritz force-pushed the dannyfritz:guide branch 2 times, most recently from 02bce41 to 34b41a1 Jan 26, 2018

@itmuckel

This comment has been minimized.

Copy link

commented Feb 3, 2018

I like your style of writing (and I love emoticons).

The only thing I'm missing is integration with specs-rs, but as soon as I'm proficient enough in this I consider contributing a part. (I'm still developing a game that makes excessive use of specs-rs). Also this is not too important.

Regarding keeping it up to date: I think it's generally best-practice to have a PR contain changes to the docs as soon as it adds functionality or (more important) changes functionality. I think this is easier to follow, because changes to code and changes to docs are in the same commit/PR. 😄

@dannyfritz dannyfritz force-pushed the dannyfritz:guide branch from 34b41a1 to cd6bc22 Feb 12, 2018

@Ealhad
Copy link

left a comment

In HelloGgez.md, we create the state s at line 116, but try to use state at line 176. Both should have the same name.

I think this is a nice guide! I especially like that you give some challenges/exercises at the end of each chapter.

@icefoxen

This comment has been minimized.

Copy link
Contributor

commented May 9, 2018

@dannyfritz What's the status of this? Can we merge what's here so that other people can work on it?

@dannyfritz

This comment has been minimized.

Copy link
Contributor Author

commented May 9, 2018

Yeah, you can merge this. I have a third one in the hopper I just need to format I can do another PR for later. Been going really slow as you can see. 😛

@dannyfritz dannyfritz changed the title 🚧 WIP DO NOT MERGE 🚧 🗣 Feedback Requested 🗣 📚 Docs: Guide 📚 Docs: Guide - Hello World & Generative Shape Art May 9, 2018

@icefoxen icefoxen merged commit f3592d6 into ggez:master May 9, 2018

1 of 2 checks passed

continuous-integration/travis-ci/pr The Travis CI build failed
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
@icefoxen

This comment has been minimized.

Copy link
Contributor

commented May 9, 2018

Awesome, thank you! No worries. Perhaps we can do one PR per chapter in the future, to keep things easier to put together piece by piece.

@ozkriff

This comment has been minimized.

Copy link
Contributor

commented on docs/guides/HelloGgez.md in 5d6d01d May 9, 2018

Hm, considering #311 do we really want to use glob imports in the guide?

This comment has been minimized.

Copy link
Contributor

replied May 9, 2018

Nope! Good catch.

@ozkriff

This comment has been minimized.

Copy link
Contributor

commented on docs/guides/HelloGgez.md in 5d6d01d May 9, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
7 participants
You can’t perform that action at this time.