<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>midwinter.dev</title>
		<link>https://midwinter.dev/</link>
		<description>Recent content on midwinter.dev</description>
		<generator>Hugo 0.101.0 -- gohugo.io</generator>
		<language>en</language>
		<managingEditor>craig.j.midwinter@gmail.com (Craig J. Midwinter)</managingEditor>
		<webMaster>craig.j.midwinter@gmail.com (Craig J. Midwinter)</webMaster>
		<copyright>Craig J. Midwinter — All rights reserved.</copyright>
		<lastBuildDate>Sat, 16 Jul 2022 00:00:00 +0000</lastBuildDate>
		<atom:link href="https://midwinter.dev/index.xml" rel="self" type="application/rss+xml" />
		<item>
			<title>Week 14 - MVP Feature Complete</title>
			<link>https://midwinter.dev/posts/2022-07-16-feature-complete/</link>
			<pubDate>Sat, 16 Jul 2022 00:00:00 +0000</pubDate>
			<author>craig.j.midwinter@gmail.com (Craig J. Midwinter)</author>
			<guid isPermaLink="true">https://midwinter.dev/posts/2022-07-16-feature-complete/</guid>
			<description>&lt;p&gt;Again another couple busy weeks outside of this project. The main thing that I did was fix the game loop. Since I anticipated that I wouldn&amp;rsquo;t make much progress, I contracted out two people on fiverr to do a couple things. These tasks are still in flight, but should be completed in the next couple days. The first thing is a level editing tool. For now this will just be an internal tool that I can use to build out some levels a bit easier, but in a future iteration it could be adapted to include some sort of feature for users to build and share levels. The second item is just 3D modelling another arena to include.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been thinking about the scope/direction of this project and I&amp;rsquo;ve learned a lot from the general feature development cycle of this project but its reaching a point where I feel like I&amp;rsquo;m learning less and less from each feature on my list. There are other, more ambitious things I would like to learn to develop, which could be done by expanding the scope of this project, but I&amp;rsquo;ve got another slightly more ambitious project in mind that would be a better fit, and one of the last things that I would like to learn from this project is about what releasing looks like.&lt;/p&gt;
&lt;p&gt;So I&amp;rsquo;ve decided that I&amp;rsquo;m going to consider this game, mostly feature-complete and spend a few cycles doing cleanup, bug fixes and preparing for a release.&lt;/p&gt;
&lt;p&gt;My todo list is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix left eye black on scene load&lt;/li&gt;
&lt;li&gt;Fix level complete feedback (add text and some time)&lt;/li&gt;
&lt;li&gt;Style loading screen&lt;/li&gt;
&lt;li&gt;Remove login screen/Simplify leaderboard&lt;/li&gt;
&lt;li&gt;Fix points/lives resetting on each level&lt;/li&gt;
&lt;li&gt;Add ceiling to pool arena&lt;/li&gt;
&lt;li&gt;Fix pointer on start screen ui&lt;/li&gt;
&lt;li&gt;Implement mall arena&lt;/li&gt;
&lt;li&gt;Implement 10 levels total&lt;/li&gt;
&lt;/ul&gt;
</description>
		</item>
		<item>
			<title>Week 12 - Late Update</title>
			<link>https://midwinter.dev/posts/2022-06-29-week-12/</link>
			<pubDate>Wed, 29 Jun 2022 00:00:00 +0000</pubDate>
			<author>craig.j.midwinter@gmail.com (Craig J. Midwinter)</author>
			<guid isPermaLink="true">https://midwinter.dev/posts/2022-06-29-week-12/</guid>
			<description>&lt;p&gt;Ok, so this summer is lining up to be pretty busy, so I&amp;rsquo;m not anticipating making a ton of progress. I&amp;rsquo;m going to switch from a week-long sprint to two week sprints and hope that I can sustain the same pace as of this most recent sprint.&lt;/p&gt;
