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