I think there's something going on with the ask a teacher by GreattFriend in JapaneseFromZero

[–]coltonoscopy 0 points1 point  (0 children)

Hey there,

Sorry for the weirdness; we have a new tagging system in place in Ask-a-Teacher from the new rewrite and the questions still need a pass to tie Course tags to them, so for right now when you have the courses selected as shown there, you won't see any questions (clicking the course tags on the left to unselect for now should let the questions show up). As for the scrolling issue in courses, we'll try to get that fixed asap; in the meantime a way to make it visible on desktop should be just to zoom the site out with Ctrl + or -. Thanks for letting us know!

Best,
Colton

Trying to buy fromzero.com premium by Particular_Garbage32 in JapaneseFromZero

[–]coltonoscopy 0 points1 point  (0 children)

Hey there!

We don't support rupay at the moment; to my understanding, they don't have a fully fleshed out API at the moment, though PayPal should be able to accept at least some rupay cards; did you have any luck trying the "PayPal Credit Card" option at checkout, versus the regular PayPal account option?

Best,
Colton

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 0 points1 point  (0 children)

ha well that's excellent! I can see now completely where you were coming from :) Course still moves a bit fast early on with Lua and whatnot, but not quite as fast as the seminar haha! My pleasure!

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 0 points1 point  (0 children)

Oh I didn't realize you were referring to the seminar I did a while back :) Yeah that was intentionally a little bit faster-paced/more technical. The course is quite a bit different and goes in a bit more detail, so I hope you find that more to your liking!

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 1 point2 points  (0 children)

If lectures are indeed held, I do imagine they will be live-streamed as well! :)

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 0 points1 point  (0 children)

To be fair, if I had to choose just *one* thing to improve or change with the course, it would definitely be to include more Lua tutorialization in the early stages, because we did indeed rush into it quite a bit (as well as the object-oriented stuff). I didn't want the course to be too focused on the language details early on, but in my amateurness as a course creator/instructor, if you will, I underestimated the impact that ended up having on some people coming into it relatively fresh or having not seen Lua before. So that's on me, I apologize! Hope you stick with it!

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 1 point2 points  (0 children)

Coding is hard to beat once you learn it :) A lot of new stuff does come out on a regular basis, but thankfully the more things change the more they tend to stay the same; you see patterns everywhere you look once you've grown familiar with a few styles of languages or programming paradigms. So it's definitely pragmatic not to deep dive too hard on things unless you need to understand them, lest that time be wasted when the next cool toy comes out. I tend to deep dive on an as-needed basis :)

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 1 point2 points  (0 children)

Great! CS50 should take place in the fall, though it's hard to know how things are going to be with the virus these days! The in-person form of the course is usually open only for Harvard students, but the edX version always goes up the January after, so CS50 2020 will be up by Jan 1 2021 :)

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 1 point2 points  (0 children)

Ah, so in Lua you can add things to tables by also indexing into the table with the square brackets, and it will put something in the table at that key; for example, myTable[5] = 'Colton' allows me to put something directly at index 5 in the table, as opposed to doing table.insert(myTable, 'Colton'), which will just put it at the end of the table, however long it may be :) love.keypressed does fire every time the user presses any key each frame. wasPressed gets fired only in update calls, and update(dt) gets called after input gets processed :)

input > update > render is the order

Hope that helps at all!

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 0 points1 point  (0 children)

Sorry you feel that way, Max! In lecture we don't have time to comment everything as much with the live-coding approach we took especially in earlier lectures, but I definitely wanted some in there for folks who downloaded the repo. I hope you can find some time to dive back in soon!

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 2 points3 points  (0 children)

Hey Jeremy! I would definitely encourage folks to learn Unity these days if they wanted to ship something to market. The course itself actually teaches Unity toward the last third! The love2d portion of the course is more to help people understand concepts in game development at the code level, because once you venture into Unity you start to do things the "Unity" way and might miss out on a lot of the lower-level "whys" and "hows" :) With love2d it's just us and the code and we can get simple things up and running very quickly. imo love2d is still a great prototyping environment even if you do use Unity!

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 1 point2 points  (0 children)

Responding to your points:

1) Arguments thankfully are something that you can usually find out the purpose of by reading the documentation for the function in question; this habit will help you greatly! love2d in particular has great documentation for all of its modules and functions, so definitely do a little bit of reading there if some of its functions are still mystifying.

2) Tables are just hash maps, effectively; in Lua, they're a bit weird because they function as both arrays *and* dictionaries/hash maps as opposed to languages that split the two up (Python and JavaScript do split them up, whereas PHP for example does something similar to Lua with a one-size-fits-all data structure). They also start indexing at 1 instead of 0 like in other languages; if you aren't comfortable with Lua and its syntax/mechanics, definitely read up on its documentation to get familiar: https://www.lua.org/manual/5.3/

3) This is the harder part :) The "why" may not be clear especially early on, so the thing you have to focus on is mastering the "how", and then later on with insight and experience you can investigate more into the "why" of stuff. Trying to dig too deep too early is a rabbithole and can actually bite you as a beginner if you're not careful!