&lt;p&gt;I decided not to implement the jumping for now at least and revisit it later. Instead I added another arena. Here&amp;rsquo;s some gameplay:&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/9O0sLyLdS1w&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Work is still underway in the green screen room, so more headset footage.&lt;/p&gt;
&lt;p&gt;I did some more fixes on the gameplay loop, but there is still a bit of work to do, which I&amp;rsquo;ll continue on this week.&lt;/p&gt;
&lt;p&gt;For the forseeable future I&amp;rsquo;m mostly just planning on trying to add more arenas and level layouts. I actually contracted someone on fiverr to implement a level editor for me, so we&amp;rsquo;ll see how that turns out&lt;/p&gt;
</description>
		</item>
		<item>
			<title>Week 10 - More modelling</title>
			<link>https://midwinter.dev/posts/2022-06-13-week-10/</link>
			<pubDate>Mon, 13 Jun 2022 00:00:00 +0000</pubDate>
			<author>craig.j.midwinter@gmail.com (Craig J. Midwinter)</author>
			<guid isPermaLink="true">https://midwinter.dev/posts/2022-06-13-week-10/</guid>
			<description>&lt;p&gt;Small update this week. Continued to learn blender and did more modelling. I also worked on the lighting for the vaporwave level. Here&amp;rsquo;s the gameplay footage:&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/J-Cyg1mebK0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;I&amp;rsquo;m doing some work in the room where my greenscreen is, so its just headset footage this week.&lt;/p&gt;
&lt;p&gt;I got the vaporwave arena functioning when I play using the unity playmode, but there is some issue with the bricks loading in the build that I will tackle this week.&lt;/p&gt;
&lt;p&gt;The models that I made this week for the game was the sun neon and the ferns in planters. I also did some cleanup and improvements on the arena model. I modeled/modified a few other things in blender to 3d print for some additional practice.&lt;/p&gt;
&lt;p&gt;This level has a bit more verticality, so I want to try to see how it feels with the ability to control the height of the hoverboard. Also going to try making 2 more models and a loading screen/structure for switching arenas on a level-to-level basis&lt;/p&gt;
</description>
		</item>
		<item>
			<title>Week 9 - Modeling</title>
			<link>https://midwinter.dev/posts/2022-06-06-week-9/</link>
			<pubDate>Mon, 06 Jun 2022 00:00:00 +0000</pubDate>
			<author>craig.j.midwinter@gmail.com (Craig J. Midwinter)</author>
			<guid isPermaLink="true">https://midwinter.dev/posts/2022-06-06-week-9/</guid>
			<description>&lt;p&gt;With my current focus of learning blender, I exceeded the goal of making two models. I wanted to get better at modelling so that I could create a couple more arenas for levels, so I decided I would try to actually model a little arena and a couple of props. Here&amp;rsquo;s some game footage&amp;ndash;&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/sKbyl9E6zS8&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;I decided that I wanted to expand the aesthetic a bit to include vaporwave, just to give me a little more room to play with for arena designs, so I started making a vaporwave inspired arena. It&amp;rsquo;s far from perfect and not fully functional yet, but it&amp;rsquo;s coming along. In addition to the arena model, I modeled the column and the palm-tree cutout. The greek bust is a CC0 asset that I downloaded.&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t end up fixing any bugs this week, but I did also create 3 new brick layouts.&lt;/p&gt;
&lt;p&gt;This week, again, my goal will be to build 2 models, 2 brick layouts and to get the vaporwave arena to be a playable arena.&lt;/p&gt;
</description>
		</item>
		<item>
			<title>Week 8 - Start Screen, Pause, raising the arena</title>
			<link>https://midwinter.dev/posts/2022-05-30-week-8/</link>
			<pubDate>Mon, 30 May 2022 00:00:00 +0000</pubDate>
			<author>craig.j.midwinter@gmail.com (Craig J. Midwinter)</author>
			<guid isPermaLink="true">https://midwinter.dev/posts/2022-05-30-week-8/</guid>
			<description>&lt;p&gt;Still working on getting a decent placement for my camera and green screen but here&amp;rsquo;s some gameplay.&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/7XTQfAu1Qg4&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Ok, I don&amp;rsquo;t have a lot to talk about this week.&lt;/p&gt;
&lt;p&gt;I implemented a pause button, and a new start screen. The start screen is still a little buggy, but I&amp;rsquo;ll investigate and fix later.&lt;/p&gt;
&lt;p&gt;I started working on a new scoreboard, but decided that the one I had right now was fine and I couldn&amp;rsquo;t get the higher perspective experiment that I did last week out of my mind. Thinking about my main influence, Tetris Effect, one of the things that it does is the environment changes in response t the game so I thought I would try making it so that the arena slowly rises higher in the air with every brick that you break. I think it&amp;rsquo;s a nice compromise so I&amp;rsquo;m going to keep it. I ended up needing to add a lot more buildings to fill out the &amp;ldquo;city&amp;rdquo; and there is a bit of a performance hit for doing this, but I feel like I can optimize this. It&amp;rsquo;s only really noticable when doing mixed reality capture and I think I can fix it relatively easily.&lt;/p&gt;
&lt;p&gt;I think I&amp;rsquo;ve got the broad-strokes for this game in place, it mostly needs to be filled-out, polished and fixed up. I think I&amp;rsquo;ve got something to iterate on without needing to really focus on a big feature right now. I do eventually want to create a couple more environments for the arena, and to do that I&amp;rsquo;m going to need to up my modelling skills instead of relying on purchasing/contracting out that work, so I&amp;rsquo;m going to make that a bit of a priority right now instead of big feature work. My goals each week for the next little bit will be to build 2 brick layouts, two bugfixes and two 3D model (might not even use the first few, just follow a tutorial to gain some skills).&lt;/p&gt;
</description>
		</item>
		<item>
			<title>Week 7 - Projectiles, Audio Visualizers and MRC</title>
			<link>https://midwinter.dev/posts/2022-05-23-week-7/</link>
			<pubDate>Mon, 23 May 2022 00:00:00 +0000</pubDate>
			<author>craig.j.midwinter@gmail.com (Craig J. Midwinter)</author>
			<guid isPermaLink="true">https://midwinter.dev/posts/2022-05-23-week-7/</guid>
			<description>&lt;p&gt;This week felt really productive, thanks in major part to the fact that I finally got Mixed Reality Capture working:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://media.giphy.com/media/St9eYf6ZXYB6cEyo0e/giphy.gif&#34; alt=&#34;Mixed reality capture&#34;&gt;&lt;/p&gt;
