Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - TGMG

Pages: « 1 2 3 4 5 6 7 8 »
61
Issues Help Desk / Re: Can someone explain how to use enigma
« on: October 12, 2010, 04:50:04 am »
Create a game in the ide and go to the enigma menu: Enigma -> run

(its in between the Edit and File menu for me)

62
Announcements / Re: Proceedings
« on: October 01, 2010, 05:34:43 am »
I do think modified versions of ENIGMA (compiler) should be allowed under GPL. One of the powerful features of enigma imo is the ability to modify the whole process (add new features to the compiler etc).
GPL will cover both LGM and the compiler, so if a modified version is released it will have to be GPL. As LGM talks to enigma through JNI the Interface also has to be GPL, so that stops any closed source game makers which just use a new interface.
If someone does want to release a game maker based on enigma it will have to be GPL (for both compiler and interface), which does benefit the project as the official team can decide whether to add those changes or not.
It allows other Gm's to go in completely different directions from enigma but still be open source and still be able to share useful code.
So an exception isn't really required for the interface or compiler imo. As long as projects based on it are GPL the whole community should benefit.

The runner on the other hand could be LGPL, any changes to it will have to be released back, but can still be used in commercial games. This allows games to optimize the runner for there game without having to get official approval from the enigma team. But the optimizations will have to be released, and others can benefit from them too.

I think that would protect from any misuse of enigma, while also using officially written licenses and allowing the end user to modify the compiler/interface and runner and still release a closed source game, while benefiting enigma by releasing any changes back.

63
Function Peer Review / Re: Instance Interface How-to
« on: September 29, 2010, 05:58:44 am »
Ah thanks :)
Yeah I was going to implement them as functions then convert to macros when the parser can detect them but I just realised that this works:
Quote
void action_sprite_set(double spritep,double subimage, double speed);
#define action_sprite_set(spritep, subimage, speed) sprite_index=(spritep); image_index=(subimage);
So i can implement them that way for now :)

Although multi line macros don't work, when writing out the code to the event it includes the \ like so:
Quote
variant enigma::OBJ_obj_0::myevent_create()
{
  sprite_index =(spr_1);
  \ image_index =(0);
  ;
 
  return 0;
}

64
Function Peer Review / Re: Instance Interface How-to
« on: September 28, 2010, 04:16:00 am »
*slightly scared about new system he has no knowledge of*
TGMG: In the events of the object, sprite_index = spritep will suffice. If called from the create event, I understand the problem. I'll fix that ASAP.
aye sorry about that, but its very similar to the way sprites are done.

well i was implementing the action functions and then realised that they always segfault in the create event, so I was using:
(enigma::object_graphics*)enigma::instance_event_iterator->inst)->sprite_index=spritep;
to access it

65
Function Peer Review / Re: Instance Interface How-to
« on: September 27, 2010, 03:58:25 pm »
@HaRRiKiRi - hey :) yeah i am in the process of adding them, i still have to commit the writing and reading code, test on windows and then you will see them in the lgm window. I'll update this post when i have everything sorted out.

Try now (remember to recompile the compiler, so delete the .dll file, lgm will compile it for you when the dll file is missing), atm its still quite basic.

66
Function Peer Review / Re: Instance Interface How-to
« on: September 27, 2010, 01:05:36 pm »
Whats the best way to get variables like sprite_index?
I was using this code which works in certain events, but causes a segfault in the create event :/ Is there a better way to do this?
((enigma::object_graphics*)enigma::instance_event_iterator->inst)->sprite_index=spritep;

67
Function Peer Review / Re: Function Peer Review Board
« on: September 25, 2010, 12:35:07 pm »
I use printf all the time when debugging functions and yes I just checked it works in whitespace, just remember to add \n, which i sometimes forget then wonder where the output is.

68
Proposals / Re: new Build mode
« on: September 23, 2010, 02:02:22 pm »
Quote
First, for those who don't know, the original Build mode was designed for live-action development. For one thing, it was made to be largely hot-key based. Imagine you are one of the brave ones developing Sonic clones in Game Maker. Sonic is running through the course at 50 miles an hour, then he hits a springboard and goes flying. He's about to fall off the screen, but right before he does, the user presses Ctrl-Space and places a new springboard. Or a new piece of earth. Or a new anything.
Yes, this made me realise a huge gap in my idea, LGM wouldn't know about all the instances created/moved at runtime so it would be hard to place the springboard.

So my idea has now changed, not to replace the current build/design system, but to allow LGM or any other process to stream data to the game, the game picking up the data at the end of the game loop, maybe display an updating message/image then changing the resources and continuing. Not for tiles and instances as that is covered by the current design mode, but for resources, like sprites (bounding box, images etc), paths etc.

1) I just mentioned JNI as it is the api i have the most experience, afaik JNA would work fine.
2) The rendering in the lgm window would only work for windows, mac and linux and wouldn't render other platforms. But the rendering in the window was only to save switching between the lgm window and the game constantly to make changes. if the data was sent through the network technically it could send the changes to the actual device, saveing the long process of compiling, linking, building package, installing package and running, on mobile devices, ever time thee is a change.
3) That is true, but still possible to work around, like Ruskys idea, or creating a snapshot *.gb1 type file just before it is run.
4) Yes i realise that, so this system wouldn't replace the current, but just be a kind of way to update resources like sprites, bounding boxs, paths and hopefully scripts without going through the whole process of compiling and running.

