Survivors? Islanders? What even do we call all of you at this point, something to consider for the future as we do more of these Dev Blogs. We’ve been watching Discord, Reddit and the commentary on many of the content creators’ videos, streams, and even our own chats.
We wanted to open this blog up by forcing the big man himself to write a bit about what he has been specifically dealing with and some insight into the decision making process that happens when we bump into issues.
Director - Don - Dondi
Hey everyone, Dondi here.
A few weeks have passed since we’ve entered the quarantine, which thankfully hasn’t really affected much in terms of work flow. Most of it has been the “business as usual” which is cleaning up the edges of the jungle and trying to visually optimize things so at a distance a player can see adequate pathways and natural flows of animal traffic.
Recently we ran into an issue of map size with Isla Spero. These issues are undocumented, as we have pushed UE4 past its normal limits of single-server map sizes with our scope. In simple terms this means “If you want to host Isla Spero, you need several servers,” which we all deemed unacceptable. We’ve tried pretty much every solution and have reached out directly to Epic to see if they have anything hidden under the hood that may help. In short, I don’t want communities to be an endeavor for only people with a lot of expendable income, especially during times like this. Server sharding requires a lot of money and engineering time, and I wanted anyone to be able to create something for themselves. I do have one guaranteed solution to minimize Spero by cutting out some of the ocean, but the amount of time it would take would result in another delay and I’m not allowing EVRIMA to be delayed any further.
Since we aren’t directly solving the issue in this exact moment, our circumvention of this problem is another island I haven’t talked about. We as a team have several other islands that have been rendered out and finalized in terms of landmass properties that I work on when I need a break from Spero. However, we have not spoken about them at all, opting for the Valve approach of silently releasing into the night. My distaste of releasing in this order is probably only felt by myself, as the islands being seen out of order gives you all future glimpses into the world and story of the Isle and then going back once we release Isla Spero, which I’m not a fan of as it relates to the story I want to tell.
As for physical properties, it’s not as natural a feeling as Spero’s landscape, but rather a physical mix of Hawaiian style ridges and harsh peaks mixed with the spires and craggy outcroppings seen in various fictional depictions of Skull Island that break up the valleys and deltas that host the majority of the island’s life.
We'll share more renders of that island in the coming weeks but heres the first of the images we've got to share.
Business & Marketing - Christopher - ParadymShift
I think by now all of you are pretty familiar with me as the man who pushes around the paperwork and coordinates our branding, marketing, and communication. Since I’ve joined the team my initial job scope has expanded to include handling all of our business liaisons in addition to working with all of you.
In the last week we’ve opened up our engagement to include the Subreddit after it has long sat neglected. This seems to have been received pretty positively and I have been enjoying the interaction with the community present there in addition to my usual interactions on discord. You guys are feisty, and it makes my job constantly interesting.
We will be doing more work in showcasing some of the memes, clips, art, and other things the content creators are putting out into the world, and making greater use of all of our social media platforms in addition to doing monthly devblogs if these have a positive response from the community. We’ve already rolled out a submission channel for our network of content creators and we are always looking for more people to get involved in that process.
The initial run of the #TeamFoszor merch has been a success and I’ve watched a slew of happy people with their new digs and stickers and all of those proceeds are going right to Brandon and his family and we may open up another run in a few months to help open up more options for them.
I finally got a plushy sample that we requested, I’ll have to go pick it up next week to get hands on it and see if it meets the quality standards we are looking for. As far as the other merch stuff goes, we’ll be opening up our store after EVRIMA is in your hands and will be tentatively doing production runs on two week cycles. So the longest you would wait for an order is 14 days from order to production; though with COVID a very real concern, we may see some delays in shipping times, especially in times of extremely high demand. We are currently exploring alternative international shipping options to get better flat rate options for merchandise.
Beyond all of that, we’ll be taking a brief break after EVRIMA lands and it gets its first batch of hot fixes as it’s been a pretty grueling experience for our team and we are all eager to get a little R&R in before we get back to the grindstone.
Programming - Filipe - FTessaro
Even before QA started we had a few hurdles to overcome. With one man down, I had to take care of the build servers and some steam integration, which resulted in some headaches and sleepless nights, but we managed to resolve those issues.
Some challenges of the last few weeks are similar to the ones in the beginning, like making sure replication works great regardless of latency or player actions. Pouncing, for example - sometimes a player sees the animations correctly but the others see the animation being interrupted or the opposite. This means the server and client aren´t in sync, which can become very tricky, because players are unpredictable and it affects you and another player, or everyone around you, so it’s complicated. But with QA´s help we managed to fix a lot of bugs and core problems that aren’t going to repeat. Ragdoll is a big challenge as well, because: physics.
While abilities like dragging or pickup are working well, things again become complicated regarding trying to "control" a physics body that is mixed with animations and everything is replicated.
In the last weeks we started fully integrating the Tenontosaurus, so a lot of animations were and are being created and implemented; works fine but since some abilities are very complex and depend on a dinosaur’s size, weight, age, etc, we still have some problems and QA will also be busy helping us.
As expected, implementing Tenonto is extremely faster than the Utahraptor was. Why? Because the Utah was the foundation for all our core mechanics. So now, with the mechanics created, we just have to implement, adapt and correct whatever is necessary and so on. So for future dinosaurs it will be even faster.
We are not working only on dinosaurs, besides all the work we have, we are also working on UI implementations, AI ideas, world mechanics like ocean tides, rivers, and water levels. Diet buffs and debuffs, swimming, flying, performance... phew, so much stuff.
We have a system in the engine that was worked by Epic Games for several years, and improved for Fortnite, it is called Gameplay Ability System (GAS). This system is one of the two cores of the game, being Movement Component the other. GAS handles all abilities in game, like Attack, Pounce, Dragging, Pickup, Swallow, Eat/Drink, Wallow, Rest, Vocals and more like attributes (health, stamina, etc) and core replications.
Damage from primary attack is also handled by GAS, an ability is instanced from client, running on both server and client, but only the server runs a trace, if the trace hits an enemy, it executes a Gameplay effect, that causes the actual replicated damage. The damage value comes from GAS calculation class. Damage from pounce, for example, simply activates the Damage Gameplay Effect depending on the circumstance.
The old box collider is a simple collision area shape that is probably deactivated, so it doesn’t detect anything overlapping. When attacking, for example, you activate it and it detects who overlapped it, after that you probably disable the box again. The problem about it is that client and server won’t ever be synced, so, by the time you activate it and deactivate the box it could overlap several people in a single frame, instead of just one, causing damage to everyone instead. Sometimes, depending how the system was done, you could cause multiple hits to one target, doing much more damage than desired. New system uses a trace, which runs on the server with only one frame and hits the closest target. Nothing is activated or deactivated, just fire a trace once and do damage to what was inside that frame. So you can’t hit the same target multiple times or multiple targets with one bite.
Programming - Adam - dmIV
As someone who mostly played herbivores I never realized that it's possible for anything to sniff while moving. So my first implementation only worked when the dinosaur was standing still. Naturally, this was something I had to change. I made the necessary adjustments and moved on to other tasks. When we began working on the Tenonto I complained to the animators that the moving sniff animation was missing. This is where my misunderstanding was cleared up about only herbivores not being able to sniff on the move. I went back to work on the ability, but decided that the code would have been too difficult to understand if I wanted it to cover both cases. I just scrapped the whole thing and built it up from scratch. The new implementation is much more clear and straightforward, I'm happy with how it turned out in the end.
Nesting is something that has some specifics up in the air, so I only worked on what we'll definitely need. This means placing a nest that rises out of the ground while the animation is playing. Previously the game locked you into the building state until you were done, which is something we wanted to improve on. This added to the complexity significantly, but it went smoothly for the most part. Another challenge involved checking if the area was suitable. On our internal test level everything went fine. Then the QA team got their hands on it on a different level and BAM, you've got nests floating in the air.
Games generally have many invisible volumes around the level that make things happen when the player is inside, or help with different game logic. The nest placement system decided that these are proper foundations for a nest, so you were able to build on them. Needless to say, the test level happened to have huge volumes all over the map. At least the testing team got a kick out of it. I made the necessary changes and everything went back to normal.
Another problem that came up later was the nests using too much data and causing latency issues. I generally prefer to keep things simple first and optimize later if necessary. This was one of those times, so I looked into the issue, made some changes and the nests' network use dropped to around 1% of what it had been.
Nests had other annoyances along the way, with sometimes seemingly minor issues causing significant changes to the code. Their original collision setup also made movement on them all weird. After all that work they will serve as a solid foundation for the system that's still to come. I also made them able to sink back into the ground but I haven't shown that to anyone.
Flight is something new to the game, so I had a lot of creative freedom. This made me happy, because I enjoy flying creatures the most. In the beginning I mostly worked with Bryan to plan how things should work out in terms of controls. The engine doesn't have much I could use, the default flying is basically the same as a spectator mode. I added separate gliding and flapping modes and spent way too much time just playing around in the editor. I mean testing. The takeoff had some difficulties due to the way movement works in the engine in multiplayer, but it's in a pretty good state now.
Some time later Dondi got his hands on it and he worked with me to change how the controls work. It became less of a gliding simulator, but more of a pleasant flying experience.
I did a good amount of research about gliding in general and how that would be fun in a game. There are several different air currents gliders can use to stay up in the air, so I looked at how each of those would work for us. One that stood out in particular was thermals. They happen when the sun warms up a large patch of land, usually fields or concrete. The warm air rises and gliders can fly around in the area to be lifted up. This works well from a gameplay perspective, especially combined with the fact that they don't always happen in a certain place depending on various environmental factors. So you might end up gliding to a spot that had a thermal previously to find that it's not active at that time. You can't see thermals, you can only feel their effects when you're inside them. The plan is for the game to reflect that as well.
QA - Jack - Hypno
The Quality Assurance team has been hard at work behind the scenes to ensure that our initial EVRIMA build is as bug free as possible. Having had access to the branch for just over a month, the team has already discovered, replicated, and reported over 200 unique bugs thus far.
Whether they were building a nest “stairway to Heaven” or using said nests to enter Hell (yes, you could seriously use the nests to burrow underground), their diligence is proving more than capable to ensure that you guys receive the absolute best experience possible for your much-appreciated patience. QA is moving fast, but that doesn’t mean there’s not a whole lot of issues that need ironing out first.
The testing methodology is simple yet effective. QA is split up into 3 teams, each being assigned different tasks each time a build goes out to them. We work with the programmers closely and always double check our bug reports before confirming that they are fixed. This filter between QA and the public means no more “Allosaurus becoming stuck while resting” or “Characters spinning wildly out of control” issues.
The various tasks include, but are not limited to, functionality, ad hoc, and regression testing.
Functionality is the act of checking every input for every character in the game. Every time the programmers push a new build to QA, a team will check every button in that version of the game to confirm that it is still working, tracking them on a shared spreadsheet.
Ad hoc is the backbone for our bug reporting. The team compiles a list of queries to check with mechanics, for example, “What happens if I press the pounce button at the same time as the build nest button?”, and then report their results. When we tested this query in particular, the nest being built would continue to rise out of the ground while the Utahraptor was being pounced a few feet away.
Regression is our method of going back through old bug reports and re-testing them. A bug report confirmed fixed in one build doesn't mean it can't return in a later version. Oftentimes, a fix to one bug can open up possibilities for additional bugs.
To briefly summarise where we are with QA at the moment, the Utahraptor is almost feature complete as a sole character. The remaining issues are mostly related to pounce replication that just need polishing over.
We're taking this process one step at a time to ensure that the kinks are ironed out from one character before moving onto the next. QA has access to Tenontosaurus, but we need to resolve the open problems with Utah before moving on.
Dev's doing some pounce testing featuring Paradym's scream of terror at the end.
Producer - KissenKitten
For those of you that may not know, my job on the team as producer is to control the ebb and flow of production. Particularly as it applies to the artists. Here's a glimpse behind the veil at what's currently happening and will be taking place over the next several months.
Lets jump right in here with some things that are coming down the pipe artistically. We have more anim reference dossier pieces from Tapwing on the way for creatures such as Troodon, Oviraptor, Minmi and Homalo. In addition, we have long awaited reworks planned for Therizinosaurus (which you've seen), Giganotosaurus, Ankylosaurus, Albertosaurus, Austroraptor, Acrocanthosaurus, Shantungosaurus and the Hypo Rex. In no particular order. As well as a brand new creature concept for the long awaited and requested Megalania! Woop!
For creatures, we have the aforementioned rework roster, as well as tweaks to the Camarasaurus and work on ambient creatures such as schooling fish, frogs and other critters to interact with. There are also numerous skulls in production to accompany the various dead bodies that will inevitably litter the ground. Rex, Spino, Dilo, Sauropod vertebrae to name a few.
While the jungles and grasslands are looking the way we want them so far, we're giving special love and attention to the swamp and freshwater regions of the map. For those particular biomes, we have new swamp trees and their dead variants (stumps, logs). There's also freshwater flora in the works such as hyacinth, eelgrass, duckweed and more to really sell the environment.
For human pieces, we have facilities in the works starting with the harbor master and then branching fully into the entire dockyard. They're all being designed in a fully modular fashion, which will allow for us to deliver a much more optimized experience. We will be moving, zone by zone with human structures, fully fleshing out one area before moving on to the next.
We've also heard you loud and clear about night vision. So we're making some changes to that in the future while also adding flood lights and track lighting around human establishments at night, for those of you that don't wish to change your view to night vision mode. There's a whole suite of props that are going to be marching into the pipeline to deliver on the above and make those human establishments a more viable place to hang around in.
Bryan and I have been hard at work hammering out animations for the new animals and their new features. Things like pouncing, being pounced, struggling, sliding, turning in place, wallowing, vomiting, advanced combat and more. The Utah and Tenontosaurus are close to feature complete animation wise. With the exception of two new mechanics we're planning to implement in the future. Play. Which consists of a nudge of sorts that costs stamina, doesn't deal damage and doesn't take priority over attacks. Move over! As well as Social Fighting. Which will allow you to fight with members of your group while dealing reduced damage. Making fights for dominance within social groups a drawn out spectacle. But that's coming later on in production. For now, our focus is centered on making sure all of the current animations are working as intended and that they're implemented optimally. The QA team is working towards uncovering bugs in relation to them both mechanically and artistically so that we can polish any animations that may need adjusting.
In tandem, I am moving on to animating some of the newer creatures like Troodon and Hypsi as well as bringing the Dryo, Stego and Rex in line with the new features. So when the time comes to add them into the game, they'll be ready to go. Bryan will still be hard at work getting all of the new dinosaurs rigged and animating their base locomotion as well as anything else that may be needed. Because he's a trooper!
Be on the lookout for more news in the coming weeks.
3d Artist - Jake - Baardo
For the past month I've been tasked with getting together some of the assets needed to complete the swamp biome. Generally when constructing environments you want to start with large details and work down to the small ones, so we got to work on the swamp tree. The specific species of tree didn't matter all that much, we wanted something that looked gnarly with hanging moss and sparse branches, so I got to work compiling references of Cypress trees and other swamp plants.
One of the more important aspects of assembling trees is the base, as it will be the closest to the viewer's perspective and need to hold up under scrutiny. I spent a lot of time with the base model and textures to make sure they lived up to the intended look of the tree, as well as held detail at near and far distances. I created 3 bases for small medium and large individuals. A tileable trunk texture was created to smooth the detailing process, this would later be reused again during the final construction of the asset for the rest of the trunk, as well as some of the larger branches.
Then I went on to creating the atlas for the branches and leaves. This involved making high poly models of whole structured branches, so that I could bake maps from them to be organized and fit into an atlas. There isn't anything fancy going on in this process, it's just time consuming work. Once the branch atlas, the trunk texture and the base is complete, I was ready to construct the tree itself. The reference gathering comes in handy during this stage as it's important to understand the shapes and volumes that make up the character of the tree. A standing dead tree was also made using the same assets. Good planning and texture work goes a long way towards elegantly achieving the desired result. Making trees isn't quite as intuitive as making dinosaurs. I can just open up Zbrush and start making a character asset, trees take lots of planning and patience and you don't know if it'll really work until it all starts coming together at the end.
Next I went onto making debris; for our game this entails small ground branches, medium sized logs, and dead stumps. A lot of the tools, brushes, textures, and presets I made for making the full tree come in handy towards streamlining this process. These are more direct to make than full trees as they are more like individual elements and are only comprised of one material set, not three like the trees are. Moss, waterlines and other details will be added in-engine using shaders.
Up next for me is something a little more exciting than trees; Fish! A while ago I was tasked with making large fish for some of the larger piscivores to hunt. This included a Catfish and the charismatic Coelacanth. But small or immature piscivores still need something to hunt. Smaller prey fish will not only have gameplay utility, but start to flesh out the world and add life to the game outside of just player interactions. We still aren't sure what our final list of fish will be, but we are looking at 4-5 species with Gar, Bluegills, smaller Catfish, and others being on the list of prospective species. Stay tuned for more on those!
Concept Artist - Cole- Tapwing
Ah where to start with the Isle’s Troodon.
At its heart they’re limbed, venomous snakes with mischievous and eerie mannerisms.Hyenas were a good reference, for their curious nature and death-by-1000-cuts style of hunting. Taking turns to bite at prey while other pack members cause distractions.Crows were the 2nd source of inspiration for their social nature, rambunctious curiosity and knack for antagonizing/irritating other predators (particularly with their habit of tail grabbing).
Buildings and human environments were probably the last thing I thought I’d ever be concepting, but I’d be lying if I said it wasn’t an interesting challenge to tackle.(My architect dad would be proud.) Like creature design, I’ve found buildings have their own anatomy to look out for, especially for modular buildings. Repeating patterns that work together and don’t look stale is a must.
In regards to the building style, I’d say it’s a mix of modern and 70’s style building with a military look and air of brutalist architecture. The older tech feels grounded, but at the same time these environments need to look like they can stand up to the presence of dinosaurs and other saurian monstrosities.
Closing Remarks - Paradym
Now that you’ve had a chance to absorb all of this information from our team, we have the distinct pleasure of being able to leave you all with this.
We will be implementing a public roadmap/checklist onto our new website so that you can see what is In Progress, In Testing, and finally “Complete” for the update.
This process will remain in place until we exit Early Access and will give you guys a level of transparency into our actions and work that we’ve never had in the past. We hope to have this implemented into the new website in the coming weeks in a way that is easy for everyone involved to parse and manage.
Thanks for taking the time to read the first of many dev blogs from us and I look forward to next few months!