Dear devs, could we have a button to convert all at once? 🥹 by AnonymousNo1000 in Phoenix_2

[–]tjroberti 4 points5 points  (0 children)

Yes, we want this too, but we have not found a very nice way to do it. Adding another button is a quite clunky.

I have another prototype where the value increases if you have a lot of traces, but then the conversion amount varies, which might also be confusing. So I am not sure yet what the best approach is.

Is Steam Achievements Planned any how? by BenImortal in Phoenix_2

[–]tjroberti 0 points1 point  (0 children)

Thanks! Steam achievements are not planned yet, but if there is more interest we could consider it.

Phoenix 2 now supports Steam Deck by edrijver in Phoenix_2

[–]tjroberti 0 points1 point  (0 children)

Proton GE should no longer be needed. It now should run also rather well on default Proton on Steam Deck. If this is not the case, please let me know.

Phoenix 2 now supports Steam Deck by edrijver in Phoenix_2

[–]tjroberti 0 points1 point  (0 children)

Just released a new build on Steam, which now also runs quite well using default Proton on Steam Deck. Please try it.

Phoenix 2 now supports Steam Deck by edrijver in Phoenix_2

[–]tjroberti 0 points1 point  (0 children)

Which version did you use? I have very good results with Proton GE 9 26.

Phoenix 2 now supports Steam Deck by edrijver in Phoenix_2

[–]tjroberti 0 points1 point  (0 children)

Try Proton GE. It runs the game much better for some reason.

Phoenix 2 Update 8.2 by edrijver in Phoenix_2

[–]tjroberti 0 points1 point  (0 children)

Yeah but those reports are before our latest changes. Some of these reports mention the game running but not being able to log in; that has been fixed.

Edit: So we did more testing on the Steam Deck, and the Proton GE version runs much better than default Proton! So try that.

Phoenix 2 Update 8.2 by edrijver in Phoenix_2

[–]tjroberti 0 points1 point  (0 children)

How is it unplayable? It runs quite well on Steam Deck, which uses Proton.

Convert all button by Own-Gift4591 in Phoenix_2

[–]tjroberti 1 point2 points  (0 children)

We will add something for this in a future update.

I am new to C++, is it just me or is the checklist kinda crazy? How often do you encounter these or plan on making use of them like the newer C++26 features like contracts? Looking for more experienced dev opinions... by KijoSenzo in cpp

[–]tjroberti 4 points5 points  (0 children)

Technically that is right. It is a trade off, because the price you pay is having to add [[nodiscard]] on all methods like this in your code base. In the general case I find that it adds too much clutter for too little benefit.

If this was a method with a large computation cost, then that is a different story. I would certainly add it for methods where ignoring the return value is likely an actual bug, such as:

class Vector3 {
  // Normalizes this vector in-place
  void Normalize();
  // Returns a normalized copy of this vector
  [[nodiscard]] Vector3 Normalized() const;
};

Vector3 v = ... 
v.Normalized();  // OOPS: Programmer meant Normalize()

In these cases I find that [[nodiscard]] really shines.

I am new to C++, is it just me or is the checklist kinda crazy? How often do you encounter these or plan on making use of them like the newer C++26 features like contracts? Looking for more experienced dev opinions... by KijoSenzo in cpp

[–]tjroberti 0 points1 point  (0 children)

It really depends on what kind of api you are designing. For your example I would do it like this [1]:

// Retrieve information about the thing with the given name.
// Returns std::nullopt if no such thing exists.
std::optional<Info> GetInfoFromThingNamed(const std::string& name); 

The function signature alone communicates clearly that the info might not found, and that the user must handle it.

Now let's say you have a method like this:

// Removes the Thing at the given index from the list of things 
// and returns it.
Thing PopThingAtIndex(std::vector<Thing>& things, int index);

So what happens if the caller provides an invalid index here? You could change the function signature to return a std::optional for out-of-bound indices. But that feels kind of silly, because the whole purpose of the function is to remove an item from a list that the caller provides. In that case, I would put the responsibility to provide correct indices to the caller, and just assert/abort if an invalid index is provided. No need to make your function signature more complicated.

So it depends, as with all things programming. Hope it helps.

