Jump to content
jcsnider

Running Intersect's Server On Linux

Recommended Posts

How To Run The Intersect Server on a Linux Machine

Date: April 5th 2016

Guide Written During Alpha 0.0.0.8

Summary/Notes/Disclaimers/Etc:

All version of Linux are different. In this guide I am going to be using CentOS with a user interface. Some of the commands I reference maybe different for other flavors of Linux so feel free to ask questions below if you need help with your flavor, but also be ready to Google what the equalivant of yum is in Ubuntu for example. (Hint, its apt-get)

 

Table Of Contents

Share this post


Link to post
Share on other sites

1. Installing Mono

Mono is a massive library and getting it installed on your machine maybe very easy or very difficult. I cannot upkeep a full in-depth guide here but others do all over the net. I suggest you skip this step and find instructions online on how to get mono working for you and then come back.

 

1.1 On CentOS

  • I started to do this and it became very complex, very fast. There are several ways to achieve a mono-installation and if you your installation of CentOS is out of date it comes even trickier.  So I am going to leave this step up to you. You might be able to get mono installed by using yum  (yum install mono-complete) but you may have to download and build it from the source. Regardless I recommend you start here and then Google your way to a successful Mono installation.
  • For reference I ended up following these instructions by arootbeer in the StackOverflow thread to get Mono working on my machine.

 

1.2 On Ubuntu

  • If you are in a GUI interface, start by opening whatever terminal application you use.
  • In your terminal application enter the following command: apt-get install mono-complete
  • Enter your password if requested to do so. Remember, you must be root or have power to install packages on this machine.
  • All time for everything to install and you are done!

 

Back to Top

Share this post


Link to post
Share on other sites

2. Running The Server

For most flavors of Linux this step is going to be exactly the same. Make sure you have downloaded and extracted the Intersect server somewhere on your machine (Yes, you use the same server on Linux that you do on Windows so go download that one!). Open terminal and navigate to where ever the Intersect Server.exe file is located and run the following command:

LD_LIBRARY_PATH=. mono "Intersect Server.exe"

After you hit enter, with a little luck you should see the server start to load! That's it, you're now hosting a Intersect game on Linux!

TzmuAYftjsU1QDDvLw.png

 

Back to Top

Share this post


Link to post
Share on other sites

I tester this for Mac OS and it works there too!

 

1. Install Mono

2. Use terminal and navigate to the folder containing Intersect Server.exe

Eg. ”cd /Desktop/Intersect Engine 5.1/Server/”

Once you are inside that folder enter the following command

mono ”Intersect Server.exe”

3. This works for the Client too :1_grinning:

Share this post


Link to post
Share on other sites

Hi

 

 Im trying to run on Ubuntu, but i got this error:

 

Spoiler

 

2019-05-26 21:50:25.898 [Error] Received unhandled exception from .
2019-05-26 21:50:25.910 [Error] Message: The type initializer for 'Microsoft.Data.Sqlite.SqliteConnection' threw an exception.
2019-05-26 21:50:25.911 [Error] Stack Trace:   at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists () [0x0000b] in <1b06b8e99d984506b89b3e4ae11831eb>:0 
  at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate (System.String targetMigration) [0x00012] in <1b06b8e99d984506b89b3e4ae11831eb>:0 
  at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate (Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade) [0x00010] in <1b06b8e99d984506b89b3e4ae11831eb>:0 
  at Intersect.Server.LegacyDatabase.InitDatabase () [0x00093] in <c02d93628e3443c8a5c4dd7ccd5a551c>:0 
  at Intersect.Server.ServerStart.Start (System.String[] args) [0x00184] in <c02d93628e3443c8a5c4dd7ccd5a551c>:0 
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in <8f2c484307284b51944a1a13a14c0266>:0 
2019-05-26 21:50:25.912 [Error] Stack Trace:   at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00053] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at Microsoft.Data.Sqlite.Utilities.BundleInitializer.Initialize () [0x0002f] in <56cfa09aae23467e945f1a64a1f893bb>:0 
  at Microsoft.Data.Sqlite.SqliteConnection..cctor () [0x00000] in <56cfa09aae23467e945f1a64a1f893bb>:0 
