This thread is nearly 2 weeks late. I was waiting to get the last feature out before creating it.
Roblox Battle was released in 2012, and was eventually open sourced. Unfortunately, it wasn’t developed for FilteringEnabled, and ended up being unplayable a few days before launch the re-write. I decided a while ago I wanted to re-write it for 2018 features and open source it, and I followed through with that.
A lot has changed in 6 years, and lot of these changes allowed for the 3,000 lines of code decrease in total game code. Some of these changes include:
- Moving from Data Persistence using loadstring() for compression (which should NEVER have been used) to Data Stores.
- Proper FilteringEnabled security and features like RemoteEvents instead of creating and destroying StringValues.
- Modularizing the code design for the weapons.
- Introducing GUI scaling and portrait mode. As a side note, concurrent tablet players ended up being about 20% higher than PC.
- Adding gamepad support.
- Supporting Localization.
- Supporting R15.
- Adding monetization.
Additional Development Products
As part of the project, I needed to solve several problems with the move to using the features available in 2018. Some were due to things like R15 and FilteringEnabled, but others were just because of new features. Here are something I had to put time to solve:
- No-latency tools, which exist as stand alone models. (Thread)
- Inverse Kinematic’s based R6 to R15 animation converter. (Thread)
- Changing languages at run time so unsupported languages, like Korean, Latvian, and Swedish, could be used. (Thread)
- Localizing images at run time. I don’t have a packaged version of this, because I don’t recommend getting into a situation that requires solving this. I will create an article about how it works, but the code is in StarterPlayerScripts.
Why Open Source
Going into this, I was planning to open source it. I also wanted assurance that it would go on the featured sort when launched so it is known it is the official re-write. The dark side of open sourcing on Roblox is someone may take the game, change nothing, and re-publish it as their own, which is why I wanted it on the featured sort for PC. This helps with 2 main use cases for an open source game for new developers:
- It gives a chance to see working code in a game, and be able to try to re-code certain section.
- There are some features missing and things that can be improved. As practice, additional features can be added. Maybe testing a global leaderboard implementation, or designing a re-coloring user interface for armor.
For existing developers, it could be used as a base for testing round concepts without making round systems. I had to create a basic round system to testing the probably unused tournament system in Ultimate Boxing. It also provides a lot of code snip-its for data storage, weapon handling, and payment systems.
I currently own a website for hosting articles. It needs some work, as well as some new articles. With everything that went into it, and some of the data I collected, I have quite a few articles I can write. Here is the current list: