It’s been a while
I suppose one day I will need to write a post about how to manage your time in order to create a game, work full time and be a good husband (and if I wait with writing this tutorial I will need to add an additional chapter about kids
). But right now I want to break the silence to think aloud.
When I think about the future game I want to make it with html5 canvas. Gives possibilities, they say, it’s the best base for future html5 games, they say. The closest thing to making “traditional” computer games. And then I saw this.
It’s exciting just to analyze it. Someone created half of a Street Fighter game. The stage and Ken are HTML divs, the animation is based mostly on CSS (there’s a JavaScript part for making Ken animate and it’s all about adding/removing CSS classes!), the rest is JavaScript. Neat, I especially like the CSS part. Using all of those elements, the developer responsible actually achieved what many programmers want to achieve: code readability and relatively high code maintainbaility.
So if it’s so neat then why not?
First of all, if you want to do a 3D game with DOM you’re going to have some hard time. DOM is a farely good option only for 2D. Canvas gives you more possibilities (For example: 3D graphics with WebGL). One day, I’ll probably want to create 3D games. It would be good to have all this cool code I created almost ready to use, right?
Second, they say that the DOM is slow, but I think that progress have been made and every day it will be less and less slow.
While reading the code and wanting to troll about it, I recalled an idea I had before. Making a whole game based on the DOM perhaps isn’t the best of ideas, but one can still make the DOM useful. Instead of redrawing all the game elements on the canvas I will do that only with the game environment itself, while, for example, the GUI will be entirely in DOM. I will only change some values, like ammount of ammo, health points, while the frame in which this information is viewed will be drawn only once. I suppose it could make a browser game developer’s life easier.
Time will tell if I’m right.