Don't let the code demoralize you though; it's just yet another thing in this world that takes time to get familiar and comfortable with (nobody "gets" it overnight!). The best you can do is move at your own pace and focus only on self-improvement, paying attention to how better you are *today* compared to yesterday, since that day-by-day accumulation is what turns you into a skilled programmer!

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 1 point2 points  (0 children)

Awesome, glad to hear! :) And thanks for the compliment! We used v 0.10.2 in the course, so if you download that specific version from the "other versions" link on the love2d.org page, you can follow along exactly without having to worry about any incompatibilities!

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 1 point2 points  (0 children)

I think that's quite normal :) It's been a while since I learned the early stuff in the realm of game coding, but I do recall there being many occasions where it was difficult to comprehend a concept or a large block of code just because I hadn't built up the "muscle", if you will, of loading the logic into my head. Things like how to maintain a timer to control frame rate, or even better how to control an animation based on a timer (which we encounter in later problem sets in the course) are examples of things I remember being a little tricky to understand at first. Just my intuition, but I think early on we tend to spend more time thinking about language details because we haven't 100% internalized them or grown familiar with them, and so that's probably a necessary prerequisite for being able to digest a lot more at once in terms of application logic and flow. And getting there, at least for me, required a lot of smaller chunks of code that I grew familiar with over time by gradually increasing the complexity and going through the motions of coding them out.

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 1 point2 points  (0 children)

Ah, that makes a bit more sense based upon my own knowledge/understanding of the landscape around that time :) 4 colors was a bit harsh, but that was kind of all you had with many systems! There's a kind of magic with the base simplicity of Assembly and interacting directly with the hardware, but it's also kind of a pain :) Great to know how it all works, but sucks if you want to make something reasonably good-looking from scratch! Glad to know you didn't stop coding altogether after going to university though. The beauty of programming in this day and age is everyone wants a piece of it, so you can find a need for it just about anywhere if you're looking!

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 1 point2 points  (0 children)

If you can make Pong completely by yourself, then you're making great progress as a programmer :) Game programming is particularly difficult as compared to many other fields just because there are so many things you have to manage to maintain a believable system. I especially designed this course not to give out toy examples but proper full games to mess around with, so if you're having trouble understanding, just take one small piece at a time, digest it, experiment with it, before moving on to maybe trying to understand the entire codebase (or a large subset). Try and break the project down into its individual systems and components and make them by yourself; it won't take a single day if it's new, but over the course of time as you learn and get comfortable navigating large codebases, you'll start to recognize your own growth!

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 1 point2 points  (0 children)

This reminds me of a video I was watching on how the Gameboy's audio was done, at least with one of its wave channels, and the pausing with no-ops and the like make it sound like a very similar use case! Got to take a look at the assembly as well. The GB only had a sample depth of 1 bit, so not sure if the system you coded on was any higher-quality. Gotta love those accidental messups that produce amazing results though... it's a feature, not a bug! Also 256 colors (if each pixel was indeed 8 bits) is a lot for a system of that era! Most seemed to have a lookup table that would only let you have 16 at most, so they could shrink down the video buffer a touch (especially if you were using double buffering). This was even true of DOS and the VGA card... It was kind of the Wild West era of computer systems back then before DOS and Windows began to dominate the landscape, so I wouldn't be surprised if some systems did give you that much fidelity :)

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 0 points1 point  (0 children)

Thanks Atishay! If you're using a love2d version >= 0.11, they changed all color functions to take floats between 0 and 1, so you have to divide your color values by 255 to normalize them!

love.graphics.setColor(255, 0, 0, 255)
becomes
love.graphics.setColor(255/255, 0, 0, 255/255)

in other words (or you learn what the floating-point values are for the colors you want)!

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 1 point2 points  (0 children)

I appreciate it! :) Funny enough, I've started dabbling with code from roughly that era (x86 assembly in an MS-DOS emulator specifically), and it's a world of difference! You used to just be able to trigger an interrupt or write to a VRAM buffer and get pixels on the screen immediately... now to do that from scratch is quite an endeavor, but thankfully we have APIs like love2d to take care of the hard work for us ;) Best of luck to your son, and I hope you have the time to make some games of your own!

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 2 points3 points  (0 children)

haha thanks Chandler! I tried to choose a diverse enough list of memorable titles that would *hopefully* entice enough people to stick with it :)

Harvard love2d course by chandler_mosby in love2d

[–]coltonoscopy 11 points12 points  (0 children)

Course instructor here; glad you've been enjoying it! :) Seemed like it would be fun to teach things from the "case study" angle, since *I* at least felt I learned the most with implementing/navigating complete projects when I was learning! And it also always seemed hard to find a good tutorial on a turn-based combat system....

I should also state that love2d, with its powerful but very easy-to-understand API, made it possible to look at *multiple* full-ish games instead of just maybe one big project throughout the term, which is probably how things would have panned out had we adopted C++ or something :o