STARTREK for Arduboy

It’s fine if he doesn’t want any contributors. I suppose it’s even fine if he doesn’t want MY specific contributions, though that would make me sad. He merely has to say so. It’s the limbo and not knowing that’s the hard part. :slight_smile:

But I have a certain pace I would contribute at, and sometimes I can be very laser focused on a single project. For my thinking, I did start with a small PR, with very granular small commits. If for @BlueMax that’s too complex to review or he doesn’t trust me to make such small improvements, then that was exactly what I’m trying to find out.

I can’t do much about the language and cultural differences but I bet BlueMax could learn a lot if we collaborated on this and he watched the types of changes I make and the reasoning behind them.

I think I’m being quite patient here - I’m just trying to figure out where I stand on contributing. I’ve already rebased my PR once on top of some significant changes of his, and I’m even willing to do so again - I just want to know if BlueMax is actually open to reviewing and merging it or not… because otherwise constantly keeping up with master makes no sense.

This is precisely what I mean.

You think that because you’re experienced with the language and used to using GitHub.
You know how to navigate into the commits and read the code,
and you know what all the changes mean.

Stop to consider for a moment that @BlueMax might not know,
and even if he understands what the change is doing,
it might not be obvious why the change is a good thing.

If I had a mind to, I could take the code, sit down with it for a few hours and cut the memory usage down significantly, making it barely unrecognisable in the process.

But that’s not the goal here, and it’s not helpful.

This is @BlueMax’s game, and it’s important that he retains understanding of it and has the final say.
The goal here is to support @BlueMax in making the game what he wants it to be,
and helping him to become a better programmer,
not to make the best possible Star Trek game for Arduboy.

Merely giving the commits descriptive titles is not the same as explaining the changes.
The titles say what the commits do, but it doesn’t explain why.

  • Why is a gitignore needed?
  • Why is resupplyOnlyOnce a better name than supply?
  • Why is invert better than inv?

Removing the entire windowAnimation function is quite substantial, even if it’s not very impactful.
Splitting loop up into several functions is also quite a notable change.

They’re not ‘big’ from the point of view of an experienced, well versed programmer,
but small changes can seem a lot larger for less experienced programmers.

Have you considered that @BlueMax might not be checking GitHub PRs and might prefer to discuss changes on the forum?

Not necessarily.

A lot of people just use it as somewhere to host code,
not expecting to get PRs or issues at all,
or only wanting PRs from sanctioned contributors.

Again, you know that because you’re used to using GitHub and know what the common practice is.

It’s small if you’re used to using GitHub and collaborating with other people,
but it can be quite daunting if you’re not.

Consider for a moment that @BlueMax might not have the first clue what that means.

I expect only a handful of people here actually would know because most people don’t have to worry about that kind of thing.

Most people here tend to use GitHub for personal game projects and only join up with people by pre-agreed collaboration.
They don’t tend to just get undexpected PRs.

Why not just ask, and discuss it?
(Here, on the forum, not on GitHub.)


I’m going to stop there because I want to give @BlueMax a chance to respond to the matter and give his honest feelings.

I appreciate that I might be making too many assumptions about what he’s comfortable with and what he isn’t,
but I tend to find that it’s better to assume less experience rather than more.

People who are struggling often try to hide that they’re struggling or don’t understand something because admitting it is difficult and seems/feels like failure.

@BlueMax:

  • Are you happy with @Dreamer3’s changes?
    • Dreamer3の変更が好きですか?
  • Do you understand @Dreamer3’s commits?
    • Dreamer3のコミットは、分かりますか?
  • Is there anything you are struggling with?
    • コードとGitHubの場合に関して、大丈夫ですか?
    • (I had difficulty translating this. すみますえん。日本語は上手じゃない。)
  • Am I mistaken?
    • Dreamer3に関して、私は間違いですか?

Well, I am assuming one can click links on GitHub, yes… but I do give @BlueMax some credit where credit is due. If he was able to put together BOTH these pieces of software then I believe he can make sense of my individual commits if he viewed them one commit at a time - and again once you’re viewing them it’s pretty easy to ask question. And he’s free to ask for help if he doesn’t know how to view the commits.

