AristurtleDev / building-2d-games-with-monogame

A tutorial on building 2D games with MonoGame
8 stars 2 forks source link

Chapter 1 Feeback #4

Closed AristurtleDev closed 3 days ago

AristurtleDev commented 2 months ago

Description

Please use this issue to discuss feedback specific to Chapter 1: Getting Started

MrValentine7777 commented 2 months ago

Add information about the communities to the guides as a footnote so that they are aware of the various communication channels such as Discord and the GH Discussions, in the introduction for chapter 1

MrValentine7777 commented 2 months ago

NOTES FOR ARISTURTLE

[!CAUTION] There are suffixes such as A and B when multiple corrections are made to a paragraph or text, this where tables are involved are not relating to rows, but edit order for you to keep track of where you are in reading these notes. Happy Editing.

> { documentation/chapter-01-getting-started/01-00-getting-started.md }

Chapter 1: Getting Started

[!CAUTION] While there are no special notes for this section, I have included some for later sections.


First Paragraph

-{ ORIGINAL }-

Finally, we'll walk through creating the classic "Hello World" program in MonoGame.

-{ EDITED }-

Finally, we'll walk through creating the traditional "Hello World" program in MonoGame.

[!NOTE]

}-> traditional is the correct usage here. Just because Cortana says it is both does not mean I have to agree with it, leaving it to you lol. -{ A Joke from Discord Discussions )-.


Table: > Description - A

-{ ORIGINAL }-

A brief overview of the origins of MonoGame, it's evolution from XNA, and what to expect when using it for game development.

-{ EDITED }-

A brief overview of the origins of MonoGame, its evolution from XNA, and what to expect when using it for game development.

[!NOTE]

}-> its is the correct usage here.


Table: > Description - B

-{ ORIGINAL }-

Creating your first game in MonoGame, the classic "Hello World" example.

-{ EDITED }-

Creating your first game in MonoGame, the traditional "Hello World" example.

[!NOTE]

}-> traditional here as well. Shh!, you already read the response above.






> { documentation/chapter-01-getting-started/01-01-what-is-monogame.md }

Chapter 1-1: What Is MonoGame


First Paragraph - A

-{ ORIGINAL }-

In 2006, Microsoft released XNA Game Studio,

-{ EDITED }-

In 2006, Microsoft released _XNA Game Studio_,

[!NOTE]

}-> Added links to both Microsoft XNA and XNA Game Studio wiki pages.


First Paragraph - B

-{ ORIGINAL }-

Out of this gave rise to critically acclaimed titles like Bastion and Terraria.

-{ EDITED }-

This gave rise to critically acclaimed titles like Bastion and Terraria.

[!NOTE]

}-> Revised for clarity.


Second Paragraph - A

-{ ORIGINAL }-

Dominique Louis came on board in 2009 and soon took over as full-time project lead, driving its initial development and expansion.

-{ EDITED }-

Also in 2009 Dominique Louis came on board, and soon took over as full-time project lead, driving its initial development and expansion.

[!NOTE]

}-> Revised for legibility and chronological order.


Second Paragraph - B

-{ ORIGINAL }-

The project attracted other developers such as Tom Spilman who were interested in expanding the scope of the project as well as its reach.

-{ EDITED }-

The project attracted other developers -- such as Tom Spilman -- who were interested in expanding the scope of the project; as well as its reach.

[!NOTE]

}-> added en dashes to break the content, to avoid adding a comma, and then added a semi colon.


Third Paragraph

-{ ORIGINAL }-

While it still had the same familiar API as XNA, the support also expanded to various platforms, such as Linux, macOS, iOS, Android and Playstation.

-{ EDITED }-

While it still had the same familiar API as XNA, the support also expanded to various platforms, such as: Linux, macOS, iOS, Android, and Playstation.

[!NOTE]

}-> Added colon and comma.


Fourth Paragraph - A

-{ ORIGINAL }-

Today, it is a mature cross-platform framework that is built with the spirit of preserving XNA but adopting modern game development practices.

-{ EDITED }-

Today, it is a mature cross-platform framework built in the spirit of preserving XNA, while adopting modern game development practices.

[!NOTE]

}-> Revised for clarity.


Fourth Paragraph - B

-{ ORIGINAL }-

Today, it is a mature cross-platform framework that is built with the spirit of preserving XNA but adopting modern game development practices. Some popular titles created using this platform include CelesteStardew Valley, and Streets of Rage 4.

-{ EDITED }-

Today, it is a mature cross-platform framework that is built with the spirit of preserving XNA but adopting modern game development practices. Some popular titles created using this platform include: CelesteStardew Valley, and Streets of Rage 4.

[!NOTE]

}-> Added colon after include.


Paragraph 5

-{ ORIGINAL }-

MonoGame does not include any pre-built editors or interfaces; instead it gives developers an opportunity to establish their own working environment.

-{ EDITED }-

MonoGame does not include any pre-built editors or interfaces; instead, it gives developers an opportunity to establish their own working environment.

[!NOTE]

}-> Added a comma for reading effect after instead.


Paragraph 6 - A - after List 1

-{ ORIGINAL }-

Developers are free to integrate existing tools into their workflow. For example, popular tools such as Tiled or LDtk for creating tile based level design.

-{ EDITED }-

Developers are free to integrate existing tools into their workflow. Common tools used in the community such as Tiled or LDtk, are used for creating tile based level design.

[!NOTE]

}-> Revised for clarity.


Paragraph 6 - B - after List 1

-{ ORIGINAL }-

Conversely, game developers may decide to make and use custom tools that are specific to their individual game requirements as a way of taking advantage of MonoGame's flexible architecture.

-{ EDITED }-

Conversely, game developers may decide to make and use custom tools that are specific to their individual game requirements, as a way of taking advantage of MonoGame's flexible architecture.

[!NOTE]

}-> Added a comma after requirements to improve readability.


List 2

-{ ORIGINAL }-

- Consoles: Xbox, Playstation, and Nintendo Switch (with appropriate license).

-{ EDITED }-

- Consoles: Xbox, Playstation, and Nintendo Switch. (With appropriate licenses, and NDAs. SEE NOTE BELOW).

[!NOTE]

}-> Each platform requires licences, possibly a good place to mention NDAs too, and also add a section header Cross Platform.


Paragraph 7

-{ ORIGINAL }-

By providing cross-platform support, developers can target multiple platforms from a single codebase, significantly reducing development time and resources needed for porting.

-{ EDITED }-

By providing cross-platform support, developers can target multiple platforms from a single codebase, significantly reducing development time, and resources needed for porting.

[!NOTE]

}-> Added a comma for readability.


Note on Page - A

-{ ORIGINAL }-

Developing games for consoles requires a more advanced skill set for programming or another developer or studio that can port the game for you.

-{ EDITED }-

Developing games for consoles requires a more advanced skill set for programming, or another developer or studio that can port the game for you.

[!NOTE]

}-> Added a comma after programming for readability.


Note on Page - B

-{ ORIGINAL }-

Console development is also unique in that the MonoGame Foundation can only provide the console-specific portions once developers have been approved by that console manufacturer. This is due to licensing terms and agreements imposed by console manufacturers.

-{ EDITED }-

Console development is also unique in that the MonoGame Foundation can only provide the console-specific portions, once developers have been approved by that console manufacturer. This is due to licensing terms and agreements imposed by console manufacturers.

[!NOTE]

}-> Added comma for readability.


Paragraph 8

-{ ORIGINAL }-

MonoGame is designed and built in C#, a powerful and modern language developed by Microsoft. It is the official programming language supported documentation, samples, and community discussion.

-{ EDITED }-

MonoGame is designed and built in C#, a powerful and modern language developed by Microsoft. It is the official programming language supported across the MonoGame documentation, samples, and community discussions.

