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…).


78 comments:

  1. Can't wait to have access to the API :D

    ReplyDelete
    Replies
    1. Oh my... thats gonna be good.

      Delete
  2. Nice Keen Software House, you're doing good. I'm very proud to see all your updates, you're working so hard to give us the best experience I've ever seen in videogames, the way you release updates and how you make the game it's not something you see everyday.

    Thank you very much from Venezuela.

    ReplyDelete
    Replies
    1. Your dedication is unprecedented and is something I have never scene before from video game developers. Your drive to improve the game is growing just as quickly as the fan base. With every update comes new features that are community driven. These programming (API and others) are "next-gen" in terms of a sandbox game and will set the base line for future the future.

      Delete
    2. As much as I agree with the above sentiments...I would not go overboard and say these features are "next-gen" at all. This has been done many times by many great developers and it indeed made them lot's of money (most of the time). You just have to be old enough to remember.

      Thanks for the blog Marek, looking forward to the update and testing the first things to come from the API on my dedicated server. This does secure the future for Space Engineers potential growth in the community and thus, people's desire to get more people involved so good for you guys.

      Delete
  3. You are my gaming HERO!!! This game was so worth the price the time and the fun. There is always something new, something that keeps me on the edge of my seat to keep playing, I have over 100+ hours on SE and I have to say you rock and this game rocks, can't wait to experiment with new modding tech and possibilities with the mission scripts. Keep it up you will become a PC game making legend!!!

    ReplyDelete
  4. Its the singularity :O

    ReplyDelete
  5. Roll on the rail guns, this game is fantastic.
    Thanks fae Scotland :)

    ReplyDelete
    Replies
    1. YES RAIL GUNS!! Thanks from Pennsylvania Marek

      Delete
    2. with ammo types? explosive/kinetic

      Delete
    3. both!! velocity desided by amount of magnetic repeaters and total barrel length! shields! lazers, we have it all now mwaaahahahahahaaaa

      Delete
  6. Minecraft is dead, long live space engineers

    ReplyDelete
    Replies
    1. Minecraft will be doomed anyhow after Microsoft spent so much on it.

      On the other side this game is so addictive, really impressed with the development process and the feedback you get as a player direct from the developers.

      Delete
    2. 1. Minecraft already has all these features
      2. Space Engineers while and amazing game is much less forgiving than minecraft which will limit its target audience(not saying SE won't be super successful but I don't see it ever being as big as minecraft)

      Delete
    3. What's Minecraft?

      Delete
    4. Don't feed the troll...

      Delete
    5. ok look minecraft is actually dead. i mean sure yes it had a massive fan base however it dident have the Engine required to be so much bigger then it was. Like for instance being able to create ships vehicals and wepons. the one thing i always wanted in minecraft was a vehical and still nothing unless you count minecarts. (and no one does.) minecraft was a good game but SE has the power to Fly Much Much MUCH farther.

      Delete
  7. Oh I hope so much you guys make some great tutorials on how to do this. I'm a career programmer, but have never made a Steam mod for a game. If I can just mod the connector to actually gave me 5 seconds to back up before it sucks me back in (so I don't have to do the bronco bucking dance to get free) then my life will be complete.

    ReplyDelete
    Replies
    1. Put the connector ON/OFF toggle on your ship's toolbar and easily turn it off when you undock

      Delete
  8. This is going to be LEGEND........wait for it.........

    ReplyDelete
  9. Awsome! Cant wait to try it. Am working at the moment hard on walking Bots. I want then to walk like Insects. At the moment i use the time-box in combination with the sensors to make a minimal scripbut it would improve the Bots a lot with the coming update! Cant wait to see it.

    Keen youre awsome!

    ReplyDelete
  10. Question, will we be able to save files. Like what I am thinking is creating an Assemble Factory, Welder Factory, Recycling Factory (Disassemble Ships into Blueprints and or recycling a ship or stuff like that). For the assemble factory i'd need to create blueprints, and these blueprints will have step by step methods depending on how complex the blueprint is. So being able to save these blueprints, loading them, and stuff like that. Will this be possible?

    ReplyDelete
    Replies
    1. Adding my other question here so its all in one area. Another question would be with Modding API will we have access to the GUI? So lets say we want to create a new GUI window for my planned idea above?

      Delete
    2. Yes, access to GUI should be possible (even to HUD, render engine, physics, etc)

      Maybe not in the first update this Thursday, but later for sure.

      Delete
    3. Thanks for the response, it means a lot that I even got one. I am not talking about the render engine, etc. etc. I know that is during the Modding Extension parts, but I want to be able to upload my mod factory concept via workbench. I just wanted to know what will be possible and what really won't via the two different API. What I want to be able to do is add a button on the Production Window, that goes to my factory window another words, and you'll be able to access it directly via the factory console that i'll design. But I wanted to make it so that you can access it directly via production, if not that then add a button when you select the console and "View Factory" or something like that. I'll be creating a mod thread here shortly about what my planned goals, and i'll reference it, maybe you can tell me or i'll end up finding out one way or another. I know a lot of modders are really curious about this and are really pumped up.

      Delete
  11. no i want AI officially added to the game not with mods or other people programming it i don't like using mods on this game also please change the door model its to thin

    ReplyDelete
    Replies
    1. Shane something to realize, there are a lot of doors that will be opened with Modding API. AI will be something I am sure we can create even with Modding API that people will be able to download. I am sure someone will create some sort of AI Base Core structure to make wrappers, for other AI logic.

      Delete
    2. I understand where you are coming from shane but AI would take more than a week to program and they would have to stop the weekly updates. they might at another time but they have a lot to do as is. This game is built to be modded and changed. At least they are easy to install.

      Delete
    3. oh shit more than a week, i mean its not like the game is in alpha or anything. "nah thats too hard to implement we'll let the community do it"- Marek Rosa every blog post

      Delete
  12. This is great news Marek, I can't wait to write some scripts :D

    ReplyDelete
  13. Marek, you are everything that I aspire to be in a developer. I hope to one day be as awesome as you! Thanks for making such a good product.

    ReplyDelete
  14. please try to optimize the game first....

    ReplyDelete
    Replies
    1. Optimization is the last step of game development

      Delete
    2. There's already been quite a bit of optimization! An old world called "Chaos Engine" that I only got 1-2 fps a year ago now runs smoothly with no lag, even if I shoot a missile at the dozen spinning arms and make them fly into other and shatter like crazy!

      Delete
  15. I remember one game back in 90's, it called "Colobot". It's an educational real-time strategy where you learn to use c++ by programing little bots to do what ever you want them to do.
    I hope you will implement similar thing here. Good luck.

    ReplyDelete
  16. Yes for Modding API, yes for in-game programming...

    NO for timer block and related :(

    Timer block should be replaced by in-game programming (not necesarily coding), something more transparent, something that is not a block for one simple action.

    In worst case, I would prefer the features of timer block and other future things to be all incoroprated into a single block.

    It should be done without any blocks at all since the entire ship is basically a bunch of computers.

    ReplyDelete
    Replies
    1. I would prefer this as well. To have one block per action would need a lot of space for complex creations.
      It would be awesome to have a single block where (in the GUI of the block) you can drop actions on some sort of grid and link them together the way you want.

      But either way, programming is coming and i'm really happy about that! :)

      Delete
    2. Here's my in-depth thread about this on KSH forums: http://forums.keenswh.com/post/please-dont-make-this-minecrafts-redstone-7081623

      Delete
    3. I think they will add both: in game programming AND logic "blocks". In this case, it would be like Gmod's wiremod, with expression 2: You want to make something small, and you know how to code? You have a programming language. You would like something bigger, but that anybody with a brain can understand? You have logic gates. Also, it is a little like starmade's logic blocks: It is simple, a little big but simple, it can easily be understood by anyone, and you can make fun things with it. (maybe a way in SE to see connexions, through holo-cables, to make it easier to get?)

      BUT if you find this too big or want to make something complex, use programming. Nobody will force you to use logic blocks.

      Delete
    4. I do like steam/clockpunk, and wouldn't mind building low-tech gadgets (cogs have just made their appearance in the workshop) - if they were in tiny sized blocks, and we had proper grid integration.

      If these were in, I could do control units for heavy-duty machinery without using several times more more space than the actual equipment I want to automate...

      Delete
    5. I'm fine with wiremod-like, but the thing is in GMod you could make the chips tiny and make an entire complex motherboard the size of the timer block.

      Both realism-wise and gameplay-wise the timer block isn't practical as an individual block, I hope the devs realise this before adding more logic blocks instead of converting the timer block into a "logic container" that can have multiple timers and other logic stuff.

      There's also the point of balance, if you don't want non-coders to be at a disatvantage (physical space, resources), then you should have a "computer core block" that holds both timers/logic and text codes, this will also allow easy mixing.

      Delete
  17. Hey Marek, I'm going through college at the moment to learn video game development. I aspire to one day be as great a developer such as yourself. You guys are making amazing progress!

    ReplyDelete
  18. Optimization is happening, they fix bugs and improve the rendering every week, its not going to happen overnight, and they want to always release new stuff weekly, as well fix bugs. I am sure they have a few people who fix bugs 100% of the day and improve code, where others are working on features

    ReplyDelete
  19. Great game, great idea's! Could we get some optimization though? Mainly viewing objects at long distance, seems to kill my frames.

    ReplyDelete
  20. Have you guys decided on a language for programming blocks/HUD yet?

    ReplyDelete
    Replies
    1. Yes, C#

      It's what we use for developing the game and there are many advantages to using it for in-game scripting as well.

      Delete
    2. Is there gonna be a way for those of us who have never looked at C# be able to program in the game (maybe a simplistic version or premade scripts or the ability to upload "programs" to the workshop?) because as much as I love Space Engineers (about 300+ hours worth of love), I'm not sure that I would be able to pick up C# just for the programming aspect.

      Delete
    3. Good question... I've played games that use Lua, very straightforward and intuitive... Never tried C... Hopefully it's just as easy, group of commands, type in command and item and it works.....

      Delete
  21. This is great! I can't wait to start programming in Space Engineers. Thank you Marek (and the rest of Keen Software of course).

    ReplyDelete
  22. Just amazing. This is the game I've been wanting to play since I was a kid. Thanks Keen!

    ReplyDelete
  23. Want a way to programming: flow fraph
    And so that each unit can be adjusted without knowledge of programming languages​​.
    I hope it at least as it is implemented, can be modders.

    ReplyDelete
  24. Robots! (with AI, sensors, logic, behavior)
    Mission script, large ship fights, search and rescue, etc.

    Single Player?

    hells yeah!!

    ReplyDelete
  25. In the in-game programing will be something like IntelliSense and syntax highlighting?

    ReplyDelete
  26. Thank you, Keen. You've never slouched on the updates; this addition may prove to be the biggest game-changer yet. You're making me consider buying a second copy to show my approval of your work.

    ReplyDelete
  27. First of all I think the modding API is great and I'm eager to see the communities creations.

    The second thing is pretty off topic but I wanted to suggest it anyway.
    I think a great feature to have would be to be able to manually control capital ships turrets by going into a ''firing mode'' and then the activated turrets fire in the direction you point your mouse at. In this mode you would not be able to guide your ship with the mouse but if you have two players one could control the turrets and someone else could fly the ship.

    This would make capital ship combat less complicated and more interactive.

    Anyway keep up the great work and also if you could reply in order for me to know that you read this that would be great.

    Thanks in advance Friedrich.

    ReplyDelete
    Replies
    1. Like 1 control station for a ship and a 2nd one for other interactions like fighting camera's and stuff?

      Delete
    2. The example with the seperate cockpits for seperate functions was just there to show how two players could work together in order to sustain fire power and maneuverability.I actually think that seperate cockpits with seperate functions(mainly actiongroups) are already in the game.The more important thing to me is that gatling turrets and missile turrets could be controlled manually.

      Delete
  28. Will we be getting actual AI? VRAGE 2.0 does say it supports advanced AI in moving environments, they could use the default ships we have now, maybe have their own bases and if we enter a section near their base (territorial AI?) they launch swarms after us until we destroy the base totally, or maybe there could be a block for spawning AI and once we destroy it, that sector is safe

    ReplyDelete
  29. Please ass SLI Support so that i may use both my GPU's I hope someone at Keen reads this message. I believe its time to address that issue.

    ReplyDelete
    Replies
    1. Yes, Keen should drop what they are doing so you can use both of your GPUs. What a solid thing to believe in.

      Delete
    2. It's NOWHERE NEAR time to address that issue. Not even close. Your cards have jack and shit to do with why the game is slow.

      Delete
  30. This is really awesome work Marek! I'm definitely looking forward to being able to program in space engineers :) (Going to implement a neural network of some sorts in there, although I think I should avoid doing that haha!). Although I got a question - When it comes to the execution of the C# code through the programming blocks, is the code going to be stored on the programming block itself or is there going to be a particular block such as a hard drive block that allows you to extend the size of the space?

    ReplyDelete
  31. This comment has been removed by the author.

    ReplyDelete
  32. Dear God! Best game ever!:) It had to be very hard to create something like that. I am planig to create few games on my own but this is mind blow

    ReplyDelete
  33. First of all... guys.. thank you for such an amazing game (wish I had more time for it) keep up the great work... now I don't know if you guys have received any suggestions on increasing even more the space for items in the astronauts "G" menu... with the ever-increasing mod lists sometime we need more space and is getting cramped in there... thanks!

    ReplyDelete
  34. Can you add rope or chains because they would very helpful when lose blocks or maybe a net

    ReplyDelete
  35. Excellent Marek! Finally it's coming!
    *logs onto keenswh.com*
    *sees new Marek blog post*
    *almost has heart attack from programming*

    So, just to be clear, only Stage 1 (Modding API) will be added in today's update, with the others following after?

    ReplyDelete
  36. Omg shut up and just take my money!
    Marek, dude, you are doing a fantastic job!
    Keep up the good work!

    ReplyDelete
  37. I have no clue of how modding works, but I can't wait to see what the creative community will come up with. Judging from their work so far, it's going to be a rollercoaster of awesomeness.

    I was sceptical about backing this game for a long time. Though I did have a feeling of the great potential behind it, I had been burned in the past by developers.

    All that aside, your excellent work, apparent passion and clear concept of what you want your game to be has made me budge.

    I'm a proud owner of this game for something over a month now, and I can see it is shaping up to be something extraordinary.

    Keep it up guys and well done. You're restoring a lot of peoples' faith in Indie developers and Early Access.

    ReplyDelete
  38. *_* awesome news! But what about docs? It is a bit difficult to code without knowing what exaclty a method does. Of course, most names are clear but I think you know what I mean. I just want to know if it is recommanded to take notes or we just have to wait.
    By the way: Great work!

    ReplyDelete
  39. Why not create a "computer core", in which the interface where you will be creating programs in Mindstorms NXT?

    ReplyDelete
    Replies
    1. I agree. The only logical step would be to include a block programming language like the above or "snap" that writes C# code. It would also enable a visual control over fabrication chains. Plus it's easier to grasp for the none programmer

      Delete