New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GUI system #20

Closed
craftworkgames opened this Issue Aug 3, 2015 · 21 comments

Comments

6 participants
@craftworkgames
Owner

craftworkgames commented Aug 3, 2015

Just about every game needs some sort of GUI these days. There are a few old XNA GUI projects floating around but there seems to be a gaping hole the market particularly with GUI's designed for mobile devices.

This isn't the first time I've attempted to make a GUI system for MonoGame either. There's still an old fork of one of them from ages ago. There's even a more modern one in an experimental game engine I wrote.

@WardBenjamin

This comment has been minimized.

Contributor

WardBenjamin commented Aug 3, 2015

I wrote a simple, basic GUI system for a prototype of mine a while ago, but adapting a more full-featured system would probably be better for us. Honestly I think a major dependency of our GUI will be an actually working Event-based input system, especially for buttons, text input, and similar elements.

@craftworkgames

This comment has been minimized.

Owner

craftworkgames commented Aug 3, 2015

Honestly I think a major dependency of our GUI will be an actually working Event-based input system, especially for buttons, text input, and similar elements.

Yes that's true. The GUI shouldn't be the first thing we try to tackle. It will be built upon the foundations of the other features.

@ClassicThunder

This comment has been minimized.

Contributor

ClassicThunder commented Aug 3, 2015

I think it is dependent on the event driven library and the texture packer library. The scene graph would be nice but isn't necessarily needed.

@craftworkgames

This comment has been minimized.

Owner

craftworkgames commented Aug 3, 2015

The scene graph would be nice but isn't necessarily needed.

I agree. I added it just in case.

I think it is dependent on the event driven library and the texture packer library.

I'm not really sure how we go about prioritizing the work. I have setup a Trello board if that helps. I don't want to get too bogged down by formalities though.

The main reason I created all these issues is to give a high level overview of thoughts and a place to discuss things.

@EmptyKeys

This comment has been minimized.

EmptyKeys commented Sep 20, 2015

So did you think about using Empty Keys UI? Would solve some of your issues and you could focus on other stuff tho. I already have input, shapes and ofc full working UI. :)

@craftworkgames

This comment has been minimized.

Owner

craftworkgames commented Sep 20, 2015

@EmptyKeys

So did you think about using Empty Keys UI?

I've certainly considered Empty Keys UI. You guys seem to be doing some interesting work over there based on the screenshots. Currently we are focusing on building a solid foundation for the project and I'll be tackling the GUI side of things a little later.

I just downloaded the examples to take a closer look and got a bunch of compile errors. At a glance I guess it's because I didn't download the actual Empty Keys library which in hindsight seems obvious. Then I was blocked on downloading the library because I need to sign up first.

Then I tried logging in with my Google account which was immediately followed by "Access Denied You are using an unverified account. Please verify your account by clicking on the link contained in the verification email we've already sent to you."

Okay, so I verified my account and finally downloaded the library. Now I don't know what to do with it? I can see a bunch of DLLs that I'm probably going to have to extract somewhere and reference from the examples. Seems like a bit of a pain, I guess I'll do it later.

The whole experience feels a bit hostile. Your GUI library looks cool but the barrier to entry needs some work. I'm not trying to offend you or anything, I'm just telling you about my experience as a first time user so you can hopefully make it better.

@EmptyKeys

This comment has been minimized.

EmptyKeys commented Sep 21, 2015

There is readme with examples, guess no one reads it. :)

I had to put zip version behind registration, coz army of bots were storming my site. You can always use NuGet if you like it, it's over here - https://www.nuget.org/packages?q=Empty+Keys

@craftworkgames

This comment has been minimized.

Owner

craftworkgames commented Sep 21, 2015

There is readme with examples, guess no one reads it. :)

I read the readme, but I guess I didn't read it very well :)

I had to put zip version behind registration, coz army of bots were storming my site.

Only one of the downloads is behind registration. The bots didn't attack the examples?

You can always use NuGet if you like it

Using NuGet packages for the examples would make the whole process much smoother.

Other suggestions:

  • Put a readme in the EmptyKeysUIv1900.zip file.
  • Keep the readme short and to the point. Better yet, also publish them on a download page.
  • Promote the use of the NuGet packages. I didn't see them mentioned anywhere until you told me.

With a bit more fiddling I did actually get the examples working. It looks like a very solid UI library and if it fits into the MonoGame.Extended project in the future I'll be happy to do it. It's not completely obvious how that would work yet though.

That said, it feels like a UI library that's targeted at desktop applications. At least that's the impression I got from the examples. There's nothing wrong with that of course, but it doesn't feel like a good fit for making games, particularly on mobile devices. An example of how it could be used in a game could go a long way.

@EmptyKeys

This comment has been minimized.

EmptyKeys commented Sep 21, 2015

Examples zip is hosted on GitHub so no idea, if they do. I was thinking to put lib to examples repo/zip (or using NuGet as you said) but both sites have terrible statistics. NuGet stats are not working for few months and it's one of the reasons, why I don't promote it that much. I would loose all the stats info. I will wait for NuGet to fix it tho.

You could make desktop app too that's true, but it's a UI with styles, control and data templates support. So you can change look and feel of every control. For example I created custom version of UI for Space Engineers - http://emptykeys.com/Community/aft/65

@cra0zy

This comment has been minimized.

Contributor

cra0zy commented Oct 5, 2015

@craftworkgames What is your current plan with this?

@craftworkgames

This comment has been minimized.

Owner

craftworkgames commented Oct 5, 2015

@cra0zy I've got a half finished GUI project that I started years ago. My plan is to start with that and integrate it into the library very soon. I was a bit busy with something else last week but this is the next thing I'll be working on.

Are you looking for something to do?

@cra0zy

This comment has been minimized.

Contributor

cra0zy commented Oct 5, 2015

I've got a half finished GUI project that I started years ago.

I coincidentally also have a GUI framework I wrote long time ago, it has the following controls:

  • Button
  • Label
  • TextBox
  • CheckBox
  • RadioButton
  • ChatTextView
  • Window
  • ChatWindow

plus extra stuff:

  • Cursor
  • Theme

Are you looking for something to do?

Yup

@craftworkgames

This comment has been minimized.

Owner

craftworkgames commented Oct 6, 2015

I coincidentally also have a GUI framework I wrote long time ago

Cool. Can I take a closer look at it?

Yup

Okay, well I've created a new branch called gui_system. If you want to get started do it in that branch and when I get around to it I'll work on it with you.

@cra0zy

This comment has been minimized.

Contributor

cra0zy commented Oct 6, 2015

Cool. Can I take a closer look at it?

I will let you take a closer look once I rewrite it a bit... You know whenever you look at your old code you kind of feel ashamed that you wrote it because you see thousands of things you could have done better...

Okay, well I've created a new branch called gui_system. If you want to get started do it in that branch and when I get around to it I'll work on it with you.

Great. Do I setup PRs for it or do I commit straight to it (because the way you are talking it sounds like I should commit straight to it)?

@craftworkgames

This comment has been minimized.

Owner

craftworkgames commented Oct 6, 2015

Do I setup PRs for it or do I commit straight to it

I'm just trying to get into the habit of working in branches so that I can keep the master clean and releasable. We are starting to add bigger features to the library which is great but it also makes it more difficult to keep the release cycle short with lots of half finished features.

This is the first time I've ran an open source project with so many contributors. It's very exciting to see lots of interest in the library. However, I'm still learning how to manage everything properly. I do a similar thing for my day job but there's a number of differences in the open source world I'm still getting used to. It's a surprising amount of work... lol.

Anyway, for the moment just make a fork of the gui_system branch and start working on it. I'll take a look at what you've done and then we'll do PR's.

@cra0zy

This comment has been minimized.

Contributor

cra0zy commented Oct 9, 2015

Status update, I was a bit busy the last few days, tomorrow and the day after I will be free so I will be working on this. Expect to see a PR "The Day After Tomorrow", and don't watch tho movie.... it sucked...

@craftworkgames

This comment has been minimized.

Owner

craftworkgames commented Oct 9, 2015

No problem.

@craftworkgames

This comment has been minimized.

Owner

craftworkgames commented Jan 19, 2016

Just so everyone knows. I've started working on a GUI system.

@ghost

This comment has been minimized.

ghost commented Jan 19, 2016

This branch is 90 commits behind master.

I can't wait to see how this looks!! 😄

@craftworkgames craftworkgames changed the title from GUI library to GUI system Feb 6, 2016

@killerrin

This comment has been minimized.

Contributor

killerrin commented Jul 5, 2016

Hey @craftworkgames how's the progress on the GUI system going? I noticed that you started to merge some items in?

@craftworkgames

This comment has been minimized.

Owner

craftworkgames commented Jul 7, 2016

@killerrin Progress is going slow. I've had the flu lately and I've been really tired. However, I have been doing little bits here and there.

The reason I've been working directly in the develop branch is because I'm also working on a GUI editor and I need to regularly re-build the MonoGame.Extended NuGet package. Our build server is already setup to do that on each check-in so that makes life easier.

Tbh, the GUI system has been a real thorn in my backside. I've re-designed it a few times and thrown out a lot of code. However, I'm determined to get it done this time so I'm taking my time with it.

@craftworkgames craftworkgames added this to the Version 0.6 milestone Jul 15, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment