Spacetime paradox!

Y U NO Dart?

Attempt #42 at running a personal blog, and this time I’m not going to repeat my past mistake in making a generic introductory post that is going to discourage me from making any more contributions in the long run. So let’s keep this short, amateur coder, wannabe game developer, anime fan with ambitions regarding drawing cute girls one day and possibly making robots. Preferably of the small and cute variety, with big eyes and samples from a professional voice actress.

After a long hiatus I’ve been, thankfully, coerced by Eonhite into going back to making games, this time with a firm resolution of actually finishing something small rather than making another worthless grand design. He’s making all of the art so I don’t have to worry about straining my nigh nonexistent creative muscles in the slim hopes of drawing something less creepy than Chinatsu’s drawings. So, with good art guaranteed, we’ve decided on a simple web-based platformer game.

Yep, cool sprites guaranteed. Though I’m not sure whether it’s a guy or a tomboy. Latter preferred. Eonhite a great.

Which sent me into a panic at first, because I never made anything for the web more complicated than an almost script-less news site, and even then I’ve focused more on the backend, with Ruby and Sinatra as my indispensable assistants. And I didn’t want to do Flash, no thank you, anything but Flash. Though I didn’t want to do JS either because I have a hard time understanding that mess.

Thankfully a while ago I learned about the existence of Dart which promised a decent language that can compile into Javascript. Decent as in something that’s not just covering some of Javascript’s flaws and verbosity like (Iced)Coffeescript, but actually something looking like a normal run of the mill imperative programming language. I’m used to the common C++/C#/Java/Ruby kinds of languages, so it was a huge relief to find out that Dart is really similar to those while adding some nice syntactic sugar.

The official IDE is a very simplified and significantly cut down Eclipse, but hey, it works pretty well.

To get done with this quickly, one thing I didn’t like was a kind of iffy library/import system that pretty much makes the whole library a single unit and requires you to explicitly list all files it contains. You also have to state that a file is a part of said library in the file itself, but it’s not unlike namespacing so that’s all right, I guess. Another thing is this pubspec.yaml-based build system, it’s simple, but I have a general distrust towards build systems constructed around downloading things from the internet by themselves. That said, neither of these complaints bothers me really, I’m just nitpicking.

As for the language itself, it’s basically Java with syntactic sugar and a few functional niceties like making passing around anonymous functions really easy. I’m not quite used to the Future concept yet, but it seems to be prominent in front-end languages for the web so I hope writing my own ones shouldn’t prove difficult either, it seems easier to use those rather than creating specific delegate classes.

So, yes, in short I’m making another version of my silly 2D game framework, Yuno, in Dart. For now using a Canvas, but I might switch over to webGL later, it seems to be similar to normal openGL. Once I figure out sound and fonts I’m going to add support for Tiled-made maps and will start making the actual game, though I’m still not quite sure what kind of gameplay is there going to be other than walk-ish things and jump-ish things. It’s a bit of an experiment.