Monday, September 15, 2014

Programming is coming to Space Engineers

Programming is making its way into Space Engineers. The first version will come this Thursday (September 18th, 2014).

You will have four different ways to "program in Space Engineers":
  • Modding API – This will be the first one. It’s not for everyone, because it will require modding the game. Some programming experience will be required. It will allow you to alter the game by writing C# scripts that have access to in-game objects (at first, only some type of objects will be accessible, but we will keep opening up the interface). These scripts will be shared through Steam Workshop and the game will insure they will run in a safe sandboxed environment (scripts won’t be able to access your local files, send packets over your network, launch applications, etc.). Example scenarios:
    • Dedicated server log: player will know what happened on his dedicated server while he was offline (ships destroyed, players logged in/out, ore harvested, etc.)
    • Robots! (with AI, sensors, logic, behavior)
    • Mission script, large ship fights, search and rescue, etc.
    • New custom weapons
    • Scripted ship spawning
    • Modifying existing blocks (e.g. refinery priority)
    • And more
  • Programmable blocks and HUD – I wrote about this in my previous blog post. It will come in a few weeks after the modding API. The main difference between programmable blocks/HUD and the modding API is that the former happens inside the game world. You will have access only to functions that would be available to an astronaut in-game. We will try to make it user-friendly and easy to use. You will be able to program robots and machinery, but you won’t be able to use this to script a mission or alter the game.
  • Modding API (total access) – this will be an extension of the modding API and all safety restrictions will be lifted (no sandboxed environment). You will be able to write DLL files that can access in-game objects and essentially do whatever you want. These scripts/DLLs won’t be shared on Steam Workshop (it would be too risky).
  • Interactive blocks – this idea came to us after we’ve noticed how you are using sensors and pistons. Some of you were able to create drones that track objects, logic gates, timed lights and other interactive works. The best part is that there was no text-based programming involved. We want to widen your options and we plan to add some new interactive blocks (“timer” block was the first one).

I believe that adding programming to Space Engineers will trigger a flood of creations, the possibilities are infinite. I am already looking forward to see what you will create (I already have an addiction to watching your Youtube videos, Steam Workshop worlds and mods, Reddit…).