Pages: 1 2 [3]
  Print  
Author Topic: LateralGM seems a little clunky overall, Ideas but not sure how to develop them.  (Read 7289 times)
Offline (Male) Goombert
Reply #30 Posted on: November 14, 2015, 09:13:39 PM

Contributor
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3060

View Profile
See I already knew when I started reading this that Lazarus was used for the Mac port. I did not, however, know it was used in an attempted Linux port.

The only thing to note HitCoder is that Lazarus may not be as documented as Windows Forms, GTK#, or Qt Framework. So using that you might not be able to find answers to your problems as easily.
Logged
Offline (Male) HitCoder
Reply #31 Posted on: November 15, 2015, 06:12:41 AM

Member
Location: King's Lynn, Norfolk, England, United Kingdom
Joined: Aug 2014
Posts: 128

View Profile WWW Email
See I already knew when I started reading this that Lazarus was used for the Mac port. I did not, however, know it was used in an attempted Linux port.

The only thing to note HitCoder is that Lazarus may not be as documented as Windows Forms, GTK#, or Qt Framework. So using that you might not be able to find answers to your problems as easily.

Yea, I'm sticking to VS, I'm currently learning to use it and I'll need the skills in future too anyways. It looks like this project will be moving forwards however, rather than just being an idea I had that would never come to life.
Would you rather me make a new thread, or should I post updates here?
Logged
Offline (Male) Goombert
Reply #32 Posted on: November 15, 2015, 09:44:06 AM

Contributor
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3060

View Profile
It's whatever you want to do. I'd post it in Third Party because people rarely post there and it's the best category since none of us are helping directly.
http://enigma-dev.org/forums/index.php?board=47.0

Not that I won't give you any code that you need.

Some things you should try to consider are the following:
1) Internationalization and localization. This is translating the GUI controls to other languages. NOW, you don't need to actually translate it to a language, which is localization or l10n people call it. You only need to worry about i18n or internationalization, this means just preparing the application to be translated. All this means is that anytime you create a GUI control with text, any user facing text, you put it in a resource file that can be translated.

It's not difficult at all, you don't need to worry about layouts or anything, Windows Forms will fix itself automatically just like Swing for right to left languages like Arabic. All you have to do is put all of the text fields in a properties file.
https://github.com/IsmAvatar/LateralGM/blob/master/org/lateralgm/messages/messages.properties
Just like LateralGM. You should also do this for keyboard shortcuts because keyboard layouts are different for almost all locale's. Again, you don't need to actually translate it to another language, just use properties files so that users can replace them if they want to bring it to their own language. This part is important because YoYoGames completely ignores anything other than UK English, so it's a good feature to have over them.
This is something made easy by both .NET, Swing, and JavaFX. Qt and GTK not so much, they use binary translations, so you have to inline the translated strings and then use a special tool to create a localized resource. For how to do it with Windows Forms, you use a satellite assembly (really easy):
http://blogs.msdn.com/b/global_developer/archive/2011/07/22/introduction-to-satellite-assemblies.aspx

2) Try to make the icons customizable so users can throw out the icons and replace them with other ones if they like. You don't need to include 50 icon packs, just do as LGM does and use 1 but make it external so users can replace the icons. You can get the LGM icon pack which is custom made by Josh on GitHub, see the releases page/tab.
https://github.com/enigma-dev/Calico-Icon

3) Try to focus at first on small isolated components. Lay the ground work for your project first. The first thing you could do for example is create a custom color picking control, you'll need one to select instance color and room background color and in a few other places. You can see the one that the new LGM has, it's a very simple control.


Another control you could prepare is the search text field, a generic control with a hint/watermark, because you may have some uses for it as well. Following Stack Overflow will give you some examples.
http://stackoverflow.com/questions/2487104/how-do-i-implement-a-textbox-that-displays-type-here

I am simply suggesting all of these because they may make your life easier in the long run. Once you get going with the ground work you should just be pulling all of the little pieces together. If you follow my advice your chances of failure will decrease.
« Last Edit: November 15, 2015, 09:52:33 AM by Robert B Colton » Logged
Offline (Male) HitCoder
Reply #33 Posted on: November 19, 2015, 11:41:04 AM

Member
Location: King's Lynn, Norfolk, England, United Kingdom
Joined: Aug 2014
Posts: 128

View Profile WWW Email
It's whatever you want to do. I'd post it in Third Party because people rarely post there and it's the best category since none of us are helping directly.
http://enigma-dev.org/forums/index.php?board=47.0

