Development update #7

To be honest, I didn’t think we’d be able to pull together a dev blog this week. People have been pretty much doing more of the same since last week so I didn’t really think there’d be much to tell you about. But here we are!

Personally I’ve been working with a lot of admin related stuff this week. Most noteworthy is that I signed a contract to get one more programmer on the team. We will work with a contractor that will stay with us at least for a few months, up until the summer. This will help us get more features built faster, which is great. I have also signed a contract with our composer to get a few more songs composed under the close collaboration with Carl. We have been getting a lot of positive comments regarding the music and we really want to double down on creating an atmospheric and immersive soundtrack.

Here is a new take on the highest tiered unit from Loth, a unit called the “legion”. Which one do you prefer?

The art team, which includes both our Technical Artist (Patrik) and our Art Director (Anders) along with several talented freelancers, is still hammering away at the battle grid. Getting the overall look and feel of the battle is super important to us. It should be immersive and moody, but still readable and encourage strategic decision making. I’m optimistic about us being able to reach that goal!

We are pretty much happy with Doneria, Rana and Loth, but still trying out variations for Arleon. Which one do you like best?

Another big part of the battle, besides the characters and environment, is the UI and UX. David has been focusing on the user experience, trying to make the game understandable to the player. Niklas has been implementing all the different states we have designed for the battle. As an example, one of the states is when you choose to inspect an enemy or friendly troop. What should you see when that happens and what information does the player need to know? Things such as special buffs, range, health, stats, etc. Another state is when you open the spellbook - which affects things like how and when should we use outlines on the characters, icons, and cursors.

At the same time, Carl has been doing his best to come up with varied and interesting battle grids that will challenge the players. He has also been working with our composer to create more music (I recently heard a new Loth-themed song, it sure was dark and moody!).

We are trying to find a visually distinct style for Donerian architecture. One early idea was to combine onion domes with medieval german style timber framing. Do you like it?

Finally, we’ve got a lot of opinions regarding the redesign of our Necromancer troop. We have read all the comments (I hope!) and are thinking of doing a new design based on the feedback. So keep it coming! The team is very thankful for all the ideas, love and constructive criticism we get!


Please note that this is a devblog. Features and graphics mentioned or displayed above may or may not change during the development process.

Development update #6

That’s right. Another week has passed and here we are. Devblog time!

Our designer Carl has had fun redesigning our essence and magic system. We've reworked many of the units in the game which has affected the line-ups in the factions. So using the essence system, he’s been mapping out the availability for different spells for the different factions. At the same time, he has had to make sure that the flavor of the spells also suits the flavor of the faction. Furthermore, he’s been working on the redesign of the buildings, build orders and how that impacts the spells.

Felix has been doing concept art for Doneria buildings, these two are just a small example of all the new structures that he has tried out designs for.

Felix has been doing concept art for Doneria buildings, these two are just a small example of all the new structures that he has tried out designs for.

The UI work for Christian has still been focused on the Battle, and specifically on the player’s interaction with their own troops, enemy troops, and spells. The first pass of all UI-elements has been clarifying all states and high-level UX to be able to work out how the UI should help and guide the player. A basic principle in this work is to only use UI when we really need it and when we can’t communicate the states or guide the player in any other way.

New cursors for combat. Can you guess what they all represent?

New cursors for combat. Can you guess what they all represent?

Meanwhile, Niklas has been working on the high-ground mechanics. He has implemented damage buffs & nerfs, which relates to where your troops stand on the combat grid. This is a fairly new feature that we hope will bring more depth and tactical choices to combat. Niklas has also started working on how to inspect troops on the battlefield for strategically important information.

A pretty clear example of how our character designe has changed over time: To the left you have our original take of the necromancer and to the right the updated version.

A pretty clear example of how our character designe has changed over time: To the left you have our original take of the necromancer and to the right the updated version.

Finally, the art team has mostly focused on the look and feel of the hexagons on the battlefield. Same stuff as last week you say? Why yes. Tricky stuff mixing 3D and pixel art and getting it just right. But it’ll be worth it, for sure!

