ENIGMA Forums
Sharing is caring => Ideas and Design => Topic started by: HitCoder on September 14, 2014, 03:42:06 pm
-
Hi, this is pretty much self explanatory. I'm also unsure if this is the right place to post this.
I'm in need of a sonic engine (Maybe something like Sonic Dash - or maybe a port of sonic dash that works properly in enigma), as I was developing a sonic fangame, but would rather make it in Enigma, for many, many reasons - multi-platform compiling is one of them, along with games being compiled and not interpreted - but all game maker engines I have tried just cause compile errors, no matter what I try. I have tried game maker studio compatible engines, still no success.
Thanks in advance for any help.
~~HitCoder~~
-
None of the engines will probably work without modification. Your best bet is you post those engines here and see if anyone has the time to get them working.
-
None of the engines will probably work without modification. Your best bet is you post those engines here and see if anyone has the time to get them working.
Ok, sure.
Sonic Dash+ engine: http://dl.dropbox.com/u/5170721/Sonic%20D%2B.rar
Sonic Xmas engine: https://www.sendspace.com/file/wbh4kw
Super ring: http://www.mediafire.com/download/csk1l4q72cxxgfy/Super+Ring+Engine+V2.zip
Sonic engine plus: http://www.mediafire.com/download/3po15czhpwdpz9a/Sonic+Engine+Plus.rar
Game Maker Studio engine: http://forums.sonicretro.org/index.php?showtopic=31723
<NEWLY ADDED>
Sonic Geneis/Advance Engine originally in GM6 and also repurposed: http://gmc.yoyogames.com/index.php?showtopic=368031
Sonic Rex Engine: http://gmc.yoyogames.com/index.php?showtopic=456698
Super Sonic SRU Tutorial: http://sandbox.yoyogames.com/games/204267-super-sonic-sru-tutorial
I'd prefer someone to fix up the dash engine, but if it's easier to do any other engines, then do so.
-
We had one on the EDC that polygone posted a long time ago. It's possible the author had him take it down, as I don't see it, anymore. It worked fine, at the time.
-
We had one on the EDC that polygone posted a long time ago. It's possible the author had him take it down, as I don't see it, anymore. It worked fine, at the time.
Aw, that's a shame.
Also, I was just trying to port the xmas engine, as it is pretty old, and discovered that constants are handelled completely different, and I have to completely retype each and every one of them.
could you please add a feature to import game maker style constant files?
Also, constants are lost once you re-open a project file.
EDIT - Has anyone got the time to fix up an engine?
-
Bump, anyone who can help?
-
I would help if I could but I am currently swamped with school and other more pertinent ENIGMA issues.
-
I would help if I could but I am currently swamped with school and other more pertinent ENIGMA issues.
Thanks for the consideration though, I appreciate it. And I know what you mean about school. Lol.
-
Bump, sorry I'm desperate .-.
-
Bump, again.
-
The Bad
A major problem with all of these is that every one would require a lot of recoding to even work in Studio because of their reliance on the deprecated variable maps and dynamic execution/reflection. We do intend to add support for these features, but I am thinking about taking the time some day and adding the variable maps (variable_local_get/set) and adding a compatibility setting but I think Josh would probably prefer I hold off on that so I am not sure. In fact I have faith that if someone took the time to implement the functions the Sonic SRU engine would work, it only uses them to lookup the animations by name, this is one of the things I hate about how people used the variable maps, too lazy to write their own maps with data structures.
The Mundane
I want to assist you with this HitCoder so while waiting for TKG to respond to me I decided to do some more digging.
First you guys missed a couple of other engines out there.
Sonic Geneis/Advance Engine originally in GM6 and also repurposed: http://gmc.yoyogames.com/index.php?showtopic=368031
Sonic Rex Engine: http://gmc.yoyogames.com/index.php?showtopic=456698
Super Sonic SRU Tutorial: http://sandbox.yoyogames.com/games/204267-super-sonic-sru-tutorial
There is also the following blog I found which describes some of the math involved in making a Sonic engine with GM.
http://gamemakercookbook.blogspot.com/2014/07/sonic-game-engine.html
There is also the Sonic Physics Guide.
http://info.sonicretro.org/Sonic_Physics_Guide
And here is a whole list of resources about Sonic games in GM.
http://www.mrhow.net/s/how-to-make-a-sonic-game-with-game-maker.html#.VCH9shbPatc
The Good
The following tutorial works perfectly. Just rename the room when you download it because it has illegal tokens.
(http://i.imgur.com/KzVpDJN.png)
http://sandbox.yoyogames.com/games/203480-sonic-spindash-tutorial
This tutorial is the same as the one before, just rename the room and it should run.
(http://i.imgur.com/8DLNfVf.png)
http://sandbox.yoyogames.com/games/191649-sonic-homing-attack-tutorial
I'll post back with more later.
-
All I really need as a base is a 360 degree rotation engine, for like, slopes, and stuff. That way, I can build on top of it, anything I needed. Thanks for the help though.
-
All I really need as a base is a 360 degree rotation engine, for like, slopes, and stuff. That way, I can build on top of it, anything I needed. Thanks for the help though.
Maybe you can find some help here: http://enigma-dev.org/forums/index.php?topic=2116.0 (http://enigma-dev.org/forums/index.php?topic=2116.0)
-
All I really need as a base is a 360 degree rotation engine, for like, slopes, and stuff. That way, I can build on top of it, anything I needed. Thanks for the help though.
Maybe you can find some help here: http://enigma-dev.org/forums/index.php?topic=2116.0 (http://enigma-dev.org/forums/index.php?topic=2116.0)
If you could make an example that I could use, then yeah, I could probably use that method. I don't quite understand how to put it together though. Thanks.
-
Guys, thanks for the help so far, but I have decided to make my own engine using my own knowledge, but using it properly. I'm not bad with game maker and enigma, I'm just a little lazy, but I know what I'm doing 90% of the time. I may make a topic on my engine later on, so people can download it here, and use it as they please.
-
Making it yourself is often the smart option, as it will be much easier for yourself to understand it later on.
-
Guys, thanks for the help so far, but I have decided to make my own engine using my own knowledge, but using it properly. I'm not bad with game maker and enigma, I'm just a little lazy, but I know what I'm doing 90% of the time. I may make a topic on my engine later on, so people can download it here, and use it as they please.
That's great and much apreciated! (Y)
-
just looking for advice, but would using a variable that moves you based on direction be a good idea, for while you're on ground? then when you go up slopes, when you hit a slope, the slope rotates you, and your speed vars don't need to be modified other than making gravity pull you down.
-
HitCoder, that's an interesting idea, you could actually combine the behavior of speed and hspeed/vspeed
I've always wanted to learn how to do Sonic the Hedgehog style physics but never learned. One thing is important though, do not make your physics come out like Sonic the Hedgehog 2006
https://www.youtube.com/watch?v=5dd2g4C19Og
-
Just an update HitCoder, I managed to partially get the following example working.
http://sandbox.yoyogames.com/games/163325-sonic-battle-engine-v1gmk-included
Here is my GMK with changes.
I mainly had to set the game info frame to have a border so you could close it because I haven't finished implementing the game info window fully. I also had to fix some parsing errors in the drag and drop by enclosing them with start and end brackets. I also had to replace action_save and action_load_game with a comment in obj_storymode because we haven't implemented saving and loading yet. There were also two objects with the same name which we do not support.
https://www.dropbox.com/s/3bllq4gjkgn2yh2/sbev1.gmk?dl=0
(http://i.imgur.com/m3XBFnO.png)
The sonic Red Ring tutorial also works if you change the name of the room and run it.
http://sandbox.yoyogames.com/games/188858-sonic-red-ring-tutorial-transform
(http://i.imgur.com/G9bW6mk.png)
This one also works but it appears the developer didn't quite finish it too much. You will have to rename the "double" variable though to get it to build, because double is a C++ type which ENIGMA supports.
http://sandbox.yoyogames.com/games/191988-sonic-engine
(http://i.imgur.com/syGIDNm.png)
Sonic Boost tutorial works by just changing the room name.
http://sandbox.yoyogames.com/games/182835-sonic-boost-tutorial
(http://i.imgur.com/LuQRs4V.png)
-
Just an update HitCoder, I managed to partially get the following example working.
http://sandbox.yoyogames.com/games/163325-sonic-battle-engine-v1gmk-included
Here is my GMK with changes.
I mainly had to set the game info frame to have a border so you could close it because I haven't finished implementing the game info window fully. I also had to fix some parsing errors in the drag and drop by enclosing them with start and end brackets. I also had to replace action_save and action_load_game with a comment in obj_storymode because we haven't implemented saving and loading yet. There were also two objects with the same name which we do not support.
https://www.dropbox.com/s/3bllq4gjkgn2yh2/sbev1.gmk?dl=0
The sonic Red Ring tutorial also works if you change the name of the room and run it.
http://sandbox.yoyogames.com/games/188858-sonic-red-ring-tutorial-transform
This one also works but it appears the developer didn't quite finish it too much. You will have to rename the "double" variable though to get it to build, because double is a C++ type which ENIGMA supports.
http://sandbox.yoyogames.com/games/191988-sonic-engine
Sonic Boost tutorial works by just changing the room name.
http://sandbox.yoyogames.com/games/182835-sonic-boost-tutorial
Thank you, I will check these out as soon as I get home (at school at the moment)
-
Ok, thanks Robert, they work, but I'd like an engine that has slopes, and rotates in 360 degree rotations. I'm not bothered whether or not it's legacy rotations, but I can't make what I'm intending to make without it. Sorry for any extra work, I've been trying my best with making my own engine, but they all mess up where I make a single error, leave it until the next day, and forget what I did to cause the error. It's been a long gruelling process with little success.
Thanks for all the help so far.
~~HitCoder~~
EDIT: The following engine works on Enigma if you rename the object "floor" to anything else, due to a conflict to the floor constant. I also had to go through the code of the player.
http://sandbox.yoyogames.com/games/29959-dr-spazzs-movement-engine
Here's my edit:
https://www.dropbox.com/s/p5fk34s3ll0airb/movement_engine.gmk?dl=0
-
You're welcome, and yeah that one does work pretty well.
(http://i.imgur.com/CIH9PAF.png)
The first level seemed a little glitchy to me though, it wasn't animating properly and was running on the outside of the circle. But once I restarted it was fine and so was every other level, so I am guessing that was a wild fluke.
-
I have no idea why my sonic engine isn't on the EDC; it was working fine in ENIGMA perhaps an incompatibility was introduced in it so I took it down but I don't remember doing so?
Anyway here is the engine: https://app.box.com/s/nc7smht5lqh90kyi7byv
I do not know if it works properly in ENIGMA or not any more but it shouldn't be hard to make it work if it doesn't.
EDIT: Just tested it and it runs fine; with 2 apparent bugs that have been introduced in ENIGMA.
1) The score text at the top is moving all the time (possibly something to do with rounding)
2) The collision detection for the boxes and rings has been bugged somehow. They all use the script collision_onset:
// Checks if there is going to be a collision with the object giving in argument0 given the Player's current speed
// To be accurate it does this using a place_meeting check at the position the Player will be at given it's hspeed / vspeed
// And also using two collision lines either side of the player mask from the Player's current position to the position it
// will be at given it's hspeed / vspeed
var x1, y1, x2, y2;
x1 = x + cos(full_direction+pi/2)*mask_radius; y1 = y - sin(full_direction+pi/2)*mask_radius;
x2 = x + cos(full_direction-pi/2)*mask_radius; y2 = y - sin(full_direction-pi/2)*mask_radius;
return (place_meeting(x + full_hspeed, y + full_vspeed, other.id)
|| collision_line(x1, y1, x1 + full_hspeed, y1 + full_vspeed, argument0, false, true) != noone
|| collision_line(x2, y2, x2 + full_hspeed, y2 + full_vspeed, argument0, false, true) != noone)
So my guess is that collision_line has become bugged.
-
I have no idea why my sonic engine isn't on the EDC; it was working fine in ENIGMA perhaps an incompatibility was introduced in it so I took it down but I don't remember doing so?
Anyway here is the engine: https://app.box.com/s/nc7smht5lqh90kyi7byv
I do not know if it works properly in ENIGMA or not any more but it shouldn't be hard to make it work if it doesn't.
EDIT: Just tested it and it runs fine; with 2 apparent bugs that have been introduced in ENIGMA.
1) The score text at the top is moving all the time (possibly something to do with rounding)
2) The collision detection for the boxes and rings has been bugged somehow. They all use the script collision_onset:
// Checks if there is going to be a collision with the object giving in argument0 given the Player's current speed
// To be accurate it does this using a place_meeting check at the position the Player will be at given it's hspeed / vspeed
// And also using two collision lines either side of the player mask from the Player's current position to the position it
// will be at given it's hspeed / vspeed
var x1, y1, x2, y2;
x1 = x + cos(full_direction+pi/2)*mask_radius; y1 = y - sin(full_direction+pi/2)*mask_radius;
x2 = x + cos(full_direction-pi/2)*mask_radius; y2 = y - sin(full_direction-pi/2)*mask_radius;
return (place_meeting(x + full_hspeed, y + full_vspeed, other.id)
|| collision_line(x1, y1, x1 + full_hspeed, y1 + full_vspeed, argument0, false, true) != noone
|| collision_line(x2, y2, x2 + full_hspeed, y2 + full_vspeed, argument0, false, true) != noone)
So my guess is that collision_line has become bugged.
Oh, thank you. I think I will give that a try. Although, I was planning on making a sonic engine specifically designed for enigma - not that I had any hope though. I was going to name it "Sonigma" haha.
EDIT: What was wrong with just using place_meeting, mind you?
EDIT2 : how can I fix collisions with springs? They seem to activate at a way to far away distance. Also, why does sonic go into a roll if you don't make it up a slope?
-
Although, I was planning on making a sonic engine specifically designed for enigma - not that I had any hope though. I was going to name it "Sonigma" haha.
Well I did the opposite thing and helped develop ENIGMA to make sure everything in ENIGMA was compatible with my Sonic engine :) As I said it was working perfectly before.
What was wrong with just using place_meeting, mind you?
collision_line is more accurate as sonic is not just a single point.
how can I fix collisions with springs? They seem to activate at a way to far away distance.
Again as I said in my post that is a bug that has been introduced into enigma (it never happened before) so one of the ENIGMA devs (who isn't me) needs to look at it and fix the problem.
Also, why does sonic go into a roll if you don't make it up a slope?
That was a choice that I made to do it like that. In the Sega games when Sonic doesn't make it up a slope he is rotated until in a vertical position then falls, my engine did original do this to mimic that behaviour but then I decided to change it so Sonic goes into a ball because in my opinion (which was heavily influenced by Josh lol) it looks better and is a more realistic way of handling the situation. However yes this behaviour is different to how it was classically done.
If you look in Sonic's step event 'Game Motion' code you will see this:
// Or if the player is too slow and we're on the roof or on a wall, fall
if (angle>70 && angle<290 && abs(hsp)<5.5)
{
vsp = -dsin*hsp;
hsp = dcos*hsp;
ground = 0;
angle = 0;
dcos = 1;
dsin = 0;
if (action != act_roll) // go into roll when falling off a wall
{
action = act_roll;
sound_play(SndSpin);
}
}
That is the code piece for the falling, you can see there where the action is set to rolling. If you comment out (or just delete) the part where it makes Sonic roll, ie:
/* if (action != act_roll) // go into roll when falling off a wall
{
action = act_roll;
sound_play(SndSpin);
} */
Sonic will then rotate when falling instead of rolling.
-
Again as I said in my post that is a bug that has been introduced into enigma (it never happened before) so one of the ENIGMA devs (who isn't me) needs to look at it and fix the problem.
I just want to uhm touch base with you on this polygone, we fixed the base instance type to fix that memory leak in collision detection. I did it with the help of Josh but the testing was not exactly comprehensive, just a running through some games and making sure they still worked.
This was the commit, it is probably a good idea to run through and revert the changes to each changed file and then see if this caused the new bugs.
https://github.com/enigma-dev/enigma-dev/pull/835
Additionally here is a list of each file with a link to the git revision directly before my pulls changes. To test just copy the raw file into your local enigma fork and see if the bugs persist.
enigma-dev / ENIGMAsystem / SHELL / Universal_System / instance_system_base.h
https://github.com/RobertBColton/enigma-dev/blob/5c6eb12f7962ce9a42f4eaffef55dbcef536f273/ENIGMAsystem/SHELL/Universal_System/instance_system_base.h
enigma-dev / ENIGMAsystem / SHELL / Universal_System / instance_system.h
https://github.com/RobertBColton/enigma-dev/blob/883c176b228ed0d6af45fb25517a5d8c9afc4fd4/ENIGMAsystem/SHELL/Universal_System/instance_system.h
enigma-dev / ENIGMAsystem / SHELL / Universal_System / instance_system.cpp
https://github.com/RobertBColton/enigma-dev/blob/8aa5a1eeb26bd0ddb4f9fb516e653d06cba8807a/ENIGMAsystem/SHELL/Universal_System/instance_system.cpp
enigma-dev / ENIGMAsystem / SHELL / Universal_System / instance_iterator.h
https://github.com/RobertBColton/enigma-dev/blob/5c6eb12f7962ce9a42f4eaffef55dbcef536f273/ENIGMAsystem/SHELL/Universal_System/instance_iterator.h
(I only updated the copyright header in this one, so you don't really have to revert it)
enigma-dev / ENIGMAsystem / SHELL / Universal_System / instance_create.h
https://github.com/RobertBColton/enigma-dev/blob/1f8b84fead2ea09539eff46a3e9cd71dbdc6d533/ENIGMAsystem/SHELL/Universal_System/instance_create.h
enigma-dev / ENIGMAsystem / SHELL / Universal_System / instance.h
https://github.com/RobertBColton/enigma-dev/blob/da1e4fbd310501c7b04feec49701b87448d4387d/ENIGMAsystem/SHELL/Universal_System/instance.h
-
I haven't really got time to be programming any more :/ so unfortunately...
-
I tried those, but the collisions are still massively off. It's exactly the same as before. What I am struggling to understand mind you, is how collisions with walls and floors and slopes work perfectly, yet misc items collide with you at odd distances :/
I've still got an older version of Enigma installed on my computer, so I'll try using that.
Edit: Nope, no luck
-
Ok, so I have found that it is not anything to do with collision_line
It is to do with the script being executed, for some reason ENIGMA does not like how the script is being executed for a specific object through another object or something.
-
I haven't looked at the example, does it happen to use inheritance? We've had issues with script locals for a while, I am not sure what could have changed off hand.
-
Ohh I presume it's because of a parser change then.
It's called like this:
with (Player)
{
collision_onset(other.id); //other.id being the id of the collectable like a ring or box or whatever
}
// collision_onset
// Checks if there is going to be a collision with the object giving in argument0 given the Player's current speed
// To be accurate it does this using a place_meeting check at the position the Player will be at given it's hspeed / vspeed
// And also using two collision lines either side of the player mask from the Player's current position to the position it
// will be at given it's hspeed / vspeed
var x1, y1, x2, y2;
x1 = x + cos(full_direction+pi/2)*mask_radius; y1 = y - sin(full_direction+pi/2)*mask_radius;
x2 = x + cos(full_direction-pi/2)*mask_radius; y2 = y - sin(full_direction-pi/2)*mask_radius;
return (place_meeting(x + full_hspeed, y + full_vspeed, other.id)
|| collision_line(x1, y1, x1 + full_hspeed, y1 + full_vspeed, argument0, false, true) != noone
|| collision_line(x2, y2, x2 + full_hspeed, y2 + full_vspeed, argument0, false, true) != noone)
So the script is using local variables for Player; ie full_direction, full_hspeed, full_vspeed
The parser is notorious for breaking with things like this.
-
Looks like the issue is with the with() construct. Polygone, can you explain exactly why we don't have working locals in scripts? I am not too informed on the matter, but I've been aware of its existence.
-
Looks like the issue is with the with() construct. Polygone, can you explain exactly why we don't have working locals in scripts? I am not too informed on the matter, but I've been aware of its existence.
Cause Josh do wrong? <_<
-
I've done a temporary workaround for while a solution is found, or enigma is fixed, but anyway, why does sonic go at a different speed on hitting a spring depending on his current speed - I mean, the harder he hits a spring, the faster he goes or whatever? How can I fix this?
-
I've done a temporary workaround for while a solution is found, or enigma is fixed, but anyway, why does sonic go at a different speed on hitting a spring depending on his current speed - I mean, the harder he hits a spring, the faster he goes or whatever? How can I fix this?
This also happens in classic Sonic games, perhaps not to the same degree though.
The code for the springs is in SpringParent begin step event:
// Get the hspeed and vspeed which the player will be set to (note this is dependent on the original player's speed)
hspd_set = (abs(full_hspeed*other.bounce_factor) + other.strength)*other.dcos + (abs(full_vspeed)*other.dcos + full_hspeed*abs(other.dsin))*abs(other.dsin);
vspd_set = (abs(full_vspeed*other.bounce_factor) + other.strength)*other.dsin + (abs(full_hspeed)*other.dsin - full_vspeed*abs(other.dcos))*abs(other.dsin);
-
Yea, I realise that code was there, but I don't remember it working quite like that on the classic games... I thought you could keep momentum on the axis the spring isn't bouncing you on.
Also, Polygone, is there a way to fix the 90-degree rotation snapping bug? It seems quite common in your engine...
I mean where you go up a slope, expecting to go into the air, but then it rotates you almost a whole 90 degrees and makes you snap to the floor. I know it's normal in some sonic engines, but it's not supposed to be there. Lol.
-
Yea, I realise that code was there, but I don't remember it working quite like that on the classic games... I thought you could keep momentum on the axis the spring isn't bouncing you on.
It does in my engine?
Also, Polygone, is there a way to fix the 90-degree rotation snapping bug? It seems quite common in your engine...
Well it's technically a bug which of course could be fixed somehow but I'm not going to make any attempt to do so lol.
-
I accidentally deleted this post, refreshed the page, and thought it had double posted. Whoops.
Anyway, I've got it all fixed, I was just wondering if I could build an engine using your's as a base? I will give credit if you don't mind me making my own based on yours, but if you'd rather I didn't spin-off your engine, then that's fine. I was just wondering.
Also, when I said keep your momentum on the non-modified axis, your engine seems to cap the speed, but I cannot find a way around this :/
-
You can do whatever you like with it, I developed the engine from another engine myself.
It's optional, but if you wish to then you can give credit to:
- Damizean & McdIzzY (for the original slope engine)
- Kain (for the boxes in his Sonic 3 engine)
- Flexaplex (for this engine).
-
Ok, thank you Polygone. I also think this thread can be closed now, but I won't just yet unless someone else has something to say. I think I might close it if it's inactive for around 2 weeks. Thank you all for your help. :)
~~HitCoder~~
-
I just saved a file in Enigma, but when I did, Enigma randomly closed. When I try to open the file, it says it's corrupted, so... fix bug please?
-
Well I've done some debugging on the issue with the local variables being called in scripts, the problem is actually the with statement scoping being messed up inside if statements.
My test, in obj_1:
with (obj_0)
{
scr_0();
}
In this case local variables in scr_0 are used from obj_0 as they should be.
with (obj_0)
{
if (scr_0()) {}
}
In this case local variables in scr_0 are used from obj_1 incorrectly.
Example file: https://app.box.com/s/n0p8ccr75hticpcs545r
-
You could of checked the generated .cpp files and probably see that. Sorlok was the one who changed scoping recently. Maybe he can fix it.
-
This is the cpp gen:
{
with((obj_0))
{
:: scr_0();
}
}
;
{
with((obj_0))
{
if((scr_0()))
{
}
}
}
;
-
A little off topic, but here's a quick and undetailed comparison (http://i.imgur.com/mrGKRSX.png) of GM8.1 and Enigma for my Sonic Engine :P
-
HitCoder the image don't render for me properly, you need to do with= and height= inside the first img tag with a space between img and width. But I still saw the image, and that is great news, I am glad you found our help and our software useful. ENIGMA is making some serious progress in the right direction. I have alerted sorlok to the with() construct issue as well.
-
That's excellent. I know loads of people who I happen to be in a skype group with, who use Game Maker. I have tried to convince them to move over to Enigma if their projects work in it correctly, but everyone is complaining about it being unstable, which I have never had a problem with stability (unless I run Enigma for a long period of time. I'm just going to post info on an error I got from running Enigma for a while. Here's a text document. (https://dl.dropboxusercontent.com/u/95628666/EGM-error-log-001.txt))
If you need any more details, just ask.
EDIT : Ever since I got that error, the game pauses after around 30 second intervals.
-
Hmm actually yeah, I may be able to fix it. What exactly were you doing when the error occurred? Give me as much info as I can to reproduce it because I think I already know what it's causing it but I can't reproduce it.
-
I literally just had code open and it just appeared. I think Enigma had been running for a few hours though.
If it helps, my theme is set to Nimbus - not that it'll help anything at all...
==EDIT==
I wasn't very detailed, ok let me see... I had a couple objects open, and one script from each object was open, all I was doing was typing code.
Although, I think it may have been some kind of memory leak from how long it was open, so I'm basically blaming Java. Haha.
-
Hmm I am not really sure, the stack trace suggests it originated in ImageToolTip which is only used by ResourceMenu. That is a special class for selecting an objects sprite or parent or any of those drop down menus all come from that class, you weren't selecting anything like that were you? It could also be related to Java's look and feel.
I have decided to file a ticket on LateralGM's tracker.
https://github.com/IsmAvatar/LateralGM/issues/158
-
No, I wasn't doing any of that, I was literally just typing code, Enigma froze for a second, and that popped up.
-
I found it, apparently you hovered over the area where the parent or sprite icon shows and it attempted to show the JLabel. I was able to reproduce it and the bug exists on all under the nimbus look and feel.
-
Oh, so it was infact the Nimbus theme?
-
Yeah check my new response, it does seem to be basically the fault of the Nimbus L&F because we are handing it the correct component and everything to paint and it's just failing.
https://github.com/IsmAvatar/LateralGM/issues/158
-
Ok. Also, in the new version of Enigma with the new jar files, is the Nimbus theme fixed, or are there any of those new themes you showed screenshots of implemented in those jars?
-
No because I just discovered the bug, this bug has actually existed since IsmAvatar was making LGM, we just didn't notice it until we added the ability to control the look and feel. To get the new look and feels for the new LGM, after you have it installed you have to create a folder called "lookandfeels" right next to lateralgm.jar and then drop the look and feel jar into that folder after you download it from my other topic.
http://enigma-dev.org/forums/index.php?topic=2283.0
Then you open LGM and go to File->Preferences and set the theme to custom and enter the class path for the theme, then hit apply changes and you should probably restart.
-
No because I just discovered the bug, this bug has actually existed since IsmAvatar was making LGM, we just didn't notice it until we added the ability to control the look and feel. To get the new look and feels for the new LGM, after you have it installed you have to create a folder called "lookandfeels" right next to lateralgm.jar and then drop the look and feel jar into that folder after you download it from my other topic.
http://enigma-dev.org/forums/index.php?topic=2283.0
Then you open LGM and go to File->Preferences and set the theme to custom and enter the class path for the theme, then hit apply changes and you should probably restart.
How do I get the class path? do I open the jar file as a zip?
-
I have them all listed in the forum topic haha, if you find one that is not on the list (which you won't because I have basically all of them) you'll have to browse the jar for it. It's just the path of the main class.
For instance, the tiny look and feel class name is:
Class Name: de.muntjak.tinylookandfeel.TinyLookAndFeel
Read the topic for the others.
http://enigma-dev.org/forums/index.php?topic=2283.0
-
My favorite is the Synthetica one, all of them look pretty polished. My problem with it though is the unlicensed tag at the bottom of some windows.
-
I've been sending builds of the engine to my friends, I just want your thoughts now, here's a quick download (https://www.dropbox.com/s/o1g44qnevp5o70p/Sonigma-0004g.exe?dl=0) for the latest compiled build
-
Wow this engine is pretty damn good! This is probably the best Sonic example in GM, especially considering how light weight it is unlike all the other engines. If you make any stops along the way though it can be really hard to spin-dash around the loops, especially the one placed so close to the cliff, this is one of the things that really annoyed me about the original Sonic games, I can remember getting stuck sooo many times like this. Also it seems the backup character that follows can have audio glitches when you try to spin dash it seems to echo and reverb quite a bit.
I'd like to add that the new search functionality of LGM comes in handy with porting the other engines and finding all uses of variable_* functions to remove or replace them. I tried it on the REX engine which was made in GM6.
http://enigma-dev.org/forums/index.php?topic=2269.0
(http://i.imgur.com/v4t5TKc.png)
-
What have you done to the movement? The movement and jumping speed seem limited and the gravity seems off now. There isn't enough momentum to make it up slopes properly and more.
-
The physics have been changed to meed the exact physics on the sonic physics guide, this is because a lot of people I work with on skype in a group (They all make sonic fangames in different programs) dislike physics that do not match official sonic games.
I can make it up slopes fine with the aid of a spindash.
EDIT: My apologies, I forgot to add the code for air-acceleration and stuff, all I added was air drag. Maybe the physics will feel better when I add that... I'll also add Super Peelout.
-
While I agree somewhat with polygonz, I can't help but feel he is being a little dramatic lately. But as I said I always found the physics of like the very first sonic games (before & Knuckles) to be a real pain and a lot more distinct than later entries in the series. I remember getting stuck in levels and waiting for the timer to run out so I could restart.
-
Is there a way I can change the external sprite editor path and allow it to open the sprite file I would like to edit? what argument do I put at the end for the name of the sprite file?
-
I am not exactly sure what you mean, you want it to open the system editor when you double click the node in the tree? Please elaborate.
-
I mean when I click the "Edit Subimages" button in the sprite resource window, it just opens my specified editor, I'd just like to know what argument I put after the program directory in the settings window.
-
Ohhh, so you want to open a specific editor besides the system default? Take a look at the following topic.
http://enigma-dev.org/forums/index.php?topic=1481.0
I am not actually sure how it works entirely.
-
I believe I have fixed the issue HitCoder, please test for me by downloading the new LGM from the following topic.
http://enigma-dev.org/forums/index.php?topic=2269.0
My patch is referenced on the tracker.
https://github.com/IsmAvatar/LateralGM/issues/158
-
Thank you, and it appears to work.
-
You're welcome HitCoder! If there are any other issues or exceptions don't be afraid to report them it's the only way I can fix them and we've been making considerable progress with fixing old bugs in the new LGM.
-
When I search for code, in the search results, it only seems to show scripts. Am I using an older version or something?
-
Probably, I've completely finished the search feature now, try downloading the new version, the latest version should search all drag and drop actions. Plus when it opens the code editor it will focus the line number of the search result. Just follow the topic I make regular updates there until we reach stable version 1.8.7 at which point I will an announcement and a new Portable ZIP.
http://enigma-dev.org/forums/index.php?topic=2269.0
-
Wow, the new loading screen is nice... although, why does it say LateralGM instead of Enigma? I know Enigma runs on LateralGM, but... I don't understand...
===========EDIT=================
I got an error upon opening a save file, however, it does not allow me to access the window with the error, and therefore I could not copy to clipboard, however, I have the HS_ERR_PID file (https://dl.dropboxusercontent.com/u/95628666/hs_err_pid7532.log), I think it has the right details (if not, more details)
-
Why does the splash screen say LateralGM? Because the IDE is LateralGM, it works without ENIGMA, ENIGMA only provides the ability to compile games and supplies the run buttons and stuff. The whole point is that LateralGM and ENIGMA are completely separate programs that can be used independently of each other which lets us appeal to a wider audience.
Also you can now use a custom background image for the MDI area, create a folder called "lookandfeels" next to enigma-dev/lateralgm.jar and put an image called "lgmbackground.png" in the folder and restart if you already have LGM open and it will use your supplied image as the new background. This is so users can use a dark compatible background with dark look and feels, in addition to allowing you to simply customize it.
(https://raw.githubusercontent.com/IsmAvatar/LateralGM/master/org/lateralgm/main/lgmbackgrounddark.png)
(http://i.imgur.com/0VT4nbj.png)
Edit:
===========EDIT=================
I got an error upon opening a save file, however, it does not allow me to access the window with the error, and therefore I could not copy to clipboard, however, I have the HS_ERR_PID file, I think it has the right details (if not, more details)
Actually enigma-dev/output_log.txt is more useful in this case.
-
Here's the output log :P (https://dl.dropboxusercontent.com/u/95628666/output_log.txt)
Also, can you allow users to change the code editor font, and add a dark theme to the code editor? It's just a couple suggestions, they're not important, but... it'd look nicer. Also, I understand you'd have to go through every single colouring of each type of function, statement, etc... but it'd work better with dark themes.
-
We already have the code editor preferences outlined, look in the new preferences window, but don't set them they are not finished and are unlikely to work. It is expected to be finished before 1.8.7 major release
Second, can you PM me a download link to the project file so I can attempt it myself? The output log is getting mangled because it looks like you're loading it from the command line or file association.
Additionally, does this project work under the old LateralGM before you updated?
-
I sent you the project, and yes it worked before the update. none of the project files for the game, even older backups, open in Enigma any more.
-
This is really weird, I was able to open both of the project files perfectly fine and save them back to disk as well as compile them with no problems.
(http://i.imgur.com/nubgrwz.png)
A couple of things:
1) Are you still able to reproduce the issue?
2) Try opening enigma.exe first, and then using the open dialog to open the file.
3) If that does not work try opening enigma.exe by itself and going to File->Recent Files->Clear and loading your project again.
4) Try changing the look and feel to something other than what you have it set to.
5) What look and feel were you using?
-
1) Yes it happens every time I open any project file.
2) How else do I load project files? If I try to open the project file from the file, I have always received errors.
3) Clearing recent files does absolutely nothing.
4) I am using the same theme as I did in the previous version
5) I am using Synthetica Black Eye.
I will try a different theme and post an edit as soon as I have received results.
EDIT - I tried the Native theme, didn't make a difference.
-
Hahahaha, I think I know what is wrong. You only downloaded the new LGM but not the new plugin. Replace the plugin jar in enigma-dev/plugins/enigma.jar as well.
http://enigma-dev.org/docs/Wiki/Install:Extra_Packages
That should fix it.
-
Oh, I assumed it was the same as the last version, I just saw it was an October release. Hahahaha.
-
Try it I want to make sure that it works.
-
That is a usual problem here. I also often forget about it. I think LGM should show an error saying "Have you downloaded the correct plugin.jar?" whenever ENIGMA .dll crashes.
-
It works, thank you. :)
EDIT:
I don't mean to request anything impossible, or too much work to even bother with, but is there any way you can implement a feature that when an object is renamed, any scripts refferencing the object are updated? If you think it would freeze the program on some projects, why not make it optional?
Just a request, I understand if it's impossible.
-
It works, thank you. :)
Good I am glad that fixed it! I am sorry I wasn't able to figure it out sooner, I am getting better at reading these exception logs lol. (Y)
That is a usual problem here. I also often forget about it. I think LGM should show an error saying "Have you downloaded the correct plugin.jar?" whenever ENIGMA .dll crashes.
It's not actually the DLL failing Hari, it's loading all of the native methods perfectly fine, the problem is LGM is calling a new method or something that it expects to be in ENIGMA's Java plugin which is not there, hence AbstractMethodError and not segfault.
The plugin however does show its own exception dialog.
https://github.com/enigma-dev/lgmplugin/blob/master/org/enigma/EnigmaRunner.java#L109
Currently the only place it is ever possible to get two exception dialogs is when both the plugin Jar and LateralGM have an exception, which is impossible because the exception dialog blocks all other exception dialogs so that you can still close the application, at least theoretically. You would want to change the plugin exception message.
https://github.com/enigma-dev/lgmplugin/blob/master/org/enigma/messages/messages.properties#L2
-
When I had the error, the loading dialogue was in the way of the program, and I couldn't close it (the window) or the dialogue. I used task manager though, so it's all good. I'm just saying, as you said
Currently the only place it is ever possible to get two exception dialogs is when both the plugin Jar and LateralGM have an exception, which is impossible because the exception dialog blocks all other exception dialogs so that you can still close the application, at least theoretically.
Also, did you miss this part, or ignore it?
EDIT:
I don't mean to request anything impossible, or too much work to even bother with, but is there any way you can implement a feature that when an object is renamed, any scripts refferencing the object are updated? If you think it would freeze the program on some projects, why not make it optional?
Just a request, I understand if it's impossible.
-
When I had the error, the loading dialogue was in the way of the program, and I couldn't close it (the window) or the dialogue. I used task manager though, so it's all good. I'm just saying, as you said
Actually, haha, I had that too because I went and replaced the plugin to test the issue. That only happens going from the last version to the new version because I added checking for changes to the close button, so all other exception dialogs you receive in the future, you should still get a chance to save/exit without having to go to task manager. It was just blocking you because when you went to close it was looking for the check for changes method which was causing the initial exception. So that is only a temporary bug (Y)
I don't mean to request anything impossible, or too much work to even bother with, but is there any way you can implement a feature that when an object is renamed, any scripts refferencing the object are updated? If you think it would freeze the program on some projects, why not make it optional?
Just a request, I understand if it's impossible.
I am sorry, you're now the third person to request it so it must have just slipped my mind. It is on the todo list, but I don't think it will be in 1.8.7 stable. It requires quite a bit of recoding and we haven't made plans on implementing it but I definitely want the feature implemented, I use refactoring all the time in Eclipse.
-
Oh, that's excellent! I can't wait for this feature! Lol. Good luck coding it.
-
From all of these examples, I've learnt how slope handling works, I think, so I may decide to code my own from scratch, but thanks for all the help. I will start coding my own from scratch, and if it goes wrong, I'll go back to what I have so far. Thank you all for the advice, help, etc.. And to all you devs, contributers, etc... thanks for all of the help with bugfixing.
The Enigma community is by far the most friendly community I've seen. Haha.
Yours sincerely
~HitCoder~
-
Hey you're welcome HitCoder! (Y)
-
Just an update the earlier bug in with statements that was a regression was addressed by sorlok.
https://github.com/enigma-dev/enigma-dev/pull/869
-
That's great, however I made a workaround so it doesn't really matter now. But other people may have had this problem, so it's appreciated, and I may use the with() statement more often now. Haha.
-
You'll have to pull the changes, but he's throwing a lot more with fixes our way and stuff, so I am still holding off on a new portable ZIP.
-
ok, I hope it's done soon.
-
We've merged a number of pull requests recently. What fix are you waiting for?
-
I never mentioned waiting for a fix. I don't have any problems at the moment, however, I am waiting for the feature to change the object referenced in code for when the object name is changed.
-
HitCoder, I made a new Portable ZIP yesterday and it has the fix for the with statements so that the original unmodified Sonic engine by polygonz should work again.
http://enigma-dev.org/forums/index.php?topic=2364
(http://i.imgur.com/jYSxwHs.png)
Also I've filed a feature request for code refactoring, but it's unlikely to come any time soon we have so many other issues to work through right now.
https://github.com/enigma-dev/enigma-dev/issues/882
-
Thanks Robert. It'd be extremely useful, as Polygone gave the objects names that are not acceptable to most of the sonic community. It's not me, it's other people complaining that I should prefix them with obj_, even though I have told them countless amounts of times that I didn't create the original base engine.