ID:1121073
 
Applies to:Dream Maker
Status: Open

Issue hasn't been assigned a status value.
I know you guys are anti open source, but I'm going to make this request anyway.

Make dreammaker.exe open source. Let the developers help improve it. They know what they want and there's no reason for more important things to be put aside to work on it.

The Dream Maker program is very old and outdated. The days of fancy notepads is over. Developers have been spoiled by modern IDEs and there's no going back. Not to mention the non-code editors could use improvements as well.

People can make their own IDEs, but that's just a huge headache, they have to start from scratch, and it has no real affiliation with BYOND.

If you don't want it completely open source, maybe just let a few trusted, worthy developers volunteer to work on it?
There has been talking about it, but nothing. I've been working on a IDE (Now, somewhat lazy, keep working on it but not pretty active).

https://github.com/Blastcore/Dream-Maker-IDE

You can help there, though. (Though, really, trying to do the "hardcoded" way won't work pretty well for some stuff. :o)
It's even cross-platform (I think, lol, i'm not really a Linux / Mac user so i can't tell that the current progress works fine. If someone can compile, go ahead. It'll be nice.)
But well, if i see some interest and some help, maybe i'll keep working on it.

--

What i mean, this has been requested over the years, but nothing happened. Our only option is an IDE. (Open source!!)
I'm not clear what you want to opensource here. We can't really opensource the compiler without opensourcing the server too, since it's all tied together. But you can call the compiler externally through any IDE you want and all of our filetypes have open formats. If you are talking about just opensourcing the GUI, there doesn't seem to be much value in that since it is made with outdated tools (MFC) that I doubt anyone uses anymore, and isn't cross-platform.

Honestly, it seems like the best thing to me would be to write appropriate syntax modules for Eclipse so that one could use their IDE, and write a separate map-editor. If you don't worry about instance-editing to start, the map-editor format is really basic.
In response to Tom
Tom wrote:
I'm not clear what you want to opensource here. We can't really opensource the compiler without opensourcing the server too, since it's all tied together. But you can call the compiler externally through any IDE you want and all of our filetypes have open formats. If you are talking about just opensourcing the GUI, there doesn't seem to be much value in that since it is made with outdated tools (MFC) that I doubt anyone uses anymore, and isn't cross-platform.

Honestly, it seems like the best thing to me would be to write appropriate syntax modules for Eclipse so that one could use their IDE, and write a separate map-editor. If you don't worry about instance-editing to start, the map-editor format is really basic.

I think he just meant open-sourcing Dream Maker, but how you said, you would have to open-source everything else.

I wasn't really talking about open-sourcing anything but linking to the IDE i'm working on. :p (Which, i'm sure it'll work cross-platform. Although maybe it would need some tweaks.)

