Verge was certainly once a labour of love, but lately people have been too busy to really lavish attention on it. So it's currently a little unfit to foster an independent market.
I would love to resurrect Verge as a capable game engine, but it's hard to maintain interest, and I definitely can't do it all by myself. The engine has a lot of nice features, but some of them were not implemented in such a way that people can pick up and add to them. They're sort of stuck, and some functionality is locked in there pretty bad, some people basically have relied on it working the way it is, so it couldn't be updated much.
I've had plans, currently on the backburner, to rewrite Verge to being a maintainable, "friendly" engine.
At one point I tried to do this directly in the existing source. I ripped out Lua. Part of me is torn about doing that though. VC as a language is a fun toy, and people have done cool things with it. It's not so much the language, as the parser and interpreter limitations that were holding it back from being something a bit nicer. It's definitely a much more beginner-friendly language than Lua for some of that stuff.
However, it's not something many of the developers have an interest in maintaining. So I did what I did. Kildorf was making a tool to convert VC into ocmpatible Lua scripts, which is an admirable effort, but it's a pretty long road.
A few years ago, in university I made an incomplete 2D engine of my own, called Plum which had several bits of functionality. It had Lua scripting, Corona for images, Audiere for sound, SDL for windowing/input, .zip as packfiles, software off-screen drawing, and hardware on-screen texture and primitive rendering. No built-in map engine, just tilemap objects and sprite atlases. I will say that I don't like some of SDL's artificial limitations very much (resize a GL window? Lose the entire context, including perspective, textures; etc). Sort of reinvented the wheel a bit, and ran into my own problems.
More recently, I made an effort to rewrite the existing Verge bacekend functionality into a more object-oriented C++ codebase. By writing each piece from the bottom up. I sort of think this methodology could work, it's just very time consuming. It's not reinventing the wheel, but rather, rewriting what's already there in a more coherent manner. The idea is to have a crossplatform framework that at the base that doesn't rely on SDL. Then layer in Verge functionality, with a new map system (maybe tiled .tmx maps; maybe something else -- depends).
But I dunno, I want to get other devs on board. It might be easier to make my case, once I am down in Mountain View, CA. Then I can annoy Grue, Kildorf, aen, etc. in person.
Okay, this has been a problem I've fought with for a long time. I would love to see some game engine, maybe not the current Verge, with a good community of people making things using it. While there are plenty of things you can do with Verge right now, it's hard to get going. The tutorials are outdated, some incompatibilities have arisen that weren't there before, people have left, etc. There are plenty of alternatives, but nothing that's really sold me. I still often find it easier today to hack something out in Verge. It has rapid prototyping as an advantage, once you get into it, and that's a big thing.
But the tool is being used for many things that I'd say it wasn't originally planned for. Which has some novelty to it, but it's actually pretty painful to accomplish some of these things, due to some limitations in the systems, like the maps and entities not being suitable for all games. In my sidescroller engine, I wasn't using entities, but rather a custom sprite system, because entities are hard limited to 256 at once, and they only have support for a few types of animation, and stuff like that.
Anyways, I want to see Verge become something useful again. And not necessarily just useful for me, but for a community of people.
Here are some things I want in a game engine:
- Low barrier to entry. Create a script file and run the engine and have instant feedback. No project files or anything, and as you want more features, you dig into new parts of the library.
- Flexibility to accomodate innovative many different usages without much work on the end user's part.
- Cross-platform availability, stability between different OS versions and bit architectures (eg. Windows XP, Windows Vista, Windows 7).
- 2D graphics. Create assets on the fly, draw in many different ways (rotate/scale/flip/transform/colorize/whatever). 32-bit with alpha channels!
- Useful Audio. Seeking, pausing, positioning, looping, transitioning. Must have both tracker music and regular audio support.
- A rich tilemap system with metadata ("zones"/"entities"), layering and graphical effects.
- Performance where it counts.
- An indie community that can support others in learning and making their games, with the occasional compo. And the resources to meet their needs (active forums, documentation, tutorials, demos, )
- A dev community that can push the engine ahead and add new features as needed. And the resources to meet their needs (maintainable source, resources on building things)
Verge has many of these things, but big ones like flexibility and crossplatform are pretty rough. And it's pretty tough to make progress, with the engine in the state it's in. But I think that community will trickle back if we can get things in order with the development. Maybe we won't simply update the existing Verge, but have to make a new one like I've been considering.
Anyway, I hope that if enough interest is sparked, maybe some day something can be done. The people who have been involved in the Verge community over the years have shown a lot of great talent. And it would be cool to bring people back together through some sort of revival.
Posted on 2011-08-07 22:35:51 (last edited on 2011-08-07 22:40:11)