@kaia Nooooo you're a psy student, not a CS student, you cannot steal my joooob (I don't actually code) (I don't actually have a job) :blobcatreeeeeee:
@kaia This is interesting to me (unlike the daily chatgpt missives I receive while at ${job}). What was the gap that chatgpt was able to bridge? If you feel comfortable sharing, what were the pain points you ran into while trying to do this before enlisting the llm?
@level2wizard I'm a psychologist with no experience around C++. after looking at Starbound leaked source code, I understood certain basics and asked ChatGPT to make this based around assets I had prepared with Stable Diffusion.
my post is mis-advertising ChatGPT skills insofar as I struggle to proceed from here. I gleaned that going on would mean e.g. abstracting the assets into an asset pack and using JSON helpers to deal with assets and its meta-infos. however, the Starbound source code is too complicated for me to understand and ChatGPT only has a limited context of code it can keep in mind.
a friend told me I should get MS Copilot student license and let it explain the Starbound code file-by-file.
@kaia also not sure if you've seen it but here's a game where most of the art was created with dall-e, looks great but i haven't played it yet: https://tim-rachor.itch.io/zarathustra
@bartholin@kaia@lain unfortunately the front fell off the easy game engines. rpg maker is still around i guess.
in my time we had gamemaker and clickteam but gamemaker went to the spiders and clickteam still exists i guess but nobody cares anymore. oh we also had wc3's map editor.
now all we got for easy mode is like.. gdevelop? bleh. i guess rpgmaker is still popular for a reason.
@kaia@level2wizard if you want to create a game (instead of learning cpp) i think you should look into renpy or rpgmaker, those are much better for beginner programmers
Disclaimers: I teethed on C/C++; understanding reams of unfamiliar code is part of my day job since ~2016; I have significant statistical data showing LLMs have the downstream effect 'worse/harder/misleading'; my opinion of such systems is heavily negative.
I took a quick look at some portions of the Starbound code, and (at least the C/C++ portions) are remarkably well-organized [when compared to what I usually see]. (1/x)
@kaia I do not know, and cannot know, the best ways for people to learn how to read code. However, I do know some Bad Ways To Avoid. Some of those are using Copilot* or other LLMs to interpret existent code -- whether it be file-by-file or ingesting an entire project.
* Copilot and chatGPT (and probably other LLMs) are trained on code I have written in open- and close-sourced projects, which feels violating to me.
@kaia Although LLMs may sound authoritative or well-written -- kind of like reading a decent high school English essay covering the themes of a book -- they are inaccurate when explaining a programming concept, its historical context, comparatives, why it exists, and **most important to your case** _what it means and what it does_.
-- side note: You can have some fun with the LLM by responding "no, that's wrong. It's actually pointers" and see how it responds.
@kaia Having said that (and I'm here to answer questions as needed, and will accept criticism of my points), here is what I suggest.
Conclusion 0: Avoid an LLM if possible.
Conclusion 1: If you must use an LLM, remember that asking it to 'explain file [V] to me,' 'explain what [X] does,' or 'explain why [Y] is used here' will give you bad data, or at least data you should mistrust until verification from multiple non-LLM, non-SEO sources
Conclusion 2: People suggesting renpy, rpgmaker, godot, and other game development frameworks/libraries are suggesting, as far as I know, well-validated and well-trod learning styles. I personally cannot vouch for the style (since it wasn't the one I learned on) but I can vouch for the output of people who have learned that way.
@kaia Now we hit an appendix, which I will not call a conclusion because it's really more of a suggestions-from-me-personally list.
I _used_ to recommend 'learn python the hard way' (even though I don't much care for python), but it has since gone behind a paywall; now, I recommend Beej's guide to C, which is still free and open-source (and frequently updated), starting from the second chapter - https://beej.us/guide/bgc/html/#hello-world
- you do not need to read the guide in its entirety to get the important parts for reading code in most languages -- sections 2, 3, 4, 5, and 8 are the shortest-path that covers everything you need.
- although the foreword says "you should have experience in another programming language!" this is not true. The guide includes the info you need at each step without linking / forwarding you to other sources.
If you read this far, thanks for bearing with me. I have Strong Opinions in this space but want to be welcoming and open to folks who are diving into their first experiences with building software in whatever form that takes.
I'm happy to answer questions, point to other sources, or generally give advice _where solicited_.
@level2wizard thank you for your thoughts and taking the time to lay them out!
i agree that LLMs shouldn't be trusted without checking yourself. and i'm sorry to hear that you object to your code being contained in training data.
i often find ChatGPT to be a valuable tool for topics where one has zero knowledge or a lot of knowledge. zero knowledge topics to get an idea what it's about, lot of knowledge topics to validate yourself whether the LLM is correct.
the advantage of ChatGPT is that it addresses questions you pose. this dialectic approach is one of the most effective ways to learn. one gets instant feedback, the time between wondering and finding out is minimized.
yeah the Starbound code seems really well structured and nice! that's why I started there to learn some C++ while doing something fun. i'll play around with it more, but not with the intention of finishing something.
@kaia I appreciate that, thank you. Your third paragraph there is worrisome to me -- 'dialectic approach' and 'time [...] is minimized' are severe red flags.
I would strongly suggest in cases where the dialectic/time pieces feel good when you get an LLM answer to immediately contradict the LLM 1-5 times, record all responses, and then ask a person with domain knowledge to validate the output (as opposed to accepting the first). That's not perfect, but 'better'
@kaia separately, LLMs/web scrapers being trained on my output is just an ancient wound I didn't know I had (and the same for others who couldn't control the uses of their code -- not a 'new' problem). So, there's not much we can do collectively in the way of condolences except to watch out for such things in future.
The eventual consequence is knowledge becoming more silo'd and less accessible, which is bad :(