[!NOTE]

}-> Revised for clarity.






> { documentation/chapter-01-getting-started/01-02-setting-up-your-development-environment.md }

# Chapter 1-2: Setting Up Your Development Environment

[!CAUTION] Notes for this page will only be listed as numerical order for tracking, it was too large to track paragraph numbers, notes, and lists, simply perform a copy and search of the original text to locate.


1

-{ ORIGINAL }-

These can vary slight depending on your operating system and integrated development environment (IDE).

-{ EDITED }-

These can vary slightly depending on your operating system and Integrated Development Environment (IDE).

[!NOTE]

}-> Capitalised I D and E.


2

-{ ORIGINAL }-

If you would prefer to use Visual Studio 2022 (Windows Only) or JetBrains Rider, you can view official documentation provided by MonoGame on setting these up

-{ EDITED }-

If you would prefer to use Visual Studio 2022 (Windows Only) or JetBrains Rider, you can view official documentation provided by MonoGame on setting these up:

[!NOTE]

}-> Colon added at end.


3

-{ ORIGINAL }-

The only differences when using this compared to Visual Studio Code is interactions within the editor interface itself.

-{ EDITED }-

The only differences when using these compared to Visual Studio Code are interactions within the editor interfaces.

[!NOTE]

}-> Revised for clarity and reflecting the plurality.


4

-{ ORIGINAL }-

Before installing Visual Studio Code, the .NET SDK will need to be downloaded and installed. To do this, following the instructions for your operating system below

-{ EDITED }-

Before installing Visual Studio Code, the .NET SDK will need to be downloaded and installed. To do this, follow the instructions for your operating system below.

[!NOTE]

}-> Typos corrected.


5

-{ ORIGINAL }-

1. Open a web browser and navigate to https://dotnet.microsoft.com/en-us/download

-{ EDITED }-

1. Open a web browser and navigate to https://dotnet.microsoft.com/en-us/download.

[!NOTE]

}-> Missing period.


6

-{ ORIGINAL }-

1. Open a new terminal window

-{ EDITED }-

1. Open a new terminal window.

[!NOTE]

}-> Missing period.


7

-{ ORIGINAL }-

To do this, open a command prompt or terminal and enter the following commands

-{ EDITED }-

To do this, open a command prompt or terminal and enter the following commands:

[!NOTE]

}-> Missing colon.


8

-{ ORIGINAL }-

Visual Studio Code is a light weight editor that can be used to develop many different types of applications.

-{ EDITED }-

Visual Studio Code (VSCode) is a light weight editor that can be used to develop many different types of applications.

[!NOTE]

}-> Because it was mentioned later, this needed to be added above after the first mention.


9

-{ ORIGINAL }-

Before installing Visual Studio Code, the .NET SDK will need to be downloaded and installed. To do this, following the instructions for your operating system below

-{ EDITED }-

Before installing Visual Studio Code, the .NET SDK (Software Development Kit) will need to be downloaded and installed. To do this, following the instructions for your operating system below

[!NOTE]

}-> Forgot to add this earlier.


10

-{ ORIGINAL }-

When installing Visual Studio Code for windows, you will have the option to choose if you would like to add Open with Visual Studio Code to context menus for files and/or directories.

-{ EDITED }-

When installing Visual Studio Code for windows, you will have the option to choose if you would like to add Open with Visual Studio Code to context menus for files and/or directories.

[!NOTE]

}-> Add code surround for highlighting this as done in later note bubbles.






> { documentation/chapter-01-getting-started/01-03-hello-world.md }

# # Chapter 1-3: Hello World

[!CAUTION] Notes for this page will only be listed as numerical order for tracking, it was too large to track paragraph numbers, notes, and lists, simply perform a copy and search of the original text to locate.


1

-{ ORIGINAL }-

When learning a new programming language, tutorials will often start with some form of the "Hello World" program. For example, a classic Hello World program in C# would look something like this

