page  <- 1234567891011121314 <- 1 ... 14
^^
vv
List results:
Search options:
Use \ before commas in usernames
yeah, a selection box is obviously needed and that's definitely in the cards for a future update. But the problem is more like, suppose you don't want to select a bunch of things together, you need to access a single particular instance so you can either select it or add a connection to it. Take the frigate target practice buttons for example. There are three different button actors that are swapped out depending on the state the button is in (black, red, blue). The models are identical except for the materials and they are all in the exact same spot. The net effect of that is basically that one of them ends up "on top" and its impossible to select any of the other ones without hiding the top one.

Some 3D tools handle this so if you click multiple times on a spot that has multiple overlapping objects, it cycles through all the objects in that spot so you can get the one you want. That might be a solution, but I'm worried about cases where you're trying to set up a connection and you can't really cycle-click because you're either holding onto an existing selection, or clicking again will cause the link dialog to pop up.

It can be done by making the user hide the instances they don't want to select until the one they -do- want becomes visible, then they can click on it and do whatever with it, but this seems like an annoying workflow to me, especially if you want to work with the other instances after (overlapping instances are probably related to each other in some way), so you have to hide stuff and then immediately unhide it after.

it might be a situation that's better handled by an improved layer setup and an improved instance view, so like if you're working on the buttons, you can just click somewhere and pull up the layer that has the button in it, and then from that you have a short list of only the actors related to the frigate button and you can easily configure whatever from there. But that goes back to needing a good layer system and being able to auto-generate layers somehow.

to some extent you can find actors that are related to each other by crawling connections, but the issue just comes down to at some point most stuff is connected to some other entity like a trigger or a relay that isn't part of the prefab or layer, and there's more connections that go out from there to tons of other completely unrelated stuff in the room. so the problem is really just distinguishing when an object has nothing to do with the one you're focused on, and excluding it from there.
Quote from Aruki:
yeah, a selection box is obviously needed and that's definitely in the cards for a future update. But the problem is more like, suppose you don't want to select a bunch of things together, you need to access a single particular instance so you can either select it or add a connection to it. Take the frigate target practice buttons for example. There are three different button actors that are swapped out depending on the state the button is in (black, red, blue). The models are identical except for the materials and they are all in the exact same spot. The net effect of that is basically that one of them ends up "on top" and its impossible to select any of the other ones without hiding the top one.

Some 3D tools handle this so if you click multiple times on a spot that has multiple overlapping objects, it cycles through all the objects in that spot so you can get the one you want. That might be a solution, but I'm worried about cases where you're trying to set up a connection and you can't really cycle-click because you're either holding onto an existing selection, or clicking again will cause the link dialog to pop up.


yeah, I'd get the keyboard involved for this I think.
Edit history:
Aruki: 2017-05-17 02:49:40 am
Aruki: 2017-05-17 02:47:40 am
Mighta figured something out for the prefab generation stuff, needs more research to verify if this is always the case but.. just gonna copy paste from discord

Quote:
Aruki - Today at 9:51 PM
hmmmmm idea
check something

Aruki - Today at 10:05 PM
how do you guys think Retro's editor assigned instance IDs?

Antidote - Today at 10:05 PM
yeah
the area id was probably inserted at cook time

Aruki - Today at 10:08 PM
I thiiiiiink it might be possible to deduce whether two instances are part of the same layer/prefab by checking how close together their instance IDs are
Hunter Cave for instance

Antidote - Today at 10:09 PM
cool!

Aruki - Today at 10:09 PM
Flying Pirate should likely be on its own layer
ID 002A0128
outgoing connection to Pickup Generator - 002A0112
incoming connections from four triggers - 002A0218, 002A0219, 002A021A, 002A02BB
those are all pretty different, so we can probably conclude the pirate doesn't belong with any of them

Antidote - Today at 10:10 PM
ooo

Aruki - Today at 10:11 PM
Flickerbat should be on a layer with its waypoint path and other associated instances
Flickerbat-component-component 002A0141
first waypoint ID is 002A0142
each waypoint in the path increases by 1

Antidote - Today at 10:11 PM
i think you got it :3

Aruki - Today at 10:11 PM
002A0142 through 002A0146
and then the ActorKeyFrame is 002A0147

synamax - Today at 10:11 PM
niiiiiccce

Aruki - Today at 10:12 PM
the flickerbat has two other outgoing connections
Pickup Generator which is shared by all the flickerbats
ID 002A011D
and a debris generator which is also shared by all the flickerbats
002A0149
so that last one is actually really close
hmmm

Antidote - Today at 10:13 PM
what's 48?