&lt;p&gt;There was something up with the prefab XR rigs that came with the VR Interaction Framework that I was using which just didn&amp;rsquo;t play nicely with XR MRC Helper that I was using, so to fix MRC, I reverted back to the oculus rig, and then added the scripts that I wanted to use from VRIF and it actually worked! I&amp;rsquo;ve definitely got to do some rearranging of the space where my greenscreen is in order to set it up to get some good video, but I&amp;rsquo;m happy to be able to provide something that is a bit better than the in-headset capture.&lt;/p&gt;
&lt;p&gt;That said, here&amp;rsquo;s some more in-headset capture&amp;hellip;&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/bSK8MnR42tw&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;First off, I&amp;rsquo;ve tentatively decided to call the game &amp;ldquo;Bricks of Rage&amp;rdquo;. I wanted to go for something over the top, and 80s/arcadey that also was at least somewhat clearly a brick-breaker game. My brother mocked up a bit of a logo design concept and I tried to use my sub-par blender skills to model it in 3D and place it in game. I didn&amp;rsquo;t do justice to his original, but for now I think it looks pretty good in-headset.&lt;/p&gt;
&lt;p&gt;I reached my goal of adding the projectiles and the hyper power up so I spent some more time on aesthetics. One thing that I did as part of that effort was to think about influences. I realized that since breakout is well-worn territory, I&amp;rsquo;d like to craft a vibe first and a game second. I&amp;rsquo;m a big tetris fan, and I think what Tetsuya Mizuguchi did with Tetris Effect was really incredible. So I decided that I wanted to consider that as my primary inspiration as far as how to implement a vibe, although the aesthetic that I&amp;rsquo;m going for is clearly different.&lt;/p&gt;
&lt;p&gt;The impact of music and audio on the game and environment in Tetris Effect is probably the most striking thing about the game. The first thing that I did was update the buildings to make them function like audio visualizers. This gave the scene a lot more life, the royalty free music that I&amp;rsquo;m using right now is a decent fit, but Tetris Effect makes brilliant use of adaptive audio in a way where the music feels almost like an emergent property of the gameplay. I don&amp;rsquo;t have the musical skills to do something like that on my own, but this has got me thinking that I should look in to potentially seeing what it would cost to get someone to at least put together some sort of adaptive audio piece for me, or look for a sound designer.&lt;/p&gt;
&lt;p&gt;Speaking of sourcing external help&amp;ndash; I got someone off fiverr by the name of &lt;a href=&#34;https://www.fiverr.com/kyessesalvador&#34;&gt;kyessesalvador&lt;/a&gt; to model the racket assets that you can see in the gameplay footage, which look a lot better. I&amp;rsquo;m pretty happy with how they turned out, he&amp;rsquo;s currently working on putting together the hover board for me.&lt;/p&gt;
&lt;p&gt;I also played with raising the entire arena up from street level so that I could add some movement to the grid on the ground plane. Here&amp;rsquo;s what that looked like:&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/I2lWhjeXdW0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;The feedback that I got on this change was that it was a bit too busy, which is valid. I think it looks better in-headset than on video but for now I put it back where it was. One thing that I might play with a bit later is raising the arena a bit off the ground every time a brick is broken since I still feel like the arena needs something more to bring life to it.&lt;/p&gt;
&lt;p&gt;As a result of removing the VRIF, I broke my start screen, but it was pretty ugly anyways, so I want to implement a new one this week. Another thing that I&amp;rsquo;d like to do is make sure that the game pauses when the user brings up the oculus home or takes off the headset. This week I&amp;rsquo;m also hoping to do a bit of a cleanup (I&amp;rsquo;ve imported a few packages that I&amp;rsquo;m not using anymore that I want to pull out). Stretch goal is to implement a new scoreboard in the arena&lt;/p&gt;</description>
		</item>
		<item>
			<title>Week 6 - Level structure and making things prettier.</title>
			<link>https://midwinter.dev/posts/2022-05-16-week-6/</link>
			<pubDate>Mon, 16 May 2022 00:00:00 +0000</pubDate>
			<author>craig.j.midwinter@gmail.com (Craig J. Midwinter)</author>
			<guid isPermaLink="true">https://midwinter.dev/posts/2022-05-16-week-6/</guid>
			<description>&lt;p&gt;As promised, weekly gameplay footage:&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/wllVODHCIGI&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Going to try keep this post a bit shorter&amp;ndash; I had started out this week with a two week goal in mind for setting up a level structure and putting together a little level editor tool to speed up the process of creating new levels.&lt;/p&gt;
