Phae Project Dev Log 10: Reducing the game scope to match my new work schedule

Phae Project Dev Log 10: Reducing the game scope to match my new work schedule

Dev Log 10

It has now been 10 weeks that I started the project. In the past few weeks I have been rapidly getting missing my plans deadlines/milestones. This is due to the scope being too big and my plans being to ambitious. On top of that I will have less time to dedicate on my game from now on. I was hired by Opsive to work on a standalone inventory asset that will sync perfectly with UCC. This is great since I can get paid while working on a project that will directly impact my games development. Of course due to having less time to dedicate on my game development, some new plans and organization are in order.

Here is the breakdown of this week:

Wednesday : 4h

On Wednesday, I started researching inventory assets on the unity asset store to gather reference material for the Inventory design document I am making for Opsive. I found a lot of interesting things I hadn’t thought about and I wrote a quite extensive list of features that a inventory system should have.

Thursday : 1h

I wrote some additional comments in the inventory design doc and sent it to the Opsive developers.

Friday : 6h

Turns out Opsive will hire me to work on the Inventory system. It will be 20 hours per week, since I was putting around 40 hours into my game per week, now I should expect to put around 20 hours of work per week towards my game. This is a great opportunity though, as I can get paid for working on features that will be useful for my game (sort of). It also means I have to dedicate a lot of time on features I wouldn’t have to develop if I was making an inventory for my game alone. Unfortunately this will be time I won’t be working on my game. Therefore I need to reduce the scope of my game to make it viable with my free time schedule.

Since I was already getting more and more delays on my development planning I think now is a good time to reorganize my planning and cut a few things from my game. To optimize my time and work I will make my game be heavily oriented around the inventory and items. I’ll push forward exploration, collection and crafting.

To be fair the games scope was too ambitious from the start for my first PC game, but I won’t give up, even if I have to reduce the scope it doesn’t mean I will give up on the project altogether.

To reduce the scope I will need to remove something major. The biggest feature I will remove is the pet system, the phae…. Which is a shame since my project is named after them. I will keep the name though, as it is just a prototype name and I might still make it sensible depending on the story of the game. The Phae were the center of the game, by removing them the development time is essentially reduced by factor of two maybe even three. If the game does well I’ll make a second one where I add the phae.

So now the game will be more focused around collecting materials and crafting weapons/armor to boost the character stats in battle. For now I am keeping the idea to have three weapons and switch between them in battle. I am also keeping the idea about 2 skills per weapon.

Dialogue and quest are already implemented thanks to the Dialogue System and Quest machine. And they work perfectly well. Interactions can be done with UCC and Final IK integration easily (almost got it working perfectly).

The collecting and crafting will essentially be made as mini games. Example rhythm mini game for wood crafting or reaction time mini game to fish.

If I keep all these features I can adjust the story length, world size, quest count, enemy count, boss count, etc.. to match my schedule.

If it turns out that even with these cuts I still have trouble keeping the development within schedule I will simplify the combat, hopefully it won’t come to that.

The Inventory system development is now separate from Project Phae. This means that I won’t be posting information about it in my weekly Project Phae dev log (even though it is more of a diary for myself). I will be posting things that are specific to my game inventory though.

Coming back to my games development. Today I was looking into why my Final IK interactions were jittering. After some digging around the code I found out that UCC needs Final IK to only update during FixedUpdate (fixed time, used for physics) and not Update (relative time to frame rate). And the Jitter was caused by the InteractionSystem (By FinalIK) that was updating the lookAt component during Update. The reason InteractionSystem updates LookAt is so that the character can look at whatever he is interacting with. Even though I found the cause I have no way of fixing it without changing the FinalIK source code. So I sent my findings to the Opsive devs and asked them to get into contact with the RootMotion devs.

That’s actually all I was able to do today. With the Opsive Inventory and reducing of scope I have a lot on my mind and I need a lot of time to think and plan.

Now that I have decided to remove the phae from the game I need to modify some elements in the UI. but I won’t do so just yet as I will be developing a UI system for the Inventory System, which I will then use in my game. So all that is left for me to do is work on the combat system purely on a character controller basis (no item stats, just combos and character/enemy movement). Here is a list of the first few things I need: Lock system Just like Kingdom hearts; automatic lock and manual lock Combo system Having combos that can chain when changing weapons Character movement controlled by attacks and affected by enemy I need the attacks to make the character move towards the enemy Enemy movement affected by character attacks When I hit an enemy I want it to stay in front of the character With this I should be able to at least control my character well enough so that he can hit enemies. Then I will need more much more.

