Browse Source

Fix some more typos

master
NGnius 4 years ago
parent
commit
036887fc04
1 changed files with 11 additions and 10 deletions
  1. +11
    -10
      site/guides/first.html

+ 11
- 10
site/guides/first.html View File

@@ -26,12 +26,12 @@
If you don't have experience with programming C#, I'd suggest you learn the basics before tackling Gamecraft modding.
I've tried to make the setup as easy as possible, so that you can get straight to the interesting part: modding.
But before we get started, you've got some waiting around to do; time to install some software and download some stuff.</p>
<p>To get the ball rolling, you'll need to download <a href="https://visualstudio.microsoft.com/vs/community/">Visual Studio Community Edition</a>, the <a href="https://dotnet.microsoft.com/download/dotnet-framework/net48">.NET 4.8 Developper pack</a> and <a href="https://git.exmods.org/modtainers/GCIPA/releases"> GCIPA's latest release</a>for this guide (and for Gamecraft modding).
<p>To get the ball rolling, you'll need to download <a href="https://visualstudio.microsoft.com/vs/community/">Visual Studio Community Edition</a>, the <a href="https://dotnet.microsoft.com/download/dotnet-framework/net48">.NET 4.8 Developper pack</a> and <a href="https://git.exmods.org/modtainers/GCIPA/releases">GCIPA's latest release</a> for this guide (and for Gamecraft modding).
I'm sorry in advance to the smart devs who don't use Windows; <a href="https://www.monodevelop.com/">monodevelop</a> may work, but I haven't had any success.
You'll also need Gamecraft (and Steam) installed on your computer, unless you're magic or something.
Since Visual Studio is a Microsoft product, it'll take a while to install, so while you're waiting for that to do it's thing, let's patch Gamecraft.</p>
<p>The latest release of GCIPA that you just downloaded is for patching Gamecraft.
GCIPA stands for Gamecraft Illusion Plugin Architecture, which is based on Eusth's <a href="https://github.com/Eusth/IPA">IPA</a> for patching games built on the Unity game engine (eg Gamecraft, Kerbal Space Program, Robocraft)
GCIPA stands for Gamecraft Illusion Plugin Architecture, which is based on Eusth's <a href="https://github.com/Eusth/IPA">IPA</a> for patching games built on the Unity game engine (eg Gamecraft, Kerbal Space Program, Robocraft).
To get started with patching Gamecraft, unzip GCIPA's latest release <b>directly</b> into Gamecraft's install folder.
You'll know it worked because you'll see some new files and folders, including an executable called IPA.
Now for the real hackerman move: drag Gamecraft onto IPA.
@@ -40,7 +40,7 @@
(NOTE: you'll need to re-patch the game everytime Steam updates Gamecraft)</p>
<p>I'm willing to bet Visual Studio is still downloading (thanks MS), so wait until that's done and then continue.
Using Visual Studio, clone the <a href="https://git.exmods.org/modtainers/TestMod">TestMod git repository</a> into a folder (NOT into Gamecraft's install location) and switch to the "base" branch.
The base branch of TestMod provides a starter project for creating your own IPA mod (called a "plugin").
The base branch of TestMod provides a starter project for creating your own GCIPA-based mod (called a "plugin").
Before you make any changes, though, you'll want to create your own git repository to store your mod (unless you're that one guy in my office who dislikes open-source).
Feel free to use <a href="https://git.exmods.org/">Exmods' Git server</a> (hosted by me!) to make your mod accessible to other modders and Gamecraft players.
For the purpose of this guide the git repository name I'm using is "MyFirstMod".
@@ -51,7 +51,7 @@
copy the contents of [Gamecraft install location]/Gamecraft_Data/Managed into a new folder called "ref" in MyFirstMod, or <a href="https://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/">create a symlink to Managed called ref</a>.
The disadvantage to the former option is that you'll have to re-copy the files everytime there's a Gamecraft update.
No matter which you choose, if you've done everything correctly the project should now build successfully (CTRL+SHIFT+B or Build > Build Solution).
In MyFirstMod's TestMod/bin/net48 folder copy TestMod.dll into Gamecraft's new Plugins folder and your first mod is installed.</p>
In MyFirstMod's TestMod/bin/net48 folder copy TestMod (TestMod.dll) into Gamecraft's new Plugins folder and your first mod is installed.</p>
<h3>Modifying Your Mod</h3>
<h5>Blood in the cut</h5>
<p>Your mod is installed, but it doesn't do anything yet. Let's fix that.
@@ -59,10 +59,10 @@
This is the main <a href="https://github.com/Eusth/IPA">Plugin</a> file, which is the interface between Unity and IPA.
It's very similar to a <a href="https://docs.unity3d.com/ScriptReference/MonoBehaviour.html">Unity MonoBehaviour</a>, but with some sprinkles.
As the first modification, let's do something simple: In the OnUpdate() method, add (or uncomment) "Debug.Log("Print this to log every frame");" (without quotes) and then save and build the project.
Once again, copy TestMod.dll into Gamecraft's Plugins folder. Now start Gamecraft.
When you open Gamecraft's Player.log file (found in something like %appdata%/../LocalLow/FreeJame/Gamecraft), you should see some wonderful spam of "Print this to log every frame".
You did that! You've modified your first mod!
For more advanced stuff, I'd recommend using a C# decompiler like <a href="https://github.com/0xd4d/dnSpy/releases">dnSpy</a> to read Gamecraft code and figure out what you need to modify.
Once again, copy TestMod (TestMod.dll) into Gamecraft's Plugins folder. Now start Gamecraft.
When you open Gamecraft's Player.log file (found in something like %appdata%/../LocalLow/FreeJam/Gamecraft), you should see some wonderful spam of "Print this to log every frame".
You did that! You've modified your first mod!</p>
<p>For more advanced stuff, I'd recommend using a C# decompiler like <a href="https://github.com/0xd4d/dnSpy/releases">dnSpy</a> to read Gamecraft code and figure out what you need to modify.
Also read about <a href="https://github.com/pardeike/Harmony/wiki">Harmony</a> (included in the TestMod base configuration; see TestPatch.cs) for patching existing methods.</p>
<h3>Gamecraft Architecture<h3>
<h5>Do I wanna know</h5>
@@ -75,14 +75,15 @@
With ECS, an entity, which is similar to an object, simply describes what components it has relationships with; usually one-to-one.
Those components are created and then stored in an entity database, where they can be accessed and modified.
The entity itself is never really created, so there is no easy entity traversal.
ECS does offer other advantages, like performance-friendly operations on a set of components and much better dependency decoupling between objects.</p>
ECS does offer other advantages though, like performance-friendly operations on a set of components and much better dependency decoupling between objects.</p>
<p>In Gamecraft, a custom-desgned ECS is used called <a href="https://github.com/sebas77/Svelto.ECS">Svelto.ECS</a> (made by FreeJam's superstar coder Seb).
Gamecraft tends to use the most recent version of Svelto.ECS, or even a version newer than what is publicly available.
Svelto.ECS does have some documentation (but nothing extensive) in the form of articles on <a href="http://www.sebaslab.com/">Seb's website</a>, but I find using dnSpy to read Svelto.ECS.dll to be much more helpful.
Seb also has a Discord server if you have Svelto.ECS questions.
Please don't bother him with non-ECS questions; Gamecraft doesn't officially support modding and we wouldn't want them to try to actively prevent it.</p>
<p>In between third-party code, compiled-out code comments and the lack of official modding documentation, the hardest part of modding right now is figuring out how to do what you want to do.
Using a combination of dnSpy and some of the resources mentioned in Further Reading, I hope it isn't too hard for you.</p>
Using a combination of dnSpy and some of the resources mentioned in Further Reading, I hope it isn't too hard for you.
Either way, rest assured that modding does get easier with a bit of practice; the start of the learning curve is the steepest.</p>
<h3>Further Reading</h3>
<h5></h5>
<p>Some of these resources have already been mentioned, but I'll mention them again to have a complete list of resources for quick reference.</p>


Loading…
Cancel
Save