Tuesday, October 19, 2010

The Render Engine on Hacker News

An in-progress game, made with The Render Engine, called Pistol Slut was #1 on Hacker News today for a while.  The engine has also recently appeared in some beginner tutorials.  This only emphasizes the need to get v1.5 out the door as soon as possible!  I'm a little disappointed that the comments for the engine, by its author, were:
 
"The engine I used is mostly a drawing engine, with some basic game stuff included (particles, the beginnings of collision detection)."
 
It makes the engine sound a little amateurish.  Yes, it's only v1.0 of the engine, but The Render Engine is much more than just a drawing engine.  It's a framework that gives a game developer time to work on game mechanics rather than core functionality.  Is there something else that the engine should include that isn't there?  Anyway, it's still good to see it being used!


3 comments:

  1. hi brett,

    i guess the main problem is that your render engine concentrates to much on canvas and therefore you ask developers to learn a new concept of working with various elements which can easily described as "drawing stuff".

    web developers are used to work with the dom, they're used to work with jquery and similar libs, so if you want to attract a larger community of developers I guess you need to leave the canvas arena.

    just a thought

    ReplyDelete
  2. Not to sound too full of myself, but games have (and always will be) something of a black art. There are many ways to approach the process of developing a game. The canvas allows so much to be done that cannot be done, as easily, with the DOM. Now, having said that, look at the Isometric Demo... It is far from complete, but is done entirely in the DOM. Tilemapping will support both canvas and DOM. The engine is targeted at a wide range of developers who want to do things that are unheard of in a browser without the use of plug-ins.

    With canvas, game developers will feel more comfortable because they are used to drawing to a buffer then shipping it to the screen. With DOM, everything is instantaneous (which isn't good in a few cases). Drawing to the DOM must take into account that your surface is always present. You don't flush and redraw each frame, as you do with canvas. Traditional game programmers appreciate this familiarity. However, web developers who are moving into game programming will want something they are familiar with. Thus, they will revert to the DOM. The DOM isn't traditionally used for game development; it is a foreign way of drawing the scene. There is no real scene graph, so to speak.

    The Render Engine will continue to be just an engine. It hopefully provides the features that game developers are looking for. Taking over the task of loading graphics and sound, drawing sprites, rendering scenes, and interacting with the players. This way, a developer can focus on creating a great game rather than creating the underpinnings of their game.

    Thanks for your input, though. As the engine matures into v2.0, it will have better support for the DOM. And that support will coexist (hopefully) with the canvas support. That way a game developer has a choice rather than feeling restricted. The engine had to start somewhere and I chose the canvas. Now it's time to fill in the blanks where the DOM is concerned.

    ReplyDelete
  3. It's Mary here, the author of Pistol Slut. I just saw this blog post.

    I'm really sorry that you were hurt when I said, "The engine I used is mostly a drawing engine, with some basic game stuff included (particles, the beginnings of collision detection)."

    There is no way I could have written PS without The Render Engine. I don't know much about the canvas element, and I have hardly any experience writing games. The fact that you abstracted so much of the drawing stuff away, and included some sprite, particle, vector, text, maths and asset loading stuff was instrumental in me being so productive.

    I said what I did on HN because I would talk to my geek friends about my latest nightmare with implementing collision physics, or per-pixel collision detection, or how I had just hacked together sprite animations that could be played a single time and combined with actions that occurred part way through the animation, or hacked together parallax scrolling, or started working on the AI for my enemies. My friends would say, "There are tons of libraries for this stuff in Flash. Why don't you just use that?"

    So, The Render Engine does more than just drawing. I simply meant it lacked higher-level game stuff. But, from your comments above, I see that is intentional. I'm sorry if I mis-represented the engine, I'm very grateful that I'm able to build PS on it, and I'm very sorry if I hurt your feelings.

    ReplyDelete