ENIGMA Forums
General fluff => Announcements => Topic started by: IsmAvatar on April 18, 2010, 10:15:27 pm
-
This is Catch the Clown, except that you don't have to "click" the clown, you just need to mouse-over him.
Catch the Clown.
The objective of the game is simple: To move your mouse over the moving clown as many times as possible, and thus increase your score. Yes, there is score. If there wasn't a score, it wouldn't really be a game. Each time you successfully catch the clown, he moves faster.
http://dl.dropbox.com/u/9975312/Games/Catch_the_Clown.gmk
~5 KB
Working since ENIGMA SVN Revision 244. Still working great since the move to GIT and since revision 4900aa6.
Coded entirely in LGM. Sprites stolen from the original.
Can you beat my highscore (in the screenshot)?
(http://www.IsmAvatar.com/other/Catch_the_Clown.png)
Features:
Sprites, Movement, Increasing difficulty, random redirection, changing background colors, bouncing off walls, able to be caught my mouse-over, score, displaying score in title bar
Lacking (due to limitations of Enigma at this time):
Clicking, Backgrounds, Sounds/Music
Version 1, which was created prior to sprite support (by showing a circle, without movement) is still available for reference.
http://www.IsmAvatar.com/other/mouse_to_ball.gm6
-
is the completed functions list up-to-date?
-
is the completed functions list up-to-date?
Hell no
-
To see completed functions, open LGM, then go to Enigma menu (supposing the enigma plugin is properly installed) -> Keyword List -> Functions
-
k
-
Note that here, "unimplemented" actually implies that it was implemented at some point. :D
...And will hopefully be so once more shortly.
-
$ ./mouse_to_ball.elf
./mouse_to_ball.elf: error while loading shared libraries: libatiuki.so.1: wrong ELF class: ELFCLASS64
(Arch Linux x86_64)
The ELF extension is never used; why did you use it
-
Because my server might be confused if I gave it no extension, thinking it was a folder or some such. So I said "what extension should I use?" and since I figured it was an ELF, I'd give it an ELF extension - which also communicates that it's linux only.
I'm a linux dev noobie anyways.
Apparently not all elfs are equal, so I suppose I should specify that mine was made on Ubuntu 9.10. I'm used to windows - where all exes are essentailly equal, and Java - where all jars *are* equal (.equals() :-p).
Also, because nobody explains anywhere how one would release a game they've developed under enigma. I mean, obviously we're not expected to just develop games for ourselves.
-
Also, because nobody explains anywhere how one would release a game they've developed under enigma. I mean, obviously we're not expected to just develop games for ourselves.
You have to make a special open format for enigma games.
For now we'll have to stick with gm6, but due to the new features we're expecting, gm6 won't cut it anymore, and neither will gmk.
>how one would release a game
You compile the game for several platforms and distribute the executeables and whatever weird shit linux uses.
-
Seems like in order to compile for Windows, I have to actually be on Windows. As for distributing GM6s or EGMs, that kinda defeats the purpose of "distribution", as the user would also have to have ENIGMA installed. That's like requiring everyone who wants to play a GM game to have GM installed.
I thought there was supposed to be some semblance of cross-platform here.
Eh, I'm going back to my Java jars.
-
D:\Users\Cody\Desktop\Enigma\trunk>java -jar lgm16b4.jar
Java Version: 10600 (1.6.0_19)
Loading lib files in D:\Users\Cody\Desktop\Enigma\trunk\lgm16b4.jar
01_move.lgl 02_main1.lgl 03_main2.lgl 04_control.lgl
05_score.lgl 06_extra.lgl 07_draw.lgl
SvnKit missing, corrupted, or unusable. Please download and place next to the en
igma plugin in order to enable auto-update.
Initializing Enigma: Exception in thread "main" java.lang.UnsatisfiedLinkError:
Error looking up function 'first_available_resource': The specified procedure co
uld not be found.
at com.sun.jna.Function.<init>(Function.java:179)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:345)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:325)
at com.sun.jna.Native.register(Native.java:1318)
at com.sun.jna.Native.register(Native.java:1013)
at org.enigma.backend.EnigmaDriver.<clinit>(EnigmaDriver.java:14)
at org.enigma.EnigmaRunner.initEnigmaLib(EnigmaRunner.java:113)
at org.enigma.EnigmaRunner.<init>(EnigmaRunner.java:90)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
rce)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.lateralgm.main.LGM.loadPlugins(LGM.java:297)
at org.lateralgm.main.LGM.main(LGM.java:512)
M(r)s IsmAvatar, I got an LGM WTF.
-
MrJackSparrow2:
Have you recompiled the compiler lately? It's a good idea to do that each time you check out.
Ism:
If every Linux distribution could run the same exe's, apt-get would be a thing of the past.
That's why everything on Linux is either open source or apt-get'd. This is another reason why a makefile would seriously help; one could be distributed along with the C++ source of the game to be built on any platform. Also, ENIGMA's site could eventually make it easy by having a changer script for specific operating systems, like Firefox and Chrome do. "Download now for <your OS here>." Would take some effort for that too, though, on our account and on the intermediary user. :P
-
Seems like in order to compile for Windows, I have to actually be on Windows.
Have you tried the MinGW32 Cross Compiler.
http://packages.ubuntu.com/karmic/devel/mingw32
-
Because my server might be confused if I gave it no extension, thinking it was a folder or some such. So I said "what extension should I use?" and since I figured it was an ELF, I'd give it an ELF extension - which also communicates that it's linux only.
What the hell kind of server can't decide the difference between a file and a directory.
Apparently not all elfs are equal, so I suppose I should specify that mine was made on Ubuntu 9.10. I'm used to windows - where all exes are essentailly equal, and Java - where all jars *are* equal (.equals() :-p).
Windows: No, they're not. There's a difference between 32-bit and 64-bit EXEs.
Java: Yes, they are.
Linux: It's the same as Windows, however, there are more architectures (Ubuntu uses AMD64, which is a "higher level" than x86_64). i686 executables can't run on i386, and AMD64 can't run on x86_64.
Why couldn't you just release the gm6 instead of the binary?
Seems like in order to compile for Windows, I have to actually be on Windows. As for distributing GM6s or EGMs, that kinda defeats the purpose of "distribution", as the user would also have to have ENIGMA installed. That's like requiring everyone who wants to play a GM game to have GM installed.
I thought there was supposed to be some semblance of cross-platform here.
Eh, I'm going back to my Java jars.
The GM examples are GMKs, not EXEs. And MinGW has cross-compilers.
-
Thanks Josh, that fixed it. :)
-
So... Minimalist GNU for Windows... which Wikipedia lists the OS as MS Win... works on Linux?
Confused.
-
So... Minimalist GNU for Windows... which Wikipedia lists the OS as MS Win... works on Linux?
Confused.
Yes.
From http://en.wikipedia.org/wiki/MinGW32#Comparison_with_Cygwin
It is also possible to cross-compile Windows applications with MinGW-GCC under POSIX systems. This means that developers do not need a Windows installation with MSYS to compile software that will run on Windows without Cygwin.
Under Ubuntu type sudo apt-get install mingw32-binutils mingw32 mingw32-runtime
Code::Blocks Cross Compilers setup
http://wiki.codeblocks.org/index.php?title=Code::Blocks_and_Cross_Compilers
-
Yes.
From http://en.wikipedia.org/wiki/MinGW32#Comparison_with_Cygwin
That's great! Is there an explanation available in English?
Code::Blocks Cross Compilers setup
http://wiki.codeblocks.org/index.php?title=Code::Blocks_and_Cross_Compilers
Followed that. Now I supposedly have the cross compiler set up, but I don't know how to use it. I tried linux build, but it complains ""Game - lin-build" uses an invalid compiler. Skipping..." if I choose lin-build, and it complains that it can't find windows.h if I use "win-build".
-
Ism:
Seems you set lin-build's compiler to an incorrectly-set-up MinGW, instead of win-build's to a correctly-set-up one. :P
Either way, I'd prefer a new target be made for that, if any is to be made at all... I'd rather keep the C::B project for native compilations.
Cross compiling can be a fickle bitch. It's not so bad for Linux->Windows, but... Either way, that should be handled by ENIGMA and whatever makefile is ultimately called.
-
You'd have to add the new cross compiler to Code::Blocks in Settings -> Compiler and Debugger. Copy the existing GCC and set the toolchain executables to the MinGW ones.
Then you need to create a new build target- right click the project, choose properties and go to the build targets tab. Duplicate one of the existing ones and in its build options, change the selected compiler at the top of the dialog.
Building with that new target/compiler should work if you set up the cross-compiler correctly. Setting up the cross compiler correctly is the hard part though- MinGW makes Linux->Win okay but I've never gotten Win->Linux to work. You'd probably need to build some combination of binutils, libstdc++ and gcc (hopefully just the first one). Linux From Scratch (http://www.linuxfromscratch.org/) might help with this.
-
Screw it. *Opens up my Windows VM and installs C::B, etc*
-
Activating my account on the C::B forum was really a pain in the a**. I finally activated my account,
maybe I'll find somebody who can help me getting the compiler to work.
Do you still need testing on the source compilation? I've win7 32bits
-
Are you asking me?
-
I think he's asking Josh.
-
I'm asking anybody that knows. I opened a topic (http://"http://forums.codeblocks.org/index.php/topic,12401.new.html#new") on the C::B forum, if someone wants to help me getting it to work.
But if you don't need any more help compiling on different platforms, then I can just uninstall C::B.
-
I have a windows VM. I can just make an EXE and share that.
-
I have mingw32 installed, and all that I have to do is type i486-mingw32-g++ instead of g++ when I compile.
It's not that complicated. And all that I had to do for install was install the mingw32-binutils and mingw32-gcc packages.
-
Well yeah, that'd be great, if I knew what arguments to call g++ with to compile an enigma game...
-
Ah, figures, one problem after another on windows, the least of which not being that trying to compile the game (C::B-side) causes a Segmentation Fault in draw_something_blend which I don't even use.
If you can compile it on windows and host it somewhere, go ahead. Even if it's just temporary hosting, I'll rehost it.
-
Well yeah, that'd be great, if I knew what arguments to call g++ with to compile an enigma game...
...it's the same for MinGW and the native Linux GCC?
-
Ok, my C::B can now compile simple c++ files. How can I help?
-
Well yeah, that'd be great, if I knew what arguments to call g++ with to compile an enigma game...
...it's the same for MinGW and the native Linux GCC?
That'd also be great, if I knew the arguments for any of those. I follow the instructions that Josh provides in "Things that are broke" (http://enigma-dev.org/forums/index.php?topic=486.0). Basically, open the .cbp file and click "Compile" in C::B.
Ok, my C::B can now compile simple c++ files. How can I help?
That's up to you. If you want, you can open my gm6 file with LGM and compile it into an exe so that windows users can play my game.
-
I've just tried to compile Enigma. I get this error. Should I modify something before compiling?
Also, the file libzlib.a is already present in the source, should I overwrite it?
"compileEGMf - Release" uses an invalid compiler. Skipping...
Nothing to be done.
-
I've just tried to compile Enigma. I get this error. Should I modify something before compiling?
Also, the file libzlib.a is already present in the source, should I overwrite it?
"compileEGMf - Release" uses an invalid compiler. Skipping...
Nothing to be done.
Sure you have the MinGW compiler?
-
No, I have the Cygwin GCC compiler. It works for the hello world program, and for my code.
-
The Code::Blocks project is set up to use MinGW. You can either add a new compiler to C::B or get MinGW.
-
No, I have the Cygwin GCC compiler. It works for the hello world program, and for my code.
Don't use Cygwin for this; just install the native Windows C::B.
What was the point of Cygwin, again? It seems like it's just for people that are afraid to install GNU/Linux because they think that it's TOO HARD.
-
Cygwin and MinGW are for people who want to use GCC on Windows. Despite your belief that Linux is a panacea for computers, it's not. Other systems have a place, and people who use those systems can use open source compilers if they wish- that's the point of open source, after all.
-
@rusky
C::B is set to use the Cygwin G++ compiler and it works for my personal projects.
I don't know why it doesnt' for Enigma. Maybe I'll get MinGW too, but why shouldn't it work now?
Maybe I'm doing something else wrong, and installing MinGW wouldn't help at all.
EDIT: maybe it's because my g++ is v3.4 instead of 4, but v4 don't show when I try updating
@retrox
I've installed the native Windows C::B, but I it still needs a compiler. I have 2 options: Cygwin and MinGW.
Basically they do the same, they bring the ease of linux compiling to windows.
btw cygwin is not something like wine for windows, I'm not trying to run the linux C::B inside windows :pseudo:
-
btw cygwin is not something like wine for windows, I'm not trying to run the linux C::B inside windows :pseudo:
I know that.
I don't understand why you would use Cygwin when MinGW should work fine.
Cygwin and MinGW are for people who want to use GCC on Windows.
That's MinGW, not Cygwin. Cygwin aims at having bash, everything supported on Windows. Even X11. I don't see the point; it's a waste, imo.
Despite your belief that Linux is a panacea for computers, it's not. Other systems have a place, and people who use those systems can use open source compilers if they wish- that's the point of open source, after all.
And what is Windows' place?
-
Hum, so you say that MinGW is lighter than Cygwin. Ok, but I need a command line to see my programs working.
If MinGW provides that too, maybe I'll switch.
-
erm, what made you assume that it didn't?
MinGW is a direct port of the GNU compilers, utilities, etc.
-
Built in 8 seconds on win-debug, using Windows 7 64Bit | MingW 32bit was used
kkgames.x10.mx/MouseToBall-Win.zip (http://kkgames.x10.mx/MouseToBall-Win.zip) ~606kb [.zip, 3mb uncompressed]
No errors
EDIT: This is for Windows obviously :P
-
whenever i use window_set_caption() it doesn't throw errors.... or do anything....
-
C::B is set to use the Cygwin G++ compiler and it works for my personal projects.
I don't know why it doesnt' for Enigma. Maybe I'll get MinGW too, but why shouldn't it work now?
Maybe I'm doing something else wrong, and installing MinGW wouldn't help at all.
EDIT: maybe it's because my g++ is v3.4 instead of 4, but v4 don't show when I try updating
Enigma's code blocks project is set up to use MinGW. All of its targets use the MinGW toolchain. If you duplicate the target you want and switch its compiler it should work.
MinGW programs work on Windows' command line, but there's also MSYS, which is sort-of part of MinGW and gives you a more bash-like shell.
@RetroX: the reason Cygwin aims to support everything is because of how it works. It works by emulating POSIX with a runtime compatibility layer. This means you should be able to recompile POSIX programs on Cygwin. MinGW aims to provide a compatible environment rather than emulating POSIX.
-
whenever i use window_set_caption() it doesn't throw errors.... or do anything....
I used the room_caption variable. My guess is window_set_caption isn't fully implemented or gets overwritten with room_caption.
To test this theory, if you're using Xlib (unix), before you compile your game, go to C::B > Game > Sources > Platforms > xlib > XLIBwindow.cpp, line 87. Move the line down so that line 87 is blank, and then put the following in line 87:
printf("~%s~\n",caption.c_str());
Then compile, and run your game from a terminal. If you see lines with ~tildes~, that's when it's setting the caption, and anything between the tildes is what it's setting the caption to. If, for instance, you see
~The Caption I provide~
~~
then either you're calling window_set_caption("") or ENIGMA is overwriting (e.g. room_caption). To further test this, try setting room_caption.
-
whenever i use window_set_caption() it doesn't throw errors.... or do anything....
I used the room_caption variable. My guess is window_set_caption isn't fully implemented or gets overwritten with room_caption.
I try my best to warn people about this; unfortunately it can hardly apply to either of you because you're on Linux.
If it doesn't work in ENIGMA, and you think it should, be sure it works in GM. You are correct that it gets overwritten with room_caption, Ism. This is the behavior of GM, also. The function room_set_caption() is useful only when a script is looping for a long time and needs some way of outputting a percentage.
There's no bug here, and no need for printf(); just use room_caption as people do in GM.
-
Josh, is it still worth trying for me to get that darn compiler working?
Or may I try installing MinGW? I hope it's easier than Cygwin to set.
-
The 11th plague of Egypt--
If you install MinGW right to C:\, both ENIGMA and Code::Blocks should detect it. If Code::Blocks doesn't detect it, just reinstall it (Code::Blocks). If it still doesn't detect it, feel free to give up. ENIGMA will be done soon enough.
I don't really "need" new testers, as it seems most of what will break has broken on the three platforms I now have access to, but a "yeah, it works!" is always nice to hear.
-
Well after we got mine all set up on Windows there haven't been any problems, updating and compiling has all been successful. So hopefully that's a good motivator (Y) :D
-
The 11th plague of Egypt--
If you install MinGW right to C:\, both ENIGMA and Code::Blocks should detect it. If Code::Blocks doesn't detect it, just reinstall it (Code::Blocks). If it still doesn't detect it, feel free to give up. ENIGMA will be done soon enough.
I don't really "need" new testers, as it seems most of what will break has broken on the three platforms I now have access to, but a "yeah, it works!" is always nice to hear.
Cool, it worked straight after I installed MinGW. Still I don't know what's wrong about Cygwin.
Enigma compiled without giving any errors or warnings on my Windows 7 32 bits.
LGM started and let me open the game, but the Run button is not responding, not even after I click Compile.
BTW how do I start LGM again without rebuilding Enigma? Josh said to start it using the terminal, but I don't think he's referring to the Windows terminal. I see there is a terminal entitled C:\Windows\System32\java.exe running right now. Is that it?
-
BTW how do I start LGM again without rebuilding Enigma? Josh said to start it using the terminal, but I don't think he's referring to the Windows terminal. I see there is a terminal entitled C:\Windows\System32\java.exe running right now. Is that it?
Just run lgm o_0
Even though it's a .jar it runs just like a program, so run it.
How you managed to start lgm by building enigma without running lgm, i have no idea...
-
I just clicked the Buid and Run button, Enigma compiled and LGM run.
-
So go to the enigma folder, and find lgm16b4.jar or whatever it's called.
Double click on it.
Bam.
If that doesn't work stick a butter knife into your floppy drive.
If you lack a floppy drive, then stick a slice of bologna (or any other deli meat (or cheese (just make sure it's round (cut off the corners if it isn't)))) into your cd drive.
-
Ok, ok, I found that by myself, but it still doesn't run the game.
Probably it's because Enigma can't find the compiler, but why? It's MinGW, and it's inside C:\
I compiled Enigma inside the Download directory, may it be it?
-
Enigma doesn't run your game.
When you hit run, all it does is parse your code and generate some files, without saying a word.
You then have to open the enigmasystem c::b project and build/run/execute it.
You now have a compiled version of your game.
Enjoy.
-
Found it, the bastard was named ENIGMAengine for some reasons. It works, but it's not fun.
The dot doesn't move until I mouse over it, unlike the gm clown which kept movin.
-
"I just clicked the Buid and Run button, Enigma compiled and LGM run."
I "..."'d for a moment before I remembered I set it up to do that. XD
"Found it, the bastard was named ENIGMAengine for some reasons. It works, but it's not fun.
The dot doesn't move until I mouse over it, unlike the gm clown which kept movin."
Didn't realize that constituted fun... :P
-
The dot doesn't move until I mouse over it, unlike the gm clown which kept movin.
This is correct behavior. I intend for the next version to implement movement.
Didn't realize that constituted fun... :P
Have you ever played Click the clown?
-
I believe I did. Though it was a little after my time...
-
I've released version 2, which sports sprites, a changing background color, and movement (with increasing speed, and random direction changes).
No click support at this time yet, since Enigma still doesn't support that. I'd also like to implement backgrounds and sounds/music, but those are also not implemented in Enigma.
Instructions to run:
1) Fetch and install a working Enigma revision which supports sprites. I'd suggest revision 244 or later.
2) Make sure to build Enigma
3) Download http://www.IsmAvatar.com/other/Catch_the_Clown.gmk (http://www.IsmAvatar.com/other/Catch_the_Clown.gmk)
4) Run LateralGM, and load in the gmk.
5) Click on Enigma > Run
6) Enjoy
-
that clown is on crack after your score is 700....
-
thanks Ism :D
I'm sure Josh would also like to know that on a fresh ubuntu 10.04 LTS 32bit install enigma worked straight off the bat (except for that java thing, but that was my fault. Also the pc stopping when opening scripts was a problem with my RAM - it's all been sorted). Everything I've tried so far is working delightfully well. Getting the same compile speeds as my Windows 7 PC too (specs for that pc in sig)
Specs of Linux box:
Core2Duo (not sure what model) ~1.8ghz
4gb DDR2-800 RAM
Radeon 4670 PCI-E 1gb video card
compile speeds are usually less than 1 second slower than the Windows 7 PC, although im sure that'll extrapolate to quite some difference once large games are made. Still, it's nice.
EDIT: I lied. Whenever I drag "execute a piece of code" icon into an event, i can no longer click on anything on my entire screen. I'm not sure if this is enigma/LGM related or not :s
-
As I told you in IRC, that's X crashing. It's a bug between Java and X, and both of them rushing to not fix it as soon as possible.
http://enigma-dev.org/docs/Wiki/Java#DND_freezing_Bug
Two possible workarounds:
1) Instead of using Drag&Drop, use alternative methods, such as Right clicking the DND icon, which will quick-place it at the end of the event.
2) Disable the splash screen by opening up the jar with a zip manager, opening Meta-inf/MANIFEST.mf and removing the line that mentions the splash screen. Then run LGM and use DND 'til your heart's content.
-
Download links are broken, this topic is linked in the Download page of Enigma, please fix.
-
Fixed all my links in this topic (including first page). Remnants of the server move. Thanks for pointing it out. Let me know if you find any other broken links anywhere else.
-
Just wanted to announce that I have modified the internal workings of the game.
* Now compatible with both GML and EDL/C++
* Eliminated some code that manually handled stuff that is now automatically handled by EDL.
** This fixed a bug which caused the speed to go haywire and the clown was moving much faster than intended.
New URL
http://dl.dropbox.com/u/9975312/Games/Catch_the_Clown.gmk
Already updated the topic with the new URL.