BPzeBanshee
|
|
Posted on: August 07, 2013, 03:55:17 am |
|
|
Joined: Sep 2012
Posts: 21
|
Knowing that GMOSSE will probably never work in ENIGMA I've decided to test it with my small-scale project, Warbird. Here's a screenshot of the title screen below, inspired by the Oriental Soft Japan/Triangle Service title G-Stream G2020/DeltaZeal. It started as a school project in Flash, where I wasted a year having half a dozen teachers try to teach us different "signature" flavours of ActionScript 3, and then have the assistant principal tell us Game Maker would've been allowed under the cirriculum requirements for passing the class anyway. Naturally I told him how much of a bludge the class was and that I could've run the entire class myself if he'd approved of it first, instead of filling half a dozen fill-in teachers' paychecks, by porting it to Game Maker 8.0 Pro within 30 minutes to make a point. As an added bonus, it serves as a nice starter for people scared of GMOSSE's large size but could do a little better on the "best coding practice" front. Compatibility with ENIGMA isn't 100% at the moment but better than it's been in the past thanks to the efforts of Goombert and company. Listing the remaining problems below for documentation purposes: - mp3 music is not supported but converting them to OGGs will yield playable music - fonts are currently not working in RadialGM compiles as of 11-1-19 so no text display, LateralGM compiles will work but slight offset on text The project's up on Bitbucket here, the downloads section has an option to download the entire repository but my experience putting binary downloads up on pastebin has been a mixed bag so no standalones for now. Included is ports to GM 8.0 Lite, GM 8.0 Pro (the original port), GM 8.1 Lite, GM:Studio 1.1 Free and the original Flash project. Note: music's obviously pinched from G-Stream G2020 as placeholders, if you're gonna make a project based off this replace them first. Sound effects are mine, I don't care what happens to them.Original post: https://pastebin.com/cfmuFYw1
|
|
« Last Edit: January 11, 2019, 10:42:43 am by BPzeBanshee »
|
Logged
|
|
|
|
Goombert
|
|
Reply #1 Posted on: August 07, 2013, 04:07:08 am |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Hello there! That is very good for us to hear that at least your game does run, we are starting to reach that stage in development, if you don't mind I am going to move your topic over to W.I.P. since you do have a playable demo. I did not however meet up with you on the IRC today, I was there almost all day as well. Sound effects however do. Could you please tell us what audio system worked with the sound_effect functions? They have long since been deprecated by GameMaker: Studio but I just added a DirectSound audios system so that we could offer them for backwards compatibility. parent event inheritance doesn't seem to work Event inheritance and polymorphism will be added when our new compiler is finished, it is nearing completion, the current one in usage that compiles the engine and your game is like 5 years old. for some reason the Warbird sprite appears after play in the center of the menu. Never seen it in GM before. That could be related to a graphical inconsistency in screen_refresh or redraw, are you by chance using those functions? Also, I would like to ask, where exactly did you download ENIGMA from? Did you use our Portable ZIP from the download page? I am going to download and test your game, will post back later.
|
|
|
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.
|
|
|
BPzeBanshee
|
|
Reply #2 Posted on: August 07, 2013, 04:33:24 am |
|
|
Joined: Sep 2012
Posts: 21
|
My apologies on thread placement. I'd thought that since the 3D Mario thing was in General Discussion this would fit next to it, guess not. Warbird's really only WIP in the sense that it's a single-stage demonstration - mainly intended for folks interested in my other project but getting lost in its complexity, the GM ports are essentially a "stripped down" version.
The sounds worked, or at least played, using OpenAL. My apologies on the terminology, I don't have any sound_effect functions used, just "SFX" like the player shot and enemy bullet shots play correctly. The one where the sounds played strangely I believe was actually the DirectSound system.
Being "stripped down" compared to my other project I'm also not using any extra trickery with the screen, so no screen_refresh() or screen_redraw() is being used.
As for version of ENIGMA, I did indeed use the Portable ZIP from the download page.
I don't suppose the older functions for GM8 will be supported eventually? I found legacy support of GM:Studio EXEs to be rather horrible, and not just in function support but in that running an old computer and trying to load a GM:Studio game just won't work at all.
|
|
|
Logged
|
|
|
|
Goombert
|
|
Reply #3 Posted on: August 07, 2013, 05:36:20 am |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
My apologies on thread placement. I'd thought that since the 3D Mario thing was in General Discussion this would fit next to it, guess not. Don't worry about it, you don't have anything to apologize for, I posted mine there because I did not want to post it 2x in this section and I wanted to let the other developers know about the status of porting a rather big project. The sounds worked, or at least played, using OpenAL. My apologies on the terminology, I don't have any sound_effect functions used, just "SFX" like the player shot and enemy bullet shots play correctly. The one where the sounds played strangely I believe was actually the DirectSound system. Ok that makes a lot more sense, there may be a bug or two in our OpenAL audio system. But DirectSound I can tell you exactly what is wrong, the internal audio format works in WAV so I had to force all sounds to play in 16bit 14100KHz and 2 channels, so you can play multiple sounds but not the same sound averaged together, I need to write a mixer for it. DirectSound though is only for compatibility with people looking for sound_effect functions, I literally wrote it yesterday in just one day for that purpose, DirectSound is deprecated by Microsoft and has been for some time in favor of XAudio which works on Xbox 360 and which I am currently at the moment writing a system for. I'm also not using any extra trickery with the screen, so no screen_refresh() or screen_redraw() is being used. Ok, but just because you are not using them something like that could still be the issue when it goes to the next room the buffer might still be getting swapped but it is just not sorting the depths of objects. I don't suppose the older functions for GM8 will be supported eventually? I found legacy support of GM:Studio EXEs to be rather horrible, and not just in function support but in that running an old computer and trying to load a GM:Studio game just won't work at all. Well like I said about DX, we certainly do provide much more deprecated support than they do, especially for all the sound_* functions, we just don't offer execute_string as our engine actually compiles games so it can't do that or the variable_global_access, however we may possibly be able to add these in the future. I am also aware of Studio not working on older computers, it also does not run in a Virtual Machine, where as ENIGMA can run in emulators I have done it myself using VirtualBox. We also provide graphics systems like OpenGL1 for people with really old graphics hardware, in fact, a lot of people have come here because they have not been able to use Studio.
|
|
|
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.
|
|
|
Josh @ Dreamland
|
|
Reply #4 Posted on: August 07, 2013, 11:56:22 am |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
I'm suspicious of your input diagnosis. Are the arrow key events never firing, or just not working properly? We've never had problems with input on Windows. It might be that something is disastrously wrong with collisions, and it just seems like it's not responding to input.
Parenting events is my job. I'm working on a whole list of things that need to happen before we have that in. You'll have to excuse the delay; I can't give a good ETA. According to Robert, this accounts for most of the issues in your game. If you like, I'll drop you a PM or email when we have that working. Since you linked us to the source, I'll add your game to my collection of games that need to work out of the box in the new version.
The last issue you mentioned may be related to the room system. Its persistence mechanism is really screwed up, as far as I 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
|
|
|
BPzeBanshee
|
|
Reply #5 Posted on: December 05, 2013, 10:07:05 pm |
|
|
Joined: Sep 2012
Posts: 21
|
My apologies for not getting back to you guys sooner. Clearly ENIGMA has taken several leaps forward since the last time I attempted to get Warbird working under it. I've recently redownloaded the ENIGMA portable installer and tested compiling with the GM8.0 Pro GMK (the original Game Maker port I did for it). The inputs problem was indeed a matter of inheritence: obj_warbird has its own shooting mechanism but movement was inherited from obj_player - no inheritence, no movement. Glad to see that not only has this been resolved but the matter of persistence between rooms appears to be working correctly as well. With regard to core systems to use, using DirectSound for audio seems to always crash the program, but OpenAL worked fine with no modifications required on the project side. As for video choices, all rendering methods gave me this strange effect with backgrounds: In addition to that something seems a bit funny with inherited collision events, or possibly a thing with image_x/yscale. Either way, obj_en1 and obj_en2 inherit from obj_enemytarget. obj_warbird's shot, obj_warbird_shot, does not seem to create an explosion on contact with enemies but does appear to destroy itself anyway UNLESS the obj_en1s are still moving from on top of the screen. Bit confused there. Finally, attempting to update ENGIMA gave me this error: g++ -Wall -g -I./JDI/src -I. -MMD -MP -c -o .eobjs/./workdir.o ./workdir.cpp ./workdir.cpp:5:31: error: 'TEMP' was not declared in this scope std::string workdir = getenv(TEMP) + "/"; ^ g++ -Wall -g -I./JDI/src -I. -MMD -MP -c -o .eobjs/./compiler/compile.o compiler /compile.cpp compiler/compile.cpp: In function 'void clear_ide_editables()': compiler/compile.cpp:121:72: error: too many arguments to function 'int mkdir(co nst char*)' if (mkdir((workdir +"Preprocessor_Environment_Editable").c_str(),0755) == -1)
^ In file included from c:\files\enigma\mingw32\i686-w64-mingw32\include\sys\stat. h:14:0, from compiler/compile.cpp:55: c:\files\enigma\mingw32\i686-w64-mingw32\include\io.h:267:15: note: declared her e int __cdecl mkdir (const char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
|
|
|
Logged
|
|
|
|
Goombert
|
|
Reply #6 Posted on: December 05, 2013, 11:00:22 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
This is being fixed right now in the following pull request. https://github.com/enigma-dev/enigma-dev/pull/545Also, what function are you using to draw that background image? Edit: I just went and fixed the background function everything should be good when you update again. https://github.com/enigma-dev/enigma-dev/pull/545
|
|
« Last Edit: December 05, 2013, 11:11:42 pm by Robert B Colton »
|
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.
|
|
|
|
BPzeBanshee
|
|
Reply #8 Posted on: January 10, 2014, 09:42:52 am |
|
|
Joined: Sep 2012
Posts: 21
|
Did some testing today, using the GM 8.0 Pro variant.
The game now appears to work with all graphics renderers mostly okay with some exceptions: - Alpha behaviour is not quite that of GM when in OpenGL, Direct3D9 behaves as intended - obj_en1's vspeed inverts but does not trigger next phase when first appearing when running Direct3D9 - Direct3D9 will not show anything in fullscreen - Direct3D11 will not show anything at all, but appears to be running normally otherwise - DirectSound crashes the game, OpenAL works fine - Text seems to be offset by some amount, in GM text is aligned but under ENIGMA the debug text is slightly outside the window and stage clear score text is offset.
In addition, some oddities I've discovered that are partially not-great coding but only show themselves under ENIGMA: - Bullet collision with enemies aesthetically was not as intended, bullets simply disappear unless obj_en1 is just entering the screen, in GM obj_warbird_shot's collision with obj_enemytarget event takes priority over obj_enemytarget's collision with obj_warbird_shot. - image_angle doesn't seem to correctly display at the right angle, or possibly is offset. obj_en1 is supposed to turn to 270 (south) and fly down, but gets stuck. In GM it works as intended.
|
|
|
Logged
|
|
|
|
Goombert
|
|
Reply #9 Posted on: January 11, 2014, 03:26:49 am |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Hai banshee, allow me to address some of the issues. Alpha behaviour is not quite that of GM when in OpenGL, Direct3D9 behaves as intended That should not be the case, it should in fact be the opposite... Direct3D9 will not show anything in fullscreen That is a known bug caused by display reset implementation, D3D is kind of a pain in the ass. Direct3D11 will not show anything at all, but appears to be running normally otherwise That is because D3D11 is extremely new and does not even have a shader in order to render, it is just the outline of the system so far. DirectSound crashes the game, OpenAL works fine DirectSound works only with the WAV format right now and can only do sound_* functions, it also works fine with Project Mario however. The rest of your issues could be related to inheritance and things. They will most likely be fixed with the new compiler.
|
|
|
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.
|
|
|
BPzeBanshee
|
|
Reply #10 Posted on: May 17, 2014, 07:56:20 am |
|
|
Joined: Sep 2012
Posts: 21
|
I've recently updated ENIGMA after hearing about the last of the inheritance issues getting sorted. I'll list in order of testing as I do, going through the render options etc.
The first two issues I pointed out in my last post still occur. To elaborate more, on Direct3D9, for some reason the enemies that drop down from the screen fly back up again. They also do not fly down when they should rotate to angle *270 and leave, but this bit happens regardless of render choice. Regarding the alpha, the player ship when invulnerable has an alpha effect where it fades to 0 and then fades to 1 somewhat rapidly. In GM8.0 and when using DirectX9, this behaves fine. Under OpenGL however it is sporadic, suddenly becoming fully opaque after fading to 0.
Direct3D11 just crashes. DirectSound also still crashes though this is no surprise seeing as Warbird uses MP3s which last I checked ENIGMA doesn't support.
The text offset I spotted in my last post is still present, apart from this fullscreen in all renders seems to be broken. I get my game's 240x320 box in some corner of the screen and not scaled across at all whatsoever. Aside from this things seem to be rendering fine, no weird colours like I got some time ago.
I've also narrowed down the collision issue I noticed before. It seems if I use a "with other instance_destroy();" in example object A when colliding with example object B, it takes priority over the example object B's own collision event but ONLY when object A is not moving. In the case of Warbird, obj_warbird_shot is losing its aesthetic effect because it's being terminated by obj_enemytarget. Not exactly my brightest hour of programming here but in GM8.0 this wasn't an issue.
|
|
|
Logged
|
|
|
|
Goombert
|
|
Reply #11 Posted on: June 15, 2016, 06:29:46 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Your issue with the fading may have been related to the clamping of draw_set_alpha which faissaloo is attempting to fix in this PR: https://github.com/enigma-dev/enigma-dev/pull/969
|
|
|
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.
|
|
|
|
|
BPzeBanshee
|
|
Reply #14 Posted on: June 21, 2016, 02:41:11 am |
|
|
Joined: Sep 2012
Posts: 21
|
I got a bit further after looking at your instructions, it got the compiling to go but still wouldn't accept that it was even there. Putting the exact Java directory in settings.ini fixed that much but I can't open gmx project files with the LateralGM that came with the WinPatch folder, not even a blank room actually compiles and runs anymore, and I can't use the new LateralGM because when I do I get this on startup: Operating System: Windows 7 Version: 6.1 Architecture: x86
Java Name: Java HotSpot(TM) Client VM Java Vendor: Oracle Corporation Version: 1.8.0_91
Available processors (cores): 8 Free memory (bytes): 230056064 Maximum memory (bytes): 1013645312 Total memory available to JVM (bytes): 259588096
File system root: C:\ Total space (bytes): 224945762304 Free space (bytes): 50593607680 Usable space (bytes): 50593607680
File system root: D:\ Total space (bytes): 0 Free space (bytes): 0 Usable space (bytes): 0
File system root: G:\ Total space (bytes): 1000169533440 Free space (bytes): 629001560064 Usable space (bytes): 629001560064
Stack trace: java.lang.NoSuchFieldError: FUNCTIONS at org.enigma.EnigmaRunner.setupBaseKeywords(EnigmaRunner.java:505) at org.enigma.EnigmaRunner.access$0(EnigmaRunner.java:502) at org.enigma.EnigmaRunner$3.run(EnigmaRunner.java:187)
I don't know for sure whether it's specific where it's something on my end (my PATH is fine and adding the direct folder instead of Oracle's symlinks made no difference), something in your branch, something in the main branch or something with LGM itself or something with ENIGMA itself. I'm going to have to just wait until this gets pulled into mainline and an out-of-the-box build gets made available because I no longer have the patience to piece things together. For the last three years running every time I try to get this going it explodes in my face - either just launching it or trying to run a simple 20-second game - when GM:Studio just works.
|
|
« Last Edit: June 21, 2016, 02:44:02 am by BPzeBanshee »
|
Logged
|
|
|
|
|