&lt;p&gt;The first thing that I had to do was sort out a structure that would work for laying out the levels. I came up with something simple that I could build upon later and just hard-coded this little arch level that you can see in the gameplay footage.&lt;/p&gt;
&lt;p&gt;After I had that done, I started working on a level-editor tool&amp;ndash; and thats when my tires really started spinning. It felt like a lot of work to undertake for not a lot of pay-off. My goal for an early access release is 10 levels. I think I can put together 10 levels that will be interesting enough by hard-coding them so I decided to put the level editor on hold. It was already pretty late in the week by that point as I hadn&amp;rsquo;t had much time to work on anything, I decided to spend the rest of the time cleaning up a few things and also doing a few tutorials on blender so that I don&amp;rsquo;t have to rely on fiverr and the unity asset store for everything.&lt;/p&gt;
&lt;p&gt;As you can see, I replaced the buildings with something that is really simple. It&amp;rsquo;s not the best and I&amp;rsquo;ll likely want to change it later but it is at least a bit better of a fit for the aesthetic that I&amp;rsquo;m going for. I also made the arena cage a bit nicer using a grid shadergraph instead of using a wireframe asset that I downloaded.&lt;/p&gt;
&lt;p&gt;Another thing that I did was put a minimum and maximum velocity on the ball. The game ended up being pretty hard if it didn&amp;rsquo;t max out, and there were other times when the ball would slow down to a stop. I still need to fiddle with these values because now it plays a little too easy&lt;/p&gt;
&lt;p&gt;One funny little regression that you can see in the gameplay footage is that the text &amp;ldquo;Get Ready&amp;rdquo; and &amp;ldquo;Go&amp;rdquo; text is backwards. This is because the change to how I&amp;rsquo;ve got the level structured and the grid laid out actually ends up making the arena do a 180 from where it was before. I had been planning on changing those at some point in the future so I might not get around to fixing that before I do.&lt;/p&gt;
&lt;p&gt;My goal for next week is a couple more power-ups. Specifically a power-up that will allow you to fire a laser out of the end of the racket.&lt;/p&gt;</description>
		</item>
		<item>
			<title>Week 5 - Powerups, and making things prettier</title>
			<link>https://midwinter.dev/posts/2022-05-09-week-5/</link>
			<pubDate>Mon, 09 May 2022 00:00:00 +0000</pubDate>
			<author>craig.j.midwinter@gmail.com (Craig J. Midwinter)</author>
			<guid isPermaLink="true">https://midwinter.dev/posts/2022-05-09-week-5/</guid>
			<description>&lt;p&gt;Look! Gameplay footage! Finally!&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/3pt5S-GkFeA&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;I&amp;rsquo;m going to commit to including a little bit of gameplay footage in each post from now on. I&amp;rsquo;m not really any closer to solving MRC. I took a little bit of a look this week and I think the issue I&amp;rsquo;m having is the result of using the VRIF plugin. Since I&amp;rsquo;m kinda stalled on it and don&amp;rsquo;t want to spend too many more cycles on it, most of the video is going to be just the game captures from oculus for now.&lt;/p&gt;
&lt;p&gt;Ok, on to the post&amp;ndash;&lt;/p&gt;
&lt;p&gt;This week my main goal was to implement 3 power-ups, and I managed to get that completed! I also had a stretch-goal of starting some of the work that I needed to do to be able to create a set of levels for a campaign mode&amp;ndash; initially, I had just statically created the arena in the scene and just made sure that the parameters that I passed to the function to generate the grid of bricks fit within it, and the stretch-goal work that I had identified was the update the arena manager so that it would dynamically create the walls of the arena based on the parameters of the brick field and some other parameters (like playing field length etc).&lt;/p&gt;
&lt;p&gt;I started working on the powerups using little cubes as place-holders. When I got to the point where I wanted to randomly spawn them within the arena, I realized that the working that the stretch-goal work that I had planned to refactor my arena manager in anticipation for custom levels should be something that I prioritize before going further with powerups since I&amp;rsquo;ll want to dynamically get the bounds of the area to spawn powerups as opposed to setting up another static area to fumble around with and that I&amp;rsquo;d just need to refactor next week, so I got that done before moving on to finishing the powerups.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t really have any experience with 3d modelling, so for now any models that I have to create on my own are going to be pretty basic. I needed some sort of model for powerups&amp;ndash; Arkanoid is a major inspiration for this project, so I looked to the designs that it used for powerups, and fortunately they are super simple, just colored capsules with a letter on them. I downloaded blender and was able to create a capsule pretty easily and use it to create a prefab, and then I used a 3D text plugin within unity for the letters so that I can have a single powerup asset that will appear with a different color and letter based on the type assigned to it.&lt;/p&gt;
&lt;p&gt;I got most of this done ahead of schedule so I spent the remaining time just playing around with adding some visual elements to make the environment seem more interesting. I used some assets from the unity asset store to add some cars and a little bit of a cityscape, and it really added to the overall polish. It still has a long way to go visually but I&amp;rsquo;m fairly happy with the progress so far.&lt;/p&gt;
&lt;p&gt;My goal for this week is to set up the project for a series of level layout files to string together a bit of a campaign mode. I anticipate this will likely take 2 weeks at minimum, depending on my available time. I may omit making a post next week if I don&amp;rsquo;t have things in a reasonable place to show anything&lt;/p&gt;</description>
		</item>
		<item>
			<title>Week 4 - Highscore/Playfab integration</title>
			<link>https://midwinter.dev/posts/2022-05-02-week-4/</link>
			<pubDate>Mon, 02 May 2022 00:00:00 +0000</pubDate>
			<author>craig.j.midwinter@gmail.com (Craig J. Midwinter)</author>
			<guid isPermaLink="true">https://midwinter.dev/posts/2022-05-02-week-4/</guid>
			<description>&lt;p&gt;As I had anticipated, I wasn&amp;rsquo;t super productive this week, but I did get scores pushing to a backend leaderboard system. I decided to use Microsoft Playfab for a backend so that I don&amp;rsquo;t need to worry about setting up and deploying a backend on my own to save myself some time. This project is mostly about learning, and I already have a pretty good idea how to roll my own backend. Now, the user is able to log in and their high score gets saved. There are leaderboards that are maintained on the service but I&amp;rsquo;m not displaying them anywhere in the game at the moment.&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t get MRC working, so no slick mixed-reality gameplay videos this week. I&amp;rsquo;m probably not going to look at that this week&amp;ndash; the last two weeks have been kinda filled with work that hasn&amp;rsquo;t really had a lot to show for it in game, so I want to focus on some things that impact gameplay a bit more but maybe I&amp;rsquo;ll see if there is some sort of Oculus expert on fiverr who I can hire for a pairing session to try and troubleshoot it. I&amp;rsquo;ll try to snag a regular gameplay video and add it to this post since it&amp;rsquo;s been a while since I&amp;rsquo;ve posted one.&lt;/p&gt;