2019-05-26 21:50:25.912 [Error] Time: 5/26/2019 9:50:25 PM

--------------------------------------------------------------------------------

2019-05-26 21:50:25.912 [Error] Inner Exception?
2019-05-26 21:50:25.915 [Error] Message: Exception has been thrown by the target of an invocation.
2019-05-26 21:50:25.916 [Error] Stack Trace:   at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00053] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at Microsoft.Data.Sqlite.Utilities.BundleInitializer.Initialize () [0x0002f] in <56cfa09aae23467e945f1a64a1f893bb>:0 
  at Microsoft.Data.Sqlite.SqliteConnection..cctor () [0x00000] in <56cfa09aae23467e945f1a64a1f893bb>:0 
2019-05-26 21:50:25.917 [Error] Stack Trace:   at (wrapper managed-to-native) SQLitePCL.SQLite3Provider_e_sqlite3+NativeMethods:sqlite3_libversion_number ()
  at SQLitePCL.SQLite3Provider_e_sqlite3.SQLitePCL.ISQLite3Provider.sqlite3_libversion_number () [0x00000] in <94e90f2e2a1e4f8983b76383f64574ce>:0 
  at SQLitePCL.raw.SetProvider (SQLitePCL.ISQLite3Provider imp) [0x00008] in <724f9a22df504a05b4645fb690570b7a>:0 
  at SQLitePCL.Batteries_V2.Init () [0x00005] in <a13ad878b60c48a5be8c61d809c413bc>:0 
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in <8f2c484307284b51944a1a13a14c0266>:0 
2019-05-26 21:50:25.917 [Error] Time: 5/26/2019 9:50:25 PM

--------------------------------------------------------------------------------

2019-05-26 21:50:25.917 [Error] Inner Exception? Inner Exception?
2019-05-26 21:50:25.919 [Error] Message: e_sqlite3
2019-05-26 21:50:25.920 [Error] Stack Trace:   at (wrapper managed-to-native) SQLitePCL.SQLite3Provider_e_sqlite3+NativeMethods:sqlite3_libversion_number ()
  at SQLitePCL.SQLite3Provider_e_sqlite3.SQLitePCL.ISQLite3Provider.sqlite3_libversion_number () [0x00000] in <94e90f2e2a1e4f8983b76383f64574ce>:0 
  at SQLitePCL.raw.SetProvider (SQLitePCL.ISQLite3Provider imp) [0x00008] in <724f9a22df504a05b4645fb690570b7a>:0 
  at SQLitePCL.Batteries_V2.Init () [0x00005] in <a13ad878b60c48a5be8c61d809c413bc>:0 
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in <8f2c484307284b51944a1a13a14c0266>:0 
2019-05-26 21:50:25.920 [Error] Time: 5/26/2019 9:50:25 PM

--------------------------------------------------------------------------------

 


 

Share this post


Link to post
Share on other sites
18 minutes ago, Rales99 said:

After closing putty, the server is closed. How do I fix this problem?

You can disown, nohup or screen

 

I personally use screen, just press Alt + A, Alt + D to hide the terminal and type screen -r to call it back

Share this post


Link to post
Share on other sites

Nice guide!

hey guys, i'm new around here, i saw that in their github page they state that they do have Linux support.

this guide is very useful for the server side indeed! but what about the client and editor? i went to the download page and it seems empty,

nor i can find documentation about which repo to add and how to install the complete engine in a Linux distro enviorment, i have been working for a while

with Godot in my Linux machine, and i wanted to move my project over to Intersec's Engine. Could anyone guide me on where's the documentation for Linux at? thanks!

Share this post


Link to post
Share on other sites
4 minutes ago, PsychedCat said:

Nice guide!

hey guys, i'm new around here, i saw that in their github page they state that they do have Linux support.

this guide is very useful for the server side indeed! but what about the client and editor? i went to the download page and it seems empty,

