ENIGMA Development Environment
Website is in read-only mode due to a recent attack.

Pages: 1
  Print  
Author Topic: How do I use Debug, Design, Compile, and Rebuild All from menu?  (Read 3894 times)
Offline (Unknown gender) bernbout
Posted on: April 18, 2013, 11:31:53 PM
Member
Joined: Apr 2013
Posts: 10

View Profile
Hi Guys

Finally got Enigma running after some great help.

Loaded the Catch_the_Clown project and selected Run. It creates a .tmp file in my TEMP folder and runs OK. Renaming this .tmp file to .EXE allows me to run as a stand alone exe.

This is regarding the other options on the ENIGMA menu.

Debug - Game compiles and runs. How is this different from the RUN menu option?

Design - Tried to compile and I get this error:

Code: [Select]
Building for mode (2)
Cleaning up from previous executions
 - Cleared parsed objects
 - Cleared room entries
 - Cleared shared locals list
....
....
....
.eobjs/Windows/Windows/Run/Universal_System/Extensions/DateTime/date_time.o .eobjs/Windows/Windows/Run/Universal_System/Extensions/DataStructures/data_structures.o .eobjs/Windows/Windows/Run/resources.res -lffi -lcomdlg32 -lgdi32 -lwinmm -lopengl32 -lglu32 -lopenal32 -lalure32 -lvorbisfile -lvorbis -ldumb -logg -lz
ror: ld returned 1 exit status
d:/enigma/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot open output file ENIGMAsystem/SHELL/design_game.exe: No such file or directory
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[1]: *** [ENIGMAsystem/SHELL/design_game] Error 1
mingw32-make.exe[1]: Leaving directory `d:/ENIGMA/enigma-dev/ENIGMAsystem/SHELL'
mingw32-make.exe: *** [Game] Error 2
mingw32-make.exe[1]: *** [ENIGMAsystem/SHELL/design_game] Error 1
mingw32-make.exe[1]: Leaving directory `d:/ENIGMA/enigma-dev/ENIGMAsystem/SHELL'
mingw32-make.exe: *** [Game] Error 2

What is this design_game.exe that cannot be found? It is not in my install file.

Compile - Opens a SAVE dialog box. When I enter anything and click OK, it just goes away without saving anything. No file is created.

Rebuild All - gives me this:

Code: [Select]
[code]Cleaning...
Full command line: mingw32-make.exe clean-game COMPILEPATH=Windows/Windows eTCpath=""
Done.
[/code]

What does it do?

How do I create a standalone EXE?
Logged
Offline (Male) Josh @ Dreamland
Reply #1 Posted on: April 18, 2013, 11:49:30 PM

Prince of all Goldfish
Developer
Location: Pittsburgh, PA, USA
Joined: Feb 2008
Posts: 2951

View Profile Email
Unfortunately, most of those have died during my class-related absence from the project.
Here's the state of them, as I understand it:

Run: The point of Run is to build quickly, but run basically the same as it will run when ultimately built. It gives you the best idea of what your game will be like when released. It's also the only option you can count on working, because most of this project's developers don't understand that their changes might work in one mode, and not in another.

Debug: Debug mode has mostly survived due to its utility. The purpose of debug mode is to create an executable with full debugging symbols to allow attaching programs such as valgrind or GDB. Debug mode also does checking for issues in your game, such as attempting to draw a sprite that doesn't exist. In C++, those kinds of issues usually result in the death of the game.

Design: This mode was in our third demo release, but fell into disrepair during the branching of the project to work on more platforms. It relies heavily on widgets, which are only recently fixed upstream (and we're still having issues with the installer that uses the new MinGW with the bug fix—see BinUtils #13297. Barring more issues with the installer, the only issue is that IsmAvatar (LateralGM's maintainer) and I don't have enough free time to collaborate on its re-introduction.

