Giter VIP home page Giter VIP logo

creation-framework's People

Contributors

scrivener07 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

creation-framework's Issues

Planning: Creation Framework

I've still had this standard library for scripting on my mind. I am going for a Microsoft DotNet imitation and CSharp inspired syntax which is very expressive.

I am trying to make the entire library "stateless" where usage is called globally or via type extension (extends). In general this means you can call the global members of the classes as-is, or derive a child class and bind it to a Form in your own mod. The child classes are stateless out of the box. You may override the provided virtual properties to change the base functionality or provide your own. It is also on derived user made classes that instance data may be used as normal.

Here is some highlights.

System:Object

Extends the base Form type. The base for my "re-unified" type system. This is so I can extend the existing type system without overwriting base classes like xSE does.
A new System:* base class is (will be) provided by the standard library. Each system base class will provide a special self property which is of the Form's concrete type. Besides this, you call, extend, and bind to Forms as you would normally with the vanilla base scripts.
https://github.com/Scrivener07/FO4_Scripting/blob/4a490610befd2a88cdd373f547087a948330e860/System/Scripts/Source/System/System/Object.psc#L49-L60

System:Activator

With my own reunified type system I can more easily support some advanced functionality.
The activator type provides a pseudo new operator for script types.
https://github.com/Scrivener07/FO4_Scripting/blob/4a490610befd2a88cdd373f547087a948330e860/System/Scripts/Source/System/System/Activator.psc#L42-L71

https://docs.microsoft.com/en-us/dotnet/api/system.activator
https://www.creationkit.com/fallout4/index.php?title=Activator

System:Type

An abstraction for "external" data communication. I plan for this to help support my type activator.
https://github.com/Scrivener07/FO4_Scripting/blob/4a490610befd2a88cdd373f547087a948330e860/System/Scripts/Source/System/System/Type.psc#L61-L113

Here is an example of external data for the System:Type.
The System:Type provides the generic globals that any script can call without doing any extends or attaching to CK forms. But you can optionally define your own System:Type that optionally provides instance members if bound to a Form..
The default instance implementation of the System:Object -> System:Type is an abstraction for Fallout4.esm. The "Creation Framework" as Ive coined it, internally uses a specialized extension of this by overriding some "virtual" members. The System:Type -> System:Properties:Assembly provides an abstraction for System.esl.
https://github.com/Scrivener07/FO4_Scripting/blob/4a490610befd2a88cdd373f547087a948330e860/System/Scripts/Source/System/System/Properties/Assembly.psc#L48-L58

System:Collections:Stack

An example of a type which provides a global pseudo new operator called Type().
https://github.com/Scrivener07/FO4_Scripting/blob/4a490610befd2a88cdd373f547087a948330e860/System/Scripts/Source/System/System/Collections/Stack.psc#L13-L15
https://github.com/Scrivener07/FO4_Scripting/blob/4a490610befd2a88cdd373f547087a948330e860/SystemTests/Scripts/Source/SystemTests/SystemTests/Services/Object.psc#L1-L16
Its still in the design/prototype phase so Im interested to hear scripter impressions. โ˜•

Inheritance Diagram

I built an inheritance diagram of script objects. Open the image in a new tab to make larger.

Inheritance Diagram

  • Black = Creation Kit Base Scripts
  • Red/Orange = F4SE
  • Blue = "Creation Framework"

That is the big picture so far with my current design direction. Just leaving this here in case someone has interesting feedback.

[not an issue] Some questions about papyrus for Fallout 4 ( porting to Unreal Engine 5)

As an experiment, I started working on porting Fallout 4 Commonwealth exterior map to Unreal Engine 5, here are some more details
UE link

I'm not an tech/artist, so visuals is not the primary focus of this experiment.

Anyways, the experiment turned out to be successful, to the point that it actually looks (albeit basic) in Unreal Engine 5 similar to Fallout 4 original. See these side-by-side comparisons
Vault 111
Map

Anyways, on the to-do list is to eventually port Papyrus scripts to Unreal Engine C++, and I'm looking for someone versed in Papyrus to brainstorm with, and you came up :)

I was wondering if you can lend me a hand with some brainstorming. Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.