The purpose of Gateware is to create lightweight, multi-platform libraries that handle functionality common to video games. At the moment this includes keyboard and mouse input libraries and file logging libraries. The intent is for current and future students to be able to utilize these libraries to aid them in the creation of their final projects. The current deployments for the libraries are the Windows, Mac, and Linux platforms.
Monday, December 2, 2019
Hello
My name is Jadon Lindburg and I will be working on 2D rendering.
Friday, November 22, 2019
Powerman 5000 once said, "When Worlds Collide" (The end of my collision detection research)
For the past few weeks, I've been researching a lot of information on collision detection and subjects related. It's been an extreme struggle to really hone in on the most used functions a collision detection library should have, which ones are going to get the most use from the Gateware users, and what's within the scope of this project lifetime. Collision detection is a huge subject in itself and ultimately I had to really get a lot of feedback from our LSA and poll both Full Sail students and instructors. In addition to that, I then had to use that information and propose an interface I think is user-friendly and follow coding standards and architecture.
Time quickly when by until I had to finalize my thoughts and research into something I was confident with to provide an adequate collision detection library interface. I have 13 shapes and 11 functions to make some huge number of combinations which can be seen below. Most of these functions are overloaded and only account for the float type implementation (there is a double type implementation) which comes out to a huge amount of writing the complete proposed interface. I would be crazy to meticulously write each function line by line, but, as a programmer, I'm lazy and opted to generalize as much as possible to make a function to generate the interface. All that was left was to change specific pieces here and there while checking for mistakes.
Time quickly when by until I had to finalize my thoughts and research into something I was confident with to provide an adequate collision detection library interface. I have 13 shapes and 11 functions to make some huge number of combinations which can be seen below. Most of these functions are overloaded and only account for the float type implementation (there is a double type implementation) which comes out to a huge amount of writing the complete proposed interface. I would be crazy to meticulously write each function line by line, but, as a programmer, I'm lazy and opted to generalize as much as possible to make a function to generate the interface. All that was left was to change specific pieces here and there while checking for mistakes.
Wednesday, November 20, 2019
This new architecture has me both scared and excited
As part of the porting team my job is to port Gateware to the new architecture but I also have to document it so future Devs can make sense of it and that's where my fear comes in. I have to make sense of the new architecture and know it from the inside out and even though I am excited for this challenge there is a small part of me that doesn't know if I can do it but I will do my best so we can move Gateware towards the future.
GFile Interface change complete
Added new functionalities to the GFile interface, now it supports getting folder count and folder names. Unit Test for all functionalities pass on all platforms, Lari gave me the green light to integrate into Alpha branch. I will now resume my research/test in my file concatenation tool.
Monday, November 18, 2019
GAudio and GAudio3D big progress achieved... on Windows
Month:1, Week: 4
3D Audio libraries are derived from the base class, so without working base class no progress could be done on 3D. After the base class got fixed, 3D contained a lot of issues but from my almost 3 weeks of experience of GAudio allowed me to figure out a solution fairly quickly.
The next big challenge comes from implementing the fixes on Linux and Mac as from what I saw these platforms experience similar (if not the same) issues. The problem comes from the usage of Audio libraries which are not cross-platform, so I would need to learn the nuances of those for each platform again. For example, I learned that XAudio2 (Windows) is not thread-safe, so the EndEvent would cause way too many issues as the XAudio threads were not synced to the GAudio thread(s).
I will start by implementing unit tests and possible solutions from Windows to Linux and Mac. This would allow me to see if any improvements were achieved and will try to take a next step after. After the memory leaks from GAudio and GAudio3D on Linux and Mac get resolved, I will start working on extra features of GAudio3D.
Thursday, November 14, 2019
Bad code turns into Warnings, Warnings turn into Errors, Errors turn into Failures.
Week 1 and 2 were essentially for getting used to the code base and getting the other platforms set up and running. Running through the warnings on Windows was just like any other day, with a few weird exceptions. So then we moved to Linux. It wouldn't build for some of us and if it did build, it wouldn't run. So we moved to Mac. After taking some time to understand how this new IDE operators, and how Mac operates, we got to start looking at the warnings and there was very few...that we could fix. We tried fixing some, but when we did, well.. it just caused an error somewhere else. It was like were between a rock and a hard place. It's always frustrating to be in a productive environment and not feel like you are producing. This felt foreboding for what Gateware would be, but after talking to the team and beating our head against walls we started to get more comfortable and understanding of what we had gotten ourselves into. Moving on to our other tasks helped put us back on the positive mindset that we were finally getting work done again, and it felt good.
Tuesday, November 12, 2019
No Such Thing As Too Many Tabs
Going into Gateware I knew it would be a challenge, I signed up for a challenge and I'm loving it. Not only do I get to work in this new environment that is cross platform development on a team but I got the unique privilege to learn about DevOps. Learning GitLab has been something I wanted to do since I heard about it many month ago. I understood it would be hard for me to grasp, (harder even when it's compressed into a FullSail schedule). Just getting started with the process had me fighting my demons of vague/assumptious documentation as well as command prompts. Though I know the battle with these will never be over, I have become more confident in myself in the ability to overcome tasks that I may find daunting at times.
The more I learn about Gateware the more my mind opens up and the more respect I gain for everybody that has contributed to it. DevOps on the other hand is not my realm, but like I said brefore, I do love a challenge. See, for me C++ is a beautiful language. Everything has a purpose that I can grasp or derive some understanding of; even if it's obscure due to unique design styles or limitations. There is almost always a purpose to functional code in C++ and even it is difficult to understand at first, in someway it makes sense because you can always trace it back down to memory and memory is where things make sense to me.
DevOps though, well... not so much. Do I understand why certain things are the way they are? Sure, lets go with that. Is there decent documentation on these technologies? Highly debatable. Does it bring me some weird twisted joy to have 20 something tabs open when trying to figure out why one command doesn't work? Why yes, yes it does.
Some people just "say" they like a challenge but those people haven't had every single command break on them even though it's exactly what the tutorial from the people who made that tech say to do. But. That's development, and if I didn't like it I wouldn't have made it this far with a smile on my face (figuratively speaking of course, something about bad documentation makes a man forget to smile on occasion).
Lastly, I'd like to say that if I don't go home with my brain feeling like it's been run through a Tom & Jerry episode, I get bored. It's fairly understood that when you are having fun that time flies, and I find it hard to believe that I am already in week 3. I'm excited to continue learning how to work in this environment, and I'm excited to defeat my monster that is GitLab CI/CD but most of all I'm excited for the feeling of accomplishing the challenges that are yet to come.
The more I learn about Gateware the more my mind opens up and the more respect I gain for everybody that has contributed to it. DevOps on the other hand is not my realm, but like I said brefore, I do love a challenge. See, for me C++ is a beautiful language. Everything has a purpose that I can grasp or derive some understanding of; even if it's obscure due to unique design styles or limitations. There is almost always a purpose to functional code in C++ and even it is difficult to understand at first, in someway it makes sense because you can always trace it back down to memory and memory is where things make sense to me.
DevOps though, well... not so much. Do I understand why certain things are the way they are? Sure, lets go with that. Is there decent documentation on these technologies? Highly debatable. Does it bring me some weird twisted joy to have 20 something tabs open when trying to figure out why one command doesn't work? Why yes, yes it does.
Some people just "say" they like a challenge but those people haven't had every single command break on them even though it's exactly what the tutorial from the people who made that tech say to do. But. That's development, and if I didn't like it I wouldn't have made it this far with a smile on my face (figuratively speaking of course, something about bad documentation makes a man forget to smile on occasion).
Lastly, I'd like to say that if I don't go home with my brain feeling like it's been run through a Tom & Jerry episode, I get bored. It's fairly understood that when you are having fun that time flies, and I find it hard to believe that I am already in week 3. I'm excited to continue learning how to work in this environment, and I'm excited to defeat my monster that is GitLab CI/CD but most of all I'm excited for the feeling of accomplishing the challenges that are yet to come.
Subscribe to:
Posts (Atom)