Until next week, take care!


Please note that this is a devblog. Features and graphics mentioned or displayed above may or may not change during the development process.

Development update #5

We’re back! After a well deserved holiday, the team has returned in full force. We are still 100% focused on combat and things are shaping up nicely. 

Perhaps you are wondering why we haven’t shared any work in progress screenshots of the combat? The answer is simple, we want to reveal a full screenshot of the combat when we have got it just right. So, you’ll have to be patient for a little longer. But, since we didn’t share any updates in the last few weeks we thought it would be nice to give you something extra this Friday. Please enjoy a sneak peek preview of one of our combat themes!

Regarding the team efforts, Patrik and Anders have been focusing on the visual appearance of the combat grid (it’s tricky to get just the right look when you combine pixel art with 3D-elements!). Niklas has been working on setting up the battle pathfinder, which is based on the same Unity job system we have in adventure mode. The battle have been using an old system for quite a while and we need the new to be able to implement upcoming features.

This is one of the visual looks we are trying out for the spells (which might be named something else than spells actually, currently we are thinking of “invocations”). Feel free to share your thoughts about them!

This is one of the visual looks we are trying out for the spells (which might be named something else than spells actually, currently we are thinking of “invocations”). Feel free to share your thoughts about them!

Christian have been revisiting the faction banners as well as looking at the visual language of spells and continuing with battle and pre-battle UI. At the same time, Kordian has continued his overhaul of the combat sprites. And finally, Carl has been working on finding good names for the Essences, which are the ingredients you need to cast spells.

See you next week!


Please note that this is a devblog. Features and graphics mentioned or displayed above may or may not change during the development process.

Development update #4

It’s Friday yet again, seems like it happens every week! Here’s another report from the development trenches. Since we are still very much in battle focus a lot of tasks have been kind of similar to the week before this. But fear not beloved reader. I have finally been able to get our UI designer to tell us a bit more about what he is working on. So, less dev talk and more UI-talk this week.

But let’s start with the programmers. Niklas has been working on refactoring the spell system in battle to make it work with the new UI. He’s been working closely with David to tie everything together. There’s still quite a bit left, but progressing steadily! David, on the other hand, has been refactoring code for the battle effects to be able to work with different types of spell targeting.

We got a lot of praise for the lavaborn concept art. Here is our pixel version ready for ingame action!

We got a lot of praise for the lavaborn concept art. Here is our pixel version ready for ingame action!

If we talk to the artists we have had some interesting progress with the redesign of units and more assets for the battle screen. Anders has been focusing on new animations for our redesigned squire troop along with a freelancer called José. He has also produced battle scene assets and worked closely with Kordian on the troops. Kordian has been modifying the Donerian Hellbreath character to our new design guidelines. He has also worked on two new characters, the Lavaborn and a necromancer.

Before and after re-design, the Hellbreath is a high tier unit for Doneria. It has recently undergone our visual overhaul process. Notice how the smoke disappeared from the torch. It’ll be implemented with a shader instead of old school hand drawn p…

Before and after re-design, the Hellbreath is a high tier unit for Doneria. It has recently undergone our visual overhaul process. Notice how the smoke disappeared from the torch. It’ll be implemented with a shader instead of old school hand drawn pixels. Pretty neat!

Now, regarding the UI! Just as the rest of the team Christian has been focusing on Battle for the last few weeks. Battle presents additional and different challenges for the user interface compared to Adventure. So we have had to test our theories for the visual language, iterate and update – and bring this to the rest of the game.

Songs of Conquest is a classic adventure game and we want you to feel that you are in control of your Wielders and in command of your troops. The purpose of the user interface is to support that and at the same time let the player focus on the beautiful and compelling art in the game world. We strive for a robust and tactile interface, that at the same time focuses on the most important aspects of the game. The job of the user interface is to support the gameplay and guide the player experience – and we feel that in a strategy game, the visual and interactive “marriage“ of the user interface and the rest of the game world is extra important.

We have tried many different textures and shapes for the unit queue UI elements. Do you think we are on the right path?