-{ EDITED }-

When learning a new programming language, tutorials will often start with some form of the "Hello World" program. For example, a traditional Hello World program in C# would look something like this

[!NOTE]

}-> You know it.


2

-{ ORIGINAL }-

1. In the Explorer Panel cLick the Create .Net Project button.

-{ EDITED }-

1. In the Explorer Panel click the Create .Net Project button.

[!NOTE]

}-> typo.


3

-{ ORIGINAL }-

The Create .NET Project button is not a feature that is available in Visual Studio Code by default. It's provided through the C# Dev Kit extension we installed when setting up your development environment

-{ EDITED }-

The Create .NET Project button is not a feature that is available in Visual Studio Code by default. It's provided through the C# Dev Kit extension we installed when setting up your development environment.

[!NOTE]

}-> missing end period.


4

-{ ORIGINAL }-

Enter MonoGame into the prompt to filter the project templates to only show the MonoGame ones.plates.

-{ EDITED }-

Enter MonoGame into the prompt to filter the project templates to only show the MonoGame templates.

[!NOTE]

}-> Assumed you meant Templates and not Ones.


5

-{ ORIGINAL }-

It's recommended to keep you projects stored central directory.

-{ EDITED }-

It's recommended to keep your projects stored central directory.

[!NOTE]

}-> Typo.


6

-{ ORIGINAL }-

For now, you can create a new directory on your desktop named MonoGame Projects and choose this for the dialog.

-{ EDITED }-

For now, you can create a new directory on your desktop named MonoGame Projects and choose this from the dialog window.

[!NOTE]

}-> Assuming you meant from and not for.


Snake

-{ ORIGINAL }-

Snake

-{ EDITED }-

Snake

[!NOTE]

}-> Snake.


7

-{ ORIGINAL }-

Let's run our newly created MonoGame project and see the results. To run the project

-{ EDITED }-

Let's run our newly created MonoGame project and see the results. To run the project:

[!NOTE]

}-> Missing colon.


8

-{ ORIGINAL }-

1. Choose C# from the prompt that appears

-{ EDITED }-

1. Choose C# from the prompt that appears.

[!NOTE]

}-> Missing period.


9

-{ ORIGINAL }-

This Solution Explorer is provided by the C# Dev Kit extension we installed when setting up your development environment

-{ EDITED }-

This Solution Explorer is provided by the C# Dev Kit extension we installed when setting up your development environment.

[!NOTE]

}-> Missing period.


9

-{ ORIGINAL }-

Figure 3-3:

-{ EDITED }-

Figure 1-3-2:

[!NOTE]

}-> Even I am confused about the use of figures now as the code blocks are not included in them.


10

-{ ORIGINAL }-

cornflower blue

-{ EDITED }-

CornFlowerBlue

[!NOTE]

}-> Should allow the reader to relate the correct typing manner of this name.


11

-{ ORIGINAL }-

1. The application started

-{ EDITED }-

1. The application started.

[!NOTE]

}-> Period missing.


12

-{ ORIGINAL }-

1. The game window was created and graphics were initialized

-{ EDITED }-

1. The game window was created and graphics were initialized.

[!NOTE]

}-> Period missing.


13

-{ ORIGINAL }-

You can exit the game at any time by pressing the Esc key on your keyboard.

-{ EDITED }-

You can exit the game at any time by pressing the Esc key on your keyboard, or if you have a game pad connected, the back button on the Xbox game pad.

[!NOTE]

}-> NOTE.


14

-{ ORIGINAL }-

If you were to set all of this up manually, it could take hours of research and thousands of lines of code written just to get the window created, graphics initialized and input polling.

-{ EDITED }-

If you were to set all of this up manually, it could take hours of research and thousands of lines of code written just to get the window created, graphics initialized and input polling. The term time to pixel was coined over two decades ago for this very scenario, some development tools took minutes to hours, and in some cases, months due to platform complexity.

