Memo

Section 1 - The Birth of Tenable

From the beginning, Tenable had just started out as a joke between a group of friends and me. A funny video depicting a streamer breaking their furniture over viewers donating a video of Warwick Davis, the host of Tenable. All of us had died from laughter over that video and we started making edits of it. This was the edit I made about Warwick Davis. We had also started making Unity models of Warwick Davis, which they were just Cubes plastered with Full-Body photos of Warwick on them. All of us went from lobby to lobby sharing our creation with the world, even though barely anyone knew who Warwick Davis was, or what Tenable was; we actually did find some people who knew who Warwick Davis was and what Tenable was. I myself had even made a Tenablecon world, a small world with a couple of Cubes also plastered with Warwick's face on them, along with an extended version of the Tenable Theme Song playing, on loop, in the background. I felt as if this one video had started something new. This singular video caused all of this to happen. Then, one night, prompted the question:

"What if you made Tenable a game?"

This single question had started my endeavors into developing Tenable.

Section 2 - The First "blocky" Tenable

The first Tenable to be developed was Roblox Tenable. I had started from nothing, a blank Baseplate, as it's called in Roblox. The first thing I had done was to build the Spawn and Stage. All of the building combined took 1 day to complete, as the map was pretty small. The only reference image I had was a DuckDuckGo search of "Tenable Stage." I had posted a teaser of the stage to the group of friends, before telling them I was doing this, and asked what they thought about the design. There weren't too big reactions, mainly because no one was on at the time, but once seen, it was brought up to me. I had made some small changes afterwards to the design, but nothing drastic. The hard part was the programming. The language on Roblox is referred to as RLua, meaning Roblox Lua. The easy part was setting up functions that would run on the Client, through Local Scripts. All that had to be done there was changing Part's colors, Light's colors, and handle network events, such as showing a UI. The hardest part was the GameScript that ran through the server, or referred to as a Script. I don't want to get to deep into how it works, but the hard part was verifying client actions, basically checking to make sure the client isn't using an exploit to send fake RemoteEvents to alter how the server plays the Tenable game. I can't say 100% that the server is immune to these fake FireServer()'s, but I have hammered out most of the ways FireServer() could affect gameplay. After the third day, Roblox Tenable was completed. I published the first version of the game to Roblox. A quick search of Tenable on the Roblox games tab, Tenable would be the one of the many others, around 50, that were on that list. After a couple of months, sometime in October, the game was only one of the two results you'd get from searching up Tenable on the Roblox games tab. A little bit later, I check my email, and I receive my first Roblox Premium payout of robux to my account. Unfortunately, I couldn't check the statistics of where people were playing Tenable from, but I could check the age, the average being 7-11 Years old. These kids are being raised in a Tenable environment, and it is beautiful.

Section 3 - The Development of Tenable

After the success of the Roblox Tenable, I decided to pursue even further with my ambitions. I decided to make Tenable in Unity. The night I had started developing Tenable, I had gotten a lot done, finishing the UI design and already starting on scripting. A month in and the menu is finished. I had felt really successful after this, but then after this, I was stuck, and stuck for a while.


From the beginning, I had planned to include multiplayer functionality, but I had no clue how. I had never done Multiplayer Networking with Unity. At first, I tried using Player.IO to do this. It had a straight forward SDK and simple to use web panel. The plan would be to have rooms, and each room could have up to 45 players. Player.IO was just too hard to use though. Sending events between client to server was very vague, coding the server was weird, and there was almost no documentation examples of how to setup Player.IO. It just was not good, so I stopped. I had stopped developing Tenable for about a couple of months.

In between this period of time, I had to take an AP Test for AP:CSP (AP Computer Science Principles) The test was meant to show how much knowledge I have on coding. This could mean how to setup functions, or simply change values, etc. I had made a very simple clicker game, around 200 lines of code, the code hitting the minimum requirements. After 2 months of submitting it, I had only gotten a 2/5, meaning I might be applicable for a College Credit. This was really a bummer for me, it had demotivated me from coding for the next couple of weeks, but then I decided that I wouldn't let the rating of a couple of code raters??? (who probably don't even code, or have a GitHub account) decide whether I'm good at it or not, so I put myself to the test.


I had done much research, and found out that there was a Socket.IO for Unity, thankfully, I added it to my assets before it was taken down later. I had started learning how to use Socketing with Unity, as I already had knowledge on how to use it with Node.JS. Very quickly I learned how to pass events from client to server, and server to client, showing that Player.IO was just really hard to use. For months, starting around September, I was coding the server and client to, you know, work. Just until now, I hadn't thought I was ever going to get this close to completion, I thought I would have just given up on this project, but I didn't, and glad I didn't.

Section 4 - "Epilogue"

Do I give credit to the people who "rated" my code for getting me back into this? No, I don't, I think their rating was awful, and they didn't check what they were supposed to check for. It was that or either I was misinformed, which I 9/10 wasn't. Do I want to take that "test" over again to show them? No, I don't, I think they need to re-evaluate their test, as all it does is de-motivate students from getting into software engineering, the exact opposite of their goal. My advice to anyone who wants to make a game, no matter what it's about, don't let ANYONE de-motivate you. Don't give up at what you're trying to do, just because someone says you're bad at it.


And finally, to everyone who has been with me in this long journey, sitting through, and taking time to read these updates for this stupid game I made,

๐Ÿ’š THANK YOU! ๐Ÿ’š

This wouldn't have been possible without all the people who've helped me along the way. I appreciate all of you.