We were not idle over the break. The designers did a lot of progression testing, the artists created more building assets, and together we settled on a more solid musical direction for the game - public domain pieces. Marches (for the America faction), Russian classical music (for the Russia faction), and an unknown style in the same vein as the other two (for the Alien faction). This led to an enjoyable amount of music puns during our Monday meeting.
Code-wise, I accomplished a fair amount as well. Due to circumstances at home I was not able to do as much as I would have liked, but I made good progress on important features, including pause a screen and kiosk mode. I'm also hard at work on fixing up our UI layout system so I can actually implement some of the more complex interface interactions without tons of public static variables. This is taking slightly longer than expected, but we should have everything ready by our alpha milestone next week.
BeauPrime's Capstone Blog
Views from NeverYear Games' Lead Engineer
Sunday, March 15, 2015
Monday, March 9, 2015
Prelude to "break" (S2W8)
This week was a bit odd in terms of work, since it sits on top of two industry events and right next to our spring break. GDC and PAX poached some of our members from campus (myself included!), so we mostly planned out everything we need to get done for the alpha milestone, which is incredibly close.
Over the past few days I've been very productive, working on kiosk mode, single-player progression, and cleaning up some of my old sound code. I'm still trawling the internet for good alternate music styles for the game in my spare time, since what we currently have doesn't really work thematically for our final game. Our PAX build seems to have tested well in terms of playtime - matches were, on average, 5 - 12 minutes long, based on reports from our lead artist. He and I also cleared the air a bit, so I'm glad communication and mutual enthusiasm for the project has prevailed.
We have so much to do in a short period of time, but I feel like we're up to it. Programming-wise this isn't anything I can't handle. I've done a lot more in the space of a weekend for older personal projects, so given a full week's "break" I should be able to make a lot of progress.
Over the past few days I've been very productive, working on kiosk mode, single-player progression, and cleaning up some of my old sound code. I'm still trawling the internet for good alternate music styles for the game in my spare time, since what we currently have doesn't really work thematically for our final game. Our PAX build seems to have tested well in terms of playtime - matches were, on average, 5 - 12 minutes long, based on reports from our lead artist. He and I also cleared the air a bit, so I'm glad communication and mutual enthusiasm for the project has prevailed.
We have so much to do in a short period of time, but I feel like we're up to it. Programming-wise this isn't anything I can't handle. I've done a lot more in the space of a weekend for older personal projects, so given a full week's "break" I should be able to make a lot of progress.
Sunday, March 1, 2015
Progress, but not without communication (S2W7)
What a weird, uncomfortable week this was.
We made a few technical improvements this week. First, a crash screen. Now, when the game fails outside of the Unity Editor, instead of terminating the program, users are taken to an error report screen, showing them the errors and directing them to contact us. This helped us to catch the cause of a weird, seemingly tablet-only crash from last Monday. We also added in a system for saving and loading player progress and profile data. It stores its data hierarchically and is much simpler than I initially had planned it to be. It's also a lot easier to extend in case we add more missions in some later expansion.
UI-wise, we were forced back to the drawing board due to our failure to convey exactly why we chose the layout we had decided upon last week. We ended up choosing the same layout with minor tweaks, but we managed a few more interesting concepts before making that decision. I really wish we could have just stuck with our first final decision from the get-go, as having a final decision essentially nullified by someone outside of our immediate dev team was pretty demotivating. At least I was able to quickly move some of our existing elements around and get a prototype of the layout working.
From a narrative perspective, we've worked out a simple plot for the game that doesn't require a lot from an events perspective. Instead, we've decided to focus on character interactions before and after matches for world-building. We've got a pretty unique set of characters to use, all nicely fleshed out in their quirks and relationships to each other. I'm glad we've decided to restrict ourselves to dialogue and scripted events outside of the matches. While ideally we'd be able to integrate all these things into the matches, we don't have the time to implement all the necessary scripting features and then use them to craft intriguing in-match events.
All in all, we made some good progress this week and our testers appreciated our efforts. Due to more offensive abilities through the faction upgrades, matches are now slightly shorter, which is something we've always kept in mind. People also appreciated the AI opponent, though there was a bit of lack of coordination that resulted in undesirable behavior. Since I added projectile angle clamping less than a day before the game was at testing, I didn't have a lot of time to inform our AI programmer, Rob, about how this could affect his AI behavior. I resolve to do better on that front next time.
There was also some troubling conflict at the beginning of the week, which brought up the need for more constructive communication among the team.
We made a few technical improvements this week. First, a crash screen. Now, when the game fails outside of the Unity Editor, instead of terminating the program, users are taken to an error report screen, showing them the errors and directing them to contact us. This helped us to catch the cause of a weird, seemingly tablet-only crash from last Monday. We also added in a system for saving and loading player progress and profile data. It stores its data hierarchically and is much simpler than I initially had planned it to be. It's also a lot easier to extend in case we add more missions in some later expansion.
UI-wise, we were forced back to the drawing board due to our failure to convey exactly why we chose the layout we had decided upon last week. We ended up choosing the same layout with minor tweaks, but we managed a few more interesting concepts before making that decision. I really wish we could have just stuck with our first final decision from the get-go, as having a final decision essentially nullified by someone outside of our immediate dev team was pretty demotivating. At least I was able to quickly move some of our existing elements around and get a prototype of the layout working.
From a narrative perspective, we've worked out a simple plot for the game that doesn't require a lot from an events perspective. Instead, we've decided to focus on character interactions before and after matches for world-building. We've got a pretty unique set of characters to use, all nicely fleshed out in their quirks and relationships to each other. I'm glad we've decided to restrict ourselves to dialogue and scripted events outside of the matches. While ideally we'd be able to integrate all these things into the matches, we don't have the time to implement all the necessary scripting features and then use them to craft intriguing in-match events.
All in all, we made some good progress this week and our testers appreciated our efforts. Due to more offensive abilities through the faction upgrades, matches are now slightly shorter, which is something we've always kept in mind. People also appreciated the AI opponent, though there was a bit of lack of coordination that resulted in undesirable behavior. Since I added projectile angle clamping less than a day before the game was at testing, I didn't have a lot of time to inform our AI programmer, Rob, about how this could affect his AI behavior. I resolve to do better on that front next time.
There was also some troubling conflict at the beginning of the week, which brought up the need for more constructive communication among the team.
Sunday, February 22, 2015
Finding a track on which to return (S2W6)
We've got a lot on our plate. We've got four weeks, essentially. Technically six, but the final two are reserved solely for polish and testing. In those four weeks, we need to finish the game. That means (A) single-player campaign, (B) faction upgrades, C) all the final art and sound, including faction-specific buildings and characters, and (D) final UI layout. All this in four weeks. You reap what you sow, I suppose.
But at least we're better off than we were a few weeks ago, and most certainly better off than we were last week. From the 54 missions we discussed last week we've cut it down to a much, much more manageable 12. This will allow us to actually test and polish everything in a reasonable amount of time. We'll need to put in a bit more work to get these looking nice, but we'll be able spend that extra work for each mission. Faction upgrades were prototyped last night; half of them are currently working, one of them will take a few hours to code, and the other two are still undeveloped. Final art and sound are at an unknown state of completion. We managed to agree on a final UI. This is an area where I'm really glad we've set our foot down and enforced a deadline, though I'd be happier if we'd gotten this done two or three weeks ago. I also believe we managed to tick off one of our artists, who had gotten very attached to one specific iteration of the UI, one that we rejected. Not particularly happy about that, though I'm sure it'll fade into the background.
From a programming standpoint, I accomplished a good chunk of work over the past few days. Factions now create their own prefabs per building and projectile, as well as have a data-driven format for their properties. Faction upgrades are also functional - both of the Soviet upgrades are working, and the Murkika upgrades have been revised to be slightly easier to prototype. I've also gone and revised both the match intro and ending screens, adding more color highlights and a match duration timer.
We've spent perhaps an excess of time planning and debating, but hopefully we've gotten to a point where we can really get back on track. It'd be nice to see this project progress beyond the usual limitations of a student project.
But at least we're better off than we were a few weeks ago, and most certainly better off than we were last week. From the 54 missions we discussed last week we've cut it down to a much, much more manageable 12. This will allow us to actually test and polish everything in a reasonable amount of time. We'll need to put in a bit more work to get these looking nice, but we'll be able spend that extra work for each mission. Faction upgrades were prototyped last night; half of them are currently working, one of them will take a few hours to code, and the other two are still undeveloped. Final art and sound are at an unknown state of completion. We managed to agree on a final UI. This is an area where I'm really glad we've set our foot down and enforced a deadline, though I'd be happier if we'd gotten this done two or three weeks ago. I also believe we managed to tick off one of our artists, who had gotten very attached to one specific iteration of the UI, one that we rejected. Not particularly happy about that, though I'm sure it'll fade into the background.
From a programming standpoint, I accomplished a good chunk of work over the past few days. Factions now create their own prefabs per building and projectile, as well as have a data-driven format for their properties. Faction upgrades are also functional - both of the Soviet upgrades are working, and the Murkika upgrades have been revised to be slightly easier to prototype. I've also gone and revised both the match intro and ending screens, adding more color highlights and a match duration timer.
We've spent perhaps an excess of time planning and debating, but hopefully we've gotten to a point where we can really get back on track. It'd be nice to see this project progress beyond the usual limitations of a student project.
Sunday, February 15, 2015
Where are we? (S2W5)
So, this week was a bit of a mess. We managed to fix some of the issues with the controls on tablet and added a few little tweaks to make the launch button more noticeable. We also integrated Charles' balancing changes into the game, which most of the testers loved. We also ended up wasting a lot of time, whether through miscommunicated meeting times or misprioritized tasks. I'm quite disappointed, and I feel like we're not far enough along. Maybe that's on me - I haven't had quite the motivation this semester that I had last semester, so I could definitely be doing more. At the same time, I shouldn't be the lynchpin for art or design tasks, particularly on the UI design side. I might not have the strength to fulfill that role for a team of 10.
The team is drifting in confusion.
The team is drifting in confusion.
Sunday, February 8, 2015
Making a Plan (S2W4)
This week was a nice change from last, as we managed to draw up a plan taking us to the end of the mid-term milestone. We're planning on bringing this to PAX East in March. An exciting and terrifying prospect for the project. Luckily we're only showing off the local multiplayer, which so far is the most solid, testable element. From a narrative perspective, we have a solid premise and some entertaining characters for players to encounter. We've also drafted some world map concepts and narrowed down the number of missions necessary for the single-player to work.
From a technical perspective, I spent a while working on refactoring my old code and planning out kiosk mode. Since we're planning to bring this to PAX, we'd like some version of kiosk mode to work by that time. There are several approaches we could take. One is to have AI play against each other, but I'm worried we won't get to that point in time. Another is to play video, but we'd need Unity Pro to use MovieTextures and Bink requires licensing fees that we can't afford. I'm still looking into it. For refactoring, my old code was a grand, tangled mess that was a relic of a fast port from one codebase to another. I want to clean it up so that single-player isn't a hacked-together version of multiplayer, but there's a bit of resistance to the idea. In the short-run, leaving it as-is works well enough. When we start getting into scripted events and more complicated pieces for single-player, having something more flexible will be crucial to getting content created faster. If we have to clumsily hack every special event into the game, we're not coding it right, and I'd like to code it right if possible.
From a technical perspective, I spent a while working on refactoring my old code and planning out kiosk mode. Since we're planning to bring this to PAX, we'd like some version of kiosk mode to work by that time. There are several approaches we could take. One is to have AI play against each other, but I'm worried we won't get to that point in time. Another is to play video, but we'd need Unity Pro to use MovieTextures and Bink requires licensing fees that we can't afford. I'm still looking into it. For refactoring, my old code was a grand, tangled mess that was a relic of a fast port from one codebase to another. I want to clean it up so that single-player isn't a hacked-together version of multiplayer, but there's a bit of resistance to the idea. In the short-run, leaving it as-is works well enough. When we start getting into scripted events and more complicated pieces for single-player, having something more flexible will be crucial to getting content created faster. If we have to clumsily hack every special event into the game, we're not coding it right, and I'd like to code it right if possible.
Sunday, February 1, 2015
Smelly Code, Dissatisfaction (S2W3)
This week did not feel like a particularly strong week. Not much of note occurred, besides integrating the level editor into the game to allow the designers to start designing levels. We continue to have lengthy discussions over the design of the new UI, which seems to be taking up almost too much of our time at our appallingly few meetings. Some of the designers have worked on timelines for the game's world, complete with witty acronyms. The artists are drafting concepts for characters, working on a new logo, and doing sketches for UI layouts, though most just seem to be small iterations upon the "on-the-planet" layout that Stephen created. Rob's working on AI, making changes here and there, allowing the computer to prioritize different objectives over one another.
As we've approached the Greenlight milestone, I'm continuing to realize how much my current gameplay code is not suited for single-player. Most of it was either ported from the old system or rewritten slightly within the last three days of creating the demo build. A lot of it was not made entirely flexible for the purposes of getting it done quickly. If I had tried to redo everything in a sensible manner, I may not have finished the demo in time, so I wrote enough to get the multiplayer to work. Those decisions have come back to bite me in the rear, as explaining my code structure to Rob has gotten increasingly embarrassing. I plan on refactoring a bunch during this next week, along with starting on a few other metagame features. Rob is a bit nervous, but if I don't take the time to rewrite it now, I'm just kicking the can down the road until we reach a feature that is so horribly convoluted to implement with the current system that we have to either refuse or rewrite many more lines of code. I need to pay this technical debt now before the interest accumulates further.
This project isn't going as well as I had hoped coming into the semester. Part of that comes down to scheduling. When every team member's free time barely seems to intersect with each other, we can't really have effective group meetings. This is complicated further by the larger team size. Last semester, we had four members, and finding time to work with each other was pretty easy. Furthermore, the group felt united, strong. Since adding six new members, our capacity to do work has increased, but the team unity isn't as strong, our game direction doesn't seem to be as solid, and we just don't seem to be communicating as well. Hopefully we'll turn this around and start working as one, but currently I'm just not as comfortable with where we are.
As we've approached the Greenlight milestone, I'm continuing to realize how much my current gameplay code is not suited for single-player. Most of it was either ported from the old system or rewritten slightly within the last three days of creating the demo build. A lot of it was not made entirely flexible for the purposes of getting it done quickly. If I had tried to redo everything in a sensible manner, I may not have finished the demo in time, so I wrote enough to get the multiplayer to work. Those decisions have come back to bite me in the rear, as explaining my code structure to Rob has gotten increasingly embarrassing. I plan on refactoring a bunch during this next week, along with starting on a few other metagame features. Rob is a bit nervous, but if I don't take the time to rewrite it now, I'm just kicking the can down the road until we reach a feature that is so horribly convoluted to implement with the current system that we have to either refuse or rewrite many more lines of code. I need to pay this technical debt now before the interest accumulates further.
This project isn't going as well as I had hoped coming into the semester. Part of that comes down to scheduling. When every team member's free time barely seems to intersect with each other, we can't really have effective group meetings. This is complicated further by the larger team size. Last semester, we had four members, and finding time to work with each other was pretty easy. Furthermore, the group felt united, strong. Since adding six new members, our capacity to do work has increased, but the team unity isn't as strong, our game direction doesn't seem to be as solid, and we just don't seem to be communicating as well. Hopefully we'll turn this around and start working as one, but currently I'm just not as comfortable with where we are.
Subscribe to:
Posts (Atom)