We have tried many different textures and shapes for the unit queue UI elements. Do you think we are on the right path?

Our user interface has changed with the art and art style of the game. We started with a pixel styled user interface, with pixel fonts to display all lore and data. When we reworked and updated the art style to 2.5D we also took a big leap in the user interface to introduce “non-pixel” art and fonts in glorious 4K. The visual language and style of the game just got a whole new range of tools to be able to express its tone. For a visual designer, this is not always a blessing but you need to set up your own restrictions so that the result will be as concentrated and clear as possible. And in our case, we also now have a non-pixel layer over a striking and distinct pixel art style – and sometimes those layers need to interact.

Finally, if you missed our trip down memory lane earlier this week, check out this work in progress screenshots. It paints a very telling story about just how much the game has changed over the years!


Please note that this is a devblog. Features and graphics mentioned or displayed above may or may not change during the development process.

Development update #3

Oh my, it’s been a week already? Seems like this dev blog thing is sticking. All comments and feedback is really encouraging to read. So, if you take the time to read, like and comment, it means a lot to the whole team :)

Our focus is still on the battle and it will continue to be so for a while. Up until late January, to be more precise, since we are working on some key features to present for our publisher. And let me tell you, the battle is really shaping up to look and play awesome. Still a lot of things to work on, but my spying eye has caught glimpses of amazing stuff to come. We aren’t ready to show off battle just yet, but rest assured we are working hard to be able to show it as soon as possible.

Concept art for the lavaborn musician troop. All armies need a moral boosting musician, right?

Concept art for the lavaborn musician troop. All armies need a moral boosting musician, right?

So, as I have mentioned before, we are reworking the visual design and lore around some factions, to make their battle line-up more varied and striking. Kordian, one of our pixel artists have, among other things, been trying out new poses and characters for Doneria. The new pixel art isn’t finalized, but deliberately kept on a sketchy level, so we can discuss internally and with our stakeholders before we finalize the troops.

The new troop design aims for a greater variation in size and more dynamic poses. Notice how the human piper have been changed to a tiny Lavaborn musician. Do you think we are on the right path?

The new troop design aims for a greater variation in size and more dynamic poses. Notice how the human piper have been changed to a tiny Lavaborn musician. Do you think we are on the right path?

Patrik has been working on creating a random battle background generator. It will generate backgrounds that fit the environment where the battle was initiated. So if you decide to attack an enemy that's standing on a grassy tile surrounded by forest, the battle background will reflect that surrounding. It's still a work in progress, but it's coming along nicely!

Niklas have been finishing up the conversion to our new sound system using Wwise. He has also been working on our level editor so we can create battle maps with the 2.5D style as well as adventure maps, using the same editor. Currently, he is enabling more types of targets in battle regarding our spells.

And speaking of spells, David has been working on a pretty sweet fireball (YEAH!) while also learning the new-ish shader graph in Unity.

And finally, we shared a little sneak peek video of our level editor recently. If you missed it, here it is:

We are looking forward to see what you will create with the editor! Do you have ideas for maps already? Feel free to share them with us :)

We are looking forward to see what you will create with the editor! Do you have ideas for maps already? Feel free to share them with us :)


Please note that this is a devblog. Features and graphics mentioned or displayed above may or may not change during the development process.

Development update #2

What’s been going on at the office lately? It’s still all about the battle! Well, almost all about the battle at least. We are working on getting certain features up and running, that will add interesting mechanics to our battle mode. At the same time, we are working hard on redefining the visuals to really match the look of adventure mode.

I, for one, have also had the privilege of reviewing our backlog (list of features/art/content to implement) and discussed with our publisher how we can work smart and reach our goals faster. I have also agreed on terms with a new programmer who will join our team next year. It is a person with a solid background in the games industry and we are really looking forward to getting that extra hand on deck to get the game done in a shorter time. Furthermore, I have been working on a contract for a new sound designer who recently worked on Mutant: Year Zero. Who doesn’t love a good contract, right?

