Rob Janes Posted January 30, 2015 Author Share Posted January 30, 2015 Eclipse .NET / Orion Edit (Whatever you'd like to call it)Hey FolksJust dropping in to post this, I saw jcsnider released Orion, an old edit of Eclipse Origins 1.X ported to VB.NETThis is simply that same engine with just a few minor tweaks that someone had asked for, and I just planned to release it everyone. I have no intentions on supporting this, but it might be something fun for people to tweak or learn from.================================UPDATE 01 January 31st, 2015Windows are now completely sizable and the game display will change even during run-time, this means you can resize the game as much as you like to any size while the player is playing.Added the custom class caching of jc's to allow Map Loading to take mere milliseconds now, Goodbye Loading Screens![www.canadianparamedicjobs.ca/EclipseNETv101.rar](http://www.canadianparamedicjobs.ca/EclipseNETv101.rar "External link")=================================The basis for this (Orion, can be found at [http://ascensionforums.com/index.php?board=6.0](http://ascensionforums.com/index.php?board=6.0))**Change Log.****1\. Separate Solutions**Rather than a single solution housing the client/server (albeit a smart person could open the vbproj individually if needed), the Client and Server are now their own solutions. Some may like it, some may not. Programmer preference, you could easily add the two back into one solution.**2\. Full-Window Support**Sizable Game Window (before Runtime). You can size the frmMainGame window before runtime in VB.NET and your game will display correctly. You could change the form to sizable and make it sizable, however it would stretch/skew the image. While it does calculate the Max_MapX, ScreenX etc on the frmMainGame resize function, the GameWindow for SFML is first initialized on InitGraphics, so it gets the size of the surface based on the size of picScreen at the time of execution. This could probably be modified so that the GameWindow sizes are updated dynamically, I'm just not that familiar with SFML libraries.![](http://www.canadianparamedicjobs.ca/EONET1.png)**3\. Increased Map Sizes (Loading Map Dialogue)**As per any Eclipse, you can change map sizes server side with Max_MapX, I've simply increased map sizes and added a loading menu so that it will track where you're at in the loading process when handling map data.![](http://www.canadianparamedicjobs.ca/EONET2.png) Link to comment Share on other sites More sharing options...
Officer Johnson Posted January 30, 2015 Share Posted January 30, 2015 Looks great rob :) nice work Link to comment Share on other sites More sharing options...
Ancient Posted January 30, 2015 Share Posted January 30, 2015 Looks great Rob! Link to comment Share on other sites More sharing options...
Link Posted January 31, 2015 Share Posted January 31, 2015 Pretty nice edit. Nice contribution. Link to comment Share on other sites More sharing options...
Ryo Posted January 31, 2015 Share Posted January 31, 2015 about time we see something like this ;)how about a **stress test** though ?just to see if it's worth to convert to .Net ! Link to comment Share on other sites More sharing options...
jcsnider Posted January 31, 2015 Share Posted January 31, 2015 Rob will probably update this in the upcoming days. I released a patch for the buffer class today that sped up packet parsing exponentially. That patch also made his loading menu immediately obsolete for maps greater than 200 by 200 tiles in size.Before that and a few other optimizations though, Kibbelz and I had 30+ accounts on at one time with no noticeable lag and very low resource consumption server side. (<%5 cpu on a very cheap VPS) Link to comment Share on other sites More sharing options...
Ryo Posted January 31, 2015 Share Posted January 31, 2015 I made a simple CPS test if it can be usefull :![](http://snag.gy/yIze5.jpg)![](http://snag.gy/FNCJY.jpg)The VB6 version **Seems better** (i did remove the sleep(1) on the vb .net version ), Link to comment Share on other sites More sharing options...
Golf Posted January 31, 2015 Share Posted January 31, 2015 Gonna play with it and add some new features btw good job. Link to comment Share on other sites More sharing options...
jcsnider Posted January 31, 2015 Share Posted January 31, 2015 > I made a simple CPS test if it can be usefull :> > > > ![](http://snag.gy/yIze5.jpg)> > > > ![](http://snag.gy/FNCJY.jpg)> > > > > > The VB6 version **Seems better** (i did remove the sleep(1) on the vb .net version ),Good comparison. If you move the UpdateUI() call in ServerLoop from the top to before tmr25 = GetTickCount() + 25 you should get much better performance.In all reality though .Net on a simple comparison like that will almost always lose, it is a lot heavier than languages like C and VB6\. With that said, it thrives because it can utilize multithreading, which makes it significantly better than VB6 in the long run for a game server. Link to comment Share on other sites More sharing options...
Rob Janes Posted January 31, 2015 Author Share Posted January 31, 2015 Update 01Windows are now completely sizable and the game display will change even during run-time, this means you can resize the game as much as you like to any size while the player is playing.Added the custom class caching of jc's to allow Map Loading to take mere milliseconds now, Goodbye Loading Screens![www.canadianparamedicjobs.ca/EclipseNETv101.rar](http://www.canadianparamedicjobs.ca/EclipseNETv101.rar) Link to comment Share on other sites More sharing options...
Golf Posted February 1, 2015 Share Posted February 1, 2015 I found one problem. When you add item icon in items folder and run engine and open item editor it doesn't load any pics ! Link to comment Share on other sites More sharing options...
Officer Johnson Posted February 1, 2015 Share Posted February 1, 2015 > Update 01> > > > Windows are now completely sizable and the game display will change even during run-time, this means you can resize the game as much as you like to any size while the player is playing.> > > > Added the custom class caching of jc's to allow Map Loading to take mere milliseconds now, Goodbye Loading Screens!> > > > [www.canadianparamedicjobs.ca/EclipseNETv101.rar](http://www.canadianparamedicjobs.ca/EclipseNETv101.rar)nice work rob :) Link to comment Share on other sites More sharing options...
DawnOfEarth Posted February 1, 2015 Share Posted February 1, 2015 when u scroll right in the map editor it goes left plz fix Link to comment Share on other sites More sharing options...
Mal Posted February 1, 2015 Share Posted February 1, 2015 > Good comparison. If you move the UpdateUI() call in ServerLoop from the top to before tmr25 = GetTickCount() + 25 you should get much better performance.> > > > In all reality though .Net on a simple comparison like that will almost always lose, it is a lot heavier than languages like C and VB6\. With that said, it thrives because it can utilize multithreading, which makes it significantly better than VB6 in the long run for a game server.No, .NET will lose if you completely disregard new paradigms like OOP while copy/pasting VB6 code into VB.NET. The 50kb game server I wrote using C# makes any Mirage derivative look like a joke, and it took me an hour. Why? Because I utilized .NET instead of writing something malformed and deprecated. Few tips:* Completely gut the networking and rewrite it with Lidgren; synchronous networking in the year 2015 is absolutely absurd.* Once you convert to Lidgren gut your entire file IO, stop using predefined arrays, and start using objects.* The client is a complete mess. It's entirely procedural and bloated with unnecessary loops and while statements.* Read and read some more on paradigms and design patters. Don't ignore them, use them!Edit: +10 for effort. I don't mean to sound like I'm attacking the project; I'm simply stating it needs a LOT of tlc. If it were in C# I'd probably make a lot of conversions myself. Link to comment Share on other sites More sharing options...
Rob Janes Posted February 1, 2015 Author Share Posted February 1, 2015 I can't take any credit for any of the work, it's a mere port of EO1.X done by jcsnider.And I agree for the most part Budweiser! Except on the lidgren part but that's entirely personal preference. Link to comment Share on other sites More sharing options...
Matt Posted February 1, 2015 Share Posted February 1, 2015 > I can't take any credit for any of the work, it's a mere port of EO1.X done by jcsnider.> > > > And I agree for the most part Budweiser! Except on the lidgren part but that's entirely personal preference.Only reason I'd vote against Lidgren is the fact that it's UDP only. Link to comment Share on other sites More sharing options...
Mal Posted February 1, 2015 Share Posted February 1, 2015 > Only reason I'd vote against Lidgren is the fact that it's UDP only.Lidgren is not UDP only. It's both UDP and TCP (by that I mean it offers TCP functionality through the following, and maintains an active connection and has a built-in keep-alive:) and supports a myriad of functionality dedicated to unreliable versus reliable data transmission and even has multiple channel support for sequencing. It also supports encryption, has it's own VERY fast messaging queue and message buffer, is asynchronous, and can be implemented in 101 different ways.Top 2 C++/C# networking libraries, in order: Raknet, Lidgren. Link to comment Share on other sites More sharing options...
Rob Janes Posted February 2, 2015 Author Share Posted February 2, 2015 I think for me, Lidgren is just fear of the unknown and lack of experience to truly appreciate it. Link to comment Share on other sites More sharing options...
Matt Posted February 2, 2015 Share Posted February 2, 2015 > Lidgren is not UDP only. It's both UDP and TCP (by that I mean it offers TCP functionality through the following, and maintains an active connection and has a built-in keep-alive:) and supports a myriad of functionality dedicated to unreliable versus reliable data transmission and even has multiple channel support for sequencing. It also supports encryption, has it's own VERY fast messaging queue and message buffer, is asynchronous, and can be implemented in 101 different ways.> > > > Top 2 C++/C# networking libraries, in order: Raknet, Lidgren.I don't quite fully understand how it can be utilized with TCP. Could you explain it a bit more please? Link to comment Share on other sites More sharing options...
Exception Posted February 2, 2015 Share Posted February 2, 2015 > I don't quite fully understand how it can be utilized with TCP. Could you explain it a bit more please?![](http://p1cs.me/AT.png)Source: [https://code.google.com/p/lidgren-network-gen3/wiki/Basics](https://code.google.com/p/lidgren-network-gen3/wiki/Basics)I apologise if my knowledge is a bit dated, I've not used Lidgren in a good few months, but I can't imagine a fundamental like that changing massively.I'm not entirely sure if ReliableOrdered actually does utilise TCP (still), but the main concept is still the same. Link to comment Share on other sites More sharing options...
Mal Posted February 2, 2015 Share Posted February 2, 2015 What's fun about Lidgren is that its even easier to use than Grim's example.```nom.WriteAllProperties(myObjectReference);nim.ReadAllProperties(myObjectReference);``` Link to comment Share on other sites More sharing options...
h3lp Posted February 2, 2015 Share Posted February 2, 2015 Its, true Rob you are a legend, Link to comment Share on other sites More sharing options...
Nogutek Posted February 27, 2015 Share Posted February 27, 2015 There will be updates ? Link to comment Share on other sites More sharing options...
Guest Posted March 2, 2015 Share Posted March 2, 2015 Keep in the sprite of eclipse. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now