&lt;p&gt;I also managed to get the power-ups that I wanted put in to stories. I think I&amp;rsquo;ve got all the features that I want identified and put into really loose stories. There is a bunch of other ideas that I had to add that I haven&amp;rsquo;t put in to stories, but I think it&amp;rsquo;s important that I try to keep my scope reasonably small for the initial release so that I can get something completed. Gonna take some time to think about things and then I hope to lock my scope in terms of features by the end of this week.&lt;/p&gt;
&lt;p&gt;In terms of work that I want to get done this week&amp;ndash; this week I&amp;rsquo;m hoping to implement a couple power-ups&amp;ndash; Multiball, enlarge and 1up. My stretch goal is going to be to start working on the updates that I need to make to start implementing multiple stages (serialized levels) for a campaign mode.&lt;/p&gt;
</description>
		</item>
		<item>
			<title>Week 3 - Blog setup, messing with MRC, start/end screens, points</title>
			<link>https://midwinter.dev/posts/2022-04-25-week-3/</link>
			<pubDate>Mon, 25 Apr 2022 00:00:00 +0000</pubDate>
			<author>craig.j.midwinter@gmail.com (Craig J. Midwinter)</author>
			<guid isPermaLink="true">https://midwinter.dev/posts/2022-04-25-week-3/</guid>
			<description>&lt;p&gt;Ok, so my initial goals for this week included setting up this blog and then adding start and end screens. I got this blog up and running pretty early in the week and one thing that I noticed was that my gameplay videos really looked like shit using the built-in quest capture. The aspect ratio is terrible and it&amp;rsquo;s just all together un-impressive. What I&amp;rsquo;d really like to do is have nice mixed-reality capture gameplay videos to give a better sense of immersion, so as part of the blog-related work that I had planned for this week, I decided to prioritize adding support for the oculus mixed-reality capture (MRC) tool.&lt;/p&gt;