Aruki - Today at 10:14 PM
one of the gib debris chunks

Antidote - Today at 10:14 PM
ah
for the flickerbats?

Aruki - Today at 10:14 PM
yeah

Antidote - Today at 10:14 PM
nice

Aruki - Today at 10:15 PM

that's the list

Antidote - Today at 10:15 PM
looks promising

Aruki - Today at 10:16 PM
I could probably put all the flickerbats in the same layer that way
but I kinda would want them each to have their own
btw, another thing I want to look into is if prefab instances are always in the same order
notice the flickerbats are always

Flickerbat
Waypoint 3
Waypoint 2
Waypoint 1
Waypoint 4
Waypoint 5
ActorKeyFrame

I need to check more places, but it seems like wave beam doors are always in this order

Trigger_DoorKey
Actor_DoorShield_Key
Relay_Key
Relay
Door_Area
Trigger_DoorUnlock
Trigger_DoorOpen
Actor_DoorShield
Timer_DoorClose
Relay_Unlock

I thought maybe prefab script instances would always have adjacent instance IDs, but that doesnt seem to be the case
they do seem like they're always close to each other, though
I wonder if it would be feasible to write something to parse all MREAs in the game and find all instances where the same group of instance names are repeated in the same order (minus the -component parts since that seems to vary between prefab instances), and auto-generate a list of prefabs that way


edit: I think this idea might be generally correct, but there's some problems that need to be accounted for. First since prefab instances don't always have adjacent instance IDs, there's a possibility that there can be unrelated instances sandwiched in the middle, which should be accounted for. Second is there's some instances where the prefab's script objects are not all right next to each other. For example, on the Wave Beam door prefab, the instances for the "weapon ineffective" message is nowhere near the rest of the door instances. I'm not 100% sure why, but my theory is that the "weapon ineffective" message was added later in development so it had to be retroactively added to every area. Stuff like this has to be accounted for.. It would be fine if we auto-generated separate prefabs for the door and for the message, and then we could just stitch them together by hand afterwards. But it makes it a little bit more difficult to automatically recognize instances.

Still even just being guaranteed that the instances are always in the same order, even if they might have unrelated stuff in between, is gonna be a huge help.
reminds me a bit of that old attack that allowed you to figure out how many hits per minute a web server was getting by examining the gaps in the TCP sequence IDs it gave you.
Its getting close right? (Sorry, my impatience is getting the best of me here)
i'm doing my best on it but there are a lot of things i need to spend my time on other than PWE. so yes it's getting close but it'll be a while longer still. sorry.
Edit history:
Aruki: 2017-06-27 05:08:53 pm
https://twitter.com/__Aruki/status/879281984651972608
https://twitter.com/__Aruki/status/879672516565803008

DKCR is fully supported now. That's a big milestone because it means we're finally at the point all four games are fully supported which means this update's getting really close to being finished.

It doesn't mean we're there just yet. There are a lot of missing features still (like support for the Wii versions of MP1/2, and the ability to move/rename assets in the editor). I'm also going to take some time to study how other engines do things (mostly UE4 and Unity) and re-evaluate how I'm managing project and asset data; Unity does a lot of things in a way that makes way more sense than what I'm doing and I'm probably going to steal some ideas there lol. Alongside that I want to rework some of the UI. But hey we're getting there.

I don't want to try to provide an ETA because my last few ones were wildly off and things are pretty busy for me recently, but rest assured it's getting there and I for one am really eager to have this update finished so I can work on something else. I have had SO MANY ideas for new features I want to work on but I haven't been able to until all this is done. So I hope it won't be too much longer.
Been checking out your discord. I'm really excited to see its almost done.
Edit history:
Aruki: 2017-07-26 04:51:40 am
THIS GODDAMN THING IS FINALLY FINISHED.

Prime World Editor v1.2.0
>>> DOWNLOAD <<<



There is no way I can write a changelog for this update. Instead here's an overview of what it does.

This update basically completely changes the way PWE accesses data from the game. You don't extract paks and then open MLVL/CMDL/ANCS/etc files directly anymore. Instead, to load anything in the editor, you need to create a project. To do this, you click on the new Create Project button and point it towards an ISO, and then allow it to generate a project for you using the files from that ISO. Once you have a project created, you simply open it up, and then you'll have access to every file in the game directly within the editor.

What are the benefits of this setup? In the short term:

* One of the big ones: Assets now have filenames. There is a resource browser integrated directly into the main application window. From here you can find any asset in the game. The editor also contains built-in tools to organize and rename assets, as well as to import/export asset names from an external file, so if anyone decides to organize everything, they can easily export the names so others can use them, even with existing projects.

