Linux build of my stuff ignores the user input

Archives Forums/Linux Discussion/Linux build of my stuff ignores the user input

Tricky(Posted 2016) [#1]
On Mac (El Capitan) and Windows (win 10), this all worked fine.
On Linux, the user input appears ignored.

I'm currently working on a game called "Star Story", and basically the game contains two applications. A launcher and a game engine.

The launcher gathers some data according to the user's wishes, writes a start up init file, and then runs the engine itself. That is the idea.

The launcher uses MaxGUI (the game engine does not, but I really don't know how well the game itself will work). The first thing I saw was that the "Notify" command used to tell you, the game is only a work in progress was also ignored. And trying to click some tabs does nothing at all.

I took my test on Ubuntu btw. And in Linux I used BlitzMax 1.50

The source code of this launcher can be found here, and a test build of the entire game can be found here

What can I do to get this stuff moving?


dawlane(Posted 2016) [#2]
You will have to go through your source code as there is a lot of case miss matches. Linux is case sensitive.
It's an event problem. You will have to look for another solution to EventID.
Try and use Bruceys gtk module instead of the GUI that comes with BlitzMax.
Edit: I would also check out the GLCube sample.


Tricky(Posted 2016) [#3]
You will have to go through your source code as there is a lot of case miss matches. Linux is case sensitive.

I know, but that is a later concern and all assets called are from a .JCR packed file. It's a kind of zip file. And the integry of JCR is case-insensitive regardless of platform (and I know the call to the JCR file is right or else the intro animation wouldn't be called correctly, and that part did work fine on Linux).

Try and use Bruceys gtk module instead of the GUI that comes with BlitzMax.

Yeah, that idea also crossed my mind. When I got the time I shall at least give that option a try (I'm primary on Mac, and Linux is installed on a different machine, but I only got one keyboard, mouse and monitor, so switching is always quite a chore).


dawlane(Posted 2016) [#4]
If Brucey's module doesn't work you will have to consider rewriting it to do it in a similar fashion to the GLCube sample. That is use WaitEvent and update the canvas on the paint event.

>I'm primary on Mac, and Linux is installed on a different machine, but I only got one keyboard, mouse and monitor, so switching is always quite a chore

Install Virtualbox and set it up so you can use a shared folder. Doing it this way save a bit of messing around. Plus if you clone the virtual machine before making any system changes you have a back-up if things don't work out when installing dependencies.


Derron(Posted 2016) [#5]
Instead of using a shared folder you might think of using a samba share (I had slow compilation times when using a shared folder with VirtualBox)


@Notify
This should be handled by "fltk", if not it is supressed by the OS or so.
Did you import FLTKmaxgui?
As "MaxIDE" (fltk-flavor) is able to show notification-windows (not notify-OSD-messages like you may know from your OS) I assume it should work for you too.

Why? Linux does not have a clue how "notify" should be done, so it is depending on a guitoolkit - in our case this is either GTK, FLTK (or if you have it some where: QT).


bye
Ron


Tricky(Posted 2016) [#6]
Install Virtualbox and set it up so you can use a shared folder.

That's how I produce my Windows builds, already ;)
The reason why I wanted to do this on a "real" PC in stead of a VM, was in order to test if the game works the way it should and VMs do not always pick up so well ;)

Thanks for the suggestion, anyway ;)

Instead of using a shared folder you might think of using a samba share (I had slow compilation times when using a shared folder with VirtualBox)

Actually compiling with a VBox shared folder has never been an issue to me. Even from Windows this went pretty fast and from Linux even faster.

Did you import FLTKmaxgui?

I actually just used MaxGUi.Drivers, which I believe uses fltkmaxgui automatically when called from Linux. Yes?

Linux does not have a clue how "notify" should be done, so it is depending on a guitoolkit

Right, well that's good to know. In the case of this game it didn't really matter since the launcher only uses notify to warn you for the fact this game is a WIP and not a stable release (and you got it, the notification will be removed once the game has been finished), and the game itself is entirely written for Max2D and has to be able to run in full screen, and then Notify doesn't work anyway (though the game can run windowed if the player desires), but I can at least keep it in mind for upcoming projects in Linux.

Linux is case sensitive.

I realized I may have misunderstood something here. You mean there are a few case issues inte Import and Include commands right. That was something I would never see (not even in Linux) because the source was living on an ExFAT device, and ExFAT is case-insensitive. Even Linux will act case insensitive when accessing a device with a partition in the FAT family (My code could not have been compiled at allif it didn't). It would indeed be good to dig through this.


Anyway, thanks a lot guys, I will try out how fruitful this information is going to be.


Brucey(Posted 2016) [#7]
The reason why I wanted to do this on a "real" PC in stead of a VM, was in order to test if the game works the way it should and VMs do not always pick up so well

I use Parallels on OS X. It has 3D hardware acceleration for both Windows and Linux VMs. I currently have XP, Windows 7 & 10 Pro, Linux Mint 32-bit & 64-bit VMs used for BlitzMax development.


Tricky(Posted 2016) [#8]
Paralells is (unfortunately) too expensive for me at the present time.
I don't have control over my own wallet, right now. I don't know if there's an English name for it, but a person who was appointed by a judge takes care of my financial trouble for me, and I'm pretty sure I will not get him far enough to cough up 80 to 100 bucks a year for a VM. All the money I have control over is just enough to buy food and stuff to clean my house.
I've seen Parallels in action, so I know that stuff is indeed good, but I'm unfortunately in a bit situation where it's unfortunately not an option.

Yeah, I know, it sucks to be me.


Derron(Posted 2016) [#9]
While this is sad to read, I am not sure whether this is the right place to make these information publically available.

Parallels is not needed, VirtualBox will do too. I am running "MicroXP" for my Windows builds (OpenGL, DX is not working in it - at least it does not have DX installed ;-)). Windows game runs at least with 30fps (my internal fps limit). Mac OS in a VM runs the game with 4fps (ingame) or 15fps (menu) so it is way more "hungry". MicroXP got 512 MB Ram and 16 MB GPU on a single core, Mac got 2 cores, 2 GB Ram and 64 MB GPU spend...


bye
Ron


Tricky(Posted 2016) [#10]
While this is sad to read, I am not sure whether this is the right place to make these information publically available.

It was not a secret. Everybody who knows me (in person I mean not the internet) already knew that.

And it's not that sad. I was placed under this condition at my own request, and my exact reasons for it. Well, I don't wanna go in full detail, but trust me I had good reasons for it, and I think you can already guess a little ;)

I do have running OpenSUSE within Virtual Box. Not sure if that's the best option for this but it does work, right? (My "real" Linux PC runs Ubuntu btw).


dawlane(Posted 2016) [#11]
>I don't know if there's an English name for it, but a person who was appointed by a judge takes care of my financial trouble for me.
It's called Power of Attorney. There are two forms Ordinary and Lasting.

>I do have running OpenSUSE within Virtual Box. Not sure if that's the best option for this but it does work, right?
Yes it will as long as the library dependencies are installed and up to date.


Tricky(Posted 2016) [#12]
It's called Power of Attorney. There are two forms Ordinary and Lasting.

Thank you. You may have guessed that English is not my first language (in case you care, my first language is Dutch). :)

Yes it will as long as the library dependencies are installed and up to date.

That's what I figured, but I wasn't certain. Thanks for confirming this ;)