How do I apply my (little) knowledge in JS? I know how to assign a single function to handle multiple events for example, but I can't create a challenge for myself with some abstract concepts.
May a suggest you add books / links related to game development theory?
I am C++ game programmer.
Me start with the books for beginners or is there a more appropriate solution for me?
If I were you (well, I'm in the same shoes as you) I'd start learning with Phaser's examples.
Indeed is a very good place to start and keep learning.
Hello. I've a question. How do I add image files to my project in Brackets and NetBeans IDE? I am reading "Discover Phaser" by Thomas Palef now. In his "First Project" chapter I am creating animation. Though I tried coding it on several IDEs, I didn't get it work. And code editors found mistakes in phaser.min.js as well as couldn't define the variable Phaser in main.js. What am I doing wrong with it? Please answer.
Really loving the resources here. Should keep me occupied for a few weeks.
@rich That was a hard read. I may need to read it a few more times to really understand it.
Please tell me what I could explain better.
Thank you for writing this! It's really useful to see as many different examples of JS as possible when trying to learn. You've made a lot of games!
I've never used W3Schools Tutorials before but now I am I really like them. They get stuck in straight away, rather than showing you a single line with var a = "number" and building on this incredibly slowly chapter by chapter they are instead written as though it's been assumed I've already seen words like function and if before. I know these are programming things, I just want some examples of them in use now please!! Luckily this is where the well known W3Schools turns up! There's already things I can click on to change by page 2!
Usually it's not that cheap but Udemy does sales really often, where the whole course about 20 € or $.
He explains everything slowly and very low-level; what does the compiler understand when it reads a "." or ";".
It's about the Entity-Component-System-Way of doing things.
I had quite some experience with JS.
But for making games, this was a huge step.
I knew this principle from Construct and Unity, but never knew how to do it myself.
Oh those are some great links! Thanks!
#2 Learn functional programming. To a certain degree, this is essential for JS developers because a lot of it's power comes from it's functional aspects. To a certain degree, it's not that essential because of the aforementioned flexibility and ability to write in or mimic multiple paradigms. Anyway, just do it, if for no other reason than the fact that your first language was likely an object-oriented language with classical inheritance like Java or Python. In which case, you may struggle when you brush up against functional concepts or codebases - don't act like you already know everything. The functional programming priesthood will say that classical inheritance, the "new" keyword, mutable state, and impure functions are the devil. I'm not sure if that's the case and I find a lot of their arguments about it kind of porous. Regardless, you should definitely at least learn how to do what their espousing and recognize when it'll save you from headaches in your own code.
#3 Go ahead and start using ES6+. You certainly don't have to.. You can write in ES5 and everything will be fine. The majority of tutorials out there will be in ES5, as will most libraries, frameworks, and codebases. If you're interested in game development, however, then I imagine that you're someone who likes to be ahead of the curve. Using ES6+ will force you to start using things like Node, npm, and the various tools related to transpilation. The ability to create modules is also a default part of the language, and that will help you architect your code base in a fashion similar to other languages that support imports/exports by default. You might also discover that ES6+ is just better than ES5. I'd further recommend using Webpack (with Babel and eslint) and configuring so that everything is compiled and the browser is refreshed every time you save a file.
#4 Find an editor or IDE that works for you. I've used many. I don't like most of them. Right now I use Vim and occasionally Atom when I'm feeling lazy. I'd recommend Atom for beginners. I'd recommend Vim for people who quickly discover that they hate most editors and IDEs, making sure to pimp it out with lots of plugins to bring common IDE-like functionality.
#5 Go ahead and start using Git and GitHub. Make sure that you know what you're doing. Start committing as often as possible and put the link to your GitHub on your resume, portfolio, or LinkedIn page. If you're not doing these things, then you're going to look dumb to most people if you start shopping around for a job.
#4 Find an editor or IDE that works for you.
#5 Go ahead and start using Git and GitHub.
Sorry for commenting so late. This is an awesome thread and has some really good material.
Agree with the above, specially with #5. This is going to become more important as time progresses.
For a vast majority of developers, the approach towards learning a language is to somehow make things work!! This approach shows results in the beginning, but is counter productive in the long run. Learning what to do is as important as what not to do. Most resources focus on the former.
BTW, I liked the "https://github.com/getify/You-Dont-Know-JS" series.
You can learn a ton about the language itself by reading. A good place to start is this collection of free online resources.