Skip to main content

Introduction

Most of this information comes from Kuitar's guide here - https://docs.google.com/document/d/1oPPV4U8iq8yjarE_9EyDScY3UkHUY2ZKX5vHazkcXCc

See the Google Doc link for the latest info at this time.

danger

The tooling around building custom levels is in very early stages.

Be prepared to encounter many situations where you won't be able to do certain things without significant effort in areas such as:

  • Programming C++
  • Programming OpenGOAL
  • 3D Modelling without a lot of tooling
  • etc.

This guide will hopefully serve as a stepping stone for you to get into it. While I’m not going to pretend I’m an expert in everything here, there are a lot of things that I have learned.

This is a work in progress and will probably be public before it’s fully finished, whenever there’s enough to get started with. Bear with me. Note that some tools which will make part of this guide obsolete are being worked on at the moment. I do not know when they’ll be completed but will try to update the guide when those changes are made.

What You’ll Learn Here

This guide will get you up to speed on all the fundamental you’ll need to create a working level within the game such as:

  • Initial setup for a new level
  • Exporting a level from Blender
  • Adding actors
  • Changing collisions
  • Creating checkpoints and load boundaries
  • Lighting your level, Jak and actors
  • Creating tasks for your cells and flies to work properly
  • Creating the menu for your level
  • Adding and editing particle systems

This guide will not teach you coding or how to use Blender. While I’ll go over what I do in Blender and might give some tips here and there, learning Blender is outside the scope of this guide, you’ll need to find other sources for that.

The coding aspects will also be very basic, you can learn more about GOAL on the main website's documentation.

Required Software

Here's a list of all the software you'll need or that I'd suggest you use to make your life easier.

  • Blender 4.0: While other 3D modelling software might also allow you to export into ".glb" files, there's specific addons and things that'll only be possible through Blender. Also you should just learn blender, it's one of the most impressive pieces of open source software that exists (not biased). You'll specifically need version 4.0 for now for reasons that'll be explained later. You can download this specific version here by clicking on "download every version of Blender" and looking through the list.
  • Visual Studio Code or Sublime Text.: The choice here isn't as important, you could edit code in Notepad if you really wanted to, but an advanced source code editor will make your life much easier, the two mentioned here also have specific addons for GOAL syntax highlighting. Personally, I'll be using Visual Studio Code.
  • GitHub Desktop: This one is not a hard requirement and if you're not used to working with Git, you probably don't need to set all of that up on your first try at a custom level. But if you're going to work on a large project, especially with a team, it'll pretty much be a requirement. I won't go into how any of this works in detail.
  • OpenGOAL: Specifically the OpenGOAL mod base made by Zed and Barg. This has some changes made to it to make modding easier and, most importantly, has the requirements to be able to get added to the mod launcher later on.
  • Jak 1 ISO: Same as for playing OpenGOAL normally, you'll need an ISO to extract, this doesn't come with the mod base.

Scope of Your Project

Before you even start, it's a good idea to think about the scope of your own project. Depending on what you want to do, the skillset you'll need can vary wildly.

  • It can be as simple as importing a level file from another game and placing a few actors, which, unless you want to do more complicated things with those actors, shouldn't need advanced Blender or coding knowledge.
  • The next step up would be levels made from importing assets. These will need quite a bit more knowledge of Blender to be able to place things well without needing to know things like actual 3D modelling. There's also currently no library for the base's game assets to make this easier, so you'll need to rip the assets yourself manually from the base game's models which, while it's not the hardest thing to do, will definitely be a lot more time consuming.
  • The last "difficulty" is a level with fully custom geometry, this will require a pretty high level of Blender or 3D modelling knowledge in general. While I think anyone that puts in the time and effort should be able to learn Blender enough for this, be aware that this is a huge undertaking if you've never done any 3D modelling. As someone that has done 3D modelling for 15+ years and teaches some of it, you'll have to strap in. So I suggest being realistic with your goals when starting.

This whole thing isn't to scare any of you. Quite the opposite, I think huge expectations are more likely to stop you. You can also ignore my advice and prove me wrong by doing some insane shit, I'd love to see it.

Current Limitations

While there's a lot that can already be done within custom levels, there's also things that can not. Crystal Cave is a decent showing of a lot of the things that are currently possible, but not all. Here's the main things that are not possible or would require a lot of hard coding:

  • Navigation meshes: These are required to have enemies or NPCs that move around. So any moving enemy cannot be used at the moment.

There's probably a lot more stuff like cutscenes and very advanced things but these are the more basic ones that aren't possible so far.