STARTREK for Arduboy

To @Dreamer3.

As I think, in the program I referred to, every command has passed one turn at a time. That’s even short-range and long-range sensors. In this case, the deadline is ten times the number of enemies, but this seems just right. However, if neither short-range nor long-range sensors require a turn, the due date seems to be too much. In addition, if you do not use turns with various commands, the game will not end due to timeout.

This seems to be easy to implement. In the original game, it seems that input of “0” basically indicates cancellation.

1 Like

But we have a B button, so why not use it?

In addition, if you do not use turns with various commands, the game will not end due to timeout.

Well, sure, moving, repairs, firing weapons… some things obviously require time… but just glancing at the sensors? That seems a little nitpick… esp if I do it 3 times in a row and lose 3 days.

But if that’s just how the game is and you want to stay faithful, I understand.


This is super nice (I finally got a chance to play it) as a reproduction, but I’m not sure the game translates super well to an arcade device… things like value input are very slow and awkward… and it just feels kludgy.

I wonder what an arcade like remix of this would look like… where it’s more about movement and weapons than accessing the computer and menu driven.

My biggest gotchas:

  • Accidentally triggering something (like torpedo, with no way to abort)
  • Accidentlly choosing nav or torpedo when what I wanted 99% of the time was computer assisted nav/torpedo.
  • Choosing local nav when what I wanted was galaxy nav… this would be fairly easy to add a button to toggle between the two… and that’d be more efficient from a code perspective also…
  • Rotational inputs are far too slow, they don’t need as much precision.
  • Value input should use up/down to move in increments of 10 or 50, etc.

I think this game can be done, but not with BASIC, and not with text input.
Perhaps the user would choose from a list of commands.

Like this old demo:


As @BlueMax said, that’s part of the challenge.
Part of the difficulty comes from having to manage resources, including days.

If there was enough progmem available then perhaps an ‘easy mode’ could be added where certain actions cost less.

I’m not surprised it’s difficult though, in those days games tended to be difficult to ensure that people got their money’s worth.

But how many changes would it take for it to stop being faithful to the original?
And how many changes until it becomes a different game entirely?

There comes a point where so much is changed that it would be better to just design a new game from scratch.

(It’s a bit like Theseus’s Ship, or Trigger’s Broom if you prefer.)

That all said, I agree with these points:

Those should just be minor input changes,
but it depends how they’re implemented.

I think the code is based on cascading delays rather than having a proper game loop,
which would make the former slightly more difficult to implement.

1 Like

Yes, that’s an internal thing that could eventually perhaps be fixed. :slight_smile:

Oh I entirely take your point. I was just personally observing what I found in my first person experience. Bluemax can take it or leave it. :slight_smile:

Of course there are already about 100 different variants of this game. :slight_smile: So I’m not sure any of them are canonical unless you find the literal “first one”.

1 Like

Thanks for @Dreamer3 and @Pharap.
I quickly implemented the cancellation implementation. Respecting the original, select a negative angle (-1 degree = 360 degrees) for an angle and 0 for a distance to cancel. GitHub source has been updated, but may still have bugs.

I noticed that I was not using the B button while making this game. Eventually, I wanted to create a game without the B button or try to challenge it. I thought many people could operate without explanation without using the B button. When I was a college student, I used “Macintosh II ci”. The mouse attached to this computer had only one button. :upside_down_face:

1 Like

When you have two buttons one for confirm and one for cancel makes far more sense than a magic cancel value.

https://www.codebyamir.com/blog/software-anti-patterns-magic-numbers

Thank you, @Dreamer3.
I added the function of UP and DOWN buttons to the window for inputting numerical values. By using the UP and DOWN keys, the number can be raised and lowered by 1/10 of the maximum value. In addition, it is now possible to cancel with the B button.
The GitHub source has also been modified.

2 Likes

There’s a game on steam called ‘Ichi’ that only uses the left mouse button.

ゲームの名前は「一」のローマ字、これは一ボタンのゲームだから。
(The game’s name is the romaji of 「一」, because it’s a ‘one-button’ game.)

怖い… あれは悪夢。

In the year 2020 forums should have built-in auto-translate so everyone sees their native language. :slight_smile:

Ultimately you can just throw anything at Google translate and get the gist of what’s being said,
but automated translators tend to loose a lot of the subtle nuances of Japanese.

The honorifics, the personal pronouns, the varying levels of formality;
the things that make Japanese both gloriously expressive and an absolute minefield.

1 Like

Something is often better than nothing at all. :slight_smile:

1 Like

Hello, everyone.
There was one line left in the configuration screen, so I tried implementing a new feature. I tried to reverse the screen color of short range sensor like APPLETREK style.
invsrs
It just changed the look. It is an image of an old CRT.

To @Pharap.

Japanese is difficult even for me. Japanese children struggle to learn hiragana–ひらがな, katakana–カタカナ, and kanji–漢字 from a young age. Many young people have difficulty using correct honorifics and struggle when they come to society.
Even the simple verb “see”…

フェアラップ先生が、ブルーマックスのプログラムをご覧になる。尊敬語
フェアラップ先生のプログラムを、ブルーマックスが拝見する。謙譲語
フェアラップ先生は、プログラムを見ます。丁寧語

…My head hurts. But I love Japanese.

1 Like

It does change the look but I think I like the black background more as it looks more like a space background…

2 Likes

@BlueMax Did you see my PR?

I’m still considering building a version with my graphical changes and it’d be really great if we could work from the same foundation - and therefore improve the underlying codebase greatly also rather than having two very different diverging versions.

That’d also make it easier to port this to other platforms (not that that is a huge goal or anything).


After the time I put in on your roguelike just to have all my changes thrown away (water under the bridge) I’m a little apprehensive here contributing again, so I made my first PR in good faith and small… and hoping you’re more open to working with contributors this time around. And hopefully you’ve learned a bit about Git also in the intervening passing of time.

Looking forward to your response.

Maybe the new UI is correct, just the WHOLE screen should be inverted… I’m not sure… It’s on my list to play around with visual changes and I have a variety of ideas I’d like to see what they look like.

I’d like to see what the menu on the left looks like, freeing up more space for the map and a graphical UI on the side. I made a new mockup.

Figuring out how to do the graph bars is a challenge. I think the big energy bar could just be total energy out of 3000 (including shields?)… but maybe it’d really be best to have a single graph (going to 3000) and then mix the shields and energy in the same graph.

1 Like

To @Vampirics.

I totally agree. :laughing:

To @Dreamer3.

You’re right. I just understood how to control GitHub’s version. By all means, I am more interested in programming than on GitHub. My understanding of GitHub is going to take a little longer.

Insanely cool! :star_struck: I want to play this game right away!

1 Like

Well if my changes are good you just have to click the button to merge them (into master), and then on your local checkout you will git pull to update your master.

Right now they conflict with your newer changes - but if you’re willing to merge in my change then I will go back over them and fix the conflicts. Let me know.

Rethinking of Galaxy:

This is what I’d probably use because it’s easier to understand.

はい、日本語はクレージーです。

(One thing I still can’t get my head around is when to use ‘は’ and when to use ‘が’, so I just use ‘は’ if I’m unsure.)

はい、日本語はすごいです。クレージー、でもすごい。

I especially like puns/wordplay. (「語呂合わせ?」がすき)
E.g. 15 ~ 苺, 39 ~ サンキュ, 梅干し ~ 梅星


I agree, I think the black background worked better.


I agree with some of the changes, like using false instead of 0, but not with all of them.

For example, strlenF ought to use size_t, not int.
int makes no sense if the result can never be negative,
size_t is the correct type for measuring the size/length of something,
and C’s actual strlen uses size_t (and by extension, C++'s std::strlen uses std::size_t).

Also the decision to change inv to invert but introduce names with len instead of length is inconsistent.
What makes inv unacceptable but len somehow perfectly fine?

When you contributed to the roguelike you never actually stopped to ask whether @BlueMax wanted contributors or wanted you to get involved, and you didn’t stop to explain or discuss your changes.

Perhaps it would help if you hung back a bit and made fewer, smaller changes with good explanations and justifications rather than diving in and making lots of big changes and not bothering to explain any of them.

@BlueMax isn’t just making a game, he’s also learning how the language (C++) works,
and how GitHub (and by extension git) work.
Making a big pile of changes and not explaining what they do or why you think they’re good is not particularly helpful in that regard.

If you don’t have time to stop and explain your changes then that’s understandable,
but I don’t think it’s fair on @BlueMax if you’re not going to at least explain your proposals,
nor would it be fair to expect him to try to keep pace with you.

Give a man a fish and you feed him for a day.
Teach a man to fish and you feed him for life.

Your PR is not small, it’s 10 commits, makes changes in 6 files,
and some of the changes are very substantial.

That might seem small if you’re used to working on large projects with hundreds or even thousands of commits,
but most people struggle with understanding GitHub and to a greater extent git itself.

Remember, it might seem second nature to you,
but @BlueMax is not as well versed in GitHub/git.

Please remember to stop and put yourself in other people’s shoes from time to time.
Remember that not everyone has the programming experience that you do,
and please bear in mind the language, cultural and skill differences involved here.

To be clear - I’m not saying “go away”, I’m saying “please slow down a bit”.

I guess I thought len is much more common, but that’s reasonable feedback. It’d be more actionable if you left it on the Github commits though. I’m not saying my changes are perfect, but I do think overall they are all improvements.

For example, strlenF ought to use size_t , not int .

The important improvement here was refactoring it to pull out the functionality into a function… if the type could be improved, that’s fine. My goal was to improve it, and I think factoring out the function is a big improvement by itself - even if they type is suboptimal.

When you contributed to the roguelike you never actually stopped to ask whether @BlueMax wanted contributors or wanted you to get involved, and you didn’t stop to explain or discuss your changes.

Perhaps it would help if you hung back a bit and made fewer, smaller changes

That’s old history, but speaking about this more recent work: I think many of the changes speak for themselves. And individually they are small in scope. And I did start small… I have a LOT more big refactoring I could PR if BlueMax is open to it… I started with a small (but more than just a single thing) to see how it was going to go.

It would be ridiculous and time confusing to package up all those commits into a single PR each…

and making lots of big changes and not bothering to explain any of them .

Don’t think I’ve done this.

and some of the changes are very substantial.

Which ones again? Maybe I changes one big thing, I can’t recall… I thought they were all pretty small though.

If you don’t have time to stop and explain your changes then that’s understandable,
but I don’t think it’s fair on @BlueMax if you’re not going to at least explain your proposals,
nor would it be fair to expect him to try to keep pace with you.

Each commit had a commit message with a summary. I’m happy to answer questions and respond to comments, but that requires communication with BlueMax and so far I’ve gotten none of that on Github.

whether @BlueMax wanted contributors or wanted you to get involved

I tend to assume that’s half the point of sharing a project on Github, but you’re right. If he doesn’t want contributors a README saying it’s a personal project and contributes won’t be accepted would go a long ways.

Anyways I still feel my PR changes were pretty small and that was me “testing the water with a small PR” to see how things are going to go. :slight_smile:

I’m only changing 80 lines in 10 commits, that’s an average of 10 lines changed per commit. I would call those SMALL commits.

I re-read all the commit summaries too and except for a typo I think they are ‘ok’ and a reasonable description of what each does (again since each is quite focused).