* It's infinitely easier to find things. This isn't only due to the asset filenames (although that's a big one), but just in general because of the way I've been able to integrate an asset management system into the editor. For example, there is a big list of worlds/areas right on the sidebar now, so it's now extremely easy to jump directly to any room you want without having to go through the hassle of opening MLVL files, finding the area in the combo box, etc. that was required on the old build.

* The restriction that you can only use assets that are already in the same level is gone - you can now freely use any asset and any script object in any map. The editor will automatically detect which assets are in use in which packages and make sure all needed files are present when you repack. Load times have also been optimized and are pretty close to the load times you get with the original game files. However, please keep in mind there's no support for the SAVW format still, so any script objects that depend on data being written to the save file still won't work correctly.

In the long term: The systems that have been implemented in this update will make it far easier and faster to add new features in the future. The base game's filesystem is optimized heavily for the game, and as a result it's very user- and editor-unfriendly, and difficult to work with. On the other hand, PWE projects are designed to make it simple to add new content to the game and then get that content running ingame as quickly as possible. It also provides an extremely solid foundation to work from that will make make it vastly simpler to continue building new tools and functionality on top of what's already here.

---

Anyway, you can expect development to be a little bit quiet for the next month or two - things are really busy for me right now, both with work as well as the fact that I'm moving soon, so I really need to backburner PWE for a little bit so I can focus more on other things. But once I get back into this there is a TON of stuff I've been aching to work on, and I hope future editor updates will take a lot less time than this one did!

In the meantime: If you're happy with the work I'm doing and want me to keep being able to do it, you can support me on Patreon! It's not required at all, but having patrons has done a lot to help motivate me to make sure I make progress on a regular basis, and having some income from this project helps ensure I'll be able to keep working on it for the foreseeable future. <3

---

ONE LAST THING: Pwootage is working on porting PWE to Mac/Linux! We don't expect this will be a complicated process, as PWE already uses exclusively cross-platform libraries and functionality. There'll be download links up when the ports are ready!
Edit history:
Antidote: 2017-07-27 04:29:35 am
You forgot to mention that it now runs via hamster power, Aruki. That's such an important feature!
Hey! Two more things. First of all, if anyone has any questions or wants to discuss PWE, give feedback, etc. feel free to do it in this thread, but we also have a Discord server with a dedicated channel for PWE where we can talk in realtime if that's your preference. The invite link is here: https://discord.gg/edCR3hd

Second, a lot of people are reporting having trouble getting ISOs built with PWE to boot in Dolphin. I'm not sure why not, as it works on my end, but if Dolphin isn't booting your ISO then I suggest running your game directly from the project Disc folder instead. To do that:

- In Dolphin, go to Options -> Configuration -> Paths.
- Set DVD Root to [Project]/Disc/files/
- Set Apploader to [Project]/Disc/sys/apploader.img
- Close the configuration settings, click "Open", and run [Project]/Disc/sys/main.dol

Additionally, JosJuice has made some changes to Dolphin that haven't been merged in yet that will make this process significantly easier. In the future you'll only need to add the path to your project to Dolphin's list of ISO directories, and it will appear in the game list. Even though it's not in yet PWE projects are already fully compatible with this system and you'll be able to start using it immediately when it gets merged in. (You can even change the name that shows up in the game list in the project settings dialog.)
As someone who has a sackful of abandoned half-projects, I've got to admire your dedication to this.

I figured you'd have to go with some sort of project system eventually. I remember way back encouraging you just to load the entire game into memory in one go.
Edit history:
Aruki: 2017-08-02 07:43:26 pm
Aruki: 2017-08-02 07:43:10 pm
The latest Dolphin build has JosJuice's changes merged in. Now you can simply add your project folder to Dolphin's paths list and it will show up in the games list in the main window. After saving + cooking your changes you can then run them directly in Dolphin, no ISO build needed.

You can also change the name that displays in the games list. Open the project settings dialog and change the Opening Banner Game Name to whatever you want. To make it display in Dolphin, make sure Options -> Configuration -> Interface -> Use Built-In Database of Game Names is DISABLED. You may also need to click View -> Purge Game List Cache and/or refresh/restart Dolphin.

Quote from DJGrenola:
As someone who has a sackful of abandoned half-projects, I've got to admire your dedication to this.

I figured you'd have to go with some sort of project system eventually. I remember way back encouraging you just to load the entire game into memory in one go.


thanks! Yeah loading the entire game into memory would not have worked at all lol. This setup is the best thing I could come up with.