I don’t really think that’s the problem but if it is it’s easy to solve.

If I had a mind to, I could take the code, sit down with it for a few hours and cut the memory usage down significantly, making it barely unrecognisable in the process.

I’m not even talking about that stuff per-se… I’m mostly talking about readability and clean code. Many of the things I have in mind will actually make the code MORE recognizable, not less.

This is @BlueMax’s game, and it’s important that he retains understanding of it and has the final say.
The goal here is to support @BlueMax in making the game what he wants it to be, and helping him to become a better programmer,
not to make the best possible Star Trek game for Arduboy.

I’m not bossing anyone around. If I wanted to be boss I’d just fork it and do it all on my own, but I don’t think that would be the optimal outcome here - a lot of real missed opportunity.

I think reading a steady stream of high quality commits would help him become a better programmer, even more so if he asked questions.

But also, why can’t BOTH of those things be goals? :slight_smile: I’m not sure they are mutually exclusive.

Why is a gitignore needed?

If he doesn’t know that he’s really just going to have to take some things on trust - or ask. The comment box is right there.

  • Why is resupplyOnlyOnce a better name than supply ?
  • Why is invert better than inv ?

I actually think that’s pretty clear, but if he’s happy to have me contribute I’m happy to explain these things further. If he doesn’t want contributions then it doesn’t really matter why they are better.

Removing the entire windowAnimation function is quite substantial

It was dead code that he’d already split out into 3 other smaller functions.

Splitting loop up into several functions is also quite a notable change.

Yes, notable - but not large or complex, very small change in terms of # of lines changed, and easy to follow if you look at the before vs after.

They’re not ‘big’ from the point of view of an experienced, well versed programmer, but small changes can seem a lot larger for less experienced programmers.

Our experience here is vastly different I think - so we may just have have to agree to disagree, but I actually do spend a lot of time mentoring programmers (of all skill levels) and I think even for [someone capable of writing and publishing two games of this scope] my commits (taken individually) are not particularly “large” or complex.

Have you considered that @BlueMax might not be checking GitHub PRs and might prefer to discuss changes on the forum?

Maybe, but he closed the first one down fairly quickly with a comment saying he had already done some of the work himself… hence my rebasing when he pushed that work to master. And that’s why I’m asking here.

and know what the common practice is.

I’m actually not sure that’s a common practice, but it’s the simplest way to get it done since GitHub evidentally doesn’t allow you to turn off PRs. And that’s why I was suggesting it here - I wasn’t saying “he already should have done it”…

It’s small if you’re used to using GitHub and collaborating with other people ,
but it can be quite daunting if you’re not.

Gonna have to agree to disagree that a 10 line change is “daunting”… again I’m erring on the side of giving @BlueMax some credit here for just finishing these projects - that’s no small feat.

Consider for a moment that @BlueMax might not have the first clue what that means.

I wasn’t necessary speaking to him on this point, I was replying to you.

Why not just ask, and discuss it?

That’s what I’m doing.

I’m going to stop there because I want to give @BlueMax a chance to respond to the matter and give his honest feelings.

That’s what I was hoping for, we didn’t necessarily need all this in-between chatter. :slight_smile:

I think the MORE someone knows - the more they accept PRs on merit and serious review - and the less someone knows they have to accept PRs more on trust because they trust the person who is contributing and want them to be contributing. Although at this level I’d assume someone can at least follow along with simple refactoring.

So while I’m wagering Bluemax should be able to make sense of most of those commits if he looks at them, I’m also assuming he needs to make an overall decision to whether to trust my judgment in general (particular if he can’t understand them). So when/if he sees something he doesn’t understand, like .gitignore he can either accept it completely on trust, or ask.

Since it’s easy to ask (or to trust) I don’t feel every PR or commit message needs to necessarily be a git tutorial.


