SFTtech / SFTtech/openage

Scripting API

Open
#735 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: api lang: python to-discuss
Dominant language
Python
Stars
14.4k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

As our ultimate goal is cool moddability, and not everything can be done with data mods (with nyan #734) we also need scripting support.

This consists of multiple parts that need to be done:

  • Load and run scripts
    • Load scripts via nyan
    • Install script hooks via nyan
    • Let the script manipulate the hooks it installed
  • Game manipulation
    • Apply patches in nyan
    • Perform actions with game entities
    • ...
  • higher level AI scripting
    • Python interface
    • even higher level lisp-like interface like the original's ai scripting language
    • ...
  • Caution users against unsgned mod packs containing scripts
    • We can't and want to sandbox python, you should be able to use http://scikit-learn.org/ and the like
    • The openage-dev-team should be able to sign mods that have approved code: We can still hack your computer with the regular openage code, so we can also sign mod code.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

This issue is a broad scripting roadmap covering script loading and hooks through game manipulation, Python interfaces, higher-level AI scripting, and mod signing. Start by clarifying which one part is being undertaken and how it should integrate with nyan; no files, tests, or entry points are named, and completion criteria are not defined.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.