Suitingly, Niklas has been working on converting our project to use a sound system called Wwise. We have been using our own sound system until now, aptly named LavaSound. That system is based on the Unity audio with memory handling in mind, but we want to be able to control and change the sounds outside the Unity project.

Wwise enables that, and it will be a good fit for our project and for our new sound designer. While we are on the topic of systems and plugins: David has been working on integrating More Mountains MMFeedbacks (a plugin for Unity) into our game to juice it up a lot more.

We are trying to get a better visual variatio by adding non-human troops to Doneria. Feel free to leave a comment below if you have feedback!

We are trying to get a better visual variatio by adding non-human troops to Doneria. Feel free to leave a comment below if you have feedback!

At the same time, Carl has been looking over how and if we can implement events in our game and also working on abilities and traits for the different units. And finally, our concept artist Felix have worked on concepts for two new Doneria units. The Lavaborn serve as mercenaries in the Donerian army and consist of a smaller weaker unit and a tanky high tier unit.

Finally, if you missed it, we recently shared our main theme. Take a listen and let us know what you think!


Please note that this is a devblog, features and graphics mentioned or displayed above may or may not change during the development process.

Development update

This week most of our team has been working with battle. Everything from troop design (and re-design) to battle UI and how the actual battle grid will look.

Personally, I’ve been working on a lot of admin stuff (some think I’m the CEO, but actually I’m not, I just act like I’m the CEO). I’ve also written some more story background for our Wielders, their motives and how they fit into our world. Part of this work is to help prepare for our portrait artist in creating amazing wielder portraits. Another aspect is of course that we really want the world to be believable and coherent, in its own weird way. Both myself and Carl, who writes most of the lore, read a lot of fantasy and have a strong opinion against creating a generic fantasy world with standard cliches. Carl has been delving even deeper into the game world this week and refined lore, campaign, and units.

An example of the Tooltip system in action.

An example of the Tooltip system in action.

In the meantime, David, along with Niklas, has been working on changing our camera rig to use Unity’s Cinemachine for making easier camera transitions. Furthermore, Niklas has been working with the backlog and structuring it for our next internal milestone. He’s also been working on getting the tooltips (when you hover over objects) working with our new 4K-ready designs.

Behold the evolution of our humble Squire troop. It is safe to say that the design of our characters have undergone a lot of scrutiny and evaluation. Which one do you prefer?

Behold the evolution of our humble Squire troop. It is safe to say that the design of our characters have undergone a lot of scrutiny and evaluation. Which one do you prefer?

And finally Anders, along with the rest of the art team, has been working on textures for the battlefield, redesigning our factions visual appearance to better fit their identity and redesigning our battle sprites (pixel pushing!).

We are exploring some new ideas for a large Rana troop. These are some initial concepts and so far we are leaning more towards a giant insect rather than a giant mammal.

We are exploring some new ideas for a large Rana troop. These are some initial concepts and so far we are leaning more towards a giant insect rather than a giant mammal.


Please note that this is a devblog, features and graphics mentioned or displayed above may or may not change during the development process.

The shader approach to billboarding

People have asked me about the technology behind the 2.5D billboarded look of our game, so I thought it would be time to write a blogpost about it.

A screenshot from our launch trailer

A screenshot from our launch trailer

In the beginning…

It became apparent very early in our 2.5D development that billboarding could quickly become a huge performance cost. We wanted thousands of animated billboards forming mountain ranges, forests and plains of grass. In our very first approaches we tried to use regular sprites with attached monobehaviors updating their rotation. This worked pretty well as long as our camera angle did not change. But as you’ve probably seen in our launch trailer, we wanted to be able to zoom in and out while changing the rotation of our camera.

Enter Cartography…

It was clear we needed to change our approach, and Cartography was born. Cartography is what we ended up calling the system in charge of generating and drawing our landscapes (ground, cliffs, trees, mountains, grass, water, etc). We also implemented Unity’s new Lightweight Rendering Pipeline to get even more performance out of our rendering.