And I think the trust angle is really important. I have some big refactoring ideas… and THOSE might be worth laying out in more detail (in commit text or PR description). But justifying (in detail) every single one line change in small refactoring PRs and why it was a good idea would get exhausting fast. I’d be happy to do it at first to get the ball rolling (or if there are questions), but I’m not going to start off assuming that level of detail is necessary.

Are you happy with @Dreamer3’s changes?

Thanks for focusing the discussion a bit here. :slight_smile: @BlueMax If you’re open to contributors and you’re wanting to learn how to use Git and GitHub better, this is an opportunity. :slight_smile: Practice makes perfect. I wonder how well that translates to Japanese. :slight_smile:

Thank you, @Dreamer3 and @Pharap.

I’m not good at English, so I don’t understand half of what you say. But I know you want to make me a better programmer.
I understand that there is a style and manner of programming, but it is also true that if you point out how to name variables and functions,I will not be a motivated a bit.(?少しやる気がなくなります)
I want more people to enjoy programming. I will never be a professional programmer, but I will continue to do my hobby programs. So I want you to forgive some programming rudeness. I’m not good at English or programming, so I can’t handle pull requests. Should I give up sharing the source program and just publish the .hex file? I think it is different. That goes against my idea of having many people enjoy programming.
I simply like ARDUBOY and games and just want to share it with people in this community.

To @Pharap.
4649! (これからもよ(4)ろ(6)し(4)く(9)!)

1 Like

わかります。いいよ。(I understand. It’s fine.)

説明できない。状況は複雑すぎるです。(I can’t explain. The situation is too complicated.)

“I will loose a little motivation”.
(少し = “a little”, やる気 = “motivation”, くなります = “to lose”)

(Usually “I will be a bit less motivated”, or just “I will be less motivated”.)

多分、私は「専門家」、でも私は「プロフェッショナル」じゃないです。
(Perhaps I am an ‘expert’, but I am not a ‘professional’.)

私も。プログラミングは趣味です。(Me too. Programming is my hobby.)

それは問題ないです。日本語は上手じゃない。(That’s not a problem. I’m not good at Japanese.)

GitHubはわかりにくいと思います。(I think GitHub is difficult to understand.)

決して。(Never.)

さすが、BlueMaxさん。(As expected, BlueMax-san.)


ナイス。(Nice.)

親父ギャグ:「その鳥です」(Old man joke: “that bird”.)

Maybe this is a translation issue. If you don’t WANT to learn how GitHub works so people can contribute to your project, that’s unfortunate, but your call. But if you’re saying “it’s impossible, it’s too hard” I don’t believe you because I already know you’re smarter than that. And either way it’s sad because it’s a huge missed opportunity to learn.

I’ve mentored new programmers and tought them how to use GitHub. It can be a slog at first, but as it all falls into place it becomes much clearer.

Just to develop two full games like you have means you could learn to use GitHub if you chose to. Git can indeed be very advanced, but the basics of working with others aren’t that complex once you learn them.

Accepting a PR is pretty much a matter of reading the commits… going “Ok, I will take these changes” and clicking a button… I’d say how good you are at English doesn’t even really have to matter that much, because we’re communicating in C++, not English.

If there is anything I can do to change your mind or make it easier for you to get started, let me know.

To @Pharap.

どういたしまして。–Douitashimasite.
どう、致しまして。–It means “You’re welcome”.
同意、たしまして。–It means “I agree with you”.

…Real father(old men?) gag! :laughing:

To @Dreamer3.

Thank you very much. I look forward to seeing your source program as your game is complete. I will learn a great deal from that program.

1 Like

Except that I may never get around to it now. It’s a lot more work to truly fork a project completely than it is to collaborate on an existing project. I think I was more interested in the idea of collaboration and helping you improve your coding. I definitely had time to collaborate, but not sure I need another solo project right now.

The idea of sharing a common base also would have made it easier for me to pull in new changes and feature you made to your star trek into my star trek. If the source code diverges completely that becomes much harder to do and decreases my motivation.

変です。面白い、でも変。

「親父ギャグ」
文字通り:“Father gag”/“Old man gag”
英語のイコール:“Dad joke”