Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/issue-regex-labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
issue-labeler:
runs-on: ubuntu-latest
steps:
- uses: github/issue-labeler@v3.4
- uses: github/issue-labeler@v3.3
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: .github/issue-regex-labeler.yml
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ping-other-repos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- name: Ping w3c/mdn-spec-links
# This is one of many possible repos we can ping. When adding other
# repos, you can follow this w3c/mdn-spec-links one as an example.
uses: peter-evans/repository-dispatch@v3
uses: peter-evans/repository-dispatch@v2
with:
token: ${{ secrets.REPO_PINGER_MDN_SPEC_LINKS }}
repository: w3c/mdn-spec-links
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr-check_redirects.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
# This is a "required" workflow so path filtering can not be used:
# https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/troubleshooting-required-status-checks#handling-skipped-but-required-checks
# We have to rely on a custom filtering mechanism to run the checks only if required files are modified.
- uses: dorny/paths-filter@v2
- uses: dorny/paths-filter@v3
name: See if any file needs checking
id: filter
with:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/pr-labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@ jobs:
xs_label: "size/xs"
xs_max_size: "5"
s_label: "size/s"
s_max_size: "50"
s_max_size: "10"
m_label: "size/m"
m_max_size: "500"
m_max_size: "50"
l_label: "size/l"
l_max_size: "1000"
l_max_size: "100"
xl_label: "size/xl"
fail_if_xl: "false"
message_if_xl: ""
Expand Down
3 changes: 3 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npx lint-staged
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@ There are some important rules of etiquette to remember that will help during th
When contributing to the content you agree to license your contributions
according to [our license](LICENSE.md).

[contribute page]: https://developer.mozilla.org/en-US/docs/MDN/Community/Contributing
[contribute page]: https://developer.mozilla.org/en-US/docs/MDN/Contribute
[getting started with mdn web docs]: https://developer.mozilla.org/en-US/docs/MDN/Community/Contributing/Getting_started
[getting ready to contribute]: https://developer.mozilla.org/en-US/docs/MDN/Community/Contributing/Getting_started#getting_ready_to_contribute
[how to write in markdown]: https://developer.mozilla.org/en-US/docs/MDN/Writing_guidelines/Howto/Markdown_in_MDN
Expand Down
11 changes: 4 additions & 7 deletions files/en-us/_redirects.txt
Original file line number Diff line number Diff line change
Expand Up @@ -604,7 +604,7 @@
/en-US/docs/CSS/background-position /en-US/docs/Web/CSS/background-position
/en-US/docs/CSS/background-repeat /en-US/docs/Web/CSS/background-repeat
/en-US/docs/CSS/background-size /en-US/docs/Web/CSS/background-size
/en-US/docs/CSS/block_formatting_context /en-US/docs/Web/CSS/CSS_display/Block_formatting_context
/en-US/docs/CSS/block_formatting_context /en-US/docs/Web/Guide/CSS/Block_formatting_context
/en-US/docs/CSS/border /en-US/docs/Web/CSS/border
/en-US/docs/CSS/border-bottom /en-US/docs/Web/CSS/border-bottom
/en-US/docs/CSS/border-bottom-color /en-US/docs/Web/CSS/border-bottom-color
Expand Down Expand Up @@ -984,7 +984,7 @@
/en-US/docs/CSS:background-image /en-US/docs/Web/CSS/background-image
/en-US/docs/CSS:background-position /en-US/docs/Web/CSS/background-position
/en-US/docs/CSS:background-repeat /en-US/docs/Web/CSS/background-repeat
/en-US/docs/CSS:block_formatting_context /en-US/docs/Web/CSS/CSS_display/Block_formatting_context
/en-US/docs/CSS:block_formatting_context /en-US/docs/Web/Guide/CSS/Block_formatting_context
/en-US/docs/CSS:border /en-US/docs/Web/CSS/border
/en-US/docs/CSS:border-bottom /en-US/docs/Web/CSS/border-bottom
/en-US/docs/CSS:border-bottom-color /en-US/docs/Web/CSS/border-bottom-color
Expand Down Expand Up @@ -8408,7 +8408,7 @@
/en-US/docs/Web/API/HTMLContentElement.select /en-US/docs/Web/API/HTMLSlotElement
/en-US/docs/Web/API/HTMLContentElement/getDistributedNodes /en-US/docs/Web/API/HTMLSlotElement
/en-US/docs/Web/API/HTMLContentElement/select /en-US/docs/Web/API/HTMLSlotElement
/en-US/docs/Web/API/HTMLDialogElement/cancel_event /en-US/docs/Web/API/HTMLElement/cancel_event
/en-US/docs/Web/API/HTMLDialogElement/cancel /en-US/docs/Web/API/HTMLElement/cancel_event
/en-US/docs/Web/API/HTMLDialogElement/close() /en-US/docs/Web/API/HTMLDialogElement/close
/en-US/docs/Web/API/HTMLDialogElement/returnValue() /en-US/docs/Web/API/HTMLDialogElement/returnValue
/en-US/docs/Web/API/HTMLDialogElement/show() /en-US/docs/Web/API/HTMLDialogElement/show
Expand Down Expand Up @@ -8695,7 +8695,6 @@
/en-US/docs/Web/API/IDBKeyRange/lowerBound /en-US/docs/Web/API/IDBKeyRange/lowerBound_static
/en-US/docs/Web/API/IDBKeyRange/only /en-US/docs/Web/API/IDBKeyRange/only_static
/en-US/docs/Web/API/IDBKeyRange/upperBound /en-US/docs/Web/API/IDBKeyRange/upperBound_static
/en-US/docs/Web/API/IDBLocaleAwareKeyRange /en-US/docs/Web/API/IDBIndex
/en-US/docs/Web/API/IDBMutableFile /en-US/docs/Web/API/IndexedDB_API
/en-US/docs/Web/API/IDBMutableFile/abort_event /en-US/docs/Web/API/IndexedDB_API
/en-US/docs/Web/API/IDBMutableFile/error_event /en-US/docs/Web/API/IndexedDB_API
Expand Down Expand Up @@ -11380,7 +11379,7 @@
/en-US/docs/Web/CSS/Alias /en-US/docs/Web/CSS/cursor
/en-US/docs/Web/CSS/All_About_The_Containing_Block /en-US/docs/Web/CSS/Containing_block
/en-US/docs/Web/CSS/Aural /en-US/docs/Web/CSS/@media/aural
/en-US/docs/Web/CSS/Block_formatting_context /en-US/docs/Web/CSS/CSS_display/Block_formatting_context
/en-US/docs/Web/CSS/Block_formatting_context /en-US/docs/Web/Guide/CSS/Block_formatting_context
/en-US/docs/Web/CSS/CSS3_Columns /en-US/docs/Web/CSS/CSS_multicol_layout/Using_multicol_layouts
/en-US/docs/Web/CSS/CSS_Background_and_Borders /en-US/docs/Web/CSS/CSS_backgrounds_and_borders
/en-US/docs/Web/CSS/CSS_Background_and_Borders/Border-image_generator /en-US/docs/Web/CSS/CSS_backgrounds_and_borders/Border-image_generator
Expand Down Expand Up @@ -11481,7 +11480,6 @@
/en-US/docs/Web/CSS/CSS_Variables /en-US/docs/Web/CSS/CSS_cascading_variables
/en-US/docs/Web/CSS/CSS_Viewport /en-US/docs/Web/CSS
/en-US/docs/Web/CSS/CSS_charsets /en-US/docs/Web/CSS/CSS_syntax
/en-US/docs/Web/CSS/CSS_container_queries /en-US/docs/Web/CSS/CSS_containment/Container_queries
/en-US/docs/Web/CSS/CSS_descriptor_definition /en-US/docs/Web/CSS
/en-US/docs/Web/CSS/CSS_flex-wrap /en-US/docs/Web/CSS/flex-wrap
/en-US/docs/Web/CSS/CSS_flexible_box_layout/Backwards_compatibility_of_flexbox /en-US/docs/Glossary/Flexbox
Expand Down Expand Up @@ -12035,7 +12033,6 @@
/en-US/docs/Web/Guide/Audio_and_video_delivery/cross_browser_video_player /en-US/docs/Web/Media/Audio_and_video_delivery/cross_browser_video_player
/en-US/docs/Web/Guide/Audio_and_video_manipulation /en-US/docs/Web/Media/Audio_and_video_manipulation
/en-US/docs/Web/Guide/CSS /en-US/docs/Learn/CSS
/en-US/docs/Web/Guide/CSS/Block_formatting_context /en-US/docs/Web/CSS/CSS_display/Block_formatting_context
/en-US/docs/Web/Guide/CSS/CSS_Image_Sprites /en-US/docs/Web/CSS/CSS_images/Implementing_image_sprites_in_CSS
/en-US/docs/Web/Guide/CSS/Consistent_list_indentation /en-US/docs/Web/CSS/CSS_lists/Consistent_list_indentation
/en-US/docs/Web/Guide/CSS/Counters /en-US/docs/Web/CSS/CSS_counter_styles/Using_CSS_counters
Expand Down
84 changes: 47 additions & 37 deletions files/en-us/_wikihistory.json
Original file line number Diff line number Diff line change
Expand Up @@ -43042,6 +43042,16 @@
"chrisdavidmills"
]
},
"Web/API/IDBLocaleAwareKeyRange": {
"modified": "2020-10-15T21:38:45.838Z",
"contributors": [
"teoli",
"fscholz",
"Sebastianz",
"Seta00",
"chrisdavidmills"
]
},
"Web/API/IDBObjectStore": {
"modified": "2020-10-15T21:10:03.883Z",
"contributors": [
Expand Down Expand Up @@ -77127,43 +77137,6 @@
"teoli"
]
},
"Web/CSS/CSS_display/Block_formatting_context": {
"modified": "2020-11-02T20:53:20.927Z",
"contributors": [
"spollard",
"pacexy",
"wbamberg",
"Mookiepiece",
"SelenIT",
"TrevorKarjanis",
"mfuji09",
"Konrud",
"estelle",
"wavesheep",
"jennyevans",
"MelvinIdema",
"chrisdavidmills",
"Ende93",
"xiaohanyu",
"YvonneZhang",
"pythonista27",
"S-Dey",
"mfluehr",
"yisibl",
"alberts+",
"rainyLeo",
"PageYe",
"HashemQolami",
"Jeremie",
"teoli",
"kscarfone",
"tregagnon",
"Sheppy",
"cbiesinger",
"Kohei",
"DBaron"
]
},
"Web/CSS/CSS_filter_effects": {
"modified": "2020-12-02T11:05:43.361Z",
"contributors": ["peterbe", "wbamberg", "fscholz", "mfluehr"]
Expand Down Expand Up @@ -91967,6 +91940,43 @@
"ethertank"
]
},
"Web/Guide/CSS/Block_formatting_context": {
"modified": "2020-11-02T20:53:20.927Z",
"contributors": [
"spollard",
"pacexy",
"wbamberg",
"Mookiepiece",
"SelenIT",
"TrevorKarjanis",
"mfuji09",
"Konrud",
"estelle",
"wavesheep",
"jennyevans",
"MelvinIdema",
"chrisdavidmills",
"Ende93",
"xiaohanyu",
"YvonneZhang",
"pythonista27",
"S-Dey",
"mfluehr",
"yisibl",
"alberts+",
"rainyLeo",
"PageYe",
"HashemQolami",
"Jeremie",
"teoli",
"kscarfone",
"tregagnon",
"Sheppy",
"cbiesinger",
"Kohei",
"DBaron"
]
},
"Web/Guide/CSS/Getting_started/Challenge_solutions": {
"modified": "2019-08-29T20:48:33.765Z",
"contributors": [
Expand Down
24 changes: 12 additions & 12 deletions files/en-us/games/publishing_games/game_promotion/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,33 +24,33 @@ While you can create your website from scratch, there are also tools that can he

## Social media

Your social media presence is very important. The `#gamedev` hashtag can help find friends and allow you to engage with the community and help other devs in need. Honesty is key and you should be authentic; nobody likes boring press releases or pushy advertisements. When the time comes, your community will help you spread the word about your shiny new game!
Your social media presence is very important — [hashtags](https://twitter.com/hashtag/gamedev) can help find friends and allow you to engage with the community and help other devs in need. Honesty is key and you should be authentic, because nobody likes boring press releases or pushy advertisements. When the time comes, your community will help you spread the word about your shiny new game!

Keep an eye on gamers who stream on YouTube and Twitch, and be active on forums such as [HTML5GameDevs.com](https://www.html5gamedevs.com/). Share your news and answer questions so that people will value what you're doing and will know that you're trustworthy. Remember to not be too pushy when it comes to telling everyone about your games — you're not a walking advertisement.
Keep an eye on gamers who stream on YouTube and Twitch, engage with Twitter circles and be active on forums such as [HTML5GameDevs.com](https://www.html5gamedevs.com/). Share your news and answer questions so that people will value what you're doing and will know that you're trustworthy. Remember to not be too pushy when it comes to telling everyone about your games — you're not a walking advertisement.

Grow your audience by talking to them, sharing tips, offering discounts, giving away prizes in competitions, or just complaining at the weather or buggy browser you have to deal with. Be generous, be yourself and be there for others, and you'll be treated with respect.

## Game portals

Using game portals is mostly concerned with [monetization](/en-US/docs/Games/Publishing_games/Game_monetization), but if you're not planning to [sell licenses](/en-US/docs/Games/Publishing_games/Game_monetization#licensing) to allow people to purchase your game and intend to [implement adverts](/en-US/docs/Games/Publishing_games/Game_monetization#advertisements) or in-app purchases instead, promoting your game across free portals can be effective.
Using game portals is mostly concerned with [monetization](/en-US/docs/Games/Publishing_games/Game_monetization), but if you're not planning to [sell licenses](/en-US/docs/Games/Publishing_games/Game_monetization#licensing) to allow people to purchase your game and are intending to [implement adverts](/en-US/docs/Games/Publishing_games/Game_monetization#advertisements) or in-app purchases instead, promoting your game across free portals can be effective.

There are a number of different game portals to which you can send your games for publication. Some portals have their own APIs that allow you to authorize users, save their progress and process in-app purchases. You can also sell a full version of the game from inside your browser demo version, which will be a great move considering high competition, some developers even manage to make full browser versions. Most portals offer revenue share deals or will buy nonexclusive licenses.
There are a number of different game portals to which you can send your games for publication. Some portals have their own APIs that allow you to authorize users, save their progress and process in-app purchases. You can also sell a full version of the game from inside your browser demo version, which will be a great move considering high competition, some developers even manage to make full browser versions. Most portals offer revenue share deals or will buy nonexclusive license.

Free portals offer traffic, but only the best ones are popular enough to generate revenues from advertisements on in-app purchases. On the other hand, they are a perfect tool to make games visible to a broader audience if you have no budget and limited time.
Free portals offer traffic, but only the best ones are popular enough to generate revenues from advertisements on in-app purchases. On the other hand they are a perfect tool to make games visible to a broader audience if you have no budget and limited time.

## Press

You can try and reach the [press](https://indiegamesplus.com/) about your game, but bear in mind that they get a tonne of requests like this every single day, so be humble and patient if they don't answer right away, and be polite when talking to them. Be sure to check first if they are dealing with specific genres of games or platforms, so you don't send them something that is not relevant to them in the first place. If you're honest with your approach and your game is good, then you've got more of a chance of success.

If you want to learn more about the etiquette of contacting the press you should check out [How To Contact Press](https://app.box.com/s/p0ft5zdolpi0ydkrykab) - a great guide from Pixel Prospector.
If you want to learn more about the etiquette of contacting the press you should definitely check out [How To Contact Press](https://app.box.com/s/p0ft5zdolpi0ydkrykab) - a great guide from Pixel Prospector.

## Tutorials

It's good to share your knowledge with other devs — after all, you probably learned a thing or two from online articles, so you take the time to pay that knowledge forward. Talking or writing about something you achieved or problems you overcame is something people would be interested in. Also, you can use your own game as an example, especially in a tutorial when you're [showing how to do something you've implemented already](/en-US/docs/Games/Techniques/Controls_Gamepad_API). That way everyone benefits — people learn new skills, your game gets promoted, and if you're lucky you can even get paid for writing a tutorial if it's good enough.
It's good to share your knowledge with other devs — after all you probably learned a thing or two from online articles, so you take the time to pay that knowledge forward. Talking or writing about something you achieved or problems you overcame is something people would be interested it. And you can use your own game as an example, especially in a tutorial when you're [showing how to do something you've implemented already](/en-US/docs/Games/Techniques/Controls_Gamepad_API). That way everyone benefits — people learn new skills, your game gets promoted, and if you're lucky you can even get paid for writing a tutorial if it's good enough.

There are portals like [Tuts+ Game Development](https://gamedevelopment.tutsplus.com/) which will be more than happy if you write for them - they pay for the content, but not all topic ideas will be accepted. When writing a tutorial remember to focus on delivering something valuable to the reader. They want to learn something - offer your expertise and use your game as a case study. Focus on one aspect and try to explain it throughout and in detail. Also, remember to follow up on discussions in your comments if people have any questions.
There are portals like [Tuts+ Game Development](https://gamedevelopment.tutsplus.com/) which will be more than happy if you write for them - they pay for the content, but not all topic ideas will be accepted. When writing a tutorial remember to focus on delivering something valuable to the reader. They want to learn something - offer your expertise and use your game as a case study. Focus on one aspect and try to explain it throughout and in detail. Also remember to follow up discussion in comments if people have any questions.

If portals you contact are not interested in your content because you don't have any experience yet, try writing tutorials and then publish them on [your own blog](#website_and_blog) first. It's the easiest way to train your writing skills on your own.
If portals you contact are not interested in your content because you don't have any experience yet, try writing tutorials and publish them on [your own blog](#website_and_blog) first. It's the easiest way to train your writing skills on your own.

## Events

Expand All @@ -62,7 +62,7 @@ There are many conferences where you can give a talk explaining some technical d

### Fairs

The other event-related option is fairs (or expos) — at such an event you can get a booth among other devs and promote your game to all the attendees passing by. If you do so, try to be unique and original, so you easily stand out from the crowd. Do it the right way and everybody will be talking about you and your game. Having a booth gives you the possibility to interact with your fans directly — besides the promotion part, you can also test new builds of your game on regular people and fix any bugs (or incorporate any feedback) they uncover. You can't imagine what people may come up with when playing your game, and what obvious issues you've missed while spending hours polishing it.
The other event-related option is fairs (or expos) — at such an event you can get a booth among other devs and promote your game to all the attendees passing by. If you do so, try to be unique and original, so you easily stand from the crowd. Do it the right way and everybody will be talking about you and your game. Having a booth gives you the possibility to interact with your fans directly — besides the promotion part you can also test new builds of your game on regular people and fix any bugs (or incorporate any feedback) they uncover. You can't imagine what people may come up with when playing your game, and what obvious issues you've missed while spending hours polishing it.

## Promo codes

Expand All @@ -74,6 +74,6 @@ You can help community grow and promote yourself and your games at the same time

## Summary

Any way of promoting your game is good. You have a lot of options to choose from with most of them being free, so it's only about your enthusiasm and available time. Sometimes you have to spend more time promoting a game than actually developing it. Remember that it's no use to have the best game in the world if no one knows it exists.
Any way of promoting your game is good. You have a lot of options to chose from with most of them being free, so it's only about your enthusiasm and available time. Sometimes you have to spend more time promoting a game than actually developing it. Remember that it's no use to have the best game in the world if no one knows it exists.

Now, let's get on with that [monetization](/en-US/docs/Games/Publishing_games/Game_monetization) part, and earn something for a living.
Now lets get on with that [monetization](/en-US/docs/Games/Publishing_games/Game_monetization) part, and earn something for a living.
Loading