Alexander M. West
Senior Portfolio Project
One of the last classes I have to take in Senior Year is a portfolio class where we brainstorm, plan, and create our own project over a period of 15 weeks. The largest component and focus of this class is the process of creating and then continuously fostering a plan. Instead of working on a project at the last minute, the goal is to divide the work that needs to be done in order to ensure that it's manageable while creating something that is purely your own.
For this class, I wanted to continue to continue to explore tools within the industry and create something that would challenge me while also working on something in WPF. Learning WPF is essential for continuing to be a tools programmer, as so many companies are asking for experience with either some UI interface development or specifically WPF. This lead me to look into visual scripting.
If I were to develop a visual scripting solution, it would give me the opportunity to learn WPF and seriously challenge myself with something that is relatively new and popular. Since I would be using WPF it will also give me experience of creating something that is dynamic and portable to different platforms and systems. From here I thought of doing some basic generic visual scripting system; setting up the equivalent of a 101 intro to programming course in a C based language. After talking with my professor he recommended against this as it would be a much larger undertaking than I expect and we reached a conclusion of creating a fragment shader graph.
Expanding upon this idea, I only want a very basic setup as to not overscope myself for something I don't have a ton of time for in the first place. This would mean that I would only be creating basic variables, mathematical operations, and color output, while ignoring so many different graphics tools and options. For how I'm going to go about this I would like to have the program interpret to HLSL which I then can transfer into SPIR-V which is a binary intermediary for all graphics libraries. For additional things I would like to get in would be logic flow(if, else, for, while), and previewing. However, as a stretch goal and the unfamiliarity with every part of this project I'm unsure of how close I'll reach this destination.
By moving forward with this idea, it would as previously mentioned be a challenge still and would give me the opportunity to learn and use WPF. More specifically this would challenge my ability to create a UI that matches or closely resembles modern visual scripting languages, give me something new to develop for a backend system that would be more similar to studio tools than the gameplay system tools I've been creating, and generally give me a new way to think about something I've seen and used in the past.
My initial and largest concern with this project is just how unfamiliar I am with everything involved in it. I need to not only learn but get semi-decent at using WPF in a short time frame in order to create a clean and usable interface. On top of this the structure in which nodes are stored, read, and what they do I have a very vague idea and won't get concrete answers from many sources on how it works. Addressing these concerns once I get the initial UI and initial backend flow for how nodes communicate everything else is just expanding outward.