nor i can find documentation about which repo to add and how to install the complete engine in a Linux distro enviorment, i have been working for a while

with Godot in my Linux machine, and i wanted to move my project over to Intersec's Engine. Could anyone guide me on where's the documentation for Linux at? thanks!

 

You should be able to use Wine to load up the client if you only have access to a Linux machine. I think Linux is by far superior for servers but I think if you have access to a Windows machine you should just do editing from there.

Share this post


Link to post
Share on other sites
10 minutes ago, Scaly said:

 

You should be able to use Wine to load up the client if you only have access to a Linux machine. I think Linux is by far superior for servers but I think if you have access to a Windows machine you should just do editing from there.

 

Thq1u8e.png

Thanks for the quick answer! sadly i don't really like to work on windows for security reasons, i have always worked on Linux, since its more wise in terms of resource usage, security and privacy...
i just realized about that small detail that requires me to use windows in order to run this interesting engine (DirectX)... so yeah, thanks for the support and everything, but i don't think that this will be

the engine of my choose for now, i know that i could run and try the editor and client with wine, but that's a risk im not willing to take for several reasons over here. Wine does not sandbox any process its running within its libraries. When you run some .exe under Wine, that Windows apps can do anything your user can. Wine does not (and cannot) stop a Windows app directly of making syscalls, messing with your files, altering your startup scripts, or doing other nasty things to the Linux kernel (not saying that this engine is doing so, but the simple fact of having the wine system in Linux will open up several backdoors for undesired set of events..).

Uhm.. so Yeah, i don't think that i will work around with this engine until there's complete support for Linux, very interesting project i gotta say tho! thanks for your answer, i was a bit lost around the forums earlier and i really needed this clarification!

Share this post


Link to post
Share on other sites
56 minutes ago, PsychedCat said:

so yeah, thanks for the support and everything, but i don't think that this will be

the engine of my choose for now, i know that i could run and try the editor and client with wine

 

Going to ignore everything else you've said, because frankly that really doesn't belong here. (And just makes me scratch my head)

 

But, only the editor requires windows as it is. And unless that's completely rewritten that won't ever change. It's not DirectX causing the problem, there's methods of running that on Linux just fine. Same with .Net itself. But it simply uses some libraries and calls that Mono can't handle.

Share this post


Link to post
Share on other sites

Assuming you can get mono to run on raspbian, it should work. If I recall the Pi is an ARM based system so your mileage on support there may vary. (A quick Google seems to suggest people did get mono to work, though not always without issues depending on what they tried to do, but that is a mono thing in general) 

Share this post


Link to post
Share on other sites
6 hours ago, Markchapman said:

I'm not Linux savvy but I do have a raspberri pi that I run retropi on, can I use my raspberri pi 3b to run my server?  

 

Yes you can definitely do that.

https://www.mono-project.com/download/stable/#download-lin-raspbian

Run apt-get update, followed by a apt-cache search mono. Look for your distro and then run apt-get install <mono_distro>.

Share this post


Link to post
Share on other sites

Thanks for the replies,, ill look into mono on raspian or see what other distros the b3 can support. This will take the load off my crap laptop, but there's only three of us playing anyways five max at different times. Thanks again this has probably been the best, low drama, supportive and helpful community for a hobby game developer.

Share this post


Link to post
Share on other sites
On 12/31/2020 at 11:14 AM, Jacques_Olivier said:

Hi there,

So i am trying to launch the server on a RaspBerry PI 3B+

I have a fresh install up to date of Rapbian.
I also installed the last version of mono


But i have some errors, look at the logs here :

https://s3.us-east-2.amazonaws.com/ascensiongamedev/filehost/dd92b50c27326ee0ec207d359e1a8abc.txt


Any ideas ?

 

 

Sorry for the super late reply, but we just worked this out ourselves. The launch command needs to be:

Quote

LD_LIBRARY_PATH=. mono "Intersect Server.exe"

Without the LD_LIBRARY_PATH set it won't find the sqlite library the server extracts for some reason.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...