Jump to content

Dev Blog 1/20/2021 - 2020 Recap, Beta 6.2, Beta 7


panda

Recommended Posts

a4727b61d3221e25d4960d124f383986.png

2020 Recap, Beta 6.2, Beta 7

1/20/2021

 

2020 Recap

2020 was a long year. The road behind us is so long that I'm sure source release feels like it was years ago already, and the road ahead of us is still quite long too. We haven't had a Dev Blog in 9 months so this going to briefly cover everything behind us, explain the present, and peek into what the future will look like for Intersect.

0.6.2 Branch
April: Source Release :695_confetti_ball:

June: Automatic network key generation for source users
August:

  • MonoGame 3.8 from the official feed
  • began improving speed hacking and lag detection

September-December:

  • Bug fixes (including fixing the client on Linux)
  • minor improvements to timing

End of December: master branch dropped from the repository, 6.2 moves from prerelease to main

 

0.7.0 Branch

March-July:

  • Bug fixes
  • development of the basic plugin system for client-side UI plugins

July-September: Minor features, bug fixes
October-December:

  • More minor features
  • bug fixes
  • color adjustment for NPCs from @Cheshire
  • basic action logging on the server side (logins, logouts, etc.)

December-Now:

  • refactoring of the packet handler system for large performance gains
  • server-side plugin support
  • networking support for plugins
  • asset packing and obfuscation
  • dynamic map layers
  • cooldown groups

 

State of Beta 6.2 (0.6.2-beta)

As of now, it is all but officially released. It's the main branch and will not have any new major features, but will continue to receive support and bug fixes. This will be officially released soon, but there's no reason for people to not start using it now. In theory we could have released this a long time ago, but we still had a rather steady stream of bug fixes for it. Once the Leafling release hit in December, active development on 0.6.2 was effectively dead and any remaining bugs were kicked to 0.7.

State of Beta 7 (0.7.0-prerelease and 0.7.0-beta)

Being real for a second, Beta 7 has been in development the entire time Beta 6.2 was, but the changes being made to the source code were sweeping and would break source modifications. Rather than create a lot of churn for developers, major new features were put into Beta 7 to keep major merges to a minimum. Originally, Beta 6.2 was supposed to release in September and Beta 7 at the end of 2020 -- plans changed.

0.7.0-prerelease vs 0.7.0-beta

Due to the massive influx of changes, we've split Beta 7 into two phases -- prerelease and beta.

Prerelease is in the same state as 0.6.2-beta, it's "live" (and already in the prerelease branch) but not officially announced (until, I suppose, this post). Prerelease is for everyone who is uses Intersect but does not currently need to modify the source. This is to give everyone an opportunity to begin using the new Beta 7 features and testing its stability, as well as finally get access to the plugin system (which while it is not yet on the documentation website, there is an Intersect.Examples solution in the repository with example plugins demonstrating how to use the APIs -- writing plugins is safe, this will not be broken between prerelease and beta).

Beta is the development branch and will be the "dangerous" branch for the next few months. With the exception of some changes that were harvested from Beta 7 branches and put into Leafling, most of the performance and major bug fixes have yet to be merged in, but this is the branch that they will be put into. The development branch will change a lot, and is not a good base for working with the source because of the amount of code that will soon change. For those of you who like a little bit of risk in their game development, feel free to base your work on the development branch. But keep in mind, here be dragons.

 

Future of Intersect

We've gotten to the point where many of the most requested and best features that we can add are simply too difficult to cleanly add or improve. Examples:

  • Pixel movement
  • Cross-platform Editor
  • Server sharding
  • Complete localization support
  • Unity support for the client
  • Mobile support
  • Better party/guild (or "group") support
  • Client user interface
  • Complete source cleanup
  • Camera controls
  • Virtual events (sometimes code is just better than the event editor)
  • .NET 5.0


We have lofty goals for the future, but for the health of the engine and the games developed on it, it's now a necessity. As a result of this list, half of Beta 7 (though with the Leafling release and subsequent performance discoveries a lot was added back on), and all of Beta 8 and 9 were scrapped. Beta 7 will be the last major beta release.

In all likelihood, many people who make source modifications on top of Beta 6.2 or 7 will not want to move on and redo all of their work on top of an Intersect that supports or is easily modified for the above list of changes, and so Beta 7 will be our first LTS release.

 