Not that I won't give you any code that you need.

Some things you should try to consider are the following:
1) Internationalization and localization. This is translating the GUI controls to other languages. NOW, you don't need to actually translate it to a language, which is localization or l10n people call it. You only need to worry about i18n or internationalization, this means just preparing the application to be translated. All this means is that anytime you create a GUI control with text, any user facing text, you put it in a resource file that can be translated.

It's not difficult at all, you don't need to worry about layouts or anything, Windows Forms will fix itself automatically just like Swing for right to left languages like Arabic. All you have to do is put all of the text fields in a properties file.
https://github.com/IsmAvatar/LateralGM/blob/master/org/lateralgm/messages/messages.properties
Just like LateralGM. You should also do this for keyboard shortcuts because keyboard layouts are different for almost all locale's. Again, you don't need to actually translate it to another language, just use properties files so that users can replace them if they want to bring it to their own language. This part is important because YoYoGames completely ignores anything other than UK English, so it's a good feature to have over them.
This is something made easy by both .NET, Swing, and JavaFX. Qt and GTK not so much, they use binary translations, so you have to inline the translated strings and then use a special tool to create a localized resource. For how to do it with Windows Forms, you use a satellite assembly (really easy):
http://blogs.msdn.com/b/global_developer/archive/2011/07/22/introduction-to-satellite-assemblies.aspx

2) Try to make the icons customizable so users can throw out the icons and replace them with other ones if they like. You don't need to include 50 icon packs, just do as LGM does and use 1 but make it external so users can replace the icons. You can get the LGM icon pack which is custom made by Josh on GitHub, see the releases page/tab.
https://github.com/enigma-dev/Calico-Icon

3) Try to focus at first on small isolated components. Lay the ground work for your project first. The first thing you could do for example is create a custom color picking control, you'll need one to select instance color and room background color and in a few other places. You can see the one that the new LGM has, it's a very simple control.


Another control you could prepare is the search text field, a generic control with a hint/watermark, because you may have some uses for it as well. Following Stack Overflow will give you some examples.
http://stackoverflow.com/questions/2487104/how-do-i-implement-a-textbox-that-displays-type-here

I am simply suggesting all of these because they may make your life easier in the long run. Once you get going with the ground work you should just be pulling all of the little pieces together. If you follow my advice your chances of failure will decrease.

Okay, I will consider all of this for when I make a serious build, thank you :)
Logged
Offline (Male) HitCoder
Reply #34 Posted on: November 19, 2015, 04:25:58 PM

Member
Location: King's Lynn, Norfolk, England, United Kingdom
Joined: Aug 2014
Posts: 128

View Profile WWW Email
Quick bump, I really don't want to make an account on a ms board and I can't find anything on Google, but when I compile my EXE and try to run it outside of VS it makes my cursor "working in background", task manager has three new processes that I can not kill and the program GUI doesn't show up on my screen. I copied it to my laptop and same issue. What did I do wrong?
Logged
Offline (Male) Goombert
Reply #35 Posted on: November 19, 2015, 06:46:29 PM

Contributor
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3060

View Profile
I can't really say for certain unless you tell me whether you used the MSI installer method to build the exe or directly copied and pasted it from the /release /debug folder. If that is what you did you likely forgot to copy some of the DLL's, you can't do that because they are needed assemblies. Tell us exactly what you did to build it and copy it to the laptop.
Logged
Offline (Male) HitCoder
Reply #36 Posted on: November 20, 2015, 05:27:41 AM

Member
Location: King's Lynn, Norfolk, England, United Kingdom
Joined: Aug 2014
Posts: 128

View Profile WWW Email
I directly copied and pasted it from the \release folder, there are no required DLL files and I've copied it in the past and it worked fine.
Logged
Offline (Male) Goombert
Reply #37 Posted on: November 20, 2015, 01:02:19 PM

Contributor
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3060

View Profile
It might be having trouble looking for the Scintilla assembly though, try using the MSI installer method or see if you can flag the Scintilla assembly to be copied to the target directory. I can't say unless I get the chance to try to build it myself if I find some time here maybe over the weekend.
Logged
Offline (Male) HitCoder
Reply #38 Posted on: November 20, 2015, 04:03:42 PM

Member
Location: King's Lynn, Norfolk, England, United Kingdom
Joined: Aug 2014
Posts: 128

View Profile WWW Email
It might be having trouble looking for the Scintilla assembly though, try using the MSI installer method or see if you can flag the Scintilla assembly to be copied to the target directory. I can't say unless I get the chance to try to build it myself if I find some time here maybe over the weekend.