&lt;p&gt;I thought it would be pretty quick to add this in, but in actuality, I spent a lot of time working on this and I wasn&amp;rsquo;t successful. I timeboxed myself on this since it wasn&amp;rsquo;t really something that I had initially planed for this week and I wanted to make sure I achieved my initial goals for the week, so I moved on without getting it implemented. I found a great repo for the implementation of MRC when using the XR Iteraction Toolkit: &lt;a href=&#34;https://github.com/TonyViT/MrcXrtHelpers&#34;&gt;https://github.com/TonyViT/MrcXrtHelpers&lt;/a&gt;. Unfortunately I wasn&amp;rsquo;t able to get video working in my project, but I experienced the same issue with the Oculus MRC sample scene in my project, which uses the default Oculus rig instead of the XRT rig, so I don&amp;rsquo;t think the issue has anything to do with that plugin.&lt;/p&gt;
&lt;p&gt;The start screen that I created is super basic. Like &lt;em&gt;super&lt;/em&gt;, super basic. I decided to use the VRIF&amp;rsquo;s UI helper system, so I swapped out the unity XR rig with the prefab from VRIF so that I could take advantage of it. At the very least now, when the user wins or gets a game over, they can play a new game. I&amp;rsquo;ll style this a bit more in the future, but for now thats not really a priority.&lt;/p&gt;
&lt;p&gt;My stretch goal was to add a basic points system, and I got that in place. It&amp;rsquo;s really basic, each brick is worth 50 points, and there is a basic combo multiplier that resets with the ball goes out or hits the racket. The combo multiplier makes things more interesting for sure, but in the future, instead of resetting when the ball hits a racket, it would have a time-based cooldown mechanism.&lt;/p&gt;
&lt;p&gt;This week, my goal is to add a persistent &amp;ldquo;high score&amp;rdquo; for the local application and to fix MRC. I&amp;rsquo;m not super confident that I&amp;rsquo;ll accomplish much more than that since covid is running through our house right now, but if I do, I&amp;rsquo;m going to research patterns for implementing a global scoreboard and maybe try to task it out and also task-out power-ups and pick up some low-hanging fruit from there.&lt;/p&gt;
</description>
		</item>
		<item>
			<title>About</title>
			<link>https://midwinter.dev/about/</link>
			<pubDate>Tue, 19 Apr 2022 00:00:00 +0000</pubDate>
			<author>craig.j.midwinter@gmail.com (Craig J. Midwinter)</author>
			<guid isPermaLink="true">https://midwinter.dev/about/</guid>
			<description>&lt;p&gt;This is a devblog chronicling my first attempt at developing a game. I&amp;rsquo;m a developer by trade, but I have next to no experience developing a game. Follow along as I learn, and maybe make something fun, but probably make something shitty.&lt;/p&gt;
&lt;p&gt;You can learn more about me and peep my resume at my personal &lt;a href=&#34;https://craigjmidwinter.github.io/&#34;&gt;landing page&lt;/a&gt;&lt;/p&gt;
</description>
		</item>
		<item>
			<title>Initial Commit</title>
			<link>https://midwinter.dev/posts/2022-04-19-initial-commit/</link>
			<pubDate>Tue, 19 Apr 2022 00:00:00 +0000</pubDate>
			<author>craig.j.midwinter@gmail.com (Craig J. Midwinter)</author>
			<guid isPermaLink="true">https://midwinter.dev/posts/2022-04-19-initial-commit/</guid>
			<description>&lt;p&gt;For the last two weeks, in the limited spare time that I have after my kids go to bed, I&amp;rsquo;ve been picking away at building a VR game inspired by the classic Breakout/brick-breaker games.&lt;/p&gt;
