2021-05-16 22:48:58

Hi, all,

Most of you reading this are probably aware that I've been hoping to make my own JRPG-style audiogame, complete with quests, complex mechanics and, if time and finances permit, voice acting. You might also know that I've several times hoped to get at least one coder on board for the project, but I'm not having much luck in that regard. Not surprising, really.

So after a chance remark made by an acquaintance recently, and a lot of reflection on my own shortcomings and how I got here, I've decided to flip the script, as it were. I've decided to try very hard to learn how to code.

And this is where you come in.

Context
I'm thirty-seven, articulate and can take instruction well. In many instances, I'm an autodidact (that is, I can learn by myself), but thus far, I haven't had that luck learning programming. This is likely because I had several setbacks when going back to college, between the years of 2013-15, and they've created something of a block to this process. I know the very basics (as in, I know what loops and variables are, I know what objects are in vague terms, I can sort of understand arrays), but I have absolutely no idea how to put this into context. Reading source code won't help a lot. As the title says, I'm looking for something of a "eureka!" moment, and that's only going to come with help. As such, I'm reaching out to the community to ask for help.

Specifics
1. I would prefer one or more people willing to actually sit down with me and teach me, if possible. Saying, "go read this book and you'll be fine" is nice and all, but it plays into my block, because again, you're basically asking me to go figure it out myself. For right now, I need help in climbing the hill.
2. I don't know if this sort of thing requires money or not. If it does, we may be at something of a standstill, because I'm not especially wealthy.
3. I do learn fairly quickly in most instances.
4. I have no idea which language would be best for a game of the complexity I'm trying to make, but one thing I do know is that I do not wish to code in BGT. This is because it's not future-proof and is no longer supported; Angelscript may be able to handle what I ask of it, but I'd rather use a language that has other applications if I choose to go that route. If you have a good argument as to why this stance is problematic, lay it on me.
5. I am not expecting you to code everything for me while I slap my name on your work. I am looking for help becoming modestly competent, because I feel like I can go from there to more advanced work on my own.

Any takers? Any questions? Any suggestions, bearing in mind all the points above? If you've got 'em, I'm all ears.

Thanks in advance.

Check out my Manamon text walkthrough at the following link:
https://www.dropbox.com/s/z8ls3rc3f4mkb … n.txt?dl=1

2021-05-16 23:32:09

I would be happy to help in any way I can. Programming can be hard for some, and this is probably that first hurtle that your getting stuck on. Once you jump over that, things will become much easier. I have Google Summer of Code this year -- and even if I'm not accepted I'll still be working on the UEFI accessibility project -- but I'll help whenever I have.
As for money: no, no money is involved to learn how to code. All the tools are free.
As for the language: there honestly isn't one that any of us can "recommend" that would be right for you. The best option would be to try a few and see which one clicks for you. Python is a good starting language, as it provides a lot of tools and libraries for you that you can just start running with, but there are others as well. We could always start with Python and see how you handle that. If that clicks for you, then you can get going and I -- as well as anyone else who offers -- can happily help you when you need it.
The thing about programming is practice is key. When you start your definitely going to write bad code, and that's perfectly okay. Just code a lot -- any cool or interesting ideas you have, just sit down and start implementing them. Maybe they'll go nowhere, maybe they will. But the sign of a good programmer is that you've got lots of scrapped projects and lots of side projects that you like to work on besides your primary one. All of those scrapped projects and side projects might, to others, appear as you just wasting your time or something, or might give you a bad rep to others, but its all about learning. As you write more code you'll gain more familiarity with the language and your tools, and you'll learn better ways of doing things.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2021-05-16 23:37:10

I should mention here that I'm hoping that whoever helps me basically starts out as if I'm basically a newbie, because that's pretty much what I am. I very obviously don't have any projects just yet.

When I was mentioning money, I meant that I recognize that teaching me or guideing me is going to take time and effort, which will take away from whatever else someone is doing.

Check out my Manamon text walkthrough at the following link:
https://www.dropbox.com/s/z8ls3rc3f4mkb … n.txt?dl=1

2021-05-16 23:45:12 (edited by Ethin 2021-05-16 23:45:32)

@3, aha. Well, I certainly won't ask for payment. It might just be me but I don't think its fair to expect you to pay since I didn't have to pay to learn myself.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2021-05-16 23:58:03

I'd second python, its a good overall flexible language that can serve as a good platform to branch into different languages and purposes if you so choose. Aside from an understanding of a core programming language, I think some of the other things you could benefit from is Game Design, such as understanding how the various parts of your game are going to work and how they fit together. With that you could get a better understanding of what your code might look like, a good read on that would be the [Door Problem]. If you'd also like any examples of menu code, game loops, or data structures, etc. just ask.

-BrushTone v1.3.3: Accessible Paint Tool
-AudiMesh3D v1.0.0: Accessible 3D Model Viewer

2021-05-17 01:30:42

I might or might not be able to help a little bit in a few weeks though sadly not now.  Any language is going to work for a turn-based JRPG.  You don't want to take this suggestion seriously but PHP does  have OpenAL bindings so technically yes even PHP.  You'll find that most of the game bits are unique to your game and that you probably need projects between here and there as stepping stones, so it might be a good idea to work out some ideas as to what those are.  You probably want to avoid trying for GUIs for a while.

I wouldn't expect a eureka moment.  I don't think I know anyone who has had a eureka moment.  I certainly never had a eureka moment.  You can learn to code pretty quickly if you're disciplined about it--I have a friend doing contracting who got up to speed far enough that he's got companies paying him to write their apps in 6 intense months of full-time work, and most of what he does is harder than a JRPG honestly, because React apps with clients that change the spec out from under you, want it done as fast as humanly possible, and won't move the deadline even if they ask for new features just aren't easy, so it's not necessarily going to take you that much.  But this is in general more of a slow skill grind than a sudden change of perspective on the topic.

My Blog
Twitter: @ajhicks1992

2021-05-17 01:51:07

It sounds like you need a mentor, and to be fair, that's probably a good thing if you can find one. Sometimes your entire approach is just wrong, so you come at this trying to figure out how to do a thing, only to discover you're not even asking the right questions. I've been there.

Facts with Tom MacDonald, Adam Calhoun, and Dax
End racism
End division
Become united

2021-05-17 03:27:42

Canlorn, to clarify the eureka thing, I want to explain something.

In 2013, I started college. One of the courses I took was called Programming Fundamentals, and we used GameMaker and GML for our code. Really basic stuff. We learned variables, if statements and switch (since they're nearly the same thing), Boolean variables, the various forms of loops (do until, while, for), and then got into arrays a little at the end, but not much. This much made at least some sense to me. This is where my really basic knowledge comes in. I know, for instance, that you could probably handle status effects with a form of while loop, and some more complicated AI behaviour with nested case logic. Of course, I also know that languages will differ in how this is presented.
So then they dumped us into Introduction to Java. In literally no time at all, we were talking about classes, libraries and worse. I had no idea at all what was happening. I worked, and I waited, and I hoped something would click. It didn't. Admittedly my teacher was one of those people who's very good at the work itself, but not so good at instruction (several classmates said the same thing).

So what i'm looking for is, in essence, someone to guide me until I hit some point where some of this stuff clicks and starts making sense. I know I'm not going to go from idiot to fully informed in a week, but while I understand the basic structure, the more complicated stuff is still beyond me.

Check out my Manamon text walkthrough at the following link:
https://www.dropbox.com/s/z8ls3rc3f4mkb … n.txt?dl=1

2021-05-17 04:10:22

One other thing you could consider is starting on C. Not C++. Just C. It's quite limited on what kind of tools you have access to, and the trick here is applying limited tools in clever ways. C only has functions, structures, unions, and the typical control structures. There are oddities of course that other languages don't have to deal with, but it will get you used to some of the practices that are common.

I have a website now.
"C: God's Programming Language
C++: The object-oriented programming language of a pagan deity" -- The Red Book
"There, but for the grace of God go I"

2021-05-17 04:32:39

@8
Well, honestly you should just stay away from java.  Telling me that this was your first experience with coding beyond the world of small examples explains a lot.  Java is very hard to explain, in that it's actually a very basic language, but the reason it makes sense is that sighted people are all UML and flowcharting the hell out of that shit.  It's not inaccessible or anything but when half your file is invocation to the object oriented programming gods and you're blind and you can't skim, and every single package is like com.camlorn.TheAudioLibrary.ReallyTheAudioLibrary.TheAudioLibraryFactory.YesWeMeanItFactory...yeah.  Enough said.  But if you can see and you're someone at Amazon it meets a lot of business use cases that we can kind of summarize as "can effectively corral the interns".  I'd just go explore something else.  You'll probably find something else much easier and I'm not being specific because it probably doesn't matter.  I have trouble reading Java code, if that tells you anything.  I could do it, it's not conceptually difficult, but it's very easy to literally drown in the noise as a blind person and the language also forces you to play multiple file ping-pong.

@9
As someone who does C/C++ and it's what puts food on the table and probably how I'm retiring young, please please don't tell people who want to become productive as fast as they can to start there.  That approach is good if and only if what you care about is learning how everything works and not really so much about having software to show your friends.  The very basic parts transfer, but everything after that turns into learning C-specific things that deal with C-specific shortcomings and it's a waste of time on the path to a JRPG.

My Blog
Twitter: @ajhicks1992

2021-05-17 04:40:02

No, please, please don’t start with C. You need to be incredibly advanced to actually get anything done with it.
I’d also just like to recommend python. From someone who really, really hates Java, i’m not at all surprised you struggles with it. For what it’s worth, I’d be happy to help as well, time zones and college allowing, of course. While I can’t promise I’ll be amazing, I can at least try to explain the basics and help if/when you encounter hurdles. Don’t worry about maybe having to work at a somewhat slow pace, it took me years to get to grips with a lot of this stuff.

2021-05-17 05:01:03

The reason why I recommend C, is that for me, I also started on Java. Now, true, I didn't struggle as much with Java, but it still gave me some issues. When I moved on to Python, I found myself thinking "Well, at least this isn't lisp." For me, that big Eureka moment wasn't until I started learning C proper. Then again, I do best when I can understand how something works. The further away you get from System languages, the more things get abstracted into black magic. For me, python had a number of "why is this working?" moments. Types are poorly documented, by virtue of it being a dynamic typed language. I find that things can get confusing. I don't know. I guess this really depends. What kinds of things click for you well  at the moment. Where do you find yourself most comfortable?

I have a website now.
"C: God's Programming Language
C++: The object-oriented programming language of a pagan deity" -- The Red Book
"There, but for the grace of God go I"

2021-05-17 05:27:41

Jayde, I'm not really sure how much I can help since you know more about code than me, lol.
I will say though, if you've just learned a concept and you feel totally confused, I found that making a project with that concept, even if it's useless, can make it easier to understand.
for example, I didn't understand functions at all, even after reading the theory over and over again and people telling me about it.
then, there was a tic tac toe project in the book I'm using to learn code, and it used functions.
I made it, and by the time I finished it, I knew functions just fine and was totally confident in how to use them.
also, maybe it's just me, but I'm a little confused, what exactly are you looking for?
I mean, do you want one of us to answer questions which you post here?
or are you looking for recommendations on who to approach to learn?
or do you want us to tell you books which we read and answer doubts you get after reading them?
or do you want someone to get in contact with you in some other way and be your teacher?
sorry if you answered this somewhere and I some how missed it.
best of luck, I know coding isn't easy.

2021-05-17 05:43:13

Yeah, don't do C or C++. Please don't. Not as a beginner. C++ is far too complicated for a beginner to be able to understand, and C is "pointers everywhere" about 95 percent of the time. Its definitely not newbie friendly at all. Its good to learn later on, but definitely not yet.
Jayde, if your instructor took you onto Java, I, too, am not surprised you couldn't really get it. Java is ridiculously noisy and wordy and definitely isn't a good language IMO. It gets the job done but its not a good quality language by any means. Camlorn gave lots more info about it, so I won't repeat what he said. I think that if you were to try your hand at Python you might find yourself not struggling as much. The language is far less convoluted than Java is, and the communities for it are amazing.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2021-05-17 06:01:12

lol Kavya, I'm not even there yet.
The most complex thing I ever wrote in GML - and I don't have it for exact reference anymore - was a pizza-ordering simulation. And I do mean basic here.
What it did, roughly speaking at least, was the following:
1. Print string: "It's dinnertime, and I'm hungry. Better check the fridge to see if I've got anything to eat."
2. Set fridge Boolean (rand) ( 0 = food, 1 = no food).
3. If fridge = 0, print string: "Ah, leftovers! Guess I'll have those." End simulation. Else proceed to 4.
4. Print string: "Nope, nothing in here. But hey, I just remembered. the pizza place has a special on! A stuffed-crust meat-lovers pizza for fifteen bucks!".
5. Set variable pizza-cost to 15.
6. Set variable money (rand 0 - 30).
7. Print string: "How much money do I have, anyway?"
8. If money >= 12, print string: "Sweet! Pizza, here we come!" End simulation. Else print string: "Damn! Not enough money. I guess I'm out of luck." End simulation

Now obviously that isn't code, it's not even close. But that will tell you just how base level my understanding is, at least as far as code that I could write back in the day. And it's been nearly eight years since then, bear in mind.

Check out my Manamon text walkthrough at the following link:
https://www.dropbox.com/s/z8ls3rc3f4mkb … n.txt?dl=1

2021-05-17 06:38:07 (edited by Radiant 2021-05-17 06:39:26)

I kinda relate to jayde here.
I've been trying and trying to understand python beyond variables, loops, functions, statements,  and no luck.
though I managed to pull off some of the basic  scripts with it and I was very happy.

allow me to speak more,
catch me on Twitter
or, Mastodon

2021-05-17 07:25:19

@Jayde hm, maybe you were taught differently than me.
the point, however, isn't about how advanced you are at coding, I gave my tic tac toe as an example and nothing more, though it was certainly more advanced than what you wrote there.
I even had an AI, but that's going off topic.
btw if anyone is wondering, I did this in python.

2021-05-17 07:57:58

I'll definitely agree that c is not a great language for first time learners. Even though my mentor started me off with it.

Also, java might be a great business language, when I learned it, (Or was forced to learn,) it kind of sapped my motivation.

2021-05-17 08:12:34

Java is not so necessary for working anymore, I mean a lot of companies nowadays are fine with using other languages -mostly python or web technologies, iOS, Android, Flutter, swift, Python, etc-. Java is still a good choice, but meh.

ReferenceError: Signature is not defined.

2021-05-17 08:31:14 (edited by AliciaPettersson 2021-05-17 15:22:35)

I tried programing some years ago, but I just felt comfused. I know a little of the basics, but I also feel like I need a little help. I used BGT but I guess I have to learn an other language. Which is the easiest language? Is it python?

2021-05-17 10:37:15

Is C/C++ good if you want to try to make dynamic linked libraries and other advanced things like that, or is Python good for doing that sort of thing as well?

Discord: dangero#0750
Steam: dangero2000
TWITCH
YOUTUBE and YOUTUBE DISCORD SERVER

2021-05-17 11:17:47

oh btw Jayde, the reason I said you know more than me at code is that I learned functions before objects, so when I heard you know objects, I presumed you know functions.
and you mentioned arrays, which I've never even heard of.
there is a reason I thought everyone taught functions first, because at least in python, objects are much easier to understand after you know functions, since they have a lot in common.

2021-05-17 11:45:42

Honestly, I can only begin to imagine how I might have turned out if I'd started with java from the get go. My teacher started me off with python though, and while I really didn't like it and struggled to get to grips with it initially, ironically once I started learning BGT everything started to make a lot more sense to me. I suddenly understood how arrays worked, what strings, ints and bools were, how functions worked, ETC. Quite a bit of that knowledge was perfectly translatable to python, conceptionally, even if not at all syntactically.
The one thing you may find particularly urksom about python, at least in the beginning, is indentation. Rather than braces, or EndIf or EndFunction or whatever, you instead have to use either tab or space to indicate how far you are nested in a code block. For example,
if is_bored==true:
print("So, fucking, boring...")
You'll need to read that character by character if you don't have indent reporting enabled in your screenreader of choice, but you get the idea. Obviously I used space there because web browser, but tab works just as well.
One other thing you should seriously, seriously understand from day 0. You can't just program for the end product. You really, really can't. If you don't enjoy the process, the solution will start to seem less and less worth the effort to you. It's a lot like writing, or composing music, or really any other form of art in that regard. I'm not saying you have to love it right away necessarily, but if the best you can manage is, meh, I don't enjoy this, but I need to do it to get my game out there, it's probably a good idea to either look at a different language if the interest is still there, or start looking for a different hobby.
Good luck.

2021-05-17 11:48:49

Dan, python can't be used to make DLL's. I don't know a hole lot about the lower level side of that, but C++ can, although it probably isn't the most friendly option on the planet, and C# has it's own issues.

2021-05-17 12:09:31

@jade, so, thanks for that example of what you can do because that's actually the root of the issue. It's about knowing how to think. A lot of programming books can teach you how to program, but not really how to think. Imagine the programming tools you know such as if statements, variables, while loops and random generator as a box of tools. But you don't seem to know how to  build more than super basic stuff with those tools. It's always been the gap I've seen with the pedagogy, they don't really teach you how you can combine the tools creatively, just have examples and then people don't think outside of those examples, because they aren't really told to do so. As one who's really interested in education, and even taught some Advanced Placement computer Science (which is pretty much the same topics as Intro to Java but covered in two semesters instead of the typical one, and at a high school instead of a college), that is always the hardest part. Would love to discuss with you about learning how to think, because I think with the tools you know, you can make some really epic stuff if you just knew how to combine them. I have always wanted to teach more as a guide to unleashing creativity than rote memorization for a test, but those lessons are harder to make, and also take longer because creativity necessarily takes time, and time is something that educators just don't have enough of because there are tests and standards to be met by the end of the year that can't be if people are lingering around waiting for creative inspiration, and this is just really saddening. But I digress because I could go on to a very long discussion about this.

If you want to drop me an email since the forum's pm system is pretty dreadful, sleep io 1 (at) hotmail (dot) com. Replace the parenthesized stuff, and remove all spaces.

I like to sleep, Sleep is good,
This is how I do it: Lie on a nice warm cozy bed, and dream dreams about how to rule the world!
Follow @TheGreatAthlon5 on twitter for humorous facts and game updates!
If you like my posts, thumb me up!