OpenTK Future #1528

Closed
tomspilman opened this Issue Mar 10, 2013 · 45 comments

Projects

None yet
@tomspilman
Member

We need to decide how we want to handle OpenTK moving forward.

The official state of OpenTK is unknown as the sole maintainer has gone MIA, Is OpenTK Dead?, but that itself is a pretty bad sign of things.

In particular we have a need to fix bugs more than anything else. But there are needs for supporting new OS features as well.

@tomspilman
Member

So maybe OpenTK is not dead?

I came across a user account called @thefiddler on GitHub which is the user name of the official GitHub maintainer.

There is what claims to be an "official" OpenTK repository created 6 days ago:

https://github.com/thefiddler/opentk

@tomspilman
Member

So just in case that @thefiddler is a spoof of some sort lets continue the investigation.

Searching GitHub there are a few different forks of OpenTK:

https://github.com/search?l=C%23&q=opentk&type=Repositories

The one with the most attention is the Mono one: https://github.com/mono/opentk

Second most is @andykorth who has been active on the OpenTK forums: https://github.com/andykorth/opentk

@elisee
elisee commented Mar 10, 2013

EDIT: I wrote all this before I saw your last two posts @tomspilman, so maybe this doesn't make sense anymore, depending on whether @thefiddler is actually OpenTK's maintainer. Looks like he could be, which would be great!


This thread is a great find. According to it, there's a community repository which has been seeing some activity, might be worth looking into it: https://github.com/andykorth/opentk/ (Pinging @andykorth if you'd like to weigh in...)

Maybe Inertia,who runs the website if I understand correctly and wants to keep the OpenTK brand "clean", would be willing to host a community build alongside the official OpenTK or something? I'll try to get him to look at this thread so that we can discuss.

For Inertia, andykorth and others from the OpenTK community who might end up reading this: MonoGame uses OpenTK on Windows and Linux, we've been working around various bugs in it and are being held back by the lack of updates & fixes since the_fiddler has become mostly unreachable. Seems like we're not the only ones so in the interest of avoiding duplication of work and fragmentation, if anyone has anything interesting to share or suggest regarding what's could be the next move for OpenTK, we'd love to hear it.

The way I see it, if nobody's willing or able to take over the official OpenTK, the community could create a derived brand, something that says it's a flavor of OpenTK but community-maintained. Then we can start collecting patches & issues on GitHub and set up a roadmap for a new release maybe? Depends on who's up for what.

Either way, I think we really need to go the DVCS (aka. Git & co) way so that projects depending on OpenTK can move at their own pace while sharing work and avoiding duplicating efforts / losing great patches. If we can have a common base repository (maybe mono/opentk or andykorth/opentk can be that? I don't know), this would be a great step forward already. SVN is OK for projects with strong leadership but this isn't OpenTK anymore.

@tomspilman
Member

We'll see what happens with @thefiddler and if that turns out to be the real thing.

The @andykorth repo seems like a logical place for the MonoGame team to contribute. They already have lots of fixes and improvements committed there.

@thefiddler

Yes, this is "the real thing" in the sense that I'm the upstream maintainer of OpenTK. I'm trying to revive the project, but tracking two years worth of out-of-tree development with SVN is pretty much impossible. Git is the way forward.

My repository is a direct mirror from Sourceforge, while @andykorth contains both bug fixes and new features. It was tempting to branch my repo directly from @andykorth, but that might make it more complicated to merge from other repos based on upstream. (This may or may not be a problem in practice - cannot tell at this point.)

If you are basing MonoGame on @andykorth then it makes sense to contribute there, otherwise ping me directly. (I will track changes in either case.)

@tomspilman
Member

@thefiddler - That is fantastic news!

Ideally we would work from the official OpenTK repo and help you in whatever way we can.

@dellis1972 @elisee @slygamer - How do you want to proceed in light of this news?

@KonajuGames
Collaborator

@andykorth appears to have many fixes that could be very useful for us. It
would depend on how long it takes to get those fixes merged back into the
official repo if we were to go that with @thefiddler's repo.

@dellis1972
Collaborator

@thefiddler great news :)

Just out of curiosity how would you feel about moving the main opentk repo
to the mono/opentk area? I know the people we need to talk to do get this
done and we can get you admin rights on it too. It also means we can add
other contributors as well to other people can mange pull requests.

Dean

On 11 March 2013 11:33, slygamer notifications@github.com wrote:

@andykorth appears to have many fixes that could be very useful for us. It
would depend on how long it takes to get those fixes merged back into the
official repo if we were to go that with @thefiddler's repo.


Reply to this email directly or view it on GitHubhttps://github.com/mono/MonoGame/issues/1528#issuecomment-14708401
.

@thefiddler

Makes sense, this should increase the bus factor, too. Please go ahead.

2013/3/11 Dean Ellis notifications@github.com

@thefiddler great news :)

Just out of curiosity how would you feel about moving the main opentk repo
to the mono/opentk area? I know the people we need to talk to do get this
done and we can get you admin rights on it too. It also means we can add
other contributors as well to other people can mange pull requests.

Dean

On 11 March 2013 11:33, slygamer notifications@github.com wrote:

@andykorth appears to have many fixes that could be very useful for us.
It
would depend on how long it takes to get those fixes merged back into
the
official repo if we were to go that with @thefiddler's repo.


Reply to this email directly or view it on GitHub<
https://github.com/mono/MonoGame/issues/1528#issuecomment-14708401>
.


Reply to this email directly or view it on GitHubhttps://github.com/mono/MonoGame/issues/1528#issuecomment-14709950
.

@dellis1972
Collaborator

ok, I'll get that organised for you and post here when its done so links
can be updated etc.

On 11 March 2013 13:11, thefiddler notifications@github.com wrote:

Makes sense, this should increase the bus factor, too. Please go ahead.

2013/3/11 Dean Ellis notifications@github.com

@thefiddler great news :)

Just out of curiosity how would you feel about moving the main opentk
repo
to the mono/opentk area? I know the people we need to talk to do get
this
done and we can get you admin rights on it too. It also means we can add
other contributors as well to other people can mange pull requests.

Dean

On 11 March 2013 11:33, slygamer notifications@github.com wrote:

@andykorth appears to have many fixes that could be very useful for
us.
It
would depend on how long it takes to get those fixes merged back into
the
official repo if we were to go that with @thefiddler's repo.


Reply to this email directly or view it on GitHub<
https://github.com/mono/MonoGame/issues/1528#issuecomment-14708401>
.


Reply to this email directly or view it on GitHub<
https://github.com/mono/MonoGame/issues/1528#issuecomment-14709950>
.


Reply to this email directly or view it on GitHubhttps://github.com/mono/MonoGame/issues/1528#issuecomment-14712312
.

@thefiddler

Thanks!

2013/3/11 Dean Ellis notifications@github.com

ok, I'll get that organised for you and post here when its done so links
can be updated etc.

On 11 March 2013 13:11, thefiddler notifications@github.com wrote:

Makes sense, this should increase the bus factor, too. Please go ahead.

2013/3/11 Dean Ellis notifications@github.com

@thefiddler great news :)

Just out of curiosity how would you feel about moving the main opentk
repo
to the mono/opentk area? I know the people we need to talk to do get
this
done and we can get you admin rights on it too. It also means we can
add
other contributors as well to other people can mange pull requests.

Dean

On 11 March 2013 11:33, slygamer notifications@github.com wrote:

@andykorth appears to have many fixes that could be very useful for
us.
It
would depend on how long it takes to get those fixes merged back
into
the
official repo if we were to go that with @thefiddler's repo.


Reply to this email directly or view it on GitHub<
https://github.com/mono/MonoGame/issues/1528#issuecomment-14708401>
.


Reply to this email directly or view it on GitHub<
https://github.com/mono/MonoGame/issues/1528#issuecomment-14709950>
.


Reply to this email directly or view it on GitHub<
https://github.com/mono/MonoGame/issues/1528#issuecomment-14712312>
.


Reply to this email directly or view it on GitHubhttps://github.com/mono/MonoGame/issues/1528#issuecomment-14714622
.

@andykorth

Hi everyone! Great to see you, @thefiddler!

The main purpose (in my mind) of the https://github.com/andykorth/opentk/ is to collect fixes from the community while the maintainer is indisposed. It does contain some pretty vital fixes for Mac and Windows 7/8. There are also a handful of additions- mostly minor things like new methods in Matrix* or Vector*.

I am very hopeful these changes make it into some official branch somehow. By and large they are pretty independent, and you should be able to cherry-pick the parts you like.

MonoGame uses OpenTK on Windows and Linux, we've been working around various bugs in it and are being held back by the lack of updates & fixes

I did spend some time trying to get OpenTK to the point where it would work on Mac, but didn't really succeed. I don't have a whole lot of experience with OpenTK, so I'm hesitant to make huge changes. It's all based on carbon APIs instead of Cocoa, and there's some concern that some of that will be dropped in the next couple of years. I've personally recommended people interested in Mac support look to GLFW.