To solve the billboarding problem we turned to shader approximations. We simply move the vertices of our “sprites” in a way that looks very much like they’re being rotated. From a first look this works very good, but we quickly ran into the problem of translating between world space and object space as we wanted the base of our objects to always remain still and attached to the ground. To solve this issue we ended up baking that information into the y-component of the second uv-channel of our billboard “sprites” (or meshes).

A screenshot from our editor drawing the pre-baked y-component of the second uv-channel. Notice how the base of the objects are completely black, and how objects gets brighter and brighter the taller they are. The whiter the part of the object is th…

A screenshot from our editor drawing the pre-baked y-component of the second uv-channel. Notice how the base of the objects are completely black, and how objects gets brighter and brighter the taller they are. The whiter the part of the object is the more it gets displaced, and blackness indicates the part of the mesh we don’t displace at all.

Baking this information was actually very simple as shown in the method below.

void BillboardFixer(Mesh mesh)
{
    var vertices = mesh.vertices;
    var uvs = new List<Vector3>(mesh.vertexCount);
    for (var i = 0; i < mesh.vertexCount; ++i)
    {
        var uv = vertices[i];
        uvs.Add(uv);
    }
    mesh.SetUVs(1, uvs);
}

With this baked information we then created a sub-graph for calculating the desired vertex position. Besides the baked second uv information we also needed to know the rotation of the camera. This is calculated and passed to our shaders using this simple line of code.

Shader.SetGlobalVector(
  "_Billboard",
  Camera.main.transform.rotation.eulerAngles * (Mathf.PI / 180f)
);
The sub-graph in charge of displacing the vertices to simulate billboarding

The sub-graph in charge of displacing the vertices to simulate billboarding

This in turn is fed into our shaders like in the very simple example below. Note that we also had to reconstruct our normals in order to get the lighting correct. We opted for a static reconstruction as this turned out to look better than a dynamic one. But this would definitely depend on the use-case.

A “final” shader using the billboarding sub-graph

A “final” shader using the billboarding sub-graph

Conclusion

This solution is pretty much tailored to our very specific use case, as billboards only rotate in the X-axis. A limitation that suits our game very well. This approach also batch well, and is generally very fast yet accurate enough for our needs. With that said, I should mention that we've opted for not using this approach when it comes to characters and buildings (anything dynamic really) as any performance gains are quickly outweighed by the complexity of the system.

Do you want to be a Game Dev?

19550972_10155274095935218_469930516_n.jpg

A lot of people would like to work in the gaming industry so I thought I’d share my story of how I got into it the ‘biz’. Hopefully, it might help someone to achieve the same thing.

A little more than a year ago one of my close friends, Magnus Alm, broached the subject of working on a game with him. I was surprised but, of course, interested in talking more about his idea for a game.

It was in the early morning, the sun was coming up and we were in an old rowboat in the middle of a lake. The weak morning sunshine made the mists drifting slowly over the waters look like playful sprites as we talked about creating a game with a rich fantasy setting. It all sounded very exciting but I didn’t really think it would come to anything. But dreams are free and talking about something never hurts.


I’ve worked in the entertainment industry since 2002 and if I’ve learned anything it is that you should leap at every opportunity that excites you. The idea of working with games really felt exciting to me! So even though I had no real training or experience in the gaming industry, I knew that the skills that I possess both through my other work and through my own passion for games would be enough to do the job that Magnus described.

More than half a year later we were hanging out, having a good ol’ Swedish fika. Out of the blue, he asked me if I was still interested in the job. Without a moment's hesitation, I said that of course I was. About a month after that, we were on our way to creating an amazing game.

A game designer doesn't always bring his chainmail to the office. But sometimes.

A game designer doesn't always bring his chainmail to the office. But sometimes.

So by now I bet you’re thinking that I had some crazy luck, and I have to agree with you about that. This is not the way you’re supposed to get into an industry. Pretty darn lucky! But then again what is luck? Luck is what happens when preparation meets opportunity.  And this is my first point about how to get into any job you want: if you don’t prime yourself for the opportunity then when it arrives you can’t seize it.

