ENIGMA Forums

General fluff => Announcements => Topic started by: IsmAvatar on February 11, 2012, 07:21:46 PM

Title: Main Progress [Stalled because we can't Git]
Post by: IsmAvatar on February 11, 2012, 07:21:46 PM
Just wanted to let you all in on a little update since we have moved to Git.

Rusky and RetroX have been infinitely helpful in getting us all up-to-speed in how-to-git, as well as getting the git in a semi-desirable state. That said, though, our git professionals seem to have been stretched to their capacities, so our developers are having a little bit of trouble figuring out how to install/build the latest ENIGMA rev from scratch. We're basically just waiting on our Git pros to update this page for us: http://enigma-dev.org/docs/Wiki/Install:Git ... Namely, lgm16b4.jar and enigma.jar were (intentionally) omitted from the repository, which makes it very difficult to run, because not just any version of those jars will work.

In the meantime, progress has been largely disjointed. For instance, Josh and I have been tweaking JoshEdit (which has its own git that we do know how to work). Josh also continues work on his new One Parser To Rule Them All. I've been catching up on other items on my Todo list, and will probably be working on some much needed upgrades to LGM's Room Editor soon. I've also figured out how to get EGit working in Eclipse, so I've been switching all my projects over that already use git. The IRC Bot has gotten several very nice updates to make understanding git revisions easier and such. There's been some slightly renewed interest in JEIE, so I might poke at that a little bit (at this point, the core is all there, it just needs a UI). TGMG has reported that 90% of the 64digits examples compile (with a blank function template for all currently unimplemented functions - primarily intended to test the compiler/parser), so that's always nice.

So that's why ENIGMA progress seems to have slowed to a crawl and no new builds are being made available - because we don't know how. But a lot of the side-branches are being filled in, so I expect that once we do figure out how, progress will explode. Until then, if you're looking for progress, look at the border projects, like JoshEdit and EnigmaBot and such.

For those of you trying to just do a standard install for using ENIGMA, you should be able to follow the normal Install page, which will give you one of the most recent builds we could get our hands on, with automatic updates disabled (which will probably be the norm from now on)
Title: Re: Main Progress [Stalled because we can't Git]
Post by: Josh @ Dreamland on February 11, 2012, 09:10:29 PM
*rubs eyes and lies down*
Title: Re: Main Progress [Stalled because we can't Git]
Post by: TheExDeus on February 11, 2012, 09:20:09 PM
I also haven't quite understood the GIT thing. I plan to format my PC some time in the future, and it would be cool if I could commit the few surface functions I made. Though I could probably just upload them to this forum like I did in the past.
I haven't done a lot because there ain't much for me to do. Adding functions is great, but I kind of have all the functions I need. Also, Build Clear isn't done yet, so I can't have a non-console iconed .exe I could distribute.
On a different note though, I am working on optical touchscreens in my spare time (FTIR and the like), and  I have coded and ported blob detection and stuff like that to ENIGMA. So I can use ENIGMA to create cool multitouch applications now.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: DarkAceZ on February 11, 2012, 09:21:25 PM
We're basically just waiting on our Git pros to update this page for us: http://enigma-dev.org/docs/Wiki/Install:Git ...
This page doesn't look much better for Linux: http://enigma-dev.org/docs/Wiki/Install#Linux
Title: Re: Main Progress [Stalled because we can't Git]
Post by: IsmAvatar on February 11, 2012, 09:58:46 PM
DarkAceZ: A large part of that is because they all pretty much just link to the old Install:SVN page, meaning that they only get as up-to-date as the SVN gets (which hasn't been updated since we started using Git, because all our commits have gone to git instead). When Install:Git is working, they will probably instead be directed to point at that (short term, until we get linux packages going).
Title: Re: Main Progress [Stalled because we can't Git]
Post by: Fede-lasse on February 13, 2012, 11:40:08 AM
I don't like EnigmaBot. Die.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: IsmAvatar on February 19, 2012, 01:17:18 AM
Good news: I got everything hooked together using the latest revisions of everything.

Current hold-up: LGM and enigma.jar are currently incompatible due to like 7 lines of code that reference systems that have changed in LGM (namely, Listener and JoshEdit).
Tomorrow, I'll fix that, and then build some binaries, and then get the ball rolling in the Dev department again (assuming I have correctly guessed what Rusky and RetroX had in mind). If this works, we'll start automating this build process (probably via EnigmaBot) and then Dev will be magical with free rainbows and tacos for everyone again.

Inb4 I get kidnapped tomorrow.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: RetroX on February 19, 2012, 09:47:15 AM
For the record, I fixed the dependencies for the Install#Linux page. :V
Title: Re: Main Progress [Stalled because we can't Git]
Post by: Josh @ Dreamland on February 19, 2012, 10:42:04 AM
I'm still pretty annoyed about this whole operation, but since my focus is still on the parser, I'm not going to saw anyone's head off just yet.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: IsmAvatar on February 20, 2012, 12:33:48 AM
I've added this section of the wiki, which should be enough to get things working:

http://enigma-dev.org/docs/Wiki/Install:Git#Additional_Dependencies

Those are the latest versions of LGM (JoshEdit branch), the Plugin, and JNA as of tonight. They can be interchanged with any compatible versions (some users have already been able to get it working by just using the jars from the last SVN revision, albeit obviously outdated now).

I have tested it and can confirm I can get a basic game running on Linux, provided you switch the Audio system to None (Enigma's OAL system is currently broken). Users have reported that Windows is currently broken (Also seems to be OAL-related - at any rate, not my fault, it seems). Also, it defaults to Clang on linux, which may or may not be your desired default - it worked fine for me, as did GNU GCC G++.

So, dev team, go.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: ugriffin on February 23, 2012, 03:10:01 AM
Not sure why you guys insist on using Git. The company I work for makes me use git for source control, I hate it with a passion. To me, SVN simply works better (much less bull to deal with).
Title: Re: Main Progress [Stalled because we can't Git]
Post by: TheExDeus on February 23, 2012, 03:24:59 PM
I also liked SVN better. But I still haven't really tried Turtoise so maybe it makes this thing easier.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: RetroX on February 24, 2012, 12:30:01 PM
Not sure why you guys insist on using Git. The company I work for makes me use git for source control, I hate it with a passion. To me, SVN simply works better (much less bull to deal with).
Why, exactly? Git acts almost like a subset of SVN; anything that can be done with SVN can be pretty much done with Git. The extra levels of complexity make things a lot easier, and it's far easier to compare revisions (which is what revision control is for).
Title: Re: Main Progress [Stalled because we can't Git]
Post by: luiscubal on February 24, 2012, 01:49:32 PM
Quote
Git acts almost like a subset of SVN
You mean superset.

Quote
The extra levels of complexity make things a lot easier
I know what you mean, and it's true in many cases. However, the way you said it makes it sound awkward("more complexity = easier")
Title: Re: Main Progress [Stalled because we can't Git]
Post by: IsmAvatar on February 24, 2012, 05:44:52 PM
The awkwardness comes from the use of the word "things". Usually, "things" refers to a everything that you would usually use. Here, though, "things" actually refers to "the things that we keep running into". Basically, it's a difference between things = "everything" and things = "some things".

The point he was trying to make was that, for the purposes that we keep running into, GIT has a clear advantage. Whereas SVN "just works" and git is more complex (or steeper learning curve), once you get the hang of Git (which we have quickly done, since it was suddenly dumped on us, along with the help of those 1 or 2 wonderful git tutorials shared in the other topic), it's the clear winner, providing elegant solutions to things that we hacked around in SVN in the past - such as subprojects and forks.

And all this, considering that I was a diehard SVN fan, with a little loathing for the complexity (and documentation overflow) of git. Now I've converted pretty much all of my projects to Git. Read the tutorials from the other topic, and it's really not that much of a hastle after all.

EGit, on the other hand... that thing was a bugger to figure out.


Our current issue isn't so much that we can't Git (I just put that in the title to be funny), it's that we don't really understand the intent that Rusky was going with in deleting some of the stuff from the repository, and then he suddenly left, so now we kinda have to pick up his pieces. We've done fairly well, as you can see from this topic. Current issue is just the alure sound system, which he deleted, even though it was clearly modified from alure, so we don't have a clue what he did that for.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: RetroX on February 24, 2012, 08:38:10 PM
I worded that terribly, but both of you pretty much understood what I meant. :P
Title: Re: Main Progress [Stalled because we can't Git]
Post by: IsmAvatar on February 25, 2012, 06:56:25 PM
A discussion about getting Windows Git Install working (primarily between Harrikiri and myself) has been split from this topic to here: http://enigma-dev.org/forums/index.php?topic=945.0
Title: Re: Main Progress [Stalled because we can't Git]
Post by: IsmAvatar on February 27, 2012, 02:10:41 AM
Just wanted to mention that I just fixed a bunch of stuff with the Plugin (improved APNG, so sprites in EGM don't fail so much), and added a couple wiki pages.

Josh and I are undecided on what to do about Rusky's decision to delete Josh's custom alure-related stuff.

Josh says that he doesn't think he can just have alure in its own git repository and/or stick it in a subproject or binary or whatever.
Cheeseboy seems to be glad that it's gone, and claims that this somehow means that enigma suddenly now supports mp3. I'm hoping to investigate this claim. Maybe learn something about alure in the process.

I am generally of the opinion that Rusky had *some* sort of reason to delete it. It takes a lot of steps to delete something like that from the repository, it's not like you can just accidentally hit the delete key.
Unfortunately, there are strong rumors that Rusky is going to be gone for a long time (possibly more than a year). This means that we're probably going to have to forge our own path, even if that means re-integrating Josh's alure stuff back into the repository (although I hope it doesn't come to that).

If and when Rusky comes back, I want him to see this project, and say "Wow, you didn't do half bad." rather than "You idiots. Now the repository looks like a bomb hit it. No wonder it takes a decade to checkout/update"
Title: Re: Main Progress [Stalled because we can't Git]
Post by: TheExDeus on February 27, 2012, 07:15:56 AM
Where the hell Rusky go exactly? Prison?

Can't we put alure in \Audio_Systems\OpenAL where it was in the first place? Why was it bad there? Its only about 300kb. Also, what if we make an online system where you just download AudioSystems and extensions? So you don't have to download all of the stuff. Like I plan to make two extensions I made (one is to generate MIDI events for others programs and another is for touchscreen) available for download. Maybe FMOD too (now its in the GIT). But basic audio system like OpenAL should be part of the official package.

Also, can I have the permission to commit to GIT? I am not entirely sure I will not mess something up, but I do plan to use Tortoise so it should be straight forward.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: Josh @ Dreamland on February 27, 2012, 08:03:58 AM
It seems to me that now that we have taken it upon ourselves to maintain a 7z of MinGW, we can pack ALURE and other cross-platform shit into MinGW/include.

We can maintain a separate zip of patches for people who already have MinGW installed. The patch will have include/ALURE, lib/libalure.a, and the patched windres.exe. We can also stick XAudio headers in there if we find any.

And, HaRRi, we need your github username for that.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: TheExDeus on February 27, 2012, 10:21:49 AM
Quote
and the patched windres.exe
Patched? Didn't MinGW themselves fix the res problem? Or you did? Also, when will this icon thing be "live"?

Quote
And, HaRRi, we need your github username for that.
Quote
edit: Also, my nick on Git is TheExDeus so add me so I can f*** up the repo. I want to commit some surface functions and we will see how that ends up.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: Josh @ Dreamland on February 27, 2012, 11:13:04 AM
MinGW fixed it, yes, but we won't be seeing it in the MinGW-get repo for, well, ages. So we'll need to grab the version they fixed and release it as a patch.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: IsmAvatar on February 27, 2012, 02:09:40 PM
I like these ideas. I just want to mention that we should also consider offline alternatives. I think the download page should provide an Online ENIGMA and an Offline ENIGMA. The prior will download and install things on the fly, like we've been talking about. The offline version will include everything up front (we might be able to offer a web form with checkboxes for the components that they want and don't want, and then assemble a package for them).

Obviously not a big priority right now, but we should keep it in mind for down the road.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: DarkAceZ on March 02, 2012, 09:38:07 AM
For the record, I fixed the dependencies for the Install#Linux page. :V
(Late) Hey, awesome!
Title: Re: Main Progress [Stalled because we can't Git]
Post by: Ideka on March 03, 2012, 06:14:26 PM
Not sure why you guys insist on using Git. The company I work for makes me use git for source control, I hate it with a passion. To me, SVN simply works better (much less bull to deal with).
Sort of late but, here, take a look at this: http://hginit.com/00.html
It's about mercurial instead of git, but a lot of stuff (if not everything) applies anyway.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: Josh @ Dreamland on March 03, 2012, 06:58:11 PM
Late, yes. :P

I'm just going to post what I had to say here in a new newspost.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: TheExDeus on March 26, 2012, 01:09:24 PM
Ok so I have problems with this GIT thing. Tried about 2 hours to commit some changes and this stuff is just idiotically complicated. I see no reason why version control needs more than 3 buttons (or at least visible ones). I think I did commit something, but it commit locally? Now when I try to commit to "master", then I have problems with authentication. This is the error:
Quote
C:\ENIGMA_Git\enigma-dev>git push
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of know
n hosts.
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Where do I need to add this public key? And where is it in GitHub? Is it the "API token"? That seems like the only thing that deals with password and the like.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: IsmAvatar on March 26, 2012, 04:13:01 PM
Account Settings (top right) > SSH Keys
Title: Re: Main Progress [Stalled because we can't Git]
Post by: TheExDeus on March 26, 2012, 05:02:49 PM
Success!

Now if people can run the git version (so Linux and I guess Mac) could try to compile these:
http://dl.dropbox.com/u/21117924/Surfaces/development_side_effect2.gmk
http://dl.dropbox.com/u/21117924/Surfaces/reflections_surface.gmk
http://dl.dropbox.com/u/21117924/Surfaces/sun_rays_room_technique%20V2.gmk

edit: Why is sirmxe spamming git?
Title: Re: Main Progress [Stalled because we can't Git]
Post by: polygone on March 27, 2012, 11:53:20 AM
Harri, you use Windows?
Title: Re: Main Progress [Stalled because we can't Git]
Post by: TheExDeus on March 27, 2012, 12:41:15 PM
Yes.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: IsmAvatar on March 27, 2012, 03:36:31 PM
development_side_effect2.gmk
Compiles. Displays game window for very brief moment. Then terminates prematurely with exit code 0, and no visible error.

reflections_surface.gmk
Same behavior as above.

sun_rays_room_technique V2.gmk
Does not compile. Reports the following error:
Code: [Select]
Check `object0::create...Syntax error in object `object0', Create event:0:
Line 7, position 6 (absolute 134): Invalid assignment to function `time'
Title: Re: Main Progress [Stalled because we can't Git]
Post by: TheExDeus on March 27, 2012, 03:51:34 PM
Thats weird. Does your PC support FBO's? The function surface_is_supported() should return true.

The syntax error is because for some unknown reason linux and/or mac's have "time" as a function. On windows you can use it as a variable just fine (it doesn't highlight as a function either). Download it again. I just renamed the variable.

Also, I don't know if the GIT version works at all, as I can't run it on Win. Until people fix that, I will not be able to really fix problems like these.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: IsmAvatar on March 27, 2012, 04:01:53 PM
The updated version yields the same results as the other two now.

surface_is_supported() returns 0.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: TheExDeus on March 27, 2012, 05:39:07 PM
Yeah, then you sadly don't support FBO's. :( Can anyone else test with a different GPU?

Also, the surface_is_supported() function was made just for this reason. So it wouldn't crash unexpectedly or just show a black screen. I could just check for support and fallback gently. I didn't do it in the examples though.

What GPU do you have? I guess its a laptop?
Title: Re: Main Progress [Stalled because we can't Git]
Post by: DarkAceZ on March 27, 2012, 06:00:56 PM
The updated version yields the same results as the other two now.

surface_is_supported() returns 0.
Actually, there IS an error. In the terminal: "Adding background: 1Extension NOT supported!!"


<JoshDreamland> DarkAceZ: means HaRRi's surface functions won't work for you
Title: Re: Main Progress [Stalled because we can't Git]
Post by: IsmAvatar on March 27, 2012, 06:50:14 PM
I have a motherfucking brand new NVidia GeForce GT 430. Is there some sort of spec you need to look for when buying them to make sure it supports FBOs, because this thing supports everything short of DirectX 12.

DarkAceZ: I didn't see that error.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: TheExDeus on March 28, 2012, 05:47:35 AM
Quote
Actually, there IS an error. In the terminal: "Adding background: 1Extension NOT supported!!"
This error is no longer shown. It just shows if GLEW is loaded or not, and if it is, then you can check support with the is_supported function.

Ok, so there was a little fuck up. The part where glew is initialized is this:
Quote
    #ifdef _WIN32
      GLenum err = glewInit();
      if (GLEW_OK != err)
      {
        std::cout<<"GLEW ERROR!"<<std::endl;
      }
      std::cout<<"GLEW LOADED!"<<std::endl;
    #endif
So this meant that only windows had them. Its weird that it can run without errors (just return 0's I guess) even without init. Although I can't remember if this #ifdef was because of necessity (glew support) or just because I can't test nothing on linux.

Try downloading this file: http://dl.dropbox.com/u/21117924/Surfaces/OPENGLStd.cpp
and putting it in: \ENIGMAsystem\SHELL\Graphics_Systems\OpenGL
Then you might get some GLEW errors but I don't know.

And yes, 430 should support FBO's just fine. Only VERY old cards and some kind of old laptop cards don't support them. I have Geforce 8800 which is about 5-6 years old (and now costs pennies) and I can support them just fine. I have a laptop with some ATI mobile radeon and it can support them as well.

edit: -DarkAceZ- could also test this. Maybe this is why he had the extension not supported error before (that is if he runs linux). Easier would be to run on windows and just try to launch the already compiled exe's I gave. Then see if they run fine. Maybe even trough Wine it could work (Josh uses it all the time with ENIGMA).
Title: Re: Main Progress [Stalled because we can't Git]
Post by: Game_boy on March 28, 2012, 06:10:52 PM
I have a motherfucking brand new NVidia GeForce GT 430.

lol, you realise that is a low end card? I hope you didn't buy it expecting it to be fast.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: TheExDeus on March 28, 2012, 07:05:43 PM
But it still supports everything. The speed is not the issue, its the specification. That one supports DX11 as well as GL 4.2, while mine 8800 supports DX10 with only GL 2.1. So if I can use FBO's, then she certainly can (and almost anyone can, so I don't get why Josh had his panties in his ass when I told him I want GLEW and FBO's for surfaces). For now it seems that maybe the previous results when some who tried had errors about extensions not supported, in really had the support and only the code was flawed. I am interested to see if the fixed .cpp fixes it.
Title: Re: Main Progress [Stalled because we can't Git]
Post by: IsmAvatar on March 28, 2012, 09:53:45 PM
Game_boy: like Harri said, I bought it for spec (and price), not speed. I wanted something that could play Skyrim. With settings turned to low, it runs great, so I'm very happy with my purchase.

Harri: ~~~Snip: 3 images showing all 3 examples work~~~
Title: Re: Main Progress [Stalled because we can't Git]
Post by: TheExDeus on March 29, 2012, 02:46:34 AM
So it runs great. Sweet. I guess I will have to update that file in the git. Anyone else who previously were having problems  should also try this.