{"id":9,"date":"2023-01-27T02:56:40","date_gmt":"2023-01-27T02:56:40","guid":{"rendered":"https:\/\/blogs.oregonstate.edu\/gradyse\/?p=9"},"modified":"2023-01-27T02:56:40","modified_gmt":"2023-01-27T02:56:40","slug":"blog-post-2-trying-new-things","status":"publish","type":"post","link":"https:\/\/blogs.oregonstate.edu\/gradyse\/2023\/01\/27\/blog-post-2-trying-new-things\/","title":{"rendered":"Blog Post #2 &#8211; Trying new things"},"content":{"rendered":"\n<p>Welcome Back to my Capstone Blog<\/p>\n\n\n\n<p>I wrote the last blog prior to knowing what my capstone project would be.\u00a0 I was assigned to the group doing an HTML5 Tower Defense game, which was my first choice.\u00a0 I really like video games, and this is my chance to help create one.\u00a0 Over the years, I have spent way too much time during meetings absent mindedly playing tower defense games when I should probably have been paying attention.\u00a0 Oh well.\u00a0 As long as my boss isn\u2019t reading this blog I should be fine.<\/p>\n\n\n\n<p><br>So far we\u2019ve set up a project plan and are each getting started on an aspect of the project.\u00a0 I will be working on the graphics, overall theme, and the webpage the game will be embedded in.\u00a0 And although this area sounded interesting, I am not a graphic artist.\u00a0 I\u2019m a tax accountant.\u00a0 I have always had an interest in doing creative things rather than just the more logical and structured items, but when it comes to this I realized I had no idea where to start.\u00a0 And I\u2019m okay with that.<\/p>\n\n\n\n<p>Now that I have gotten through 2 years of this program, I think it is fair to ask what I have gotten out of it.&nbsp; Sure, I\u2019ve learned about data structures, assembly language, and the 1-0 knapsack algorithm.&nbsp; But if you read my last blog, so much of that is overkill for my current career.&nbsp; Knowing how to code a lot better will be a great foundation for other things.&nbsp; But I\u2019ve realized that my biggest development is my confidence to go learn new things and start from scratch to figure things out.&nbsp;<\/p>\n\n\n\n<p>A few weeks ago I was, looking at the portal of project possibilities and realized that I would have no clue how to do most of those items.\u00a0 The Tower Defense game seemed fun, but not crazy ambitious.\u00a0 The VR\/AR stuff that also sounded interesting and was on my list seems like a bigger reach.\u00a0 But I wasn\u2019t really nervous about any of it.\u00a0<\/p>\n\n\n\n<p>I used to try to learn about things on my own, but felt really lost and overwhelmed.&nbsp; At one point I practically owned a library of \u201cfor dummies\u201d books as I tried to learn various things.&nbsp; But spending time reading about what a class is in Java, without really having a good understanding of object oriented programming was a losing battle.&nbsp; And then getting bogged down in all the details of CSS rules when trying to learn about web development got me no closer to seeing how that HTML\/CSS example could possibly turn into the modern web apps.&nbsp; I\u2019d do a deep dive into some aspect of something, and maybe I\u2019d get a better sense of what that one piece would involve, but have no idea about the bigger picture. I had no idea about how everything fits together.&nbsp;<\/p>\n\n\n\n<p>Now I am excited about continuing to learn on my own.\u00a0 As I mentioned in the last blog, this program has really helped me understand the bigger picture, and have a solid foundation.\u00a0 I have seen just how much info is out there on what seems like every topic imaginable.\u00a0 And while it used to seem utterly overwhelming and confusing, I now feel like I am in a good position to process that information, understand what it means, and be able to use it.\u00a0\u00a0 And just in these first few weeks of the capstone project, by challenging myself to do something new on my own, I am building even more confidence.<\/p>\n\n\n\n<p>I\u2019ll give an example from this week.&nbsp; We are still working on determining the overall theme of our Tower Defense Game, and I am exploring some options for what the graphics could look like.&nbsp; We don\u2019t want to build everything from scratch so I spent time looking at what online resources are out there, watched a few videos about animating with java script and sprite sheets, and brainstorming what our game could do.&nbsp; After going through that process, I had an idea of trying to maybe leverage assets from the Blizzard games Starcraft II and Warcraft III.&nbsp; They have some cool models that might look fun in our game.&nbsp; So I went down a rabbit hole to see how I could actually use them.&nbsp;<\/p>\n\n\n\n<p>I own both games but it isn\u2019t like they have a clearly marked file I can copy and paste into our game.  But I am far from the first person to attempt to take these assets and utilize them elsewhere.\u00a0 I read through a ton of forum posts and tried a ton of different approaches, and think I finally found a way that we could use them.\u00a0<\/p>\n\n\n\n<p>First, I explored the Blizzard made Map Editors.\u00a0 Both let you manipulate units and make things for a custom game.\u00a0 However, it took forever to get the Starcraft II one to let me place a new unit, go to the custom cutscene interface, edit the properties of the unit, find the animation layer, then change the animation.\u00a0 My plan would be to use this from different angles to capture different parts in the animations for walking \/ attacking so that I can arrange them into a sprite sheet for the HTML5 interface.\u00a0 (I also found the muzzle flash for the space marine\u2019s gun is a different asset with a separate animation that would have to be placed separately).\u00a0 So I felt pretty good about that process, but I think our group is leaning more towards medieval themed things rather than space \/ robots.\u00a0<\/p>\n\n\n\n<p>So I tried to replicate what I had just done in the Starcraft map editor and use the Warcraft map editor.\u00a0 Same company, but completely different editor program.\u00a0 This one doesn\u2019t let you just play a unit\u2019s animation on the map editor.\u00a0 I can get great shots of the buildings and maybe that will work for those, but I need more for the units.\u00a0 The editor does have a \u201cpreview pane\u201d, but it is frustratingly broken.\u00a0 It stretches the assets and doesn\u2019t let you resize the window to get a clear look.\u00a0 It turns out there may be a way to script the animations and then it would play out when the custom game starts, but that\u2019s not a great way to just capture the still shots I want.\u00a0 So it&#8217;s time to go to a third party solution.<\/p>\n\n\n\n<p>There was a promising start when I found a tool that lets me extract the asset files from Blizzard\u2019s data files.\u00a0 So I was able to extract the Knight\u2019s model from the game files and try to get it into a modeling software.\u00a0 But programs like Blender or 3ds max (thank you free education license) cannot natively import a .mdx file.\u00a0 I found another site where someone created a plug-in that lets it import that type asset.  Perfect.\u00a0 And then I discovered that plug-in is 3 years old and not compatible with the latest version on Blender.\u00a0 I did find one for Starcraft\u2019s .m3 file type, but that is no help now.<\/p>\n\n\n\n<p>World of Warcraft actually has a popular tool called WOW Model Viewer that lets you manipulate all of their game assets.\u00a0 Then I got completely sidetracked and distracted reading about how to 3D print your WOW character.\u00a0 That may be another blog post in the future, because I think 3D printing is interesting and I may end up using my new found free time and money on that hobby once I graduate.\u00a0 But now back to my current problem.\u00a0<\/p>\n\n\n\n<p>After many google searches, years-old forums explored, and failed installs I found it.\u00a0 Someone made their own utility called Retera Model Studio.\u00a0 It lets you examine and even edit the game\u2019s models.\u00a0 So this is perfect when all I want to do is adjust the camera, play animations in slow motion, and capture some still shots.  For example, here are 3 frames of a footman unit running.\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"982\" height=\"744\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/6453\/files\/2023\/01\/wc3-1.png\" alt=\"\" class=\"wp-image-10\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/6453\/files\/2023\/01\/wc3-1.png 982w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/6453\/files\/2023\/01\/wc3-1-300x227.png 300w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/6453\/files\/2023\/01\/wc3-1-768x582.png 768w\" sizes=\"auto, (max-width: 982px) 100vw, 982px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"995\" height=\"686\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/6453\/files\/2023\/01\/wc3-2.png\" alt=\"\" class=\"wp-image-11\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/6453\/files\/2023\/01\/wc3-2.png 995w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/6453\/files\/2023\/01\/wc3-2-300x207.png 300w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/6453\/files\/2023\/01\/wc3-2-768x529.png 768w\" sizes=\"auto, (max-width: 995px) 100vw, 995px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"736\" height=\"702\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/6453\/files\/2023\/01\/wc3-3.png\" alt=\"\" class=\"wp-image-12\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/6453\/files\/2023\/01\/wc3-3.png 736w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/6453\/files\/2023\/01\/wc3-3-300x286.png 300w\" sizes=\"auto, (max-width: 736px) 100vw, 736px\" \/><\/figure>\n\n\n\n<p>I did it.&nbsp; I have the resources I would need do what I thought could be useful to the project.&nbsp; Next step would be to drop these into Photoshop, make the background transparent, resize them (more likely just retake more uniform shots), and arrange them evenly into a sprite sheet.<\/p>\n\n\n\n<p>Our group may completely abandon these items.\u00a0 There is some interest in going for a more pixel art look.\u00a0 Or these high res models could look awful when shrunk and played in a choppier animation.\u00a0 But even if this is not used at all, I came up with an idea that I had no idea how to solved and then worked my way through a maze of online information and possible tools to accomplish it.\u00a0 I doubt I would be recreating that tool on my own if I hadn\u2019t finally found it.\u00a0 But maybe I\u2019d find another solution anyway.\u00a0 But either way, I have more confidence in my ability to learn how to do something fun and creative.\u00a0 And I am sure I\u2019ll find myself in this situation more and more as I develop my skillset and keep trying new things.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Welcome Back to my Capstone Blog I wrote the last blog prior to knowing what my capstone project would be.\u00a0 I was assigned to the group doing an HTML5 Tower Defense game, which was my first choice.\u00a0 I really like video games, and this is my chance to help create one.\u00a0 Over the years, I [&hellip;]<\/p>\n","protected":false},"author":13133,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-9","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.oregonstate.edu\/gradyse\/wp-json\/wp\/v2\/posts\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.oregonstate.edu\/gradyse\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.oregonstate.edu\/gradyse\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/gradyse\/wp-json\/wp\/v2\/users\/13133"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/gradyse\/wp-json\/wp\/v2\/comments?post=9"}],"version-history":[{"count":1,"href":"https:\/\/blogs.oregonstate.edu\/gradyse\/wp-json\/wp\/v2\/posts\/9\/revisions"}],"predecessor-version":[{"id":13,"href":"https:\/\/blogs.oregonstate.edu\/gradyse\/wp-json\/wp\/v2\/posts\/9\/revisions\/13"}],"wp:attachment":[{"href":"https:\/\/blogs.oregonstate.edu\/gradyse\/wp-json\/wp\/v2\/media?parent=9"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/gradyse\/wp-json\/wp\/v2\/categories?post=9"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/gradyse\/wp-json\/wp\/v2\/tags?post=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}