The next major release after 0.7.0-beta will end up being 1.0-rc1. Unfortunately given the amount of changes that need to happen and the personal availability of the developers (in particular myself), any timeline and most specific details will not be realistic to give at this time. That said, in 1.0 we can look forward to at least the following:

  • .NET 5.0 (we will be leaving .NET Framework behind, and we will be single-targeting .NET 5.0 -- no multitargeting to other versions of .NET Core or .NET Standard)
  • Complete localization support (this includes content text for multi-lingual games)
  • Client user interface overhaul (those pesky JSONs that are limited to some colors or pictures will be going away and replaced with a more markup-oriented interface system)
  • Virtual events
  • Basic server sharding
  • Cross-platform Editor

 

Thanks to the community for sticking with us for this long, we hope to make Intersect easier to use for all of us and hopefully also give it a chance to live for years to come.

Link to comment
Share on other sites

Bumping this because it was written before we had the Beta 7 prerelease builds working properly.

 

I don't have a whole lot to add but be sure to go check out the Beta 7 prerelease builds! Along with what Panda mentioned there's an updated Chatbox with tabs, a new loot window, and more thanks to @Cheshire

 

For anyone not in the loop, Leafling launched on Steam using Beta 7 back in December. Since it's launch Leafling has averaged 80-90 online players at any given time. For all of those constantly asking what Intersect can handle, we know its at least 200 simultaneous players,  and based on the metrics we've collected it should be able to handle a lot more :)

 

We will be bringing a ton of performance updates, bug fixes, qol changes, and overall engine improvements from Leafling into the Beta 7 prerelease builds over the next few weeks/months which will make Beta 7 the first truly ready build for those launching larger games.

Link to comment
Share on other sites

Panda made the announcement instead of JC, we have a revolution here folks! haha

Jokes aside, this is a wonderful job. The future promises.

18 hours ago, panda said:

Prerelease is for everyone who is uses Intersect but does not currently need to modify the source.

We are receiving our space in society. haha

 

I wish the developers all the best, your dream is capable of fulfilling the dream of hundreds of other people. This is amazing.

Link to comment
Share on other sites

50 minutes ago, Xiphoid said:

i will waiting for features unity client support and pixel movement...


I'm going to reiterate that I explicitly did not include either of these in my list of "things that are coming".

They're things that currently involve changing a significant amount of code in the engine, and the engine as it is makes them impossible to do easily.

The goal is not Unity support, the goal is for the engine to be clean and well architected such that Unity support will be simple for someone to add.

Link to comment
Share on other sites

I am a bit confused about the version 0.7 prerelease, I have been reviewing the repository and the last commits of the prelease branch and there are mergers of some things from the development branch such as the packaging and encryption system among other things, but in The post mentions that "it is focused on people who do not have to make changes to the source", what do they mean by this part? that can undergo big changes and that we can have conflict problems when updating? Forgive my ignorance, but I come from unity with a project that I have been developing for more than 1 year and the truth is that I would like to make the change to this very promising engine.

Link to comment
Share on other sites

15 minutes ago, Blinkuz said:

I am a bit confused about the version 0.7 prerelease, I have been reviewing the repository and the last commits of the prelease branch and there are mergers of some things from the development branch such as the packaging and encryption system among other things, but in The post mentions that "it is focused on people who do not have to make changes to the source", what do they mean by this part? that can undergo big changes and that we can have conflict problems when updating? Forgive my ignorance, but I come from unity with a project that I have been developing for more than 1 year and the truth is that I would like to make the change to this very promising engine.

 

Theyre basically saying that beta prerelease is a good base to start a project on, but that there are big rewrites planned, so if you make edits to the source, you will need to implement future updates to the engine yourself.

Link to comment
Share on other sites

18 minutes ago, Beefy Kasplant said:

 

Theyre basically saying that beta prerelease is a good base to start a project on, but that there are big rewrites planned, so if you make edits to the source, you will need to implement future updates to the engine yourself.

Or alternatively work on learning how to use the engine and in a couple of months when the dust settles make source changes then.

Link to comment
Share on other sites

2 hours ago, Beefy Kasplant said:

 

Theyre basically saying that beta prerelease is a good base to start a project on, but that there are big rewrites planned, so if you make edits to the source, you will need to implement future updates to the engine yourself.

 

2 hours ago, panda said:

Or alternatively work on learning how to use the engine and in a couple of months when the dust settles make source changes then.

 

I understand, I have no problems with making changes to the source, even yesterday I uploaded my own fork of the prelease to a private repo with a remote linked to its original repository to download the new changes that may be added to the prelease while working on my project, But I have a question, is there a place where the most significant changes of the prerelease are being documented even in a basic way? For example, yesterday I was reading the more than 10 commits that were made to create the new packaging and encryption system, all the comments before the merge in the PR but when testing it I don't know if I'm doing it wrong but I can't make it work in a clean clone of the prerelease branch.

Link to comment
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...