I had had a hunch that Magnus might ask me again, so I did a few key things to prime myself if the opportunity came knocking. I turned down full time work and instead worked as a freelancer, making less money than I otherwise would. After talking to Magnus the first time I made sure to go over my relevant skills and tried to learn more about what I didn’t know so I could accept the job with confidence. And lastly: if I hadn’t been so enthusiastic about being involved in the game in the first place, Magnus might not have asked me again when the time came around.

This is something that I’ve learned from the years I worked as an actor. Actors always need to be ready to show their skills at an audition or cold read, sometimes with as little as ten minutes prep time. They must have those skills polished and ready to deliver. If you’re prepared for opportunity, you’ll find that you’ll be more lucky. In other words, you make your own luck.

Stepping into a new biz

pexels-photo-616849.jpeg

I used to work as an actor and musical performer and also as a director, teacher and scriptwriter. Before that I spent over two years in the army, dealing mainly with troop tactics to a maximum of company level. These skills, along with with my passion for and knowledge of games, is what I brought to the table as I began my work. I still felt a gnawing feeling of doubt though. Would that be enough?
 
With great support from the rest of the team, I soon warmed up to my assignments. I found that working on a game is very similar to working on a feature script or a play, and that I could apply the same thinking and discipline to it. The creativity and work process that I have developed from working with improvisation theatre are also very helpful (I’ll probably write some posts about creativity later on.) Without a good team giving me relevant feedback so that I knew what worked and what didn’t, I might’ve struggled to trust that those skills were applicable to this job. 

So what’s my second point? Trust that you’re good enough for the job that you have and trust work processes that you’ve used before. Change when you really need to change but remember to bring the strengths from your former career and life with you into your new job. After all, that is why you decided to go into the industry, start your own studio, or were offered that job to start out with.

Making the passion work

building-joy-planning-plans.jpg

I want to work with games because I love games. I loved spending hours grinding for my first Onyxia raid back in vanilla WoW, I loved taking over the world as the Sioux in Europa Universalis 4, and there’s a certain satisfaction when I get outsmarted in a long game of Twilight Imperium 3 when a friend wins with a sneaky victory push.

When I play a new game I immediately try to ‘break’ it. I find the most cheesy and overpowered strategy to beat it on the hardest difficulty. If it’s in a board game I sometimes point it out to everyone so we can implement a house rule, but other times I just use that design flaw to win. Yeah, I’m that guy. 
 
I read and write on forums and debate with other people like me about what would happen if a half point of something would be altered, or about why giving flying to a specific unit would make the whole game imbalanced. It’s these very things about me that Magnus picked up on and why he knew that I would fit in the team for the strategy game we’re working on.

Whatever passion fuels your love of games is the passion that you need to bring into the creation of games. That’s where you already have skills you might not have thought about and usually other skills that support it. Sometimes you stare so much at a title or a career goal that you forget to figure out what that job entails.

As an example, I know a lot of people that want to work as a screen actor. But most of them don’t enjoy reading hundreds of pages of script every month and constantly getting rejected for work they’ve put their heart and soul into. And if they do land a part, they might not enjoy working really long hours. But that’s the job, so it might not be ideal for them even if the title sounds appealing.

So you want to work in gaming, but with what exactly? Where will your passion help you? Let go of the titles and actually think about where your skills and your passion will help you. My third point is to look at what you can and want to do for hours on end, and not what fancy title you want to introduce yourself with at a party. Let your passion fuel you and your work.

Final words

color-pencil-drawing-coloring-colored-pencils-159825.jpeg

When I started writing this blog post it wasn’t really about what others could learn from me stepping into the biz. But as I was writing I noticed that that’s where it was going, so I went with it. I was just going to write about what it felt like coming into the gaming industry. I can sum that up real quick: I feel very fortunate to have the job I do,and I’m slowly learning to say “Game Designer” when someone asks me what I work with.
 
ps.
I don’t miss the questions that always popped up when I used to answer “Actor”: “No, I’m not famous. Yes, you might have seen me in something. No, I won’t win an Oscar one day.” But one day someone named Oscar might play a game I made. Even better.