Yeah, most of the stuff is easy to do. (But me, and my ways to hardcode everything won't help. :o)
In response to Tom
Tom wrote:
I'm not clear what you want to opensource here.

Just the IDE. dreammaker.exe is just the IDE, right? Then dm.exe is the compiler?

I just really want to see the Dream Maker program greatly improved, but I don't want it to happen instead of other more important things.

I personally wouldn't use an Eclipse add on, nor would I use a third party IDE unless it had everything - icon editor, map editor, interface editor, and so on.

I just think if somebody was given the task, the tools could be greatly improved, look nicer, and so on.

It's not a huge deal, though, just something that would be nice. People are always begging to help, figured this could be one of those things somebody could help with, since the language itself or the database/website isn't involved (assuming dreammaker.exe is just an IDE).
In response to Aaiko
I believe what you're asking is not completely reasonable.

You want a tool that allows to edit code, icons and map within same window, yet you're forgetting BYOND has sounds, why you don't want sound editor within Dream Maker?

My point is, it's unreasonable. Most companies/engines/etc use separate tools for code, icons, mapping, sounds. Here are few examples:
Unity - map editing, entity editing, building. Code editor is external program that installs together, no image/model editor at all.
CryEngine - has only map editor and is programmed in C++, all other content is created through whatever tools you want.

I believe we need separate tools as well:
Code Editor (together with Project Editor for consistency)
Icon Editor (could be started from Project Editor)
Map Editor (same as above)
In response to Zaoshi
...What?
In response to Zaoshi
While having a better icon editor would be great, things like Paint, Paint.NET, GIMP, Graphics Gale, and so forth are all excellent alternatives and can be used alongside Dream Maker.
In response to LordAndrew
LordAndrew wrote:
While having a better icon editor would be great, things like Paint, Paint.NET, GIMP, Graphics Gale, and so forth are all excellent alternatives and can be used alongside Dream Maker.

Can't really do animations and make dmi files. One of those does animations, I think, but you have to buy the program for it. But still, those animations are not the same as dmi animations. Then you have to import stuff into your project. The whole idea of Dream Maker is having all the tools you need right there and easily making games. Everybody wants to outsource all the work... there would be no point in having any tools at all.

^ Agreed.

Why not all write in Notepad and change extension to .dm?
-sarcasm-
For icon editing, the format is just png w/ some basic text comments, so it shouldn't be that difficult to make an animation in an external editor (it would just look like a strip of frames/states). Barring that, anyone could write an icon-editor as long as they had the libraries to write png files (eg, libpng, imagemagick, etc).

There are a few problems with open sourcing the IDE. The first is that, unfortunately, the way we've structured things, the BYOND code shares common libraries and control objects so it would take some time to reorganize that to be usable. The second is that we use a very outdated compiler setup (VC6 + MFC) that I doubt very many people have access to, nor would be interested in working in (it's the reason things like the tab display were not trivial, as they are in modern VC releases).

The main part of DM is code editing and there are dozens of third-party editors that can work well for that. I honestly believe that it would be far easier for someone to write map- and icon-editors in modern setups than trying to work with our code.
In response to Tom
Well, was worth a try.

When I get some free time, I want to make some game developing tools in HTML5 Javascript. Icon editor, map editor, code editor, and so on. Perhaps I can make them work with DM's different files (just wont be able to compile).
I would be interested in working on the entire dream compiler..I use vc6...it is possible to convert the compiler to the newer VC releases with abit of work to fix the errors. Since I convert my code from each language back and forth. To me, VC6 is not much of a issue. Objective-c is more of a *beep*
Though this isn't much on topic, I want to ask about it anyways. Is it possible to whip together a Dream Maker SDK using the C++ libraries already in place? Developers working in C++ could utilize the functions and rendering that the compiler already makes use of, but at a lower level with C++. Though I may be wrong, I've never written a compiler before.

Everything done in DM could fairly simply be translated over to C++ however, but maybe being able to use the client-server model for BYOND would suit better? Anyone developing in C++ could still have their games accessed through the HUB and Pager system.

Just tossing around ideas to see what you think, Tom.
A lot of things here about open-sourcing, when what we really need is specs.

Questions:

- How does the DMI format work exactly and - hypothetically speaking - how should a newly written icon editor behave when dealing with DMI files?

- On that same note, what about the map format? What exactly is being done to produce the .dmm file? What kind of optimization?
DMI format is just a PNG image with a zTXt chunk with the label 'Description' containing the metadata, iirc.
In response to NullQuery
The .dmm format is really simple, it's all plaintext too.

There's 2 parts to a file:

First there's the tile definitions, there is a tile definition for every combination of atoms (and var edited ones) used on your map.

It sort of looks like this:

"a" = (/turf/wall,/area/indoors)
"b" = (/turf/floor,/obj/table,/area/indoors)


The tile keys are case-senstive (and this property gets used by DM).

Of you run out of tile keys, DM will increase the amount of characters the tile keys use: "a" to "aa" to "aaa", and so on.

Secondly: the actual map layout.

It looks like this:

(1,1,1) = {"
aaa
aba
aaa
"}


Which is just a per z-level map of the tiles defined in the beginning of the file.
In response to PJB3005
To clarify on the map format, each Z-level is done separately, so you'd have (maxx,maxy,z)={"..."} for each Z. Each line in the string is a row on the map (all the same Y), and I believe they count up from y=1 for the first line to y=maxy for the last. The tile IDs on each line do not get separated by any spaces or commas.

All tile IDs have to be the same length, so if you need three characters (more than 52*52 tile types), you'll have three characters for all your IDs.