FORUM Development Npc Editor

Npc Editor


Npc Editor


One of the first module that we will do for this year is the npc editor. We want to give the ability to the community to create their own npc. This system will be the same system we will use to create our own npc in the game. So we want to create a highly versatile tool this way everyone can create easily their own npc.

One goal of the game that we want to create is that npc can't spawn random stuff like other game. If a npc sell you a piece a wood it's because he got it from a tree he cut himself or buy them to another npc so he can resell it higher to you and make profit.

We want to create a highly diversified and alive mechanic game. So while you are not in the game you could program a npc that do all the boring stuff for you while you are at work. You can program them easy task like mining and cutting tree all day. Then when you return from work to play Citywars Savage you can spend the resource the npc mined for you into more important stuff.

You will be able to create npc administrating your shop while you are afk and other stuff like that. So this way at any time of the day you will be able to sell stuff in your own shop.

Also we start from this module because this will allow us to quickly make the game look more alive. If there is not much people playing the game at its beginning. Example if there is only 5 people online during the day. But 30 player programed their npc and they are doing task in the game the game would look a lot more alive and intéresting to play for these 5 alone player and might bring more player to stay and play longer.

How it will work ?



To save time since we have experience at programing web interface and less effective with unity ui we will program the tool directly into the website. Also one of our goal is to make the game 100% xbox controller and ps4 controller compatible so making a programmable npc behavior tool inside unity risk to be a hard and long task making it controller compatible.

So if you are familiar with blender you know the node editor. For our version we will use this open source one one called D3 Node.
https://codepen.io/Ni55aN/pen/rpOKNb

So you will be able to visually program your npc with the help of those nodes. You will be able to give them condition and behavior in function of their status.

Something like:
Check inventory -> If iron ore < 40
Goto Ironcity
Then mine mineral -> Iron ore
Check inventory -> if "Iron Ore" > 40
Return home
Drop inventory in chest

And then you can ask your npc to return at your house drop the mineral into your chest and return to work.

Basic Action for V0.1



GotoLocation
  • X
  • Y

Patrol
  • Radius

PatrolFromLocation
  • X
  • Y
  • Radius

Mine
  • Radius

MineFromLocation
  • X
  • Y
  • Radius

Lumberjack
  • Radius

LumberjackFomLocation
  • X
  • Y
  • Radius

FollowPlayer
  • PlayerName


Input


Number
  • Number

String
  • String


Possible problem


One thing we will have to be cautious is the processing power that would use those npcs on the server to maintain their brain and actions. That's why we will limit all pathfinding actions to a certain limit to prevent npc to request to much process for their calculation. So we will see later in the future how this system will act in a real environment.

Future Options


Few nice thing we want to add in this system is that people can share their work easely. Like we want to create many node examples where people can simply copy paste into their own npc so they can start to work on them quickly.

In the future you will even be able to sell your blueprint of an npc so people can buy your work and you can gain currency in the game by building npcs for other players.

I think that would be really interesting to see what people can do with that kind of system on their own.
Last edited by Darkirby3; 2018-02-24 00:49:47


First update on the npc editor


We finished the visual of the tool. We transformed the node tool into a more blueprint style one. Everything has been implemented and is now functional on the website.
https://cwz.ca/2cnl6.png

We are currently testing and developing the system server side. Integrating the plugin into the website was the easiest part. Now the hard part is making the programmation that is able to read your blueprint and animate it into Citywars Savage.
Last edited by Darkirby3; 2018-02-28 00:12:49