ZED Online - a fork of the Zod Engine

Post here about the Z remake "Zed Online" by DaMarkov

Moderator: Brad

APC
Lieutenant
Lieutenant
Posts: 74
Joined: 2008-11-07, 16:18
Location: SLOVAKIA

Re: ZED Online - a fork of the Zod Engine

Post by APC » 2019-03-20, 10:04

Astonishing analysis around map editor BallWin.
Do you want to add new tiles types to the game? I though your aim is only to make higher resolution of existing tiles-types.
BallWin
General
General
Posts: 252
Joined: 2006-10-24, 02:24
Location: Russia
Contact:

Re: ZED Online - a fork of the Zod Engine

Post by BallWin » 2019-03-20, 20:21

APC wrote:
2019-03-20, 10:04
Astonishing analysis around map editor BallWin.
Do you want to add new tiles types to the game? I though your aim is only to make higher resolution of existing tiles-types.
Increasing resolution is one of the goals. To do this, the existing set of tiles must be expanded. At low resolution, a small set is sufficient to create a non-uniform surface. The human eye will notice a repetition of the picture much more often on the map with a higher resolution. Therefore, if you increase the resolution 2 times and the tiles with different versions of the same surface will also need 2 times more. In order to use new tiles (and old ones too) you need a good tool - level editor + various utilities (sprite editor for example). The editor needs this information about the interaction of the tiles. To play all this is not necessary. Ready-made maps are loaded into the game. :cheers:
APC
Lieutenant
Lieutenant
Posts: 74
Joined: 2008-11-07, 16:18
Location: SLOVAKIA

Re: ZED Online - a fork of the Zod Engine

Post by APC » 2019-03-22, 21:19

BallWin wrote:
2019-03-20, 20:21
The human eye will notice a repetition of the picture much more often on the map with a higher resolution. Therefore, if you increase the resolution 2 times and the tiles with different versions of the same surface will also need 2 times more.
Isn't it more simple solution to preserve the original tileset with its interactions between tiles, and add to Zod Engine only small routine which will every surface tile draw randomly with 2 different graphics pictures??
Everything would be preserved backward compatible without serious changes and your goal of higher resolution and double the number of graphic textures would be reached.
BallWin
General
General
Posts: 252
Joined: 2006-10-24, 02:24
Location: Russia
Contact:

Re: ZED Online - a fork of the Zod Engine

Post by BallWin » 2019-03-23, 18:21

APC wrote:
2019-03-22, 21:19
Isn't it more simple solution to preserve the original tileset with its interactions between tiles, and add to Zod Engine only small routine which will every surface tile draw randomly with 2 different graphics pictures??
Everything would be preserved backward compatible without serious changes and your goal of higher resolution and double the number of graphic textures would be reached.
Most likely you mean procedural textures.This method can not be applied as you said. The problem is that we have to fully control the result to be able to correctly set the tile to the right place on the level map. They can be used in the production of many variants of any tile. Procedural textures are formed using random number algorithms. And the generated tile most likely will not dock with other tiles without seam without additional processing. It is much easier to generate a number of options and choose the appropriate set.
APC
Lieutenant
Lieutenant
Posts: 74
Joined: 2008-11-07, 16:18
Location: SLOVAKIA

Re: ZED Online - a fork of the Zod Engine

Post by APC » 2019-03-25, 18:51

Thank you for explanation.
About the structure of Zod Engine map and about the C++ code I know 90% less as you, so I am not able to estimate the most optimal solution to increase the resolution of the game.

Three months since my discovery of existence Zod Engine I consider it always magnificent playable and balanced game. Freaknigh made amazing piece of work and it's pity it is not advertised more and maybe some old school players don't know about existence of it.
User avatar
SteelGhost
Sergeant
Sergeant
Posts: 54
Joined: 2017-09-19, 00:28
Are you a spam bot?: No

Re: ZED Online - a fork of the Zod Engine

Post by SteelGhost » 2019-03-30, 15:42

Today on Z DOS, had probably the strangest and most brilliant end-game scenario so far

During the final assault on the CPU fort, a Sniper managed to shoot out the Howitzer user, and ran to take it, narrowly avoiding a shot from another Howitzer
Image
He then used it to blow up the enemy Howitzer
Image
Now for the interesting part
Both Howitzers were just a pixel out of range, so they wouldn't auto-attack each other
Image
However, I could still manually order my Howitzer to fire, and it actually did so
and as soon as my Howitzer fired, the enemy one reacted and returned fire
Image
...and that was the last enemy in the game
Image
[SteelGhost - Z DOS fan]