Saturday : 4h

With the recent changes I have been doing a lot of thinking and researching but no implementation. On one side I have the inventory, which I am finding tons of reference materials to give myself an idea of how things should be implemented. On the other I have the action JRPG style combat, which I cannot find any kind document that tells me how I should approach it. I am going for a style of combat similar to a Kingdom Hearts, a Nier automata or even a bayonetta. Something fast pace where you need to dodge attacks from all sides and where you move around the battlefield smoothly and rapidly.

I did find a GDC video about how Platinum games made Nier Automata. It does give some nice indication on what to aim for but nothing too technical. So I guess I’ll have to dive in without knowing what is needed and simply start by implementing the things I know that I need, and figure out the rest on my own until I achieve something fun. If I can’t make a combat that is fun after a few months… then I guess I’ll have to change the action combat to something else (turn based or something weird). I guess another way to research how action JRPGs combat work is by playing the games I mentioned above. I can try to test things to understand how they work and compare my game feel with theirs. Hopefully by playing back and forth between those games and mine I will be able to get a similar feel.

Sunday : 3h

I will take a little break from the actual implementation of the game. I am waiting for an update that will speed up the inspector for prefab variants. There’s a bug in my character prefab that makes the inspector update/serialize continuously and it slows down so much that scrolling through the components take up to 5 seconds to get a reaction. I can’t work efficiently like that.

So I’m doing other stuff like planning and thinking about the games story without the phae. I’ve been writing down some ideas for the new story but nothing very specific. I need a story that gives the player enough freedom to explore the world and collect/craft items. I still want a interesting linear story. But I am thinking about a story style that has down times. Meaning that you have some sort of story episodes and between them you are free to go around and complete side quests.

Monday: 0h

Worked on the inventory, I didn’t have time to work on the game

Tuesday: 1h

While working on the inventory asset I learned about some interesting things. There are things that I knew could be done with C# but I didn’t know how and before now I never bothered researching how.

First of all I learned about Extension Methods. It’s a way to extend existing classes without the need of creating a new class that inherits it. Without changing the class source code you can add methods to it. I knew these existed because I used the Linq library which extends a few IEnumerables like Lists and Arrays. You can find a bit more about how to use extension methods here

I also learned about Covariance and Contravariance. You need at least .Net 4 to use them, you can change the default .Net 3.5 in the Unity “Player” editor window to .Net 4.6. I can’t say that I completely understand how it is used yet, but I find it useful when dealing a lot of inheritance/polymorphism.

Recap: 19h

  • Made a inventory asset design document to help Opsive
  • Got hired by Opsive to make the inventory asset
  • Fixed some jitter in the UCC/FinalIK integration
  • Re-organized my thoughts and plans
  • Reduced the project phae scope to adjust with the new schedule and limited available hours.
  • Started thinking about some changes to the story and gameplay

I am sorry for having no images in the post, this week. There really wasn’t anything to show. This week was very weird. It was just a matter of days from the moment I got into contact with Opsive to the moment I signed the contract. But I feel very passionate about working on the inventory asset, since it is definitely something that UCC is missing. Now that I will work on this asset I won’t be able to work on my game as much as before.

Even though I have less than half the hours I could dedicate before I will not put this project on the side. I will instead just scope it down a lot and remove a few planned features like the pet/Phae system. One day maybe, if I make a sequel or a totally new game, I’ll add the ideas I couldn’t include this time around.

I will now focus on the exploration/collecting/crafting this way I can take the most advantage of writing a great inventory asset. During the next few months, while I get the inventory asset ready to be used in my game, I will focus on the combat/battle system. It is the first time I try anything related to 3D/animated combat so I have no clue how it will work…but somehow i will. Dedication is key.

I’ll work on my part time jobs Tuesdays-Fridays or Mondays-Saturdays depending on the workload (both are 16-24h per week). Most of the time I will be able to dedicate on the game will be during the weekends. I’ll also try to put at least an hour or two each day after my part time jobs. Even if I don’t implement anything, just thinking, writing some ideas down and plannifying/organizing is something that can be done anywhere/anytime and it will push forward the development.

From now on I will post the weekly dev blog on Mondays. This way I can write up the blog just after making some good progress, hopefully.

Until next week!

Author face

Santiago Rubio (Sangemdoko)

A electronics and information engineer who works on game development in his free time. He created Sleeping Penguinz to publish the games he makes with his friends and familly.

Recent post