RetroAchievements / docs-archive

RADocs
https://docs-archive.retroachievements.org
52 stars 10 forks source link

Talk Page: Meta / General #3

Closed meleu closed 6 years ago

meleu commented 6 years ago

@kdecks @gamedragon2k

In the Beginner Tips page there is a tip that confused me. Well, IMHO if it confuses me it can confuse others... 😅

Then I think it can be better written by a more experienced dev. The item is this one:


Also, many of tips there is very basic that deserves to be in the "Getting Started..." page. Things like ResetIf, PauseIf, Delta, etc.

I compromise myself to overhaul the "Getting Started" page adding stuff I'm learning currently. It still lacks many info.

GameDragon2k commented 6 years ago

Typically, when you're looking at 16-bit addresses in memory inspector, it would display like this:

image

In this case, the only selectable addresses are 0x000040, 0x000042, 0x000044, 0x000046, 0x000048, 0x00004a, 0x00004c and 0x00004e.

However, just because those are the only selectable addresses, does not mean you can't use an address inbetween those as a 16-bit address for achievements (0x000047 for example).

image

kdecks commented 6 years ago

This is one neat trick I never knew. Maybe I'll read the whole thing

On Nov 27, 2017 2:03 AM, "GameDragon2k" notifications@github.com wrote:

Typically, when you're looking at 16-bit addresses in memory inspector, it would display like this:

[image: image] https://user-images.githubusercontent.com/3225327/33258227-cf076914-d326-11e7-921e-879b1415e074.png

In this case, the only selectable addresses are 0x000040, 0x000042, 0x000044, 0x000046, 0x000048, 0x00004a, 0x00004c and 0x00004e.

However, just because those are the only selectable addresses, does not mean you can't use an address inbetween those as a 16-bit address for achievements (0x000047 for example).

[image: image] https://user-images.githubusercontent.com/3225327/33258508-d910be78-d327-11e7-94ef-63f633657939.png

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/RetroAchievements/docs/issues/3#issuecomment-347118273, or mute the thread https://github.com/notifications/unsubscribe-auth/AfMPHenUH9U25FIqiJ1bVlmIon6izoMRks5s6nrTgaJpZM4QrO2- .

meleu commented 6 years ago

Thanks for the explanation @GameDragon2k

Let's move to the next question:

In the Magus' Finish Level template we have:

Finish Level
------------------------------------------------------
      0x_LEVEL =  Value 0x000001 (1)
      0x_LEVEL =  Value 0x000002
      0x_LEVEL >  Delta 0x_LEVEL
Pause 0x_LEVEL >  Value 0x000002     ; Different Level
Reset 0x_LEVEL <= Value 0x000000     ; Game Start

I completely understand the first three requirements:

  1. a hit counter for being on level 1
  2. actually be on level 2
  3. detect a transition from a level to a greater one

I'm not sure about the last requirement, that resets the hit counter if the game restarts. Looks like a way to prevent password/stage-select-cheat abusing. Could you guys explain it?

And the Pause requirement... I can't see why it should be used.

Thanks in advance.

meleu commented 6 years ago

OK guys, there's no need to go so deep into those Magus templates. I was talking with him and he said something like

These templates I did for myself, not for public. So you shouldn't look so deeply into them.

Then I will change the approach here, I'll use his examples and create a simpler version of each one. A version where I am able to explain each line.

I'll be sure to add a note like "put into consideration that every game is different and some and many times the memory has a different behavior"

I'll be back here when I face new doubts.

Cheers!

kdecks commented 6 years ago

True they were only intended to get the ball rolling. And they're pretty good resources. Every game is different

On Nov 27, 2017 3:10 PM, "meleu" notifications@github.com wrote:

OK guys, there's no need to go so deep into those Magus templates. I was talking with him and he said something like

These templates I did for myself, not for public. So you shouldn't look so deeply into them.

Then I will change the approach here, I'll use his examples and create a simpler version of each one. A version where I am able to explain each line.

I'll be sure to add a note like "put into consideration that every game is different and some and many times the memory has a different behavior"

I'll be back here when I face new doubts.

Cheers!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/RetroAchievements/docs/issues/3#issuecomment-347345690, or mute the thread https://github.com/notifications/unsubscribe-auth/AfMPHeFFJhh5n2MZU0Iv9s2m7_JDBGtzks5s6zNugaJpZM4QrO2- .

meleu commented 6 years ago

OK guys. I'm done with adapting the Magus templates for noobs.

Here is my renamed and trimmed version: https://github.com/RetroAchievements/docs/wiki/Achievement-Templates

And here is the previous version with Magus templates if you think I've cut to much stuff: https://github.com/RetroAchievements/docs/wiki/Example-Achievement-Types/f800672a18726c39d341595cfe92c010c9587a38

Feedback is welcome!

meleu commented 6 years ago

It was a pain but I think I finally have a good structure for devs documentation in mind:

  1. Getting Started as an Achievement Developer: it's for the very first contact with cheevos development tools (Memory Inspector and other Achievements dialogs).

  2. Achievement Logic Features: describes delta values, hit counts, ResetIf, PauseIf, N64 Special flags, alt groups...

  3. Real Examples: getting real examples and breaking down the logic behind them. This page can be an awesome place where the devs can share their tricks to avoid cheating and stuff like that!

  4. Tips and Tricks: general tips and tricks about memory digging and achievement creation.

  5. Console Specific Tips

  6. Achievement Templates: the Magus templates. Maybe we can add more in the future.

  7. Difficulty Scale and Balance

  8. Badge Creation

  9. Leaderboards

  10. Rich Presence

  11. Set Development Roadmap

I'll try to go through that page with Cirellio's thoughts and put the info I find there in some of the pages above.

In my humble opinion the documentation project is getting pretty good!

GameDragon2k commented 6 years ago

I had originally planned to have other information in https://github.com/RetroAchievements/docs/wiki/Achievement-Logic-Features, but since it's just achievement stuff now, I think it might be better merged with another page.

meleu commented 6 years ago

@GameDragon2k could you anticipate what kind of info it would be?

meleu commented 6 years ago

@kdecks changed a bit the requirements ordering of the example you've added to the templates page. I did it trying to make the explanation slightly clearer. Like:

Conditions 1 and 2 together mean "arrived the level without the item".

Are you OK with me editing this?

kdecks commented 6 years ago

Yes I am. I went in and made a, few further edits

On Nov 28, 2017 8:23 PM, "meleu" notifications@github.com wrote:

@kdecks https://github.com/kdecks changed a bit the requirements ordering of the example you've added to the templates page. I did it trying to make the explanation slightly clearer. Like:

Conditions 1 and 2 together mean "arrived the level without the item".

Are you OK with me editing this?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/RetroAchievements/docs/issues/3#issuecomment-347741205, or mute the thread https://github.com/notifications/unsubscribe-auth/AfMPHXsrVS5pRsjlRudFJuba-iVQUxxXks5s7M5DgaJpZM4QrO2- .

kdecks commented 6 years ago

Par codes on the getting started page, that link is broken. Also this could be used for cheating undetected, thus I have some concerns with teaching new devs how to use it.

meleu commented 6 years ago

@kdecks I've removed it. I'll try to improve the final words of that guide with some instructions on "how to get developer status on RA site". Will report here when I have something.

kdecks commented 6 years ago

I'm not 100% against it. I'm using Cheat Engine occasionally to do the same thing, GameDragon is planning to add a similar function sometime. Just something to consider on how we want to best approach it.

meleu commented 6 years ago

I'm 100% against it being in the Getting Started page. I didn't used it myself, but if you think it's useful, we can add in another page (such as Developer Resources).

kdecks commented 6 years ago

yeah that's about how I feel about it

On Nov 30, 2017 7:13 PM, "meleu" notifications@github.com wrote:

I'm 100% against it being in the Getting Started page. I didn't used it myself, but if you think it's useful, we can add in another page (such as Developer Resources https://github.com/RetroAchievements/docs/wiki/Developer-Resources).

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/RetroAchievements/docs/issues/3#issuecomment-348381637, or mute the thread https://github.com/notifications/unsubscribe-auth/AfMPHdqy6ZqMC38ynOxWMTrDS-kj5BOiks5s72DWgaJpZM4QrO2- .

meleu commented 6 years ago

I've added this info in the Getting Started page:


Technically an achievement is a group of conditions that must be met in a particular frame of the video game.

When you launch a game on an emulator with the RetroAchievements feature, the emulator is always checking if those conditions are met in the current frame. When all conditions for a particular achievement are met, the achievement is awarded and the emulator stops checking this particular group of conditions.


Could you guys confirm if this information is accurate?

meleu commented 6 years ago

Hey! That conditional resets trick is great!

meleu commented 6 years ago

Hello fellows @kdecks and @GameDragon2k

I'm going to split the Real Examples into separate pages, one for each example. IMO it will be more organized and manageable.

meleu commented 6 years ago

@GameDragon2k @kdecks Is this Majora's Mask "concept" a real achievement? If yes, could you guys provide me the link?

I think this cheevo deserves to be on Real Examples section.

GameDragon2k commented 6 years ago

@kdecks Helped MoonLegend with Majora's Mask. Question better suited to him.

kdecks commented 6 years ago

It's not a real achievment. It was an idea for a real achievement, he went for a simpler solution.

meleu commented 6 years ago

ToDo list:

EDIT: ToDo list is now on its own thread #6

kdecks commented 5 years ago

I've standardized the term for "Discussion pages" to "talk page" (maybe "talk thread" is more appropriate) to mirror what you'd find on most standard wikis. Notably wikipedia and wikia. I also renamed this page and tagged it.

kdecks commented 5 years ago

I've noticed as well that the to-do items are only displayed on the issues page if they are in the initial post. I'm thinking to create an initial post for "main stuff", like we do with the first post in our forum topics.

ie a place where any maintainer can add a link to the page, to-do items, and other important stuff.