I'm not using SharpGM, I'm making something separate and there are no dll extensions,
Logged
Offline (Male) Goombert
Reply #39 Posted on: November 20, 2015, 10:06:08 PM

Contributor
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3060

View Profile
I don't know then I am out of ideas. I tried this with a Windows Forms app I built for my class. It runs fine outside of the IDE, even copying just the exe by itself to the desktop. Perhaps you have conflicted .NET installations or something else? I would test again with a new Windows Forms project and double check again just to make sure. If it occurs then I would say you have a bigger problem.

« Last Edit: May 31, 2016, 02:41:05 PM by BlitzBert » Logged
Offline (Male) HitCoder
Reply #40 Posted on: May 31, 2016, 02:18:54 PM

Member
Location: King's Lynn, Norfolk, England, United Kingdom
Joined: Aug 2014
Posts: 128

View Profile WWW Email
Haha! I live

Okay so I hate to bump this topic and cause any form of havoc but what I want to say is relevant here.
Or less what I want to say, more so what I would like to debate due to some newer thoughts and feelings;

So I was talking of coding an IDE in C#, which I would still be unable to do as of yet, I could code the IDE but would have no idea how to hook it up to ENIGMA as well as probably making the code extremely messy with lots of loose ends and probably many unfinished sections.

Before I even get started however, I've recently started using Linux more and more often.

Actually, "more and more often" is more than an understatement. I've completely switched from windows, if you want to know why contact me elsewhere and I can debate that topic with you, but here it is off topic.