Compile: This one's all IsmAvatar. When you build on Windows, you must use the extension ".exe" or MinGW GCC will add it for you, which in turn makes it so ENIGMA can't find the executable to add resource data to. To fix this, we were going to add extension information to the compiler configuration files in, eg, Compilers/<platform>/gcc.ey, along with a plethora of other changes to account for huge differences on MacOS vs Windows vs sane operating systems (On Mac, applications are special directories instead of single binary files). The specification was never fully laid due to a lack of collaboration between developers from all three platforms (OS X being the one we were always missing).  As a consequence, Ism never added a fix for the file extension, despite nagging from fifty people. I think TGMG hacked together the entire Mac port, anyway, to be honest. I don't even know if it works, because no one ever tries to use ENIGMA on it except TGMG and ugriffin, neither of whom I've seen for two years.

Rebuild all: This option just deletes all the object files and binaries, forcing ENIGMA to rebuild them. It's helpful if something breaks in the build process (which is very rare, and not to do with ENIGMA).

So now you know.
Logged
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble
"I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
Offline (Unknown gender) bernbout
Reply #2 Posted on: April 19, 2013, 12:03:22 AM
Member
Joined: Apr 2013
Posts: 10

View Profile
Thanks Josh for your reply. So As I understand it currently there is no option to create a standalone EXE.

All that I can actually do is select RUN from the menu and after the game runs (to show it actually works) I can copy out the .tmp file from my TEMP folder, rename the extension manually to .EXE and it will run as a standalone.

I have done this and the renamed tmp file runs once I rename it to .exe.

The only other option that works is the Rebuild ALL.

Design and Compile do not work at this time.

And I don't want to go anywhere near Debug in C++

Logged
Offline (Unknown gender) TheExDeus
Reply #3 Posted on: April 19, 2013, 01:07:54 AM

Developer
Joined: Apr 2008
Posts: 1860

View Profile
I don't think the "Compile" option is so hard to fix/finish. Someone could just give it a weekend and all of it would be done. Now it's been a problem for years. Originally there was some lame ass excuse that the winres doesn't work or something, so .ico couldn't be added and thus there was no reason to actually make an .exe. Sadly I am not entirely sure how the internals work so I can't fix it myself.

Edit: I once even offered Josh money to fix this, but he is so unbelievably lazy that even monetary reward for a 2 day job is not enough.
« Last Edit: April 19, 2013, 01:09:41 AM by TheExDeus » Logged
Offline (Male) Goombert
Reply #4 Posted on: April 19, 2013, 01:46:13 AM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 2993

View Profile
Debug mode has been fixed, you must have downloaded before I recently applied the debug mode patch. Our one developer Polygonz broke it with his tile fixes and had refused to fix it. So in order to get it working again...

1) If you downloaded the zip installer, there should be a batch file that you just open and type "update" into and it should update for you
2) If you downloaded from github and compiled from source just use git terminal and fetch the latest commits
3) Or if you want to be difficult, just reinstall

The only mode modes that should not work yet are Design and Compile.
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Male) polygone
Reply #5 Posted on: April 19, 2013, 06:47:47 AM

Contributor
Location: England
Joined: Mar 2009
Posts: 794

View Profile
Debug mode has been fixed, you must have downloaded before I recently applied the debug mode patch. Our one developer Polygonz broke it with his tile fixes and had refused to fix it. So in order to get it working again...
1) I didn't break debug mode
2) He said debug mode ran fine, it was design mode that was broke for him. Which I would fully expect since Josh hasn't worked on it yet.
Logged
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
Offline (Male) Goombert
Reply #6 Posted on: April 19, 2013, 06:57:04 AM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 2993

View Profile
* Correction you broke everything, then committed your files and just left the new graphics system and debug mode broken for both, until I fixed them.
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Male) polygone
Reply #7 Posted on: April 19, 2013, 07:01:10 AM

Contributor
Location: England
Joined: Mar 2009
Posts: 794

