ID:133593
 
not sure if something like this would be possible, but a Quick Compile option or something of the like would be nice in dream maker. Something that simply recompiled the coding portion of the game, ignoring the map and icons (basicaly the resource package) using the last fully compiled rsc to check against. Im just asking because once a game gets a large map and/or alot of icon files it begins to take a long time to compile, which is a major pain when trying to update/test coding
The map is actually stored in the DMB, so when rebuilding hte DMB it has to be covered.
I have been wondering why it would take such a long amount of time to compile. Are there any tips or tricks to speed things up?

-- Data
You can always just un-check the files you don't want included while you're testing if the code compiles, and then re-check them when you're ready to compile the finished game.
In response to Android Data (#2)
Code generally doesn't take too long to compile, it's the RSC. It's made much worse when the compiler has to go looking for a file to add into the RSC. I generally sort icons by folder, and to make sure I get the fasted compilation-time I can, I uncheck the preference for "Automatically set FILE_DIR for sub-directories" and it requires me to put in the actual directory for each file to compile. It really speeds things up.
In response to CaptFalcon33035 (#4)
CaptFalcon33035 wrote:
Code generally doesn't take too long to compile, it's the RSC.

I doubt that. BYOND is only supposed to update the resource file if something has actually changed.

I compile SS13 manually: by running a batch script which uses the new dm.exe program. I modified a file through the sourcecode, saved it and compiled -- it didn't change. Appearantly, compiling via dm.exe does not count such files as modified.

From what I can tell it takes a lot of time to check for compile errors, and since there's so many lines of code (some which is still in it's raw, decompiled state) it takes a heck of a long time to compile.

Here how I think it's doing the compiling:
1. It grabs all the .dm files and chunks them into one big file. I don't think this takes too long.
2. It checks every line of code in that file for errors. This takes a lot of time.
3. If it didn't find any errors, it looks for the skin file and puts that in the .rsc. Maybe some things in the .dmb are changed as well. This takes some time.
4. Next it grabs the 493 KB map file that comes with it. It includes it in the .dmb, which also takes up some time.
5. Next it actually writes the .dmb file. It stored it in the buffer/memory until this step.

I find it annoying that I have to wait a lot of time for this thing to compile. You change a 0 to a 1 and you have to recompile the entire beast.

EDIT: I checked. Without any resources apart from the skin file and no map, I get 30 seconds. With all of it in, I get 49 seconds. Almost 20 seconds extra!

-- Data
In response to Android Data (#5)
aparently compiling does something to the resources, or at least to the map (which i think we established the map part already <.<) because if you modify an icon it wont update on the map until you compile. The map being the part I beleive takes forever to compile once it gets too large. lets just quiet down now until lumox gives us an answer =P
In response to Android Data (#5)
How long is the code itself?


Even with 500x500 size maps and about 20,000 something lines of code I'm still getting fast compile times.
In response to Obs (#7)
what do you consider fast <.< it should be instant, taking 30+ seconds to compile is rediculous
In response to Falacy (#8)
Falacy wrote:
what do you consider fast <.< it should be instant, taking 30+ seconds to compile is rediculous

Be glad that you are not working in some major non-Byond project. Some of those compile times range from five minutes to overnight (no joke).

I would rather wait the extra 30-seconds and have better security on the integrity of my code rather then a few seconds of my non-existent life.

George Gough
In response to KodeNerd (#9)
KodeNerd wrote:
Be glad that you are not working in some major non-Byond project. Some of those compile times range from five minutes to overnight (no joke).

well this is a byond project though isnt it <.< If i was working with some 10,000 polygon 3d model that needed to process realistic physics I probably wouldnt complain <.<

I would rather wait the extra 30-seconds and have better security on the integrity of my code rather then a few seconds of my non-existent life.

This shouldnt at all effect security and/or integrity of anything, basicaly im just asking for the compile we have now to still do what it does, compile the code, load the map, the icons, whatever it might do. But if i dont change the map or the icons, just give me a quick compile so I can recompile the code and check it against the already existant map file and icons.

Its insanely anoying to modify something in the code for half a second, then have to wait 30 seconds for it to compile, then take another half a second to test whatever I just modified. and then if it didnt turn out exactly like i wanted i have to repeat the process
In response to KodeNerd (#9)
I've done a quick Comparison with WOTS 2.0 and 1.8's Compile Times.

WOTS 2.0

Lines of Code(Approx.) 15,932 Lines
.DMB File Size: 850 KB
.RSC File Size: 8,636 KB
Map Size: 1,855 KB
Compile Time: 32 Seconds(WITH Other programs Running)

WOTS 1.8(Much More Buggier, Inefficient, more "Complete", etc)

Lines of Code(Approx.) 28,936 Lines
.DMB File Size: 1002 KB
.RSC File Size: 8,893 KB
Map Size: 1,852 KB
Compile Time: 1 Minute, 2 Seconds(WITH Other programs Running)

Now, WITHOUT The Map File
WOTS 2.0

Compile Time: 3 Seconds(WITH Other Programs Running)

WOTS 1.8
Compile Time: 7 Seconds(WITH Other Programs Running)

It seems to me that Lines of Code Influence how long the compile time takes, but .RSC and Map files is what is taking your time.


In response to Falacy (#8)
5 seconds for a byond project, but 30 seconds is still pretty fast overall.

The solution is just to compile less often.



In response to Falacy (#10)

This shouldnt at all effect security and/or integrity of anything, basicaly im just asking for the compile we have now to still do what it does, compile the code, load the map, the icons, whatever it might do. But if i dont change the map or the icons, just give me a quick compile so I can recompile the code and check it against the already existant map file and icons.

Its insanely anoying to modify something in the code for half a second, then have to wait 30 seconds for it to compile, then take another half a second to test whatever I just modified. and then if it didnt turn out exactly like i wanted i have to repeat the process


That isn't how you should be programming. You should basically be your own compiler. I often write several procs before I even hit compile.
In response to Obs (#13)
Obs wrote:
That isn't how you should be programming. You should basically be your own compiler. I often write several procs before I even hit compile.

yea and then you have 1 thing thats not working right somewhere in one of those procs and youre screwed. I compile every time I take a pause to readback, or at least once after every system/proc i build just to make sure its actualy going to compile, then I usualy test it afterwords to make sure it actualy ran like I wanted it to
In response to Falacy (#14)
Except that doesn't happen to me. Often times after writing huge blocks of code and hit compile I don't even get 1 error or warning. It's not that difficult to screw up the BYOND syntax for christ's sake.


What is difficult later is checking to make sure your code did what you wanted it to do. And the compiler will never be able to verify that for you.
In response to Obs (#15)
Obs wrote:
What is difficult later is checking to make sure your code did what you wanted it to do. And the compiler will never be able to verify that for you.

thats what i just said fool! *smax you*
In response to Falacy (#14)
Falacy wrote:
yea and then you have 1 thing thats not working right somewhere in one of those procs and youre screwed. I compile every time I take a pause to readback, or at least once after every system/proc i build just to make sure its actualy going to compile, then I usualy test it afterwords to make sure it actualy ran like I wanted it to

That is a good thing, at least only when you finish a function and are ready to test it.

If you have a problem with compile times like that then solve it with your brain...load the maps from an external file. I believe that there are some libraries out there that allow you to do that.

George Gough
In response to Falacy (#16)
Uh no that can't possibly be what you meant.


Otherwise you would be insane to think that compiling after every small change is going to somehow make your function better than writing it all at once and compiling it later.
In response to Obs (#12)
Alt-Text, man! ALT TEXT!
Page: 1 2 3 4