ORIGINALLY CREATED BY GUURGLE
# Sandbox Game – by Meta Construct Laboratories
## Name
* Meta Construct – The Game
* Metastruct's Mod / Metamod
* MetaBox / Metabox
* My little game can't be this cute
* Sourcebox
* YASG – Yet another Sandbox Game
* No Man's Sandbox
* Meta Standalone
* Not Garry's Mod
* JBMod2
* BetterThanGarry'sMod
* swadical's mod
* Modularity (metaman's suggestion)
* Guurgularity
* JinxedBox
* [...]
## Contributors (sorted by alphabet)
* !cake – technical lead (basically yells at people)
* code_gs - C, C++, C#, Lua, JS, Java, SQL, PHP (a bit rusty but I could pick it back up), and a bit of Rust and Node. Modelling and basic mapping. Spanish and Portuguese localisations.
* datamats – programming /scripting (lua, js, a bit of c++, php, html, sql), web stuff & system administrating
* dog – design/sysadmin/networking/programming (C, C++, C#, Lua, PHP, SQL, HTML/CSS, JS, Bash)
* earu – programming (C#,lua,C++,C,PHP,HTML,SQL(MySql,SQL Server)) / modelling(barely)
* guurgle – programming, community, translations
* kabus - graphics/level design (can program but probably wont)
* kaptain - Programming (Lua) If this really takes off I might learn C#.
* potcFdk – Sysop, Security/Secops lead, programming (C, C++, Lua, PHP, HTML, bash, some JS, some SQL), Video editing (Premiere)/Compositing (AfterFx), composing/chiptune tracking/some FL Studio
* sauermon - programming/scripting (Lua, also familiar with: Bash, C++, C#, PHP, HTML, CSS, SQL, JS), DevOps/server management, UI/UX, modeling, character/environment design, level design
* swadical – Lua technical lead, DevOps (i also know C++/java/JS/many other languages, and I'm happy to be sacrilegious and do webdev), SysOps (ive been doing backend management for years), SecOps (glua.team), anything apart from design really (I'm a quick learner), anatomical advice?
* techbot – hosting, backend managment, maybe programming helper
* tenrys - french translation, programming / scripting (lua mainly, not sure about: html, css, c#, js, php, might learn: c++ and others)
* meepen – Optimization / Security (????)(gay?)(excuse me?)(are you threatning me?) (I can vouch for meep for SecOps -swadical)
* metaman – technical lead leader (i'm the boss of this gym), programming
* xerasin - programming (C#, lua, C++, php, sql)
* Zeni - programming (Lua, eventually gonna do some C# in the future)
## Engine
We basically would like to use Source Engine 2, because of backwards compatibility for content and such. This makes it easier for people to transition from Garry's Mod to our game and use other source-engine-based assets.
## Modding
### Scripting language
Source Engine 2 already supports Lua but it is sort of module-based (made for Dota 2), so we should be able to disable it easily (to avoid compatibility issues and so on).
MetaMan suggests [C# as language](https://github.com/dotnet/roslyn) for addons, gamemodes and all that, which will be compiled by the dedicated server/game on startup and cached to speed up boot times if no diff.
> If our objective is just to create a game that we can extend and modify for our own enjoyment, you can safely ignore these following paragraphs. I have no qualms with C# as the language for this game. It's a good, mature compiled language with a good ecosystem that we can consider embedding in our game. However, because you're still reading this, I can safely assume that we're interested in hitting the big modding community scenes, and in that case, I have a few concerns about only using C# as a way to extend the game.
>
> Garry's Mod was successful because of its extensive modding community. **Lua was the only and best decision Garry has ever made in his entire career**: it's such a simple and easy to embed language that loves the programmer (seriously, it's so easy that even garry was able to embed it). Not to say that C# is a bad choice for this project; I fear that picking C# would negatively impact the size of the modding community.
>
> C# is considerably harder to deal with than lua, and I know what I'm going to hear next: "harder languages means more quality modders and mods for our game", which is entirely true. By increasing the difficulty of writing mods for our game, we'll ultimately increase the overall quality of any mods being made, because only those with the knowledge of properly dealing with a mature, lower level (in comparison with a scripting language like Lua) language will be able to author the aforementioned mods. In other words, **by increasing the difficulty of writing mods for our game, we'll inadvertently shy away younger, inexperienced developers from our game.**
>
> Programming and coding is hard, and that's not a secret. A few years ago, I was completely different to who I am now (what a surprise amirite haha XD). I started out learning about Java, doing simple web design and eventually moving on to writing E2s. During this period of time, I quite honestly had no idea what programming truly was. No matter how much time or effort you spend on some languages, you will only gain a certain, measly amount of knowledge.
>
> When I started writing Lua, things were different. I felt different about programming. Lua was amazing compared to anything I've done in the past. **Lua taught me how to be a better programmer.** Lua is so damn *fucking* simple, that it taught me to think out of the box. If Garry had chosen C# instead, I don't think I would have ever been able to write in this document today.
>
> Don't get me wrong: I'm not recommending Lua because of what it has done to me, I'm recommending lua because of what it can do to other, potential figures in the modding community of our game. **Mods should be easy to make.** I'm a proud print statement debugger (please don't hit me dad), and because lua doesn't need to be compiled into a binary before it's run, I can debug my shitcode, make improvements and learn super quickly. Sure, REAL debuggers exist, but the junior me didn't know that they even existed or how to operate them. On the other hand, realistically, people could and should learn about debuggers if we told them about their existence.
>
> However really, I think the most important factor in being able to develop something without getting frustrated is the time that it takes to run code and see its output. Compilation is painful and slow on my shitty laptop. Even typescript projects take a solid minute and a half to compile, and DLLs are worse for time on my poor laptop. Thinking back to my first Garry's Mod addon, **if it took 60-75 seconds each time I made changes and ran my code, I think I would've ragequit within the first 30 minutes of trying.**
>
> if exploits are a concern, i'd like to dedicate this paragraph to informing u that we know all about lua and where it's exploitable. We can patch out anything we don't like and any insecure bits of code, and we can also extend the existing language (like garry did, but we don't talk about that D:<) **especially because lua is THAT lightweight.** I doubt roslyn (C#) is lightweight enough to let us do that, is it?
>
> Someone can always decide to write a binding to Lua using our C# API (if we decide to go down that path), but ultimately, **that's just more overhead**, and (correct me if I'm wrong) I doubt there's a fast Lua VM implementation in C# that we can include into the game's C# sandbox (LuaJIT is a no-go because it has its vm written in asm, right?).
>
> I dunno. Maybe I'm just really attached to Lua, what's wrong with using it in a game anyway? If I had more time I could probably re-format this rant into a clearer, sophisticated format, but I feel that I've hit the nail on the head (thus far) with why I'm in strong support for using Lua. thank for ur read and time xDDDD
>
> P.S if we chose lua, i'd gladly write c++ bindings to it and help out where i can: lua's milkshake brings all the boys to the yard
> [name=swadicalrag]
>
> There's also the possibility to implement Lua from C# using the Dynamic Language Runtime, which would allow Lua to access C# data.
> [name=MetaMan]
> https://github.com/jeremyong/Selene
> [name=swadicalrag]
> https://github.com/neolithos/neolua
> [name=MetaMan]
### Bernie or Hillary?
#### Be informed. Compare them on the issues that matter.
| Issue | C# | Lua | Both |
|---------------------------|---------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
| First index of arrays | 0 | 1, but i don't see the problem | [best of both worlds](https://www.youtube.com/watch?v=uVjRe8QXFHY) |
| Implementation difficulty | Easy to interface with native APIs (language feature) | so easy that even garry could do it (also [this](https://github.com/jeremyong/Selene) if we really want to make our lives easier) | it's difficult to maintain two APIs for two very different languages |
| Debugging | good af LIT :fire::fire: debuggers apparently | i can write a debugger for lua too u know | [best of both worlds](https://www.youtube.com/watch?v=uVjRe8QXFHY) |
| Libraries | Lots | u got me there, luarocks is a pile of shit | [best of both worlds](https://www.youtube.com/watch?v=uVjRe8QXFHY) |
| Safety/security | No exploits (question mark) | we can patch out all we know about. there's no such thing as a 100% secure system (cheater.team will make its return in this video game! (cheater.team pasted MY code)) | double the exploits, double the FUN :D:D:D:D:D |
| Performance | Near native | LuaJIT exists (if you have to call Lua constantly from native code, you're fucked) | [best of both worlds](https://www.youtube.com/watch?v=uVjRe8QXFHY) |
| Ease of use | IDEs take care of all of the errors/warnings/auto-completion, ezpz, since you can compile it you can also test code before-hand | so easy that even garry can do it, syntax is mostly retard proof (*i, too, have a lua IDE addon*) | [best of both worlds](https://www.youtube.com/watch?v=uVjRe8QXFHY) |
| Microsoft | No, standard is agreed upon by an independent commitee | no | no |
| Lightweight |  no (vanilla runtime of around 50MB) | heckin babby yes |  |
| Compile time | depends on the size of the projects? | quite fast (actually interpreted) | [best of both worlds](https://www.youtube.com/watch?v=uVjRe8QXFHY) |
| cheater.team | Probably wouldn't even know where to start | actually a bunch of kids, let cake and i collab on an anticheat plz | OH GOD |
| gmodstore | All software will be sold from the Microsoft Store | ~~Let Handsome Matt do it~~ | there's a SirSavary/ModMountain meme in here somewhere |
| already implemented | easy to bind with language features | yes | therefore yes???? wtf??????? |
## Features
### Security
- Less exploits than Garry's Mod
### Efficiency
- MOAR FPS than Garry's Mod
- Less memory leaks than Garrey's Mode
~~### Seamless Gamemodes?~~
~~- ability to dedicate sections of maps to a single gamemode instance?~~
~~- walk from one section of map to a "connector" or lobby section, and to another gamemode?~~
### Stock Gamemodes
- Sandbox
- Wire Mode
- Exprassion 4
- YeeGP4 (cuz EGP is dum xdDDDD)
- Arrmor Cumbat Fumwork
- Cinema
- watch gay furry porn together
- yiff yiff
- alternatively hentai is good 2
- yes
- Gay RP
- pretend you're gay online while hiding the fact that you're super homosexual IRL
- COINS
- fake alarms to piss off the entire server
- BIG nuclear explosions
- DID I MENTION ***COINS***????
- annoying as _FUCK_ NPCs
- I mean BIGG BIGGGG nuclear EXPl0SI0NS
- cool
- good
- cool AND good
### PUCK3
Player Universal Character Kit 3
PAC aint got shit on this bruh