Quote
At least on Windows, putting the game window on LGM should be possible(since TGMG has done GMBED, I'll take his word on the difficulty or simplicity of doing this). On *NIX systems, I have no idea. But, at least on X11, it is *possible*(though it might be ugly and weird).
Most opengl based java games actually do this, any games based on LWJGL, Jmonkey or slick all are using a opengl context and rendering it in a java panel using JNI.

Quote
As to IDE <-> game communication, I'm guessing this should be fairly easy. I mean, at most you'd have to make the game set a server at localhost:1234 and stream the changes(and I believe there are easier ways to deal with this problem).
Ah yes i much prefer this idea to my JNI idea, being able to stream data to the game and checking for that data at the end of the game loop would be a much better idea. It wouldn't technically be tied to LGM either as any process could stream data to it, users could even make there own specialised game editor if they wanted.
It would allow enigma games on iphone, android and wii to be developed on pc and stream the changes to the device. It could even allow developing on windows for example and streaming the changes to a remote computer such as a mac. Without having to either change the game on mac or constantly moving the game from windows to mac to test it.
Or even having the game running on multiple platforms at the same time (android, iphone, wii) changing the data in lgm and seeing the results instantly on all of them.

Ofc the real power of this would be if it was possible to change and interpret scripts. A system where at the start the game is compiled normally, so all scripts are actually compiled as they would normally be for performance. But if a script is changed and streamed to the game, it will change the function pointer to that script to the interpreted script instead. So all normal scripts will still be executed as c++ apart from the changed ones which will be interpreted.

69
Proposals / new Build mode
« on: September 22, 2010, 09:30:01 am »
This is just a suggestion for the future which I think would be quite nice.

The idea is this: click 'play in build mode' it will start the game as a frame in lgm, there will be play pause and stop buttons in lgm toolbar, when 'pause' is clicked it will pause the game and allow it to be edited with lgm. Click play and the changes will be loaded into the game. Also a way to save the game states and load them, so if something doesn't work you can go back and test it again with the changes over and over.

Basically very similar to Unity.

Possible way to implement:

The game can be rendered in an lgm frame fairly easily, Lwjgl does this, and so does the android port of enigma. It just calls the c++ enigma function render() through JNI every frame.
When paused it simply won't call render() so it won't update the game loop, until play is pressed.

Now to allow the changes in lgm to be sent to the enigma game, somehow the enigma plugin needs to be able to execute a function when the save button is pressed for that resource. If that is possible then, simply pass the parameters of that resource (or a bytestream to be read) to a c++ function in enigma through JNI.

Example:
Lets say the user paused the game, opened a sound, loaded a different sound and changed the kind. When they click save it should call a JNI function in enigma to update the data in game.

bool jni_update_sound(index, sounddata, kind, effects, volume, pan, preload) {
// update data for sound index
// could even call sound_replace(index, fname, kind, preload)
}

Now for objects, timelines and scripts or anything else with code.
something similar to: http://www.codeproject.com/KB/cpp/gecko1.aspx?msg=2531522
Where each resource is actually its own dynamic library, when the user clicks save for that resource it will compile it then call a JNI function to reload the dll.

I'm not sure if that would work in practise but it would make it much easier to build games imo.
Just an idea  :)

70
Proposals / Re: Easily Accessible Online Chat System
« on: September 09, 2010, 09:53:17 am »
What about using an applet to connect to irc like so: http://webchat.freenode.net/?channels=enigma-dev&uio=d4

71
General ENIGMA / Re: ENIGMA on the iPhone - Once again legal?
« on: September 09, 2010, 09:50:03 am »
Well thats good news, so my iphone port wasn't a waste of time after all :) It seems you need written consent to use an interpreted language like lua. But Enigma doesn't interpret anything, the final code is c++ (with a little objc for iphone) so in theory Enigma should be safer than using Unity.

But we won't know until someone submits an engma app to the appstore. Doubt they would allow the click the clown example >.<

72
Announcements / Re: ENIGMA R4
« on: September 08, 2010, 01:33:18 pm »
That would be great, it was just to add the link to the mac package under the windows one
link: http://alasdairmorrison.com/enigma-mac/Enigma.pkg.zip (mac sdk has to be preinstalled)

73
Announcements / Re: ENIGMA R4
« on: September 08, 2010, 01:20:58 pm »
tgmg: CompilerSource/Makefile lines 13-27.
Your OS needs to be added to that list, or else it is considered windows.
Also, the change will need to be reflected in genmake.sh
Thank you, its now working as of revision 438 :)

74
Proposals / Re: ENIGMA Wiki
« on: September 08, 2010, 12:57:39 pm »
I agree, it would be very useful if there was a wiki which generates pages with a simple html layout, so that it can be exported and still look right in an offline help format, like javaHelp, pdf or chm.
This would allow anyone to contribute something to enigma without having svn access and whatever computer they are on via the browser.

Maybe a stripped down doku wiki layout would do?

75
Announcements / Re: ENIGMA R4
« on: September 08, 2010, 12:41:36 pm »
I can't edit the post (or anyone elses) so here is the installer:
http://alasdairmorrison.com/enigma-mac/Enigma.pkg.zip

Although there is an issue with the auto compilation of the compiler, it creates a file called "..\compileEGMf.dll" in the compilerSource directory, instead of compileEGMf.dylib in the parent directory.

Pages: « 1 2 3 4 5 6 7 8 »