This week's CoH-Dev post covers a typical day in the life of one of our Mission Designers. Darwin gets into some pretty technical details and highlights some of the creative solutions a designer needs to come up with when building an exciting mission. Leave him any questions you might have and I'll get him to follow-up! - JohnT_RE
Hi! I’m Darwin and I’m one of the single player Mission Designers on Company of Heroes 3! In earlier stages of the production phases of this game, I was responsible for designing and implementing prototypes of several of the campaign missions and then fleshing them out into a functional state. Now, with the project steaming ahead into the later stages of production, my tasks have gradually shifted over the last few months into shaping, maintaining, marshalling and adding completed assets into, and tuning these campaign missions under my responsibility into playable and fun levels for people to enjoy.
A typical morning starts with a Missions & Maps Standup, after checking and responding to emails and messages, I join in. The meeting starts with the usual greetings and banter between the various team members. I’m working from home, and it’s great to see people and their pets on screen. For some of my teammates, I haven’t seen them in person since the beginning of the pandemic, but I’m looking forward to seeing people in person when it’s safe again. Especially with a mug of coffee from the staff kitchen. I guess game developers really are fueled by caffeine!
Here I inform my teammates about the statuses of the various missions under my purview, relaying any relevant information regarding bugs and new things that have been added as well as indicating which tasks have been done, are for review, or have not been started yet. Nothing too unusual today, just gradually shifting things from implementation and content adding to polish. We seem to be making a lot of progress on that front, although we’re still waiting on some assets to hot drop in! The meeting breaks, and we say our goodbyes for now.
Today, I’m playing through and focusing my work on [REDACTED], one of the main Italian campaign missions I am working on. Because we’re in the later stages of production, I’m now checking for opportunities to tune the gameplay, working on polishing tasks (make things look cooler), and in general checking for bugs. As we are responsible for different missions, we rotate between them over time rather than tackle every one willy-nilly at once, to keep things organized and scheduled. As it happens, I’ve rotated back to this mission which hasn’t been looked at in a while and there are definitely issues that have cropped up as new features get added and assets are updated.
Due to shared development on maps (us map designers are paired with our awesome environment/map artists), this isn’t unexpected - whenever some new assets get added, I just have to make sure I have things hooked up on my end. One prime example of something I encounter is that a key building’s assets had been dropped in recently and it now needs to have some properties added, otherwise the game will crash after trying to reference things that don’t exist! Fortunately, all I have to do is go into our Essence Editor and open its entity blueprint properties and drop in the [REDACTED] property extension. I save the changes and go back to test and, “Huzzah!”, the fix worked.
After a few more items have been tackled (like playing through some sections to get a “feel” for tuning and making spot adjustments and talking to programmers after I notice bombs were flying horizontally like cruise missiles), I look up and notice that it’s now past noon! I quickly put everything on hold, lock the computer, and step outside for some much needed fresh air, sun, and lunch.
An hour later, I log back in and after checking and responding to messages that I got while I was out, I join a scheduled “kickoff” meeting to discuss the creation and integration of a specific [REDACTED] vehicle I coincidentally need for the [REDACTED] mission I was working on before lunch. There were a couple of pre-meeting discussions the last couple of days where I contributed some research material and images, but here is where we come up with the plan to make and implement the asset. Fortunately, it is a modification of an existing asset so putting together a skeleton object has already been done and stubbed in which makes it easy to put in, within the time left. All that’s left is to discuss how we want the vehicle to look and that’s where my reference material comes in. We decide on a specific camo pattern and markings used that were closest in time to when [REDACTED] mission occurred in real life, as well as how it’s armed. Satisfied, we break and I’m confident our artists will be able to make something awesome looking that they can pop into the game in the near future.
I go back to work on [REDACTED] mission. Another example of work that needs to be done is replacement of placeholder systems that were stubbed in during earlier phases of development to be replaced with something that is more functional once it becomes available. In this case, there are certain player abilities I am triggering on the map for placeholder fire and effect off map artillery strikes, but because of non-deterministic properties, it’s not always doing what I want.
We have a newer, more precise way to call in an artillery strike which involves calling in an “action” from within a “prefab” object at a specified time and location, so I implement that instead. The older implementation relied on a roundabout method that utilized Lua scripting and was subject to external factors that affected it (such as the ability origin point from the nearest map edge) which made things difficult to time. After a little bit of blood, sweat, and tears I complete a whole series of retrofits. My cat decides to curl up in front of my keyboard, so I take that as a sign to take a break.
The final task I need to tackle in the day is more work to bring it all together – adding the appearance of the [REDACTED] vehicle I collaborated with my team members on earlier in the day into the level. Actually, there will be a few instances of this vehicle – they will be in a small “convoy” of sorts. First, I set the “path” these vehicles will drive through the map by placing some waypoints down to form a path. Next, I use our prefab system to tell the game where to start spawning this convoy and also define how they will behave and to follow the path I just placed. I also make sure I plug in some voice lines to tell the player what’s going on and think about any other UI considerations. Finally, I edit the conditions that kick off this particular segment. I save and “burn” the new changes into memory, and then proceed to test my handiwork.
Oops, an error occurred! Turns out I messed up a start condition, but it is quickly fixed, and everything appears to be working as intended now. I quickly check in everything before the build lock deadline for the day! My work for the busy day is now complete, and I log off in search of dinner.
Let me know what other details of Mission Design work might interest you!
This was an enjoyable summary. Thank you for sharing. Teamwork is obvious in every day in the life summary I've read thus far, no one is on an island by themselves each department heavily relying upon the next.
If my detective skills have not failed me, I feel like I was able to discern "redacted" as no other than the Battle of Gazala! It stays in the same era period of this games timeline, and I bet the specific armor Darwin is referencing with camo choice is none other than Rommel's tank. This was before he lost to Montogomery at El Alamein. I am curious as to the mission and the convoy perhaps retreating but I'm curious if the path can have maybe one or two different routes depending upon the playthrough (don't scoff, just asking) so that each playthrough there is not one optimal approach to handling the route/script. I am not familiar with "Lua scripting" but after researching it I think it makes sense of programming procedural, object-oriented, functional scripting version of programming.
If it's not Battle of Gazala then I hope they still have a mission with Rommel involved and the different elite units like German Fallschirmjager like in Battle of Ortona.
I am looking forward to the release, please share with us launch details sooner rather than later to help build up momentum coming out of summer into Fall. If there are no more releases expected before release, let us know the month at least. I'm saving up for a PC but not sure if I need it by September or December depending upon progress/launch expectation. Shipping delays is another factor if I wait until December I may not receive my product for several months so I'm planning for August purchase. Hoping the game is not released until OCT/NOV timeframe.
Hi I'm contacting you because I found the grenade throw a bit too long when I watch the videos of coh3 if you correct it would be great :)Also the French community is a bit worried that he has only one faction The Ake Continue like this you do a good job I think I hope he will have another playable pre-call :)
Something I would love to see implemented is the ability to "attach" squads to tanks, just like in the cinematic trailer, so if a tank moves up, the squad will move up with the tank and will continue to take cover depending on which direction has been set (sides/rear etc). Hopefully will minimise some of the micromanagement and make for some quick and effect gameplay. Looking forward to the game and cannot wait for the final build!
Curious to know is the team taking an agile approach with the development or a hybrid methodology?
Also in the first COH there was a feature that the 50.cal gunner on vehicles could be shot and killed. You then had to repair the vehicle to get the gunner back. Can the feature return but instead of repairing the vehicle just have a reinforce feature like normal squads have to get the gunner back. It adds more depth and I feel makes snipers that much more important on the battlefield.
ADMINJohn_RE
Moderator
ADMINJohn_RE
Moderator
9 400g2g ptsReport comment
Why do you report John_RE?
Are you sure you want to block John_RE ?
BlockCancelAre you sure you want to unblock John_RE ?
UnblockCancelArt_0f_War
Newcomer
Art of War
Art_0f_War
Newcomer
7 700g2g ptsReport comment
Why do you report Art_0f_War?
Are you sure you want to block Art_0f_War ?
BlockCancelAre you sure you want to unblock Art_0f_War ?
UnblockCancelShenFengDW
Newcomer
ShenFengDW
Newcomer
2 200g2g ptsReport comment
Why do you report ShenFengDW?
Are you sure you want to block ShenFengDW ?
BlockCancelAre you sure you want to unblock ShenFengDW ?
UnblockCancelSnowman123
Newcomer
Snowman123
Newcomer
1 000g2g ptsReport comment
Why do you report Snowman123?
Are you sure you want to block Snowman123 ?
BlockCancelAre you sure you want to unblock Snowman123 ?
UnblockCancelmaaa
Newcomer
Sincerely, maaa.
maaa
Newcomer
6 200g2g ptsReport comment
Why do you report maaa?
Are you sure you want to block maaa ?
BlockCancelAre you sure you want to unblock maaa ?
UnblockCancelHansen
Newcomer
Liberté Egalité Fraternité
Hansen
Newcomer
7 700g2g ptsReport comment
Why do you report Hansen?
Are you sure you want to block Hansen ?
BlockCancelAre you sure you want to unblock Hansen ?
UnblockCancelcoh-11yearsfans
Newcomer
coh-11yearsfans
Newcomer
7 700g2g ptsReport comment
Why do you report coh-11yearsfans?
Are you sure you want to block coh-11yearsfans ?
BlockCancelAre you sure you want to unblock coh-11yearsfans ?
UnblockCancelmax6280
Newcomer
max6280
Newcomer
3 600g2g ptsReport comment
Why do you report max6280?
Are you sure you want to block max6280 ?
BlockCancelAre you sure you want to unblock max6280 ?
UnblockCancelAlexisss78
Newcomer
Alexisss78
Newcomer
700g2g ptsReport comment
Why do you report Alexisss78?
Are you sure you want to block Alexisss78 ?
BlockCancelAre you sure you want to unblock Alexisss78 ?
UnblockCancelCommando_8808
Newcomer
Commando_8808
Newcomer
3 200g2g ptsReport comment
Why do you report Commando_8808?
Are you sure you want to block Commando_8808 ?
BlockCancelAre you sure you want to unblock Commando_8808 ?
UnblockCancelNWyndham
Newcomer
Get it Done NW
NWyndham
Newcomer
1 600g2g ptsReport comment
Why do you report NWyndham?
Are you sure you want to block NWyndham ?
BlockCancelAre you sure you want to unblock NWyndham ?
UnblockCancelahar010
Newcomer
Andy
ahar010
Newcomer
1 600g2g ptsReport comment
Why do you report ahar010?
Are you sure you want to block ahar010 ?
BlockCancelAre you sure you want to unblock ahar010 ?
UnblockCancelsei3coh
Newcomer
Cohcohrico
sei3coh
Newcomer
17 200g2g ptsReport comment
Why do you report sei3coh?
Are you sure you want to block sei3coh ?
BlockCancelAre you sure you want to unblock sei3coh ?
UnblockCancelX_SHaMaN_X
Newcomer
тут что-то написано
X_SHaMaN_X
Newcomer
1 600g2g ptsReport comment
Why do you report X_SHaMaN_X?
Are you sure you want to block X_SHaMaN_X ?
BlockCancelAre you sure you want to unblock X_SHaMaN_X ?
UnblockCancel