New beginning

Hi folks!
Well that’s it, my last day at CA was this week and my work on Total war Attila is done. Now i’m…. jobless. And moving out of UK this week end, so quite busy times.
If there’s any Total war players out here, i hope you guys will enjoy Attila!
I havnt been inactive on Ymir either. I have completed the first phase of adapting the game to this newer version of the engine i’m using, and i have now started to upgrade my UI system to reach a more professional standard. No more flicking UI, new main menu, support for windowed mode, full-screen mode, different resolutions, resizing the game window in real-time… all the classics. Its actually quite time consuming create a system that can support all, and quite ungrateful as for the players this is just ‘normal’ stuff they won’t even pay attention to consciously.

Main menu WIP  Main menu WIP

I also have to (re)organise the whole program ‘infrastructure’ : like where and how the program files will be setup. The game will now have an installer.

Beeing nearly done with the UI upgrade, my next step is to redo a proper editor ( the one i used before was a really messy and temporary thing ). This editor will be now directly part of the main game client, and eventually accessible to players.
Its first function will be to create and edit worldmaps that can then be used to setup games.
I also plan to make a ” single player ” tutorial, and the ability to launch and setup games directly from the client main menu ( automatically launching a server in the background when starting a game ).
Basically this “infrastructure” thing is everything that goes around the game itself, and its quite a big job and an important one to keep building the game on a good base.

It will also imply steam, which brings me to my first objective of green-lighting the game. Only then i can start testing the game within steam itself, which would be its final environment. I’ll need this to deal with accounts, server lists, uploading new builds and updates and all. When you get green lighted, you get this special account with access to functions to interact with the steam servers, and you get to upload the game there and generate keys to test the game as final players would. I can’t preview all this until i’m actually green lighted… So this greenlight will determine a lot of things on how i organize the way Ymir works, which is why i’ll need this as soon as possible.

News!

I have pretty important news to announce :
As some of the people following Ymir for a while sur have noticed, things have been going pretty slowly for the last years. Having a dayjob doesnt leave much time and energy to do other big projects.
For the last 3 years i’ve been working at The Creative Assembly in UK. It’s been a really cool and rich experience to work in a big studio, and i learned a lot of things there. But i’ve decided to resign from my current position this December, and starting next year i’ll be working full time on Ymir.
I’ve been saving funds for a while now, enough to hold more or less a year. There will be no turning back now, and it will either suceed of fail when i run out of funds and have to look for another regular job.
Alpyro, who’s work you’ve seen recently, should be joining me in this next year, and helping me out especially for graphics stuff, allowing me to focus more on code and design.
My first objective will probably be to greenlight the game, and then possibly trying crowdfunding.
But more than that, my main objective is to complete within a year a playable version of the game with enough of gameplay mechanics implemented to make it a valid game that can already be enjoyable.

Now , with the moving out of UK, the christmas holidays and finding a new place to stay, it will probably take a few months before i’m actually fully working on Ymir.
This is on of the biggest risks i ever had to take, but i’m convinced i’m not the only one who’s like to play a real multiplayer city building game, and that it can be worth it. Anyway i couldnt have finished it at this rate, and i knew i had to try this. Otherwise that’s a thing i would have wondered all my life ” what if i had ? ” . So i guess i’ll go find out!

Upgrading to a newer version of the engine

I decided to try upgrading Ymir to a newer version of the engine i use, Game maker.
This will take some time, as it causes numerous problems due to the changes made to the engine.

Bad :
– I lose all the extensions i used : they’re now either obsolete or incompatible.
– No more multithreading… It was one of the main reasons i didnt upgrade before, as this experimental dll was abandonned and doesn’t work in more recent versions.
– It will take an unknown amount of work to fix all the issues due to the upgrade. likely weeks.

Good :
– The engine is way more optimized, however i can only measure the difference when all the work is done… will it compensate the loss of multi threading ?
– Allows a potential multiplatform release
– The code is more secured
– But most of all, this new version has some built in functions to support steam integration, which is something i’ll definitely need.

What’s been done in the last few months (v0.600)

So after a few months the – internal – version 0.600 is complete, with the new networking system operationnal and the old code mostly updated, at last! In the last few weeks, i’ve started building new features again.

Also, i started the implementation of Server-side region pathfinding. What does it mean ? It means the server is now getting ” eyes ” , beeing able to see a region. It’s first aplication is to allow the server to place buildings properly by itself, especially the automatic spawning of slum houses for extra populations ( in the last test game it, the messy temporary solution created exploits that are now fixed ).
Region's pathgridHere on the screen you can see a debug view of one pathgrid of a region. This is what the server ‘sees’. Here its showing invalid zones in purple (buildings and cliffs) and free spaces where to place a building in green.

