What a wonderful experience to meet you at “Lyon eSport” ! The whole team joins me in thanking you for your presence, for your questions and for your support. After a long day spent discussing and testing, you created more than two hundred different dwarves !
We didn’t expect so many participants and we didn’t even plan to present the studio (before presenting the game) to uninitiated visitors who didn’t know us neither from ZeratoR nor from Internet’s depths. But it was very interesting for us to chat with people outside the community of Unexpected.
And that was only the beginning of one of the busiest months !
Overall, this month was dedicated to game design, test and improvement. After “Lyon eSport”, we had a good idea of the team’s dynamic and of what we were able to produce. Better than that, we welcomed a new recruit, Sarah, who joined the 3D team as a student for 6 months.
We got back to game design and gameplay on dWARf. We set aside the dwarf editor, fully aesthetic functionality, to focus on setting up a new prototype whose code name is Héphaïstos. Actually, after a first prototype on one of dWARf’s game arena (code Dionysos), we realised we prefered become aware as fast as possible of the diversity of the game arenas.
Everyone then met to review Hephaïstos’ game-design. It was pleasant to restart on game-design, level-design and scoring. It’s certainly my favourite part of the general process. At Unexpected, each one’s opinion is taken into account and meetings are a nice moment of sharing.
Working on a prototype’s prerequisites is a bit tricky. Most of the time, at the end of a meeting, I’m very satisfied with what was decided, yet I know everything is going to change to fit our gameplay criteria. The game will be too basic, too simple, too short or too hard to handle. During the tests, we realised that some movements didn’t accurately transpose what we wanted, that the camera wasn’t placed optimally and that the gameplay was insipid. The latters make our job an experience every time more incredible : questioning ourselves, testing, modifying, discussing.
On the process side, I finally had the opportunity to refine plannings and prepare more specific documents. Working back on the game gave me a better understanding of what the team expected of me (the dwarf’s editor was documented for a long time, and our schedule stopping at Lyon eSport, I didn’t have to work on these production’s aspects for a while). There were a lot of adjustments to make as Héphaïstos wasn’t the arena we were supposed to begin with.
For the communication (I’m sorry I speak about so many different things, I’m a multi-task person), Audrey made the second stream of Unexpected Twitch channel pour présenter ses recherches autour du concept de Hephaïstos, elle vous montrera très certainement le résultat dans la suite du blog ;).
On this, I leave the sequel to the wonderful people who make up Unexpected’s production team. They will probably have more “visual” things to show you ! Don’t forget to tell us what you appreciated in these blogs by commenting here or on social networks !
For Lyon eSport, we planned to have a personalised t-shirt so the team could be recognisablee.
– I took advantage of the opportunity to work on a fit to be seen logo, even if we didn’t plan to work on it so early. The logo’s silhouette -the letter’s cutting- had to be legible on a few centimeters. It had to work or adapt on a white background as on a black one. Liam quickly had the idea to create a symmetry between the “d” and the “f”, as if the same shape was reworked.
– Concerning our alter-ego dwarves, I gathered every member of the team desires to get me started. T-shirts had to be sent to the printer one week before, so I quickly turned to an illustrative style, with contour lines that imitated a slightly dry brush and a messy, watercolour colourisation. (Kyle T Webster’s brush).
I also had a few details to finish : the mail sending interface and a maximum of eyes for the editor. After selecting, we realised that it would be interesting to choose a pair of eyes AND their emotions… stay tuned about this !
And finally, Lyon eSport ! I already attended eSport competitions, but I didn’t really know what to expect from this one ; what place would have the studio within such event. But plenty of you approached us, which was amazing, and we adjusted our speech little by little; it was a good exercise !
It was a very good team experience (the car ride under the rain listening to the good songs of our teenage years, seeing PSG’s lineup playing, attending our first cosplay contest) : ex-ce-llentt !
Since then, I started working on Héphaïstos’ concept art ! It was the occasion to share a little about my work on Unexpected’s stream. You made my-very-first-stream-ever a very pleasant moment ! I now know that the creation phase is not the perfect part to stream though. Thinking/deciding does not go with answering your questions. I have to organise myself better to offer you a funnier step to watch live !
oncerning creation, gameplay and some visual choices led to bloody constraints. It was therefore more logical to draw objects directly in the perspective under which they would be observed. But this process didn’t convince me totally, maybe I will realise key elements from more frontal angles afterwards.
Whatever it be, I didn’t find any interest imitating the eponymous dwarf forges, full of things. I had a very different approach of Héphaïstos than of the Tavern, rather focused on objects : I wanted to favour atmosphere, contrasts, coherency. I’ve spent more time searching for references, achieving researches (environment, minerals, typical architectures, colour keys…), and trying my hand on textures to be impregnated by this universe which I slightly explored hitherto.
I have to admit that when I think “coherency”, I think of “Beechwood Bunny Tales” >
(or the research work that leads to the “Lord of the Rings” screen that bonus editions or magazines learnt me by 2001, but that’s less class !). The idea : finding peculiar shapes in the architecture and in the objects of the environment (beveled edges, juxtapositions of sharp edges, aesthetic edge for me).
For “Lyon Esport”, we decided to set aside some features of dWARf’s editor. But once the event was over, we had to work on various problems : optimisation of maps and customisation of colours.
Actually, we want the players to be able to choose the colour of certain of their dwarf’s clothes and accessories. On the other hand, for optimisation matters, it is necessary to load only one map of texture per object, whatever its color, and not one per colour, which would be too heavy. Moreover, only a small part of the object will change colour, and not the whole object. We finally decided to put each “tintable” information in the same alpha channel of the image. In other words, it was the same image as the texture itself, but it included in addition a “mask” determining the colour changing area.
On top of this, we wanted dwarves’ hairiness (eyebrows, mustaches, beards, hair) to be dyed in any color according to the player’s choice. But some assets contained elements that should not take the color of the hair : for example, knots in the hair or jewelry in the beard. Also, these elements could potentially be dyeable too, and the alpha channel of the image was already dedicated to this information. We wanted to avoid loading a second map for the same element, because, for the same reasons, it mustn’t “cost” too much during the loading, and the game/editor must run smoothly.
We finally decided to use the colour vertex. Therefore, the vertices (=points) of the 3D model itself (a beard, for example) will contain the information “dyeable” or “non-dyeable”.
So on some objects (for example, a haircut with ribbons), the player can change independently from each other the colour of the hair and of the ribbons, while only one texture map is loaded in the editor.
We could then go on the creation of our first game scenery : Hephaïstos project.
Audrey made a lot of environment researches, and finally gave me an overall concept of the scenery, detailed enough for me to reproduce it in three dimensions. So I moved to the block-out phase : creating a 3D scenery, very schematically to come to a judgment on the balance of sizes and scales between objects, characters, and distances.
From this scenery, we could start testing the gameplay to decide on the exact positioning and the elements’ sizing. This made it possible to realise if there were “empty” zones, if the game was legible and not overloaded. It also made it possible to determine which assets to delete/move, or whether to add new ones. We then made several games in different sceneriesto define which one worked best.
Once this testing phase was done, we could begin a more detailed and final modeling of the scenery elements.
The preparation period for “Lyon eSport” and therefore of intense work on the dwarf editor being over, it was time to work on the second arena prototype, whose code name, as said above, is Hephaïstos.
After fixing the game mechanics required for this prototype, I started working on its production. As usual, we started very simply to test basic mechanics.
Basic functions were here : taking ingredients, going from one workshop to another to make the object and finally selling it at the counter. We could start the internal test phases. After a few games, we already thought we had to change the controls and add obstacles in the centre of the scenery so players bumped into each other more often.
Simultaneously, graphic designers added a first “graphic prototype” of the game to come to a judgment on the balance of the sizes and the visible scenery. After the first tests, we already had to adjust the angle and the distance of the camera, as well as the position of the UI to better fit in the scenery :
There is still a lot of work balancing and some improvements are possible, but we’re having fun, and it’s very encouraging !
In a prototype production (especially in an indie studio), a gameplay programmer’s work is also to extrapolate some game design elements, because at that stage, nothing is defined with certainty and once made, some gameplay mechanics highlight issues.
It’s therefore important to have skills in game design to offer solutions in my prototypes without having to ask systematically other members of the team when I realise there is an issue. Of course, this issue must be discussed, but it won’t get in the way of the prototype production and a solution base will already exist.
The prototyping phase is one of the most interesting development phases in my opinion. It requires a wide variety of skills and needs a lot of reflection, making it probably the phase giving the most experience.
On the multiplayer and network interactions side, March was filled with progress.
In a first place, I started developing Unexpected notifications service, and then linked this service to all other services having a real-time interaction with the user. That way, the account management and messaging services have been linked to this service.
On dWARf side, big progress was made concerning the user data management system, as well as the setup of the same notifications service than previously, but on dWARf side (both notifications services being independent from each other. One is here for every account/user interaction, the other for every interaction between dWARf/user).
As said previously, there have been major advances in services. dWARf data management service went from the “Heavy Dev” phase to “Tests” (i.e. from the development phase to the testing phase), as well as the load testing phase.
Two new services have been finished during this month : the friends chat service and the notifications service. A new one has been started : dWARf game servers management service (it will create dynamically the games and the dWARf game services while dividing the load up between our servers).
Thanks to the implementation of services that finally had real-time attractions (such as the notifications service and the message sending service, for example), I could finally verify that the inter-service communication worked correctly. As part of this inter-service communication, we used intelligent load distribution and inter-service messaging services. The purpose being to make possible a fast synchronisation of our services while guaranteeing access to constant data.
Thereby, all the services can connect to an “inter-services messaging system” which allows them to send orders to each other. This system makes it possible to centralise (and therefore better monitor) the messages. You can see this service as a post office : you post letters with an addressee in particular (here, a whole service OR only one member of the services) and you are sure that the addressee will receive it. If a problem occurs with the message sending, the “post-office” job is to ensure that the service receives its message as soon as it is possible to send it.
During this month, we also had a discussion about the optimisation system of dWARf’s game client. We looked at several possibilities and finally decided that it would be wise to start a study with the community so that we could have information about our community’s most used computers.
This is how “Specs Retriever” project was born.
The goal of this little project was simple : to analyse the computers of volunteers who accepted to use it so we could receive the information about their computer hardware configuration.
It’s a system that sent us totally anonymous information and that will eventually allow us to define accurately the optimisation needs for dWARf and Unexpected future projects. Thank you again to the volunteers who participated in this data collection which will be very useful in the future !
To conclude, it was a quite busy month on the network and multiplayer part. Lots of new things saw the light of the day. More and more advances are made, and it’s very positive! I personally had an excellent time among you at Lyon eSport and I think I can speak on behalf of the team : thank you for coming to Lyon eSport, it was a pleasure to meet you, and it’s always a pleasure to have feedback concerning our work 🙂 !