View Profile
Not this again lol. It wasn't broke for me. There's some problem elsewhere that's happening, which isn't my fault (well probably not) and we still don't know what it is. You didn't fix it, you just patched over the problem by adding those files. I still don't have an explanation for why it wasn't working.
Logged
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
Offline (Male) Goombert
Reply #8 Posted on: April 19, 2013, 09:07:18 AM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 2993

View Profile
I already told you what the problem was...

#define *using backgroundidmaxalthoughitwasntedeclaredyet*
#include "theheaderthatdefinesbackgroundidmax.h"

When it needed to be...

#include "theheaderthatdefinesbackgroundidmax.h"
#define *using backgroundidmax*

So you see I did not hack a fix together, I actually fixed it, your numskull, so forget about it, its fixed. I don't know whats wrong with you thinking you can use a variable before its declared, but your insane.
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Male) polygone
Reply #9 Posted on: April 19, 2013, 09:37:39 AM

Contributor
Location: England
Joined: Mar 2009
Posts: 794

View Profile
I thought that wasn't the problem in the end (you said you hit run by mistake when you tested it)? And that was my idea that the problem was that the file wasn't included before the debug code. In any case, yes I did put those the wrong way around so it's fine if that was the problem. I'm still curious as to why I didn't get that debug error and you did though, like I said at the time I think the include file was getting included previously for me but not for you fro some reason.
Logged
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
Offline (Unknown gender) TheExDeus
Reply #10 Posted on: April 19, 2013, 03:15:07 PM

Developer
Joined: Apr 2008
Posts: 1860

View Profile
I like that this discussion has nothing to do with OP topic. Though probably because this has been answered. Unless someone wants to make "Compile" work then there is nothing else to say.
Logged
Offline (Male) Josh @ Dreamland
Reply #11 Posted on: April 19, 2013, 05:21:28 PM

Prince of all Goldfish
Developer
Location: Pittsburgh, PA, USA
Joined: Feb 2008
Posts: 2951

View Profile Email
That's the only reason I haven't split this topic. I figure this "discussion" (read: contributor flame-war) might give burnbout an idea of what development here looks like.
Logged
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble
"I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
Offline (Male) Goombert
Reply #12 Posted on: April 20, 2013, 09:47:07 AM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 2993

View Profile
No polygonz your suggestion was backwards you only suggested I rearrange the header includes and the include for background struct, you never mentioned the macro defined before all of that. You were probably the one who should have done a clean rebuild  :D

Now as far as this goes, I thought the compile issue was only regarding LGM, if its just a matter of changing the filename extension, then what the hell? And whoever couldnt figure out how to embed the icon on windows into the Executable has got to be dumber than cheeseboy. If I wasn't swamped with everything else ENIGMA right now I'd lend a hand, but I find it crucial to have the new IDE's than to bother with LGM which everyones allergic to anyway.
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Unknown gender) TheExDeus
Reply #13 Posted on: April 20, 2013, 10:44:19 AM

Developer
Joined: Apr 2008
Posts: 1860

View Profile
LGM itself doesn't compile anything. It just calls the compiler with the specified flags. What was not done was actually making these flags. As the one you copy out of tmp folder is not how the final executable should look. It shouldn't have the debug console and it should have an icon. There was some problem with the icon, because LGM writes it out to the tmp folder, but doesn't actually pass it to the compiler and as the icon name is temporary (i.e. computer generated), then the .res files has to be generated too. While none of this is particularity hard, it was never done (and there has been several years of bitching about it).
And LGM doesn't have anything particularly wrong with it. I only disliked that it didn't have an option to change the skin (although all java programs can easily do that via a config file). Everything else worked fine. I think it will take a long time before you will be able to make anything as bug free and feature rich (of course the idea of LGM was just open source GM IDE, it wasn't supposed to have any more features than GM). So I think IDE is the least of ENIGMA's problems. The fact that you can't compile a freaking distributable game with it for several years seems to be a much more pressing issue, as that reduces usability of ENIGMA to 0. That is why I only use it for some tests and prototyping, but not real games I would want to show anyone.
Logged
Pages: 1
  Print