Later on, this will allow buildings, walls and terrain to have an effect on battles ( currently they’re all ignored, and its as if armies were fighting in empty plains ).
The next step on that matter is to implement server-side WORLDMAP pathfinding. It will allow automatic movement of troops ( armies coming back to home after a mission or an attack, AI controlled barbarians moving around and attacking players etc.. )

 

Also here is a screen of the diplomatic menu.

diplomatic menu

Its composed of a text editor and an optional treaty proposal. Treaty options will in the end include things like right of passage, payment of tributes and taxes, setting up manual trade routes, allowing trade with cities ( the ability of a player to take trading offers from the regions of the other player ), transfering territories, becoming allied and vassals etc…
Also as you can see on each side of the treaty, there is ‘breaking closes’ specific to the 2 members of the treaty.  These will apply to the relevant member that breaks the treaty, and it includes 3 options: a gold penalty (some sort of security deposit) sent to the other member, the automatic declaration of war by the other member and an honor penalty. Honor will be a non gameplay stat only used used to inform other players of your reputation.
Signing a treaty with a high honor engagment basically means you ” swear to god i’ll respect it ” while a low one will mean more something like ” lets see how this agreement goes and it will last as long as i’m in the mood”.
This assymetrical system will allow a player negociating peace with a defeated oponent to force him to accept vassality and tributes , binding him with lots of penalties while having none on his side to remaining free to do as he wish.

Treaties will also cost some administration points, depending on the nature and amount of terms they contain.
They will also include a possible limited duration after which they become obsolete without triggering any breaking close.

 


v0.600 changelog

Engine
– Global networking upgrade & reorganisation to standardize and optimize data transfers and database management.
– Data subscription system to maintain data automatically synced with server
– New pathfinding system and coordinates to optimize framerate and allow later support of terrain elevation and walls.
– Multi threaded pathfinding system to optimize framerate
– Cleaned up login process
– Implemented Server side region pathfinding, allowing the server to place buildings in regions automatically.

Gameplay
– Events system
– Early diplomatic and contact menu

UI
– New text editor

Audio
– Added dynamic music player and transitions
– Fixed bug in ambiant city sounds
– Added building sound effects

Graphism
– Added oldpigs and piglet citizens.
– Now 2 visual levels of citizens ( total of 4×2 citizens )
– Added building animations

Debug
– Solved crashs when loading region.
– Solved workers not properly leaving a bulding set to sleep
– Solved bug where population could be duplicated when destroying slums
– Solved bug where slums would fail spawning

About time to give some news!

Lots of things have been going on in the last months, though most of it remains invisible, and i havnt much eye candy to show.

First, i completed the 3rd big update on the networking engine of Ymir.
This is a verylong task and although invisible , its critical for the game development. This new system is now complete, but now i need to review and update the whole code to use it instead of the old one, which will also take ages.
This new level 3 network provides big improvements :
– More stable
– Centralizing all networking operations in only a few functions, making debugging and maintenance easier as well as implementing new features
– Improved bandwidth usage with optimized and compressed data transfers
– A data subscription and patch system allows to stay updated on a piece of data without having to redownload it all. This will limit bandwidth usage further more and improve loading tiems. What it means is that for exemple you wont have to re-download the whole building list of your city every time you go back to the worldmap, because your game will stay synced with the server even when you leave the region. This auto update system beeing centralized , it works for all the types of data, replacing a case-by-case basis system where each data had its own set of functions.

Secondly, though its still WIP , i have started implementing the events system, mailing system , treaties and trade routes.
Treaties include many options like trade agreements, tributes, right of passage, alliances… They also include automatic breaking closes that can be specified when creating the treaty : for instance, making one of the players pay a gold penalty in case he breaks the treaty, or triggering war automatically. Treaties are proposed via the mailing system, and become effective once agreed by the 2 players.
Screenshots of the UI will come when i’m done repairing the game by updating it to the level 3 network.
Setting up this whole new set of features is also a big task, and because they’re all related with each other, they can’t be done one by one. There is still a lot of work to be done before its ready.

And last but not least, i am aware that at this current workrate, this game won’t be finised until 2030… Though its too soon to say anything right now, i’m now seriously planning to change this situation and considering my options. If it does happen, the game should be playable within a year after it becomes effective.