• Escaping the Garryhole (please help)
    45 replies, posted
Hey, I seriously need to stop coding Gmod LUA, and FAST. I have spent waaaay too much time with it. I love it to death, but it really isn't useful. So I need a robust, useful, and similar coding language that won't go obselete. Preferably game/unity-ready. I'm looking at C/C++/C# but don't know where to go. I need a long-term solution that I can stick to for a while. C# seems promising, but I really want to know where to go for sure. I also heard Python is very useful for linux developing but very limited, so I'm kinda torn. I'd love something close to LUA (or Javascript, I've been doing that on the side), even remotely. Thanks, newpunch! ~ Regards Waabi please help me i need to do something useful with my life
c#
Download Unity, learn C#. It'll get you out of the looseness of Lua and be a nice transition to more traditional programming languages like C/C++/Java, and you'll be able to do rapid prototyping and development in Unity just like you can with GLua
Of the C's, C# is a great way to go. Since .NET core went open source C# code became pretty portable, and if your primary focus is game dev, that's what all your Unity focus would be on. C++/C is (are) great and something you might want to learn down the way but can be pretty cumbersome if you're not familiar with how are things are running lower level, and are going to be more of a hindrance than a help if you're trying to write game stuff. Also, rrkpp__'s right when it comes to Python. Super useful, an absolute godsend when you need a flexible language to just do a thing. It might not be specifically what you're using for gamedev, but it's a fun thing to pick up when you have the time that you know you'll get mileage out of.
Could keep going down the Javascript route. It's not the most loved language but there's very little you can't do with it these days.
I only used it for web development thus far. What can it do? EDIT: Apparently used in unity. That's pretty sweet, actually. The syntax doesn't look much different either.
Client-side web dev Server-side dev Unity iOS / Android Dev via the likes of React Native And fuck-tons more.
Look out world! https://files.facepunch.com/forum/upload/112610/f6a062e4-3a5d-4c9e-adb5-5484acd321ba/Capture.PNG I also got visual studio. im gonna make an asset flip survival game hehehehe
App Game Kit 2 BASIC. Not only you can make games for all platform with one code, you also can make non game apps. Just code once, and deploy your app via wifi to all platform with one click to Android, Iphones, PC
this reads so much like an ad i can't tell if it's genuine or not
Python is one of the most versatile languages out there. Problem is that barely any game engine uses it, because it's not really a lightweight language like lua and you'd also have to remove features from it to ensure that mods don't do malicious stuff like keylogging or sending data from the user's computer to someone.
Not for long it won't: https://blogs.unity3d.com/2017/08/11/unityscripts-long-ride-off-into-the-sunset/
Stay in my hole
I'm gonna echo everyone else and say Javascript for web stuff and C# for Unity. If you're used to Javascript then read this: JS var number = 5; var word = "honk"; C# int number = 5; string word = "honk"; Now you know C#, you're welcome, I take payment by paypal thx
Read that C# guesses the object type if you supply "var", but you can't change it afterwards Too bad they are so similar XD Which one came first? I think we need to get some lawyers on this Did Ed Sullivan just view my FP thread?
it seems the student has become the master
Gonna throw my 2 cents in. Don't bother with JS for games, particularly if you're going the Unity route. As someone else posted it is being deprecated and removed soon. Even if it wasn't, JS is kind of an objectively terrible language, regardless of how popular it is in Web Dev. Its incredibly forgiving lack of type safety can be a huge source of bugs and unspecified behavior. It doesn't support traditional scoping which is insane to me. I could get into more example, but all in all it is not a great language for learning good programming habits and the languages flexible features do more harm than good. I think C# is an excellent choice because it will ease you into more "real" languages (I hate to say that but it is true), while not bogging you down with the mundane details and confusions of a language like C/C++. C# is a good balance of power, structure, and flexibility, and its basically everywhere right now.
You're hung up too much on language being an important factor. If you really want to get out of the garry sandbox quickly, then fire up corona LUA, many many people have made their own games using that framework. Unity is very popular for it's tooling and extensible editor, as well as they have spent a lot of time putting out resources for new developers (a bazillion video guides with code). The big hangup for you right now is you simply aren't "doing". Get started, work hard, the language is a minor factor.
If you want to make video games, pick C# Why? second fastest thing in my book (C++ still wins) compile-time type checking saves you lots of headaches very nice framework/standard library cross-platform (can run on linux/server, can run on windows (dooh), can run on mobile (there are C# frameworks).. Visual Studio standalone is very good, but you can add very nice plugins (Supercharger to extend it visually further, Viasfora, if you want add rainbow closures, ) Garry is addicted to Visual Studio How C# code looks in Visual studio with plugins: https://files.facepunch.com/forum/upload/132751/51e3cca6-4d97-4df6-82b4-ffb3e2ac313a/image.png If you want to make websites/webaps,, learn Javascript Why? Because it runs on every web browser in this planet
There's also LÖVE for making your own games with Lua
That looks super interesting! I am definitely going to look into this.
Love is not that obscure and a pretty solid engine. I actually did the exact same transition from Gmod to Love originally... but that was proably about 10 years ago haha.
If you want to work in the games industry or with others then you'll find that people are mostly using C# with Unity or C++ with Unreal. Lua is mostly not used to create video games, but if you are doing it by yourself and just want to fuck around and have fun then LÔVE is perfect.
C# is a pretty good language to know. It helped me transition to C++ since their syntax is very similar. It'll also help you develop games in Unity if you ever decide to go that route. C++ isn't absolutely necessary to know, but further down the line it'll look nice on your list of skills for your portfolio/resume.
I actually use C# for mobile development and I can say it helped me a lot to develop programming skills and knowledge. I guess I like it because coding in C# looks clean to me. I mean, I can clearly see what each word, var and line is and not get confused like I used to with Java ---- bla.blabla().bleh().bluh().uhh().itNeverEnds(more().stuff(inside(other().stuff()))) ----
I don't know what kind of spaghetti code you were looking at but properly written Java looks very similar to C#
It depends on the stuff you wanna do with the language at end. Actually I had to switch to PHP cause of my new job, before that I was coding c# like 5 years and I loved C# !
I agree it looks similar, but C# has a bunch of very nice (syntactic sugar) features that Java was always lagging behind, to name a few: local variable type inference (var): C# 3.0 since 2007, Java 10 since yesterday LINQ and lambda's: C# 3.0 since 2007, Java 8 since 2014 Auto-Implemented Properties: C# 3.0 since 2007, Java doesn't have this (Side note @garry why do the code blocks randomly remove spaces and newlines? I cannot get this formatted properly for the life of me) This allow you to have much cleaner and conciser code in C#: public class Person { public int Age { get; set; } public string Name { get; set; } public Person(int age, string name) { Age = age; Name = name; } } than the equivalent in Java: public class Person { private int age; private String name;     public Person(int age, String name) {         this.age = age;         this.name = name;     }     public int getAge() {         return age;     }     public void setAge(int newAge) {         age = newAge;     }     public String getName() {         return name;     }     public void setName(String newName) {         name = newname;     } }
just pick a language, code a CHIP-8 emulator in it and git gud
Yeah, there are a few things about C# that make me wish I could use it instead. I don't know what its equivalent of Spring is though, if anything. ASP.NET? Also I prefer camelCase over PascalCase
Sorry, you need to Log In to post a reply to this thread.