General discussion about CrossCode.
User avatar





Wed Jan 21, 2015 11:31 am

CrossCode in JavaScript: How to manage complexity?

by MightyNicM » Sat Feb 10, 2018 7:06 pm

Hi team,

I recently checked the status of CrossCode, ever since I was religiously following it when it was first announced. I am happy that you get along so well! :D

Besides playing it in early access (loving it! :A ), I also re-watched some of the live streams. I once was a big JavaScript fan too, mainly because it was the only option when "programming" websites, and mainly because it was the only language I actually was good at. At that time, I didn't understand much of the power of type systems, and I didn't have much experience working on actual complex, real-world projects alongside other people. All of this changed by now, and the more experience and insight I gain, the less can I sympathize with JavaScript as a useful language for, well, any kind of non-trivial system.

So I wonder: How do you manage to control the complexity of CrossCodes's code base, with a language like JavaScript? The editor doesn't tell you what type a parameter to a function has or what properties are available on some object, let alone saving you from doing stupid naming errors that you only detect (hopefully sooner than later) at runtime, as I have seen in some of your streams.

I can imagine the following reasons:
  • Only a few people actually program. And this regularly, so as to not be confused about your own code. ;)
  • The game isn't even that complex with respect to code architecture, number of classes/types (forgive me, prototype objects I mean :lol: ) etc, because most of the groundwork is already done and you primarily work on a thin layer of abstraction on top of your engine, doing mostly configuration (JSON, whatever) and event programming (à la RPG Maker).
  • You actually use and maintain some up-to-date documentation. :roll:

Maybe you can share some insights/corrections, and address these questions too:
Do you ever regret having to work with JavaScript, or isn't this much of an issue at all (and why so)?
Would you go with another technology stack if you could start all over?
What testing strategy do you apply? Unit tests? Automated playthroughs? Just extensive manual tests?

Who is online

Users browsing this forum: No registered users and 4 guests

Powered by phpBB ® | phpBB3 Style by KomiDesign