HomeGamesUpdatesPricingMethodology
Steam News10 June 20242y ago

Lifecraft Modding

Hello everyone! In these days we're working to the new update but meawhile we're investing some time in exploring how modding would integrate with the game.

Full notes

Full Lifecraft update

Read the full published notes in a cleaner layout. The original post stays linked below.

Repeated intro

Hello everyone! In these days we're working to the new update but meawhile we're investing some time in exploring how modding would integrate with the game.

What changed

0 fixes1 addition5 changes0 removals
  • Gameplay
  • UI and audio
addedHello everyone! In these days we're working to the new update but meawhile we're investing some time in exploring how modding would integrate with the game.
changeddefine a native interface which "exposes" to modders all the feature of the game, this would allow efficient compiled mods as DLLs
changedchoose a scripting language to write mods, to provide a less efficient but easier to use interface
changeddefine the bridge between native and scripted interface to bind all the calls
changedfinally implement the functionality on SteamWorks (or even better a custom in game interface) to let you share them in a common way.
changedThe scripting language chosen is AngelScript , which is a really mature scripting language which is able to wrap underlying C++ code in a rather efficient way.

Lifecraft changes

addedHello everyone! In these days we're working to the new update but meawhile we're investing some time in exploring how modding would integrate with the game.
changeddefine a native interface which "exposes" to modders all the feature of the game, this would allow efficient compiled mods as DLLs
changedchoose a scripting language to write mods, to provide a less efficient but easier to use interface
changeddefine the bridge between native and scripted interface to bind all the calls
changedfinally implement the functionality on SteamWorks (or even better a custom in game interface) to let you share them in a common way.

The game already supports a basic modding infrastructure but to properly make it work a lot of steps must be taken. Mind that the game is developer on a custom C++ engine so we don't have anything out of the box!

  • define a native interface which "exposes" to modders all the feature of the game, this would allow efficient compiled mods as DLLs

  • choose a scripting language to write mods, to provide a less efficient but easier to use interface

  • define the bridge between native and scripted interface to bind all the calls

  • define how to properly manage mods in save games (how to enable/disable them, how to keep track of versions and interactions and so on)

  • finally implement the functionality on SteamWorks (or even better a custom in game interface) to let you share them in a common way.

You can see that this is a LOT of work, that's why, together with multiplayer, we are slowly doing it in spare time from working on game content.

The overall native API structure has been chosen and it's currently under development, this is a very long process because all the characteristics of the game must be correctly exposed to be altered by mods.

The scripting language chosen is AngelScript, which is a really mature scripting language which is able to wrap underlying C++ code in a rather efficient way.

The mapping between native and scripted functions is already started and it automatically generates the documentation:

Basic mod loading mechanics is under development, that's not an easy task but something is already working and you can see the final example here:

This is just a simple example but it's to give you an idea!

TL;DR: modding is long and complicate to implement, some elements are already working and hopefully we'll be able to enable testing your own mods in the nightly branch soon, without much support for sharing them or making them interact but it's a good start anyway.

Have fun!

Source

Steam News / 10 June 2024

Open original post

Changelog.gg summarizes and formats this update. How we read updates.