One thing I'm confused about is why even the Japanese article referenced is just speculating, albeit in a more reasoned fashion--they use the fact that it's a joint lawsuit from Nintendo and The Pokémon Company to narrow their focus to jointly-held patents in a relevant time range. I did a bit of Googling and one result said that you can only request court records if you know the case number, which is pretty wack if that's the case. Like, PACER sucks and all (always check RECAP first and use their extension to upload documents for everyone!) but I've been following a random-ass civil court case in the US for about a year now and that's shit is all online. Seems wild to me that even an intrepid reporter who marched on down to the courthouse wouldn't be able to get their hands on the complaint. Big cases like this have ramifications far beyond the involved parties, so it's important for the public to be able to see the arguments being made in detail.
DeepL translation of Japanese article
Nintendo and Pokémon Inc. filed a lawsuit against Pocket Pair, developer of Palworld, for patent infringement (Nintendo press release). As you know, there was some opinion that the modeling of the monsters in Palworld was similar to that of Pokemon, but it was difficult to question copyright infringement (they were close, but just barely avoided it). So Nintendo exercised its rights not by copyright but by patent right. An injunction and damages are being sought.
Palworld is not free to play, so I guess from the introduction videos on YouTube, etc., but aside from the monster sculpting, the game system does not seem to be that similar to Pokemon, and it seems to be an open-world game similar to Ark, etc. If there are similarities, it seems to be Balls. If there is a similarity, it is in the part where you capture monsters by throwing a ball-like object at them. If there is any similarity, it is the part where you throw a ball-like object at the monster to capture it.
Since Pokémon and Nintendo are jointly suing, we can naturally narrow the number of patents down to 28 if we assume that the patents are also jointly filed by the two companies. Of those 28, four were filed as divisional applications after PAL World went into service (January 19, 2024).
The one with the most recent filing date is patent 7545191. It was filed on July 30 of this year, requested for examination on August 6, requested for accelerated examination, and was already granted a patent on August 22. It is believed that the Super Accelerated Examination system was used.
The following patents follow: Patent No. 7528390 (filed on March 5 and registered on July 26), Patent No. 7493117 (filed on February 26 and registered on May 30), and Patent No. 7505854 (filed on February 6 and registered on June 17). All have requested accelerated examination (possibly super accelerated examination).
All are divisional applications of the December 22, 2021 application, so the effective filing date is December 22, 2021, and they are enforceable against Palworld, which entered service on January 19, 2024. It is believed that the scope of rights of the divisional application of the existing patent was amended to "pull in" the composition of the allegedly infringing property for use in litigation, a technique commonly referred to as "fitting in" (we wrote an explanatory article on this in the case of Konami's lawsuit against Cygames "Uma Musume"). In terms of timing, it seems natural to assume that the lawsuit was filed pending the grant of these patents.
Let's take a look at the contents of Patent No. 7493117, which is easy to understand and seems to have a broad scope of rights among these patents. Claim 1 reads as follows
Claim 1.
To a computer of an information processing apparatus,
In a first mode,
determine a aiming direction in the virtual space based on a first operation input, which is a directional input; and
When a second operation input is made, having the aiming direction be directed toward a field character positioned on a field in the virtual space, and having the first indicator displayed,
In accordance with the third operation input, the player character is made to perform a movement of releasing a capture item for capturing the field character in the aiming direction,
When the capturing item hits the field character, the player character is made to make a determination as to whether the capture is successful or not,
If the capture success judgment is positive, the player character is set to own the field character that was hit by the captured item,
The first indicator is information indicating how easy it is to make a positive judgment of the capture success judgment.
In the end, what it is saying is that a ball (capture item) is thrown at a monster (field character), a successful capture decision is made, and if the capture is successful, the monster can be set to be owned, in which case the ease of successful capture is indicated by some indicator (not a number, but a color or design is also acceptable, according to the specification). This is all. If you want to make a Pokémon-like game, it may be difficult to avoid it, and if you are not aware of it, it may conflict with it. I feel that this is a killer patent. Other patents will be explained later.
Of course, there is no proof that these patents are used, and there is a possibility that other patents are used as well. It is also possible that Nintendo or Pokémon is filing another lawsuit using patents of which it is the sole owner. Nintendo is also known for its incredibly powerful patents, such as the patent used in the lawsuit against Coroplast (see related article), which restricts users to play games only with mutually registered users in communication games.
As was said during the lawsuit against Coroplast, it seems that Nintendo's corporate policy is that even though they have a super-powerful patent portfolio, they do not actively enforce their rights themselves, but only fight thoroughly when their IP is about to be eroded.
I'll preface this by saying I'm working my way through the Rust book, too--just a bit further along--so don't take my word as gospel.
This exact scenario is what the
?
operator was designed for: returning early with theErr
if one is received^[There's also some type coercion, but that's beyond the scope of your question], otherwise unpacking theOk
. As you've discovered, it's a common pattern, so using the?
operator greatly cuts down on the boilerplate code. If you wanted to do the equivalent of you have here (panicking instead of returning theErr
for it to potentially be handled in calling code, albeit without your custom panic messages^[edit: you can useexpect
to get the custom messages as covered in another comment--not sure how I forgot that]) you could achieve this withunwrap()
instead of?
:Both of these will be covered in chapter 9.
If you want to avoid those constructs until later, the only thing I'd say is that some of the intermediate variables seem unnecessary since you can match on the function call directly:
You could also eliminate the final
let
statement and just stick theparse_document
call at the end, but that's a matter of preference--I know having an intermediate variable before a return can sometimes make debugging easier.As for whether you should build something now or wait till you learn more--go with your gut! The most important thing is that you stay actively engaged with the material, and many people find diving into projects as soon as possible helps them learn and stay motivated. You could also use rustlings and/or Rust by Example as you go through the book, which is what I've been doing (specifically rustlings). It's not as stimulating as writing a project from scratch, but it does let you write some relevant code. And if you're not already, I highly recommend using the Brown version of the Rust Book which includes interactive quizzes sprinkled throughout. I've found them particularly helpful for understanding the quirks of the borrow checker, which is a topic it continues to revist throughout the book.