The way I see it, if nobody's willing or able to take over the official OpenTK, the community could create a derived brand, something that says it's a flavor of OpenTK but community-maintained.
The @andykorth repo seems like a logical place for the MonoGame team to contribute.
If you are basing MonoGame on @andykorth then it makes sense to contribute there, otherwise ping me directly.

I'm fine with any of these. The OpenTK forum community was concerned about unauthorized clones, people injecting malicious code into the project, or otherwise lowering the quality of the project. I think now that @thefiddler has weighed in, some of those concerns will be alleviated.

I do like the idea of mono/openTK as the official home. It does seem to get more traffic.

@tomspilman
Member

is to collect fixes from the community while the maintainer is indisposed

Ideally putting OpenTK on GitHub can make maintaining things less of a chore. It would preferable to eventually see more than one person with merge access to OpenTK, but I suppose it might be a while before that happens.

The good news is that pull requests for fixes can come in and be publicly discussed and reviewed by the community. This extra scrutiny should improve the quality of submitted code and make it safer to merge.

I am very hopeful these changes make it into some official branch somehow.

Yea... this would be ideal for MonoGame as well.

OpenTK to the point where it would work on Mac

Ideally we can just get some fixes in there first.

Long term I agree that someone needs to do the heavy lift and spearhead a Cocoa implementation.

@dellis1972
Collaborator

I've started making arrangements to get the mono/opentk repo setup so a few
of us can get admin rights and then we can add contributors after that (I
think).

On 11 March 2013 19:58, Tom Spilman notifications@github.com wrote:

is to collect fixes from the community while the maintainer is indisposed

Ideally putting OpenTK on GitHub can make maintaining things less of a
chore. It would preferable to eventually see more than one person with
merge access to OpenTK, but I suppose it might be a while before that
happens.

The good news is that pull requests for fixes can come in and be publicly
discussed and reviewed by the community. This extra scrutiny should improve
the quality of submitted code and make it safer to merge.

I am very hopeful these changes make it into some official branch somehow.

Yea... this would be ideal for MonoGame as well.

OpenTK to the point where it would work on Mac

Ideally we can just get some fixes in there first.

Long term I agree that someone needs to do the heavy lift and spearhead a
Cocoa implementation.


Reply to this email directly or view it on GitHubhttps://github.com/mono/MonoGame/issues/1528#issuecomment-14738626
.

@dellis1972
Collaborator

@thefiddler can you get me your email address I need to put you in touch with the mono guys so we can manage the transition to the mono/opentk repo as there are other products using that repo so we need to be careful not to break anything :)

@thefiddler

@dellis1972 is there some way to send a pm on github?

I have started working on a Cocoa-based implementation that adds support for OpenGL 3.x and HiDPI display modes to OpenTK. Context creation is working, window creation not so much. No ETA yet, I'll publish the branch once I clean it up a bit.

@dellis1972
Collaborator

@thefiddler, I've updated my profile with my email address :)

On 12 March 2013 13:27, thefiddler notifications@github.com wrote:

@dellis1972 https://github.com/dellis1972 is there some way to send a
pm on github?

I have started working on a Cocoa-based implementation that adds support
for OpenGL 3.x and HiDPI display modes to OpenTK. Context creation is
working, window creation not so much. No ETA yet, I'll publish the branch
once I clean it up a bit.


Reply to this email directly or view it on GitHubhttps://github.com/mono/MonoGame/issues/1528#issuecomment-14774745
.

@andykorth

@thefiddler Could you please stop by this OpenTK thread and address Inertia's concern?
http://www.opentk.com/node/3280

I'm just the messenger here. shrugs

@Mailaender

Subscribing to this because https://github.com/OpenRA/OpenRA might want to get rid of their old custom patched Tao, too and not switch from a dead upstream to another dead upstream.

@sulix
sulix commented Mar 14, 2013

Just to gatecrash to party for a second: I've been working on a version of OpenTK with an SDL2 backend (https://github.com/sulix/opentk-sdl2 ). It's not quite finished and it does break some of OpenTK's expected functionality, but (so far) it's proving much more stable than upstream OpenTK, particularly with a few patches to MonoGame (https://github.com/sulix/MonoGame branch 'opentk-sdl2') to simplify things.

Would people be interested in merging this backend with upstream OpenTK, or otherwise replacing much of OpenTK and/or MonoGame's platform handling code with SDL2, which already supports all of the supported platforms? SDL2 is binary-incompatible with SDL1.2, so any use of that would have to be replaced (I've got a new "Song" backend for Linux MonoGame in the works, and GamePad support would need replacing), but there are a couple of games in development that are planning to use this backend, so it'd be great to get it upstream.

Cheers,
-- David

@tomspilman
Member

@sulix

Would people be interested in merging this backend with upstream OpenTK

You would have to take that up with the OpenTK maintainers once all that is setup.

replacing much of OpenTK and/or MonoGame's platform handling code with SDL2

I doubt it. By targeting OpenTK we get Windows GL, Linux, Mac, iOS, and Android with mostly a single code path. Using SDL2 means adding another code path that further splits the mobile code from the desktop code.

I just don't think that is moving us in the right direction.

@sulix
sulix commented Mar 14, 2013

You do know SDL2 supports all of the platforms you just mentioned, right? :)

-- David

@tomspilman
Member

You do know SDL2 supports all of the platforms you just mentioned, right? :)

It would be pretty hard for me to know that since http://www.libsdl.org doesn't talk about SDL2 features at all. I don't have time to go searching source code for features. ;)

Still there is a lot more that OpenTK already gives us. SDL2 would have to:

  1. Not be beta or pre-release.
  2. Have an existing C# wrapper.
  3. Work with Xamarin.iOS and Xamarin.Android.
  4. Get SDL2 whitelisted for the free starter editions of Xamarin tools.
@Mailaender

@sulix I am interested in your project for SDL 2 + OpenGL/OpenAL bindings in C#. This is exactly what we need for OpenRA. The OpenTK philosophy is unlike it's predecessor Tao to stay pure and simple, even create a replacement for libraries like SDL. You can showcase your SDL 2 C# bindings at the http://opentk.com project gallery however.

@antonijn

For the people interested, I'm currently working on a project similar to @sulix 's, but using GLFW instead of SDL2.

Here's the github page: https://github.com/antonijn/Pencil.Gaming
Rationale: http://antonijndev.blogspot.nl/2013/02/pencilgaming-because-everything-else-is.html
OpenTK forum page: http://www.opentk.com/node/3276

I'd be very happy if some of you could perhaps give it a try!

@Chaosus
Chaosus commented Mar 18, 2013

I cant belive.. OpenTK is alive ? This is great news.

@Mailaender

It seems pretty dead. A co-maintainer claims that @thefiddler is an impostor (you should really validate your identity with a proper public e-Mail or a clarifying forums post) and that he can't be bothered to register for social network websites (he means GitHub...) plus he does not want to support the project for free. http://www.opentk.com/node/3217?page=4

@tomspilman
Member

@dellis1972 - Can you fill everyone in on what is going on behind the scenes here?

@dellis1972
Collaborator

lol, @tomspilman, I was just writing this up :)

Everyone, we are working on getting the HEAD of the SVN moved into the
mono/opentk repository , also a number of people will be given contributor
rights to this repo to allow Pull Requests to be processed, hopefully this
will engage the OpenTK community to move the project forward.

We might even be able to provide some Continuous integration like we have
for MonoGame for this project so that Pull Requests can be checked.

Obviously there is allot to sort out, we are getting the right people
access to the mono repository then we need to merge the changes in. This
might take a few weeks to get this all organised.

On 18 March 2013 10:13, Tom Spilman notifications@github.com wrote:

@dellis1972 https://github.com/dellis1972 - Can you fill everyone in on
what is going on behind the scenes here?


Reply to this email directly or view it on GitHubhttps://github.com/mono/MonoGame/issues/1528#issuecomment-15047097
.

@Robmaister

Been subscribed to this issue for a while. Had a few changes (mostly in the math classes) that I kept on a GitHub organization until @andykorth created his repo, when I recreated my repo as a fork of his and merged all my changes in.

I have access to Andy's repo and I haven't abused that privilege, and I'd like to help with the Mono repo. Whether or not that involves getting access to the repo, I'll still be help out with reviewing pull requests to keep the code clean and taking on some issues/feature requests when I have free time.

Also it would be nice to get some sort of confirmation that @thefiddler is who he says he is, especially with Inertia on the OpenTK forums claiming he's an impostor. (Though if he's making some fairly large, useful changes that are reviewed for malicious code, I don't think it really matters whether or not he's the person he claims to be)

@HariSeldon85

Hi at everyone,