[!NOTE]

}-> Added some insight to emphasize this part.


15

-{ ORIGINAL }-

Instead, we can take advantage of this base starting point that MonoGame offers us to get started creating our game without having to worry about the lower level implementations like this.

-{ EDITED }-

Instead, we can take advantage of this base starting point that MonoGame offers us to get started creating our game, without having to worry about the lower level implementations.

[!NOTE]

}-> Revised for readability.






> { documentation/chapter-01-getting-started/01-04-conclusion.md }

# # Chapter 1-4: Conclusion

[!CAUTION] Will resume the numerical ordering for any notes here.


1

-{ ORIGINAL }-

Finally, we created your very first MonoGame project and ran it.

-{ EDITED }-

Finally, you created your very first MonoGame project and ran it.

[!NOTE]

}-> We are not breaking into homes, just yet.


2

-{ ORIGINAL }-

In Chapter 2, we'll go over the files that make up a MonoGame project

-{ EDITED }-

In Chapter 2, we'll go over the files that make up a MonoGame project.

[!NOTE]

}-> Period.


3

-{ ORIGINAL }-

1. Question 1 Answer

-{ EDITED }-

1. Test 1 Answer

[!NOTE]

}-> More a test than a question.


4

-{ ORIGINAL }-

Any of the following are advantages of using the MonoGame

-{ EDITED }-

Any of the following are advantages of using MonoGame:

[!NOTE]

}-> Not telling you.


5

-{ ORIGINAL }-

1. It offers a set of libraries and APIs common for game development tasks such as graphics rendering, input handling, audio, and content management

-{ EDITED }-

1. It offers a set of libraries and APIs common for game development tasks such as graphics rendering, input handling, audio, and content management.

[!NOTE]

}-> ..


6

-{ ORIGINAL }-

Cornflower Blue

-{ EDITED }-

CornFlowerBlue.

[!NOTE]

}-> CornFlowerBlue.


Finished Chapter 1

-{ ORIGINAL }-

My Eyes

-{ EDITED }-

Cannot see text anymore lol

[!NOTE]

}-> Hope this helped, will get onto Chapter 2 later.


END




Template:


Format template for future notes below. This is solely here for future reference.



---

# **SECTION**
## **-{ ORIGINAL }-**
### **ORIGINAL_TEXT**

## **-{ EDITED }-**
### **EDITED_TEXT**

> [!NOTE] 
> ### **}-> NOTE.**

---

[!NOTE] The template consists of the three dashes for the line breaks to isolate sections, a preview is below.


SECTION

-{ ORIGINAL }-

ORIGINAL TEXT

-{ EDITED }-

EDITED TEXT

[!NOTE]

}-> NOTE.


End Notes: Check for end of line periods.

I did not check links.

-- Thanks Mutsi for spotting the typo in slightly --

stromkos commented 1 week ago

Your XNA cross platform history is incomplete:

XNA was developed initially as a cross-platform development framework for Windows and XBOX 360; then expanded to Zune and Windows phone, although official Zune support was removed in the final release.

That same release that specified the 800x480 resolution, the preferred resolution for games on the Windows phone, is still the default resolution in MonoGame today.

AristurtleDev commented 3 days ago

Add information about the communities to the guides as a footnote so that they are aware of the various communication channels such as Discord and the GH Discussions, in the introduction for chapter 1

Added this information to the readme

AristurtleDev commented 3 days ago

Your XNA cross platform history is incomplete:

XNA was developed initially as a cross-platform development framework for Windows and XBOX 360; then expanded to Zune and Windows phone, although official Zune support was removed in the final release.

That same release that specified the 800x480 resolution, the preferred resolution for games on the Windows phone, is still the default resolution in MonoGame today.

Thanks, updated the history section to include this information

AristurtleDev commented 3 days ago

Closing comment as the structure of project has changed and new issues for feedback will be opened