&lt;p&gt;I am a developer by trade, but I&amp;rsquo;ve never worked in the gaming industry professionally or even on a game as a hobby before so I&amp;rsquo;m eager to learn about this space. I chose to make a breakout clone because the core game mechanic seemed like something that was simple enough to implement, but with enough room to play with the nuance of VR and to build upon to make something somewhat unique and build something that would be worth bringing to market as a cheap game to get a sense of what all phases of the development cycle for a game is like. I primarily view this as an opportunity to learn the nuance of VR development in order to hone my skills as a developer in anticipation of the burgeoning VR/metaverse space, and if I happen to make something fun, then thats gravy.&lt;/p&gt;
&lt;p&gt;Alright, enough about my motivation&amp;ndash; I&amp;rsquo;m probably going to keep this dev blog really simple. I&amp;rsquo;m hoping to update weekly chronicling changes, with gameplay videos which would serve as bi-weekly demos. So without further adieu, here we go!&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t take any week zero screenshots or video. For the most part my effort was focused on getting my development environment set up learning some unity basics, but I did take a week 1 video:&lt;/p&gt;
&lt;h2 id=&#34;week-1&#34;&gt;Week 1&lt;/h2&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/aVY4Jeu7_n8&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;What you are seeing is a basic project with some janky collision/hit mechanics with an outrun style skybox and a wireframe shader on a little basic arena and some sound effects.&lt;/p&gt;
&lt;p&gt;I think the main challenge that I ran into in week 1 (aside from getting my environment up) was trying to get the hit mechanic working properly. I was following this tutorial as a basic intro: 
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/j19QDOn2cCc&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;Now, the physics part of this intuitively made sense to me&amp;ndash; separate the collider into multiple smaller colliders in order to make sure the velocity that gets applied to the ball is based on the mean of a smaller collider since the &amp;ldquo;hit&amp;rdquo; action is primarily rotation and the velocity at the tip of the object is vastly different from the one at the base, but one thing that wasn&amp;rsquo;t intuitive is why there is a need to instantiate a second &amp;ldquo;follower&amp;rdquo; cloned game object instance that has a separate script attached. While I&amp;rsquo;m still not 100% sure the reasoning, my best guess is that the unity controller objects that move through the world space kinda &amp;ldquo;teleport&amp;rdquo; through the world space as opposed to moving via physics and as such do not have velocity, so calculating it and applying it to the follower object makes sure the appropriate amount of velocity is transferred to the ball object.&lt;/p&gt;
&lt;p&gt;The other key takeaway was how much sound effects and music make a difference in the overall feel of the game. This lead me to look note to look into &amp;ldquo;gamefeel&amp;rdquo; and &amp;ldquo;juicing&amp;rdquo; for the next week.&lt;/p&gt;
&lt;h2 id=&#34;week-2&#34;&gt;Week 2&lt;/h2&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/nwZFypB8jDM&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;I spent the first part of the week playing around with trying to add juice to the game, and it definitely made it feel a bit more polished. I’m still pretty unsatisfied with the collision physics on the racket vs the ball, but it&amp;rsquo;s playable right now and not a blocker, so I’ll come back and try to address it once I have a bit more experience with unity.&lt;/p&gt;
&lt;p&gt;My main goal for this week was to implement bricks and the brick field. The brick has a configurable amount of damage, and the amount of damage inflicted by the ball depends on how much velocity the brick was hit with. Currently the bricks are just set to a single hit point so it doesn’t really factor in, but in the future I’ll use it to have different brick types, and when I implement power-ups, the damage factor can be increased based on power ups.&lt;/p&gt;
&lt;p&gt;For now, the brick field is just a configurable matrix of the number of bricks in the x, y z directions. I also implemented a breaking effect by creating a fractured brick mesh to swap in and explode when the brick breaks. It looks pretty good, but I eventually need to reduce the amount of pieces in the fracture, because if you break too many at once, there are performance issues.&lt;/p&gt;
&lt;p&gt;One thing that happened while I was playing with the build, I somehow managed to mess up the camera offset when I returned to a game in progress and it ended up making me slightly taller in game than using the default offset, I played it for a bit like that and noticed that it added a lot of verticality to how the game plays. The default height resulted in almost exclusively playing standing upright and using my arms from a 90-degree angle and up, whereas being taller resulted in using a full range of motion and crouching to get balls, so I decided to incorporate it by adding a “hover-board” beneath the players feet.&lt;/p&gt;
&lt;p&gt;My stretch goal was to hammer in a bit of a game flow. Click to serve was removed, and serving at start and after death was added, and then game start and end conditions were added.&lt;/p&gt;
&lt;p&gt;Overall, a very productive week. I don’t anticipate sustaining this sort of velocity though.&lt;/p&gt;
&lt;p&gt;In week 3, I intend to set up this blog, then add start and end screens that allow users to play again. Stretch goal is to start adding a really basic point system. I also bought the VR Interaction Framework since it was on-sale in the unity asset store. I’m going to play around with that a bit and use it first to implement the UI for the start and end screens, and then to see if it will maybe fix my issues with the racket collisions. Also, maybe decide on a name?&lt;/p&gt;</description>
		</item>
	</channel>
</rss>
