Roblox Battle (2018 Edition) - An Open Sourced 2018 Game

This thread is nearly 2 weeks late. I was waiting to get the last feature out before creating it.

https://www.roblox.com/games/2061194359/Roblox-Battle-2018-Edition

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.

Main Changes
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.

Articles
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:

  • Roblox Battle (2018 Edition)'s Bad Monetization Methods: Article
  • Localizing Images In Roblox, And Why Not To: Article
  • Making No-Latency Tools On Roblox, And Only Roblox: Article
76 Likes

I wish I had a resource like this when I was learning. Once you get the articles out it’ll be even more helpful. Good work brother.

6 Likes

This is really good. Thanks a lot! I’m going to use the inventory system that shows the 3D player model for my remake of Halloween 2013!

3 Likes

Open source in 2018. There’s something you don’t see every day. This looks super cool! Thanks for making it.

9 Likes

I took a look at the game and I’m quite impressed. The code is definitely very well organized. It’ll unequivocally be a helpful tool for new developers. :slight_smile:

3 Likes

Really glad to see this was finished, seems like a great resource. Thanks for posting!

2 Likes

Fantastic, thank you very much. I will buy some coins to support you :slight_smile:

6 Likes

Great idea, and I’m sure this will help many developers who are just starting out on the platform to find their footing.

I hope more developers follow in your footsteps and create open sourced game, as they are a great learning tool, to get to look inside a fully functional Roblox game.

1 Like

This is a fantastic idea. I’ve always felt that Roblox Battle was a great learning tool to not be passed up by new developers, but since it was broken, I felt as though this game became forgotten as well as its valuable resources. It’s great to see this game brought back to its former glory as a great resource. Honestly, well done.

We really need more users like you who are willing to help out new developers. :wink:

2 Likes

If I had something like this back when I was learning I would have been ecstatic.

2 Likes

Did someone say Halloween 2013?
You just got me excited.

Other than that, this is amazing!
I remember looking into the original game back when it first was open-sourced by Games,
though I didn’t understand much of it.

Is it possible to know what kind of advertising you did? I see the game is a success as a game itself and not only as an open source game.

The only advertising that was done was the featured sort. Due to the expectations of a low profit, I didn’t want to spend Robux on ads.

3 Likes

Im a beginner at scripting, and i was looking how the game works. I Didnt understand how the EventUntil script, the numbers are days until the date or what?

I assume you are talking about how the EVENTS global contains the numbers for a StartDay and EndDay. Those numbers are the day of the year those occur. 1 is January 1st, 31 is January 31st, 2 is February 1st, 365 is December 31st, and so on. This is meant to be a bit simpler than storing the month and day and doing calculations based on both of those.

1 Like