So because of this, DotNet Frameworks (Visual Studio, C#) is not so well supported, and I would be better off not going down this route. However, I've been messing with QT and.. not getting on very well with it, as I've had very little knowledge on C++. I thought it would be easier than it actually is, I'm still not really comfortable with "->" in place of ".", so I'm feeling quite... confused to say the least.

Yes, I will have to learn C++ at one point and I'm not going to ignore that fact and deny the fact I need to learn it, but is there anything easier to work with that is fully compatible with Linux, and preferably cross platform with Windows as well?

The only other alternative I can think of is making the IDE in Enigma, but I would need to mess with extensions and such, and it would take a lot more work with Enigma to create a usable, stable and smooth interface than it would with something using native desktop toolkits.

Just looking for thoughts of others.

One other thing though, if I made every asset of GUI (following some naming rules etc) and made an IDE layout, designed all of the interfaces and windows, would anyone be interested in extending upon that? I've used many many kinds of editing softwares in the past and have a vision on how I would make an IDE, and I've spent lots of time designing a mental image of what it would look like. I could easily put together the interface for someone to build onto.

Saying this, anyone who does take an interest I would like to respond or contact me directly (pm, email (hitkid61@gmail.com - yeah it's an old email lol), skype (tempest.wolf2) or Discord (HitCoder#4530)) and I do not expect anyone to dedicate much time to this. I don't mind if you only try messing with it in spare time that you need to kill, or anything else.

I'm happy to code stuff in anything that isn't python myself. If you want to know why that is, also contact me privately, it's to do with how my mind works haha.

Anyways I hope I didn't screw up the site by bumping this or waste anyone's time. I just have a large amount of enthusiasm in this kind of thing, but having only recently moved to Linux and only today started working with C++, I don't think I'm anywhere near being able to produce this.

Thanks for reading, if you get annoyed that I wasted your time or anything feel free to punch me if you ever encounter me in the real world.
Thank you. :P

UPDATE: I somehow only just discovered MonoDevelop (hahahaha thanks Pinta Image Editor (alternative to PDN)) and am going to give that a go.
« Last Edit: May 31, 2016, 02:45:46 PM by HitCoder » Logged
Offline (Male) Goombert
Reply #41 Posted on: May 31, 2016, 09:27:26 PM

Contributor
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3060

View Profile
Well don't forget there is Mono with GTK# and WinForms (cross-platform Windows Forms). Also Windows Forms apps do run ok in WINE, they just look a little dated because the GUI component library in WINE looks like Windows 95. GTK# is not too bad. There is also Qt bindings for C#, Python, and Java. Just because you don't know C++ doesn't mean you can't use Qt. Native Windows Forms is my favorite GUI framework and I love the .NET framework. Yes I love Linux too, but Microsoft makes really solid and stable software. LINQ and data binding make it super easy to write an IDE in C# too. LGM had to build a special data binding framework for linking Swing GUI controls to data models. In other words, when you change the value on a control it should store that in a serializable object. It's usually not enough to just save an object or resource when you are done editing it. You have to initialize and sync the controls to a model. For example, if you rename an object, that needs to be sent to the room editor. Data binding lets you accomplish that with fewer lines of code.
http://www.mono-project.com/docs/gui/

There's some other libraries you are forgetting too, including wxWidgets (which I do not recommend you try because even I have trouble building it with Code::Blocks and MinGW is kind of a pile of trash for a compiler port. MinGW is the Windows port of GCC and its underlying tools. There is also the new cross-platform JavaFX GUI API for Java.

I also encourage you to take a look at Rust. Many people will argue how much easier Rust is to use. Rust is a fast native systems programming language like C++ but more expressive and allows you to accomplish things in fewer lines of code. It does not have a -> operator and has only the dot operator. Rust was created by Mozilla and while some important libraries are missing, Rust is picking up steam now that it has reached stable version 1.0.

Also, there is nothing inherently wrong with writing an IDE in ENIGMA, Unity3D's IDE is written in itself. There are also many people here who wanted to make an ENIGMA IDE in ENIGMA itself. I would even support it if it led to improving ENIGMA. I think one of the harder issues with doing it in ENIGMA itself is the added overhead that GameMaker-like objects would have on all of the code.

Also feel free to ask us for any help with code if you need it. We are usually glad to help unless we are otherwise busy or pooped out so to speak.

Edit: lol, I read your post before going to the park for a walk, and I just now noticed you found Mono on your own. Sorry I was going to actually point you to it.
« Last Edit: May 31, 2016, 09:35:37 PM by BlitzBert » Logged
Offline (Male) HitCoder
Reply #42 Posted on: June 05, 2016, 05:15:12 PM

Member
Location: King's Lynn, Norfolk, England, United Kingdom
Joined: Aug 2014
Posts: 128

View Profile WWW Email
Yeah, lol. Anyways considering lgm has been remade once again, this is not as important but the new lgm obviously looks the same, and while it's much more stable and nicer to use my main peeve is the design, but that's not your fault, it's the fact it looks like game maker. I really do dislike the game maker look, and I'm looking forwards to NGM but it looks like that's not going to happen any time soon, so being able to mess with making a custom IDE will both help me develop my skills as well as be able to make the ide idea I crafted in my mind. I might add features and elements others suggest and might make a thread on developing it as I go, screenshots mainly until it gets more functional, and once it's stable enough and can perform enough important tasks I'll release a beta etc..
Nonetheless I'd choose LGM over GM any day because it's a much more considerate environment.
Sorry for the late reply by the way, I've been over at my dad's, and he lives in a boat so the WiFi is mobile WiFi and it's got limited data. Windows 10 was forced on two of his three machines and it used up the WiFi and I've been installing Linux on all of his machines with spare mobile tethering data because none of us like windows 10.
Thanks for all the help and advice. I don't expect to post anything else on here again but that doesn't mean I won't. Thank you.
Logged
Offline (Male) Goombert
Reply #43 Posted on: June 09, 2016, 05:39:55 PM

Contributor
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3060

View Profile
I think it's great to have multiple IDE's and competition which is better for users. People just have different styles and at the same time the same person can have different uses for a tool. For example, even someone who prefers an alternative IDE likes to have something to fall back on. Even myself included if I was developing a second IDE, it would be helpful to have a reliable tool to check things out with. LateralGM fills that role, the whole point of it is to be exactly like GameMaker. If I was still working on a second IDE I would probably end up using LateralGM a couple times to convert a file or do some operation not yet supported by my new IDE, etc. It is similar to how OpenJDK is a "reference" implementation for the Java Standard Edition.

But yeah, not going to deny that LateralGM is boring and while it has made some progress towards stability, it has a ways to go yet. Feel free to post as often as you like, you know we welcome third party tools here.
Logged
Offline (Unknown gender) Darkstar2
Reply #44 Posted on: June 25, 2016, 11:31:02 PM
Member
Joined: Jan 2014
Posts: 1211

View Profile Email

it has made some progress towards stability, it has a ways to go yet. Feel free to post as often as you like, you know we welcome third party tools here.

I completely disagree with this - its stability is abysmal at best and one of its weakest point.

It has progressively become worse over time.
(Yes I am using windows) :D and I am aware that the
culprit is enigma.jar - or is it...........  I can easily
reproduce a crash each bloody time, even after hitting the save button a few times and the whole shit falls in shambles.

Logged
Pages: 1 2 [3]
  Print