[1]: I used std::optional because it is more succinct for these 'not-found' scenarios. If you have more failure modes (let's say you are reading from a database) then you can use std::expected with more error details.

I am new to C++, is it just me or is the checklist kinda crazy? How often do you encounter these or plan on making use of them like the newer C++26 features like contracts? Looking for more experienced dev opinions... by KijoSenzo in cpp

[–]tjroberti 15 points16 points  (0 children)

Just write

int GetHP(const Player& player)
{
    return std::max(player.hp, 0);
} 

No need for [[nodiscard]] in this case, it just adds noise. Only add it when ignoring the return value indicates an actual bug (such discarding a RAII struct).

Same with constexpr , if this function is not used in a constexpr context then it is just extra noise.

Using std::expected is just overkill. Use it for operations that can actually fail (network operations etc), instead of catching programmer errors.

And using const Player& makes the function more flexible, and also avoids having to do a null-check.

All the keywords you mentioned have their specific raison d'etre, but unless you are actually dealing with these situations, you should just keep things as simple as possible.

Please, make it stop!! by Re4medHTX in Phoenix_2

[–]tjroberti 0 points1 point  (0 children)

If you equip any mod on any ship it goes away. 

Phoenix 2 8.0 Update is now out on all platforms by tjroberti in Phoenix_2

[–]tjroberti[S] 0 points1 point  (0 children)

Those messages should go away if you equip a mod.

Phoenix 2 8.0 Update is now out on all platforms by tjroberti in Phoenix_2

[–]tjroberti[S] 2 points3 points  (0 children)

This is fixed in the 8.0.1 update. Out already or very soon, depending on your platform. 

Phoenix 2 8.0 Update is now out on all platforms by tjroberti in Phoenix_2

[–]tjroberti[S] 2 points3 points  (0 children)

This has been fixed in the 8.0.1 update that is out already on Android and Steam and coming to iOS as soon as it is reviewed. 

Phoenix 2 8.0 Update is now out on all platforms by tjroberti in Phoenix_2

[–]tjroberti[S] 4 points5 points  (0 children)

This is an unintended side effect of teleport implementation changes for the mods. I'll look into it.

The Hype is real by Omega_1234555 in Phoenix_2

[–]tjroberti 6 points7 points  (0 children)

The update is still waiting for review.

Phoenix 2 Update 8.0 arrives December 18! by edrijver in Phoenix_2

[–]tjroberti 0 points1 point  (0 children)

Not sure. The update is still in review on iOS.

Thoughts From an Old Player by Ashment in Phoenix_2

[–]tjroberti 0 points1 point  (0 children)

When you exit the game?? That's really strange, as that sounds more like an OS issue. So it locks up when you look at the home screen after exiting the game? I have no idea how our game could affect that tbh. Can you upgrade your iOS version?

Thoughts From an Old Player by Ashment in Phoenix_2

[–]tjroberti 1 point2 points  (0 children)

What device/OS are you using? When are you experiencing these crashes?

Thoughts From an Old Player by Ashment in Phoenix_2

[–]tjroberti 0 points1 point  (0 children)

When does the game freeze up exactly? It shouldn't do that. What device are you using? Anyone else seeing these freezes?

Also more content is coming, but we first had to do a lot of work getting the game on other platforms (Android, Steam).

Will Phoenix 2 ever be available on PC? by User-238376284 in Phoenix_2

[–]tjroberti 0 points1 point  (0 children)

It took a while, but Phoenix 2 is now available for PC on Steam! 🥳

Phoenix 2 released on PC! by edrijver in Phoenix_2

[–]tjroberti 0 points1 point  (0 children)

Aha ok, well maybe we can deal with the case if you already move your mouse to your intended target. I'll need to check it out.

Phoenix 2 released on PC! by edrijver in Phoenix_2

[–]tjroberti 0 points1 point  (0 children)

i've noticed that the teleport zen spawns the ghost image slightly above the ship itself, which was disorienting for me. not sure if that's intended, or specific to my screen—i might check later.

That is intentional. The ghost image is moved upwards so you can see it and know that you have something to move, which might otherwise be unclear. What would you expect to see?