Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
Here is a free course for it. Keep in mind Space Engineers use of the C# language only uses certain parts of it. That is, again, from what I understand about what we can do with it in this game in particular.
https://www.freecodecamp.org/news/learn-c-sharp-programming/
I write a lot of scripts for players. My post history has many of them. I am against the notion of charging players for scripts.
Within the game, I don't use scripts made by others and write them myself. There are various controller blocks, and scripts in the workshop to do quite a lot. The game has been around for a while now.
C# is MIcrosoft's version of Java (not JavaScript). C# from Microsoft is version 12 but Space Engineers is using version 6 from 2015 and is in a restricted environment. If you want real-world credit/experience for writing code then Space Engineers is the wrong way to do it.
Though if you want to get into scripting in Space Engineers, I and others can point you to resources to get you started. Its all free.
I do not intend on using it for any real-world anything, just in Space Engineers. If I wanted for real-world use I would use unity (i think they use C#), but being a gamedev seems like an absolute nightmare, so ♥♥♥♥ no.
For comparison, I used to play Stormworks and used microcontrollers extensively. I used a lot of "logic gates" and other similar options, however I did occasionally use Lua (usually to simplify mathematical processes, and improve or maintain the efficiency of the microcontroller)--of which I did for fun, not experience or others.
However, I was curious to learning C# for SE as SE is a vibrant game compared to Stormworks. It was already a pain in the ass to learn (mainly due to lack of motive)--the easiest programming language--Lua, and even then I have not "learned" the entire programming language. Although, because microcontrollers are near-essential for any "advanced" vehicle in Stormworks, learning bits and pieces of Lua was well worth it.
On the otherhand, I am completely blank on what I could use it for in SE. Especially with scrips being unavailable on servers, I feel like learning C# for them would be mundane. The least I want to do is "learn" C#, and then have it not be useful in SE.
Er... not quite. It's more along the lines of Microsoft's attempt to apply Java's concepts, features and workflow to C++'s syntax and data structures.
That's actually a bit of the issue here. As someone with experience with the C family of languages including C++ and embedded C for Texas Instruments MSP and Atmel AVR microcontrollers, I can say with experience that the C family in general is tricky to learn, at least at first. Keen probably should have looked into a Python implementation for in-game scripting, honestly, since it's less held back by the limits of programmable blocks and a lot easier to work with.
Lua's... weird. It's not really a true programming language so much as it is a scripting and definitions syntax standard. Every Lua implementation is different, and it's because the available functions for those implementations are specific to the program you're using them with.
Is it worth it? If you want to write your own scripts for the game: Yes.
If you just want to put things together and have them work: No. There's probably already a script on the workshop we can find and use that already does it.
In my opinion, because of how the use C# being limited by what the game allows us to do with it, Easy Automation is probably our best option if we don't already know C#.
Now, I wonder how 'Easy Automation' compares to my statement. Would it allow modification for my needs, or would I be better off attempting to script whatever I need?
Is it worth it for you? With just that, it sounds like you haven't played the game a lot. If you'd study the game, you'd know your answer. In order to make scripts, you need to know the mechanics of the game. Doesn't sound like you have. Its probably going to be a year to get the basics working at best. You ready to commit to that?
As such, scripts are not allowed on most servers because it is very easy to make a script that is inefficient. That causes lag for ALL the other players. It takes effort to make efficient scripts. I'm on a server now with scripts enabled and I'm pretty sure one player is using a script that is causing lag and the server is useless to me with that player on.
That's my thought and suggestion; If you're only planning to use C# coding to write scripts for this game in my opinion it's a waste of time to learn the full suite of the language because Space Engineers doesn't use the entire suite.
I don't have Stormworks but I watched a few minutes of a tutorial on microcontrollers for that game. No. It's not the same. Microcontrollers for Stormworks seems to only do logic. Easy Automation for Space Engineers does everything a script can do easier than writing a C# script. An example:
This is a C# script that turns any light named "MyLight" off:
Doing it with Easy Automation:
It's a much easier using EzAuto to write scripts and automate things without using any timer blocks at all. We can use EasyAuto to do multiple things with one snippet of code:
The EazyAuto script above toggles any block named MyLight on if it's off and off if it's already on. It also turns all blocks named Thruster ON, closes any door named Door 2 then waits 3 seconds (for the door to close) and pressurizes the room with any airvent named Airvent.
Doing all that with a C# script would be much more involved, more lines of code, and a crapload more complicated for someone if they don't know C# code very well.
And, yes, Easy Automation is specifically and only for this game. C# has a plethora of uses it can be used for to write programs to do.
:) the same point I was trying to make.
The gains are without question.
But the cost varies for each person:
I've been thinking in code since the early 80's so for me to get something working in a day or two of tinkering is fine and fun.
If I had to make cool stuff in Space Engineers by writing French Poetry then I maybe would not bother and would just use other peoples poems from the workshop.
Jam apple Mollymawk. Jab it England.
Having some experience in another language, even BASIC helps when trying to learn the concepts of programming C# scripts in SE. Jumping in cold might be a bit challenging.
Long answer: I learned C# (and programming overall) by starting off with the game's programmable block, and eventually moved up to mod scripting. Even with many of the new automation blocks being able to close the gap on stuff you can do without scripting, there's still a lot of stuff that's either easier to achieve with scripting (ie not adding block-bloat to your grid), and some stuff that's still only really possible with scripts.
I've mostly moved on from Scripting/Modding in SE, but the time I spent with it resulted in me learning a real skill that I'm able to apply elsewhere (ie game dev, etc).
I'd like to point out on the learning curve.
I learned Basic as a kid on a C64 40 years ago. Learned MS-DOS on 386, after a longer break PHP, started with Phyton, did some hacks in Java, C+ ... for private projects like homepages, databases, games, ... MS Visual Basic I used in a professional context.
After all, I can read code and write simple things on my own. But mostly I change existing code to my needs or bring different snippets together. I'm not a programmer! I can tinker with code. That C64 was the best thing my Dad could buy.
Writing "good" code (short, sweet, performant; yes, code can be sexy!) is a project of several years of learning. Because experience, experience, experience. I myself played guitar instead.
Having that said: all coding was a brillant help NOT being a computer's slave, to understand how and what computer do when.
I encurage everyone to learn some programming: good for brain training, logic, technical independency and competence throughout life. SE can be a good motivation, I guess. :) But without experience in other languages the start will be steep. It's C~.
First you need to theoritically understand the syntax and how variables work (studying). Then read simple code and start expanding it in a simple way, or add another code snippet to work together. So you'll get the hang of it by doing.
If you want to play and automate SE, use Easy Automation.
If you want to expand your understandings, learn to code -- but it's gonna be a longer ride. There is no highway to coding. But many tutorials and Google searches.
I felt like I wanted to know this if I were you. :)
What debate? I was just clarifying things, and also making an observation about Keen's choice of scripting language.