I've come here looking for some info on the "window resize bug on Linux" on monogame.
( #628 (comment) )
I've tried the latest version of monogame and monogame develop 3D (both with their own version of opentk and the one provided by debian sid ) but I had no luck: I can't get the window of the size I want, and i can't neither have my game in fullscreen on linux.

I'm wondering: How Supergiant Team (Bastion makers) could they do that? Bastion works perfectly in Linux in fullscreen or windowed mode.
I've tried also to compile the supergiant fork of monogame: same issue for me.

Maybe I am missing something? There's a way to have "monogame application" of a specific window size OR full screen ??

Thanks to everyone,
HS

@darkling3100

@HariSeldon85 #1527

^ Fix worked perfectly for me

@HariSeldon85

@darkling3100

Ok, now the resize of the window works correctly, but the "fullscreen" mode is broken .

With this fix I cannot go full-screen! Have you the same behaviour?

@darkling3100

No this fix actually worked perfectly for me hmm... may want to ask @elisee if he has any clues what might be wrong.

@Khaoz512
Khaoz512 commented Apr 6, 2013

Hello, I have been looking into this... the issue remains in the latest stable release 3.0.1 for me so I tried the develop build where it seems to be fixed.

Only problem is that for some reason in the develop build I'm getting a weird error in an unexpected place.
When trying to use linq to read a XML I get this error
Error CS0584: Internal compiler error: Method not found: 'Microsoft.Xna.Framework.Graphics.GraphicsExtensions.OpenGL11'. (CS0584) (LinuxGameTest)

I can load the XML just fine in the stable build 3.0.1

@tomspilman
Member

@Khaoz512 @darkling3100 @HariSeldon85 - Please move further discussion to another thread.

@elisee
elisee commented Apr 21, 2013

Any update about the status of mono/opentk or thefiddler/opentk?

@dellis1972
Collaborator

@thefiddler seems to have disappeared again, we are currently waiting on
him for some agreement on how we get the head of svn into the master and
not mess up the upstream xamarin based stuff.

On 21 April 2013 18:08, elisee notifications@github.com wrote:

Any update about the status of mono/opentk or thefiddler/opentk?


Reply to this email directly or view it on GitHubhttps://github.com/mono/MonoGame/issues/1528#issuecomment-16734687
.

@Frassle
Frassle commented Aug 1, 2013

Another bump for interest on this issue. If getting the old svn repo into mono has fallen through the floor could @andykorth's repo get taken over as the main repo (it seems to be the only active repo and what I'm forked off).
Just taking a jump and getting an active repo setup seems way more important right now than spending more time on deciding what would be best!
If a mono/opentk repo is setup and can start being worked on again then I assume those update will also find their way into android and ios releases as well as windows/linux/mac?
Once an active repo is set up new discussions on how OpenTK should evolve can really start.

@Frassle Frassle referenced this issue in andykorth/opentk Aug 1, 2013
Closed

Future of OpenTK #16

@dellis1972
Collaborator

Xamarin just made an announcement about the future of opentk

http://forums.xamarin.com/discussion/7598/opentk-maintenance-work?new=1

@Robmaister

Yup, official repo moved to GitHub as well: https://github.com/opentk/opentk

@thefiddler

Also of interest: https://github.com/kungfubanana/MonoGame-Dependencies/pull/43

Improved stability, (tremendously) faster startup, OpenGL 4.4 / ES 3.0, and a new SDL2 backend. Even better, the changes are internal to OpenTK, so no changes are required on the MonoGame side.

Current focus is on the gamepad branch, which adds a sane GamePad API based on XInput and SDL_GameController. This is a heavy WIP.

Next step will be to integrate the Xamarin-maintained versions and unify the OpenGL ES bindings across platforms (i.e. common enumerations and ref/out parameters.)

After that, the plan is to create a PCL version and add official support for SteamOS and Windows/Metro.

@thefiddler

OpenTK 1.1 was released two weeks ago and is already distributed in various Linux distributions. It contains fixes for window sizing, fullscreen modes, joystick hotplugging and almost all other known platform support issues.

Furthermore, the platform modules are now optional. OpenTK can now be used as a pure OpenGL 4.x binding (<200KB dll) and combined with SDL, Qt, VTK, etc for platform support - example code and benchmarks at thefiddler/opentk-perftest

@thefiddler thefiddler closed this Mar 3, 2014
@andykorth andykorth referenced this issue in opentk/opentk Feb 6, 2016
@Frassle Frassle Notice of leave 2e51fe0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment