Oleksii-Kshenskyi / btagsil

BTAGSIL = a Bullshit Text Adventure Game where Sky Is the Limit
MIT License
2 stars 0 forks source link

Design and think through BTAGSIL's world structure #40

Closed Oleksii-Kshenskyi closed 1 year ago

Oleksii-Kshenskyi commented 1 year ago

As of right now, I'm encountering a problem with designing world structure for #32, as it seems like I don't know what BTAGSIL's world is going to look like at a higher level. I cannot design a randomized world before I understand what I actually want the world to look like at the most abstract and high level.

This issue is to think through that high level concept, design it and capture the results in the comments here in this issue.

NOTE: this is not a feature/bugfix/refactor, this is a research/design task, so no code is going to be written to finish and close this issue. For actual code, go to #32 once this is done.

Oleksii-Kshenskyi commented 1 year ago

This blocks #32.

Oleksii-Kshenskyi commented 1 year ago

Okay, this is going to sound ridiculous after the whole Language Feast fiasco and how I'd spent so much time choosing the language for BTAGSIL and then went with a random unrelated choice that effectively voided all the work in that milestone (more on that in #27), but there's one more big change coming. I've finally realized, after much procrastination and soul searching, what I need for BTAGSIL in terms of language/technology. I need the fastest language to develop in. And I also need the language I can freely think in and implement my ideas with as little friction as possible. C++ is the last possible language for that (together with Rust). That's why, from now on the language of implementation for BTAGSIL is going to be Python for the foreseeable future.

Oleksii-Kshenskyi commented 1 year ago

Together with switching the language of implementation for the second time, I'm leaving the room for coming back to Rust/C++ in the future. However, this is where this decision ties in with this issue, designing the world architecture and setting.

  1. I cannot design world structure and I cannot choose a setting or even a concept for what BTAGSIL is going to be about because I've never developed or even played text games.
  2. (1) is why I need the best prototyping language possible. I need to rapidly develop several relatively large features and experiment with several game mechanics to determine what is even possible within this concept. Once that experimentation phase is done, I'm going to finally be able to determine the final language of implementation, which may still be Python, or it may change back to C++ or Rust as more low level / finely controlled languages.
  3. I've just realized that Python is the only language I feel free in. In the sense that, it may be the only language that would allow me to stop being afraid of complex software development. And it's the only language I'm confident in. And it's the language that lacks the tooling issue of C++ and the PitA compiler issue of Rust. And, of course, I won't have to think about memory management and ownership in it, which is incredibly important at this prototyping stage.
  4. What's most important, I will be able to instantly start prototyping and actually creating game systems in it, while in C++ I would have to first break through the wall of boilerplate and setup, which I don't have the mental capacity for right now.
Oleksii-Kshenskyi commented 1 year ago

Finally, I can close this issue with the following note about BTAGSIL's world design: