top of page

13. What could have been done better and future plans?

  • Writer: Bence Nagy
    Bence Nagy
  • Apr 9, 2023
  • 3 min read

In this blog, I would like to point out some parts of the development of the project what I would do differently now that I gather more experience, and what could be future plans if the project will continue.

Started working on the character outfit

  • Prefab spawner: The current prefab spawner basically places objects down and combines them together so that Unity doesn't have to handle thousands of separate objects, just smaller chunks. Even if the vertex number remains the same, performance is significantly better with combined objects. Instead of this solution, it would be better to use GPU instancing with shaders.

  • Enemy and Player state machine: Both implementations work, but the scaling part is questionable. It would be better to use decision trees for the enemy AI and a new plan for the player states with cleaner implementation (probably separate classes for each state and not one long script).

  • Gem Manager: The gem manager is part of the inventory system, but it lacks custom classes and therefore the scalability could be annoying to deal with. So, on the front, it would be wise to create some custom class or structure. On top of that, the icons need some inheritance and not a separate Monobehaviour class to differentiate the base icon class from the gem icon class (and enums for different types).

  • Plane Guard (boss): As a unique boss enemy, she has her custom class and works as intended, but the attacks and phases are too easy to learn and dodge and could be boring for an experienced player. It would be nice to add some prediction to the projectile shooting so that it could calculate the player's position based on the movement direction and speed.

  • Content: The backend is in a good position, but the gameplay part lacks everything. There are no unique active skills, not enough gem variants, no experience points added to the game, not enough puzzle variants, the inventory UI part still missing elements, and no sounds.

  • Codebase: Due to the size of the number of scripts (85+), it will need some serious cleanup and reorganization before introducing someone else to the project.

  • Environment: The quality of the environment elements is good enough, but it is still empty. More elements are needed to make the game visually appealing, and some changes are needed on the custom shaders. The terrain elements are either blurry due to the tiling and repeating patterns, so additional masks and blending textures are needed to make it less obvious.

In terms of a final-year project assignment, it would be wiser to choose a game with a smaller scope and end up with a finished project. Even if working on this project was a great fulfillment.


In addition to the "What could have been done better" category, future work would include:

  • Story: Currently, the story of the game is basically non-existent, with only a rough outline in place. Therefore, more time is needed to develop the story, and based on that, future gameplay plans and features can be planned out.

  • More planning: The current working plan is limited to the final year project assignment submission and needs to be expanded to include more gameplay systems, puzzles, items, enemies, stories, and sketches. Research is also needed on how to create fantasy environments and connect different biomes effectively, as well as how to focus the player's attention so they do not get lost or bored and are able to figure out the features without external help.

  • Shaders: Shader graphs are useful and able to create high-quality shaders, but there are still limitations. Therefore, the next step is to advance towards learning how to program shaders with URP and HDRP and using them with Unity Scriptable Pipeline features to create more custom processing effects.

  • VFX: Unity's particle system is a must-have for effects and optimization, but there is an option to level up with the VFX graph, which offers many more options and particle numbers.

  • 3D/2D assets: Learning to create better 2D and 3D assets using Blender and Photoshop on an advanced level and optionally changing the current ones, as the UI may be too like an existing game. Creating 3D models with a more efficient workflow than that taught in the modeling course and adding unique models to the game instead of the Mixamo ones.

  • Sounds: Sound design is an entirely new topic personally, but effort and time need to be put into creating something worthy of this project as it is essential to any game. Potentially teaming up could solve this problem, but this project is currently for personal practice, although that might change in the future.

  • Coding: Even as a final-year student, coding ability still requires a lot more practice and research to be able to create custom features without ending up with something spaghetti-like and making other programmers' lives miserable. Therefore, learning clean and efficient coding is a must-have.

In summary, a lot of research and practice is required, as it should be. Thanks for reading!


-Bence (Oliminor)

Comments


©2022 - 2023 by Oliminor. Created with Wix.com

bottom of page