Z Wiki - Contribute now!
DaMarkov
Major
Major
Posts: 180
Joined: 2018-12-20, 16:17
Are you a spam bot?: No
Contact:

Re: ZED Online - a fork of the Zod Engine

Post by DaMarkov » 2019-03-31, 02:27

APC wrote:
2019-03-16, 22:44
Bug where tank again crosses water. Desert 2vs2 MP map.

https://drive.google.com/open?id=1mujYv ... nTeLVD4EzH
Thanks for the bug report. I have marked the tiles as "water tiles".
This resulted in another bug I have to fix somehow ...

@BallWin Thanks! Great to have all that data. Currently, I am feeling like I work at 10 construction sites at once.
Not really time to improve the map editor, unfortunately.

I have a problem with the video decoder as well. Videos like "E_DLOST1" have at the beginning this blue "Incoming message" scene.
I believe the framerate for that part of the video is different, because these videos don't synchronize with the audio (using your player).
Do you know a way to fix that?

In the last week I did a lot of technical things:
- I rewrote the low level network code, so that single player matches can now be handled without having a network connection to the loopback interface.
This reduced the latency a bit.
- I wrote code for the 3 volcano objects in levels 5 to 8 and the larva object seen in level 6 and 7. Code and graphics with animation is complete.
- I reconverted all 35 single player levels (just to have the volcano objects in the correct positions). However, since I switched the file format, so I still have a bunch of bugs.
- The server now sends the checksum of the map. The client loads the map locally. If the client does not have the map, the server sends the map.
- I put a bunch of assets file in one file (as APC suggested) to speed up loading times.
- Completed all graphics for the light and heavy tank (all palettes)

and some other server site stuff. When the game is again in a playable state (I hope soon) I will release the next version. Sorry, for the delay.
I will cut back on features I wanted in the next version and just make things stable that are currently implemented.
BallWin
General
General
Posts: 252
Joined: 2006-10-24, 02:24
Location: Russia
Contact:

Re: ZED Online - a fork of the Zod Engine

Post by BallWin » 2019-03-31, 11:44

SteelGhost wrote:
2019-03-30, 15:42
Today on Z DOS, had probably the strangest and most brilliant end-game scenario so far
Now for the interesting part
Both Howitzers were just a pixel out of range, so they wouldn't auto-attack each other
ImageImage
It's a great thing. It is very fast (9::59). In the screenshot on the left howitzer covered with dirt?
BallWin
General
General
Posts: 252
Joined: 2006-10-24, 02:24
Location: Russia
Contact:

Re: ZED Online - a fork of the Zod Engine

Post by BallWin » 2019-03-31, 12:21

DaMarkov wrote:
2019-03-31, 02:27
@BallWin Thanks! Great to have all that data. Currently, I am feeling like I work at 10 construction sites at once.
Not really time to improve the map editor, unfortunately.
I'm working on a level editor now. For successful implementation it is required to obtain the adjacency matrixes for tiles. Eight directions for each of 480 tiles.
This is the only way to create brushes with auto-selection of the desired tile in the direction taking into account all adjacent tiles. This is not an easy task. All initial data for the solution have already been obtained. Here you can download data for all planets in any of three convenient formats (JSON - convenient for humans, YML - version of json and XML - easy to program):
https://github.com/BallWin/Qt_ZodEngine ... alizeTiles
This is laid out in case my decision is delayed due to lack of time.
I suggest you focus on other tasks. Let me solve the MapEditor problems for now.
DaMarkov wrote:
2019-03-31, 02:27
I have a problem with the video decoder as well. Videos like "E_DLOST1" have at the beginning this blue "Incoming message" scene.
I believe the framerate for that part of the video is different, because these videos don't synchronize with the audio (using your player).
Do you know a way to fix that?
OK. I'll watch.
DaMarkov wrote:
2019-03-31, 02:27
- I reconverted all 35 single player levels (just to have the volcano objects in the correct positions). However, since I switched the file format, so I still have a bunch of bugs.
How different is the new map format? Could you make a chart of the class of the map? Perhaps I should consider these changes when designing new classes. Otherwise, there is a possibility that qzodengine will have another new map format that is incompatible with ZodOnline. :lol:
DaMarkov
Major
Major
Posts: 180
Joined: 2018-12-20, 16:17
Are you a spam bot?: No
Contact:

Re: ZED Online - a fork of the Zod Engine

Post by DaMarkov » 2019-04-01, 08:03

BallWin wrote:
2019-03-31, 12:21
I'm working on a level editor now. For successful implementation it is required to obtain the adjacency matrixes for tiles. Eight directions for each of 480 tiles.
This is the only way to create brushes with auto-selection of the desired tile in the direction taking into account all adjacent tiles. This is not an easy task. All initial data for the solution have already been obtained. Here you can download data for all planets in any of three convenient formats (JSON - convenient for humans, YML - version of json and XML - easy to program):
https://github.com/BallWin/Qt_ZodEngine ... alizeTiles
This is laid out in case my decision is delayed due to lack of time.
I suggest you focus on other tasks. Let me solve the MapEditor problems for now.
I agree. I will do other things for now.
BallWin wrote:
2019-03-31, 12:21
DaMarkov wrote:
2019-03-31, 02:27
- I reconverted all 35 single player levels (just to have the volcano objects in the correct positions). However, since I switched the file format, so I still have a bunch of bugs.
How different is the new map format? Could you make a chart of the class of the map? Perhaps I should consider these changes when designing new classes. Otherwise, there is a possibility that qzodengine will have another new map format that is incompatible with ZodOnline. :lol:
I started writing down the file format here: https://sourceforge.net/p/zedonline/wik ... le_format/
but it's not complete yet. I changed some minor things, so what is written on page is actually not correct anymore.
Most insignificant changes to the zod format are checksum, digital signatures, map can contain a Lua script and assets (like new graphics)
And most importantly, it has a version number, so if you would like to add another data segment, we could call that version 2 to preserve comparability.

For the sake of comparability I should also integrate my converter in the map editor at some point. So people can open Z DOS, Z 95, ZOD and ZED maps.
BallWin
General
General
Posts: 252
Joined: 2006-10-24, 02:24
Location: Russia
Contact:

Re: ZED Online - a fork of the Zod Engine

Post by BallWin » 2019-04-01, 21:48

DaMarkov wrote:
2019-04-01, 08:03
I started writing down the file format here: https://sourceforge.net/p/zedonline/wik ... le_format/
but it's not complete yet. I changed some minor things, so what is written on page is actually not correct anymore.
Most insignificant changes to the zod format are checksum, digital signatures, map can contain a Lua script and assets (like new graphics)
And most importantly, it has a version number, so if you would like to add another data segment, we could call that version 2 to preserve comparability.
Ok. There is no modifier map in the map data section. As far as I understand there is a map of tile indexes, information about zones and objects. In my opinion, there should be a matrix of map modifiers, as in the original game.
Recently you discussed with APC a bug with moving on water. And you were talking about "water" tiles... I wondered why it was possible at all. In the original, this can't happen. There are 2 matrix in the MAP file: 1) a matrix of indices of the tiles to put the picture 2) immediately followed by a matrix of indices with modifiers to quickly obtain information about the surface.
I have written a small code for visualization of the matrix of modifiers of the original game. Fully all the pictures on all levels can be found here
https://github.com/BallWin/Qt_ZodEngine ... bin/Editor in the folder modify_maps.
It looks like this:
Image Image

(Click on the image to enlarge it)
On the left is the original map of modifiers. Different values are colored in different colors. On the right is an overlay of the modifier map on the level map, so you can understand where they were used (and why).
That is, information on the effects and penalties for the passage of the tiles are obtained from the map modifiers. In this scheme, the error can be made only in the level editor. And it will be immediately visible visually.
DaMarkov
Major
Major
Posts: 180
Joined: 2018-12-20, 16:17
Are you a spam bot?: No
Contact:

Re: ZED Online - a fork of the Zod Engine

Post by DaMarkov » 2019-04-02, 13:02

Very nice! So the original game handles the boundaries differently then the ZOD engine!

The reason for the bug in level 2 is as follows: This is what it looks like:

Image

In the Zod engine these 4 tiles are marked as "not water tiles", so tanks can drive on them.
I changed that (in the next version), so that they are "water tiles". Then tanks can't drive there, but the water splash animation is being shown which is also wrong.
Basically, the problem is that the Zod engine has no category for "boundary between land and water".

I will try to use your tool to get the correct attributes for all tiles.

So, question (to everyone) what is the speed of units on the boundary?
For example a tank has a speed value if is't on the road and one if it's not on the road.
Robots have a speed value for when it's on land and one when swimming.

How fast are tanks on the boundary between road/dirt and robots between land/water?

If we don't know this exactly I suggest just to take the average of the two values for the boundary.

And I also suggest to change the tile info structure in zod engine from:

Code: Select all

struct palette_tile_info
{
	bool is_water;
	bool is_passable;
	bool is_usable;
	bool is_road;
	bool is_effect;
	bool is_water_effect; //does it happen randomly within a water tile?
	unsigned short next_tile_in_effect;
	bool takes_tank_tracks;
	short crater_type;
	
	//items for the map editor
	bool is_starter_tile;
};
to

Code: Select all

struct palette_tile_info_new
{
	bool is_water;
	bool is_passable;
	bool is_usable;
	bool is_road;
	bool is_effect;
	bool is_boundary_land_water;
	bool is_boundary_road_dirt;
	bool is_water_effect; //does it happen randomly within a water tile?
	unsigned short next_tile_in_effect;
	bool takes_tank_tracks;
	short crater_type;
	
	//items for the map editor
	bool is_starter_tile;
};
BallWin
General
General
Posts: 252
Joined: 2006-10-24, 02:24
Location: Russia
Contact:

Re: ZED Online - a fork of the Zod Engine

Post by BallWin » 2019-04-02, 21:28

DaMarkov wrote:
2019-04-02, 13:02
In the Zod engine these 4 tiles are marked as "not water tiles", so tanks can drive on them.
I changed that (in the next version), so that they are "water tiles". Then tanks can't drive there, but the water splash animation is being shown which is also wrong.
Basically, the problem is that the Zod engine has no category for "boundary between land and water".
I will try to use your tool to get the correct attributes for all tiles.
Yeah,i suppose it has.
Just needed a picture to use from the folder modify_maps.
ImageImage
The "blue" modifier includes the business logic: 1) the robots let's go 2) the vehicle stopped 3) to display the animation "water splash» . Together, these modifiers form a blue coastline. I.e. the property is not the penalty for the passage (although you can) but ban the passage of the tile for the units of a certain type.
Images from the stat_vizualize folder are used to identify links between groups of tiles - search for superblocks. For example, you can see that the entire level 12 is formed by a single superblock. It just keeps repeating itself. This unit is easy to reproduce and paint the surface automatically.
Image
Note the constant sequence of marked tiles.
DaMarkov
Major
Major
Posts: 180
Joined: 2018-12-20, 16:17
Are you a spam bot?: No
Contact:

Re: ZED Online - a fork of the Zod Engine

Post by DaMarkov » 2019-04-19, 10:57

Since there wasn't a post in two weeks: I was busy for quite a few days, so couldn't work on the project.
BallWin's decoder has been worked into Zed Online, however we are having some audio/video desync problems with some cutscenes, so I decided to rollback and use the old video player for the next version. This also delays the Linux port unfortunately :-/
APC wrote:
2019-01-07, 17:53
From your picture the pink is the most distinguishable, but I wouln't like to command pink heavy tank.
The color switcher is more or less complete now: https://youtu.be/WpR_xWqn6MA

Also the low level network code has been rewritten to allow single player games without the need of a network connection.

I have now converted all maps (ZDOS single, multiplayer and Z95 single, multiplayer).

Upload and download of maps is working.
Maps containing script code is working. Documentation and a proper environment for the compiler is still lacking.
A custom URL scheme for Zed has been added.
OpenGL renderer has been overhauled to look more like the SDL renderer.

There is still a lot of testing needed since all maps have changed (although they should behave exactly as before).
DaMarkov
Major
Major
Posts: 180
Joined: 2018-12-20, 16:17
Are you a spam bot?: No
Contact:

Re: ZED Online - a fork of the Zod Engine

Post by DaMarkov » 2019-04-28, 20:15

Long story short, I messed up the updater in 0.1.4 :-(
To patch from 0.1.4 to 0.1.5 download this file: http://zedonline.sourceforge.io/0.1.4%20to%200.1.5.zip
and unzip it in your installation folder (replace all old files).
I will write a post on what's new shortly.

EDIT:

Here is the complete changelog: https://sourceforge.net/p/zedonline/wiki/changelog/

As usual after installation the cache will be rebuild this take 1 or 2 minutes during that time the game might be very unresponsive.

This release has a lot of new things and hence makes things more unstable. The next release will focus more on stability again.

Biggest changes:

- All maps have been converted again. New map items like volcanoes, larva see level 5 for example.
- Your singleplayer best times will be uploaded. Compare your times with others. Let see who will be the best Z player!
- In "Online Play" new button "Transfer maps" allows you to download new maps from a gateway and upload your own map creations.
- Lua scripting support for maps. Use the map editor to edit Lua script code
- Windows explorer integration. Double click to play a map, right click -> edit to open in map editor.
- Custom URL scheme for Z. I will make another post and explain that in detail.
- Overhaul of the OpenGL renderer
- Audio files from the director's cut edition (English)
Post Reply