DAME 3.1.3 out
It’s been a while since I’ve been updating DAME so frequently but with the fixes/features in this things should be improved vastly for some users.
Firstly, DAME used to have a limit on the size of paths. Now this has finally been removed and paths can be any size you like.
Secondly, paths can now be filled in with a colour, which means they can pretty much be used like shapes now.
Finally, tilemaps that are extremely large will now render correctly. There used to be some clipping issues that were cutting out part of the tilemap from the display.
DAME 3.1.2 released
A few fixes and features in the latest version of DAME.
- Fix DAME crashing when you try to move tiles pasted in another group than the one they were copied from.
- Fix tilemap border being draw incorrectly when the map is zoomed out far in tile matrix mode.
- Option to force snapping of tilemap positions to units.
- Added help menu option to open settings file.
- Added Tool menu option to reset to default settings.
- Fix for crash when ignore map edges is ticked on a tile matrix with special connections.
DAME 3.1.1 released
Here’s the list of fixes/features added in the new version of DAME:
- Duplicated sprite entries now copy all relevant data.
- Fix bug where loading a file with layer templates added duplicate entries.
- Added more options to control what can go in the settings file.
- Save sprites separately option has been moved to the Tools->Options window.
- Prevent the map height options from showing up on new map layers.
- Options will be reset upon loading a project saved before versions 3.1.0 and 3.1.1
- Can now add layer group templates.
What this essentially boils down to is that I’m trying to allow for the greater separation of level specific data (ie the placement of all objects in a level) and general level settings (what sprites/tilemaps/settings are used).
Previously the .dsf files were only used to save sprite entries, but now this has been expanded to include more data. Instead of being a dame sprite file it’s now a dame settings file. Fortunately, I didn’t need to change the acronym!
DAME 3.1.0 released
This version of DAME adds some new features designed to be more restrictive and make it easier for end users to edit maps and not make mistakes.
First up I’ve added the concept of layer templates. For now this is just for map layers. You can create a template from a map layer in the layers tab and then whenever you want to add a new map layer you can pick from the list of templates, instead of having to mess around with setting up tilesets.
I’ve also added some options in the Tools->Options menu to force users to only add maps from templates, and to disallow them from modifying the template list.
Another option I’ve added is to prevent editing sprite entries. Again, this is designed so that if you have a framework you can just give it to end users and not worry about them accidentally changing something. (Though, they can still change the option in Tools->Options if they need, but it’s a bit more hidden away).
In sprite entries I’ve added 2 options. One to force rotations to always be in 90 degree angles. There already was a keyboard shortcut to do this with 45 degree angles, but this is for those sprites that you only ever want placed in the simplest way. A second option I added prevents editing of tileset frames. Most people never use this feature so it prevents accidental breakage.
By default DAME should work exactly as it always did, so you’ll need to turn these features on, but hopefully it should help things a bit.
Carnage and Adventure
I’ve got 2 new games that were made using DAME to tell you about today.
First up is Dukes and Dirigibles, made by Backward Pies, which is best described as a game of carnage in the Victorian skies. It’s got blimps, lots of shooting and simple gameplay that keeps you playing.
Secondly, is Anodyne by Analgesic Productions. Technically, this game hasn’t released yet. But the playable demo is out and it’s looking pretty fine. It’s an adventure game in the spirit of classic Zelda games and while it’s still early days yet, I found myself caught up in the spirit of the game.
Three more games made with DAME
It’s been a while but I’ve been informed of 3 more games made using DAME and so I’ve decided to bundle them all up in 1 post of mini reviews.
First up is Rot Gut, which is a really stylized film noir game with shooting and jumping and quite a bit of blood! This one is quite challenging but a lot of fun to play. I dealt with the developers a little bit and some of the new look UI for DAME 3 was contributed by the artist Behzad Rahimi. Here’s hoping we see more from these guys!
Secondly, it’s a real pleasure to know that DAME has helped make a Doctor Who game - Dalek Supremacy! Ok, You don’t actually play as Doctor Who but Daleks instead, but as a fan of the show in my childhood it makes me smile. Of course, I can’t help but wish you played as the Sea Devils instead…
Finally, is another top down game by the same developer - Truth Specs. Actually, I recall debugging a bug with the map a long time ago early on in DAME’s lifecycle and thinking it was a really nice and complex map, worthy of any metroidvania fan. So it’s good to see the finished product with finished art.
You can find all the games made with DAME (I know of!) here
If you’ve made a game that isn’t listed please let me know!
DAME goes open source + Post Mortem
It’s been requested many many times and I’ve finally done it and made DAME open source. This is mainly due to the fact that I feel that I’ve done as much for DAME as I originally intended and it’s time to let others have a go.
Firstly, here is the link:
Now that’s out of the way, I thought I’d provide a little post mortem, not that DAME is in any way dead, but more on the development side. So here goes:
THE POST MORTEM!
Firstly, why did I make DAME? Well, it began because I wanted to make a simple 2d game and I was playing around with Adom Atomic’s wonderful Flixel framework at the time. I had tried a few other free editors and none of them did what I wanted or were as customizable/easy to use as I wanted them to be. So I thought ‘why not use Flixel to make the editor since half the work is already done? It shouldn’t take too long…’
I would come to regret those words.
I created my initial list of features for what I wanted in a map editor:
- To be able to paint down all the edge tiles automatically.
- To be able to draw directly on tiles and create new tiles where I draw.
- To be able to place down trigger areas and paths.
- To be able to place down sprites and freely scale/rotate them.
- To modify the sprite animations.
- To not be tied to any specific language/framework/or style of implementation.
Flixel was really good at the start. In fact, I believe that for the entirety of version 1 of DAME I didn’t need to modify the Flixel codebase at all. The only time I began modifying any of the Flixel code was when I introduced crazier stuff like isometric tilemaps. Overally, Flixel was pretty scalable as a framework for building a 2d editor on.
The Tile Matrix was one of the initial features I did and I haven’t needed to touch it much since it was first implemented. It’s customisability proved to be highly useful.
Lua. It took me a while to figure out which form of scripting I would use for the exporters. I considered people loading swf plugins or a completely closed system but those seemed to go against making DAME a generic tool for any language/framework. In the end, Lua did have some limitations, mainly because bridging between it and Action Script is slow, so I had to write an intermediate language. However, I’ve used this for many different types of exporters and it’s very efficient and flexible.
The Flixel community. Flixel users provided a lot of feedback and DAME was quickly adopted by the Flixel community. Also, being friendly with the community helps a lot. At the very least, people are more willing to communicate with you when you respond with a smiley :) You can find the DAME thread in the flixel forums here if you’re interested: http://forums.flixel.org/index.php/topic,2333.0.html
Going multi-platform. Always a fan favourite, this! However, I didn’t have a Mac or Linux, which meant relying on others to debug problems. But actually this turned out to be a Pro for me and taught me how to better figure out solutions to problems when I can’t reproduce them myself.
Making it free. I could put this as a con, since I didn’t really make that much in donations from DAME. But I received enough to encourage me to keep the website going.
Feature creep. I got a lot of requests and a lot of bugs during the first 2 versions of DAME, so I spent a lot of my free time working on them.
Not going open source early enough. This one is speculative, but if I had gone open source sooner it’s possible I could have had more people adding features and improving it… or not.
Not promoting DAME enough. As far as I know, DAME hasn’t really been used outside of Flixel, which is a shame since I built it to work with any 2d framework you want.
Not creating an xml exporter soon enough. This goes with the above point, but making an xml exporter promotes its use in other frameworks.
Lack of documentation/videos - sigh.
Adobe Air. This one is controversial, but in the end, I think had I have made DAME with another framework I might have had fewer problems. Adobe Air proved to have a lot of small limitations that increased my development time. Action Script is also pretty inefficient and especially so in the hands of someone who doesn’t know all the tricks. DAME projects tend to be pretty bulky, so this becomes pretty important.
Lack of planning and knowledge of Action Script. I’ve learnt a lot over the last 2 years and can now consider myself fairly knowledgeable in AS3, but when I started DAME I had only spent about 2 weeks working with it.
I’d love for DAME to continue to evolve and improve, but going open source is me finally accepting that I’ve done as much as I can alone and giving up the reigns. If anyone wishes to help then please get in touch as I’m sure there are still plenty of things we could add. Here’s my wishlist:
- Improve the UI.
- Make it more efficient.
- Port it to something more reliable than Adobe Air.
- Allow for larger paths and more flexible shapes.
I hope you all enjoyed DAME over the last 2 years. If you have never tried it then please do. It shall always be entirely free and I’d like to see it reach a version 4 or 5 one day.
And thanks to all those who contributed in some way over the long and winding road to this point.
Before I forget…
Did I ever make the game I intended to make?
I got carried away making DAME instead. But watch this space. I still intend to make something with it. In fact, quite a few things…
Animated Tiles in DAME
I’ve just updated the DAME Samples here: dambots.com/dame-samples with an often requested example - animated tilemaps.
As with many features in DAME it’s confusing to use at first, but really powerful and useful once you’ve learnt the ropes.
Assuming you’ve already got your set of animating tiles, the first thing is to make DAME recognise them. To do that all you have to do is right click on the map layer and edit it. Then in the layer properties window go to the animations tab and add a new Anim. From there you can drag tiles into empty frames, adding new frames if necessary. You can also specify the frame rate. By default, unless in drawing mode, animating tiles will animate but the option is on the View Menu, under “Play Anims”.
The next thing to do is set up the exporter. There isn’t actually much you need to add. Here’s a snippet from the exporter provided in the samples:
tileAnimsString = “%%if tileanim%%”..tab3..”tileAnims[%tileid%]=new TileAnim("%name%",%fps%,[%tileframes%]);\n%%endif tileanim%%”
tileData = as3.tolua(DAME.CreateTileDataText( layer, tileAnimsString, “%tileid%%separator%”, “,”))
The key function here is DAME.CreateTileDataText. The tileAnimsString is called for each tile in the spritesheet ( a similar thing is done in other exporters for tile properties and you can even combine the two ), and if this tile id is the first frame in an animation (the %%if tileanim%% keyword) then it will output the string.
You can find more info on this in the help pages on exporting provided with DAME.
DAME made games…
Every now and then I learn of new games made using DAME, and even more rarely I learn of some not so new games. It’s always a pleasure to play these games, knowing that something I created has helped other people to create something of their own, and it seems that as I continue to improve DAME with new features and greater usability the games get larger and more interesting as a result.
Today I’m looking at two of Taw Studio's games - the recently released Jelly Escape http://www.kongregate.com/games/TawStudio/jelly-escape and the slightly older Mr Bree - Returning Home http://www.kongregate.com/games/TawStudio/mr-bree-returning-home. Both games are platformers but couldn’t be more different from each other visually.
Mr Bree is the older game of the two but features beautiful graphics with parallax scrolling, haunting music and a few upgrades and secrets. I really enjoyed playing this game and found the difficulty spike really challenging and rewarding.
Jelly Escape (above) is a recently released platformer with small graphics and large complex levels which often wrap around on a single screen. I found that as the levels got more complex more thought would be needed to figure out where to go, and whether to go for the extras, and the small graphics made controlling the character more of a challenge, but in a good way.
Both games provide a comforting checkpoint system and are very well polished. I look forward to seeing what else Taw Studio does with DAME.
On a side note, I’ve added a new page to the Dambots website to highlight all the games I’m aware of that have been made using DAME. You can find it here, and if you made a game of your own using DAME let me know so I can add an entry about it.
DAME 3.0.3 out
Today I released DAME 3.0.3 with a few useful features:
- You can now create hidden properties in sprite entries. What are those? Well, if a property is hidden then it won’t be displayed or editable in any sprite instances. And by default (though this can be overriden) it won’t export in any property loops either.
- Now when you are in the sprite editor in select mode and select a sprite entry it will automatically switch to paint mode.
- With DAME 3 I already added custom filter types (ie a property type that is automatically generated with some text formatting based on all the current layers you have). Now I’ve added a new filter type for all sprite names. This makes it really easy to reference other sprite types if you need to.
- A few bugs were fixed with shared tilemap tile properties and the guide layer image overlay.