• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Unity3D client?

You would like Unity3D client?

  • Yes

    Votes: 57 93.4%
  • Nope

    Votes: 4 6.6%

  • Total voters
    61
  • Poll closed .
@Fenrisus Do you have plan to do items/sprite dat or map editor tools with unity in future?
Yes, that will be a part of TibiaUC tools. Also there is another POI.

That POI is a Tibia 11+ after battle eye implementation. CipSoft latest versions of client is not very usefull for OT. Plus there is a some kind of problems with BE for "private servers". Well, packets can be reversed and my client will be able to convert Tibia 11+ dat & lzma atlases into his own format, and also you may edit them with those tools. I.e. we can move with those client with updates from CipSoft as before BE and Tibia 11. Just in that case we will use a TibiaUC client for that instead of CipSoft or OTC.
 
Hello guys, long time no see. Well, let's explain what i've done.

It's really sporadic development, cuz i am do that alone, and it's depends on my free time. Saw old screens before? And progress? Now foget about all of that, and watch on this!

Some times ago, @edubart mentioned a waifu as algorithm for increase and re-draw(using neuro algorithms) sprite-size. By users requests, i've implement those algorithm into client as an optional graphics feature.

For example 64x64 sprites!
CuLLnpW.png

nahUmXb.png
That is an optional thing.

Another notable thing - from 7.6 to 10.99 versions, you are able to convert your sprites into Texture Atlases as Tibia 11+ do that. Ah and yep, fully 7.6-10.99 supported.

I just put it there. Just a Login UI example

Current project state: 80% done.
no less, no more, i just need to code UI windows, and project will be fully done. For example, i have already coded minimap code, UI Framework code (ofc), or for example - "items in containers" or inventory things, chat and other UI elements. I just need assemble them all. Just for example, for minimap is a add "minimap widget" to minimap window with buttons, or for market, paste market data from server reader snippet to UIWindow, code filters and categories + add a few buttons.

I.e. summary, TibiaUC (Tibia Unity Client) is fully done in code, just lack of user interface. Major code snippets for UI (Market, Minimap, Chat, Trade, Container, Inventory windows, Battle-list and etc.) is done too, but currently not implemented, just working snippets. Well, i just need to find time for finish the UI and completely done! Also, i am thinking about OTUI format implementation for that. That will be nice thing for users who are familiar with OTClient, and code a custom UI elements will be easy as hell.

Thanks for reading this "dev.blog" post.
Best Regards.



@Fenrisus
I would like to know about the performance, could you please compare your engine with ot client, so I could know the difference. I'm very excited about it.
 
You know what I think, amazing and waiting like crazy for this :D you know where to find me if you need any support with anything @Fenrisus !
 
Just a little screens from Editing tool:

WRvlcyA.png

mljVBeq.png
(Just a part, i did the algorithms and code, but need link them up to WinForms elements, that is a bit time-costly and boring task).

Those tool, is specially designed for accure few things, you may call this "upcoming features":
1. Tibia.Dat and Spr file readers.
2. Load Tibia.spr, Tibia.dat, Items.otb into one application, and do all things on one tool
3. Converter into tibia native formats and TibiaUC client format (Texture Atlases).
For example, i am using texture atlas compression via DXT, and output file from Tibia 10.98 for sprites has those size:
pqqfSDs.png

Instead of ~150mb bulk Tibia.spr.
4. Integrated MapEditor on those tool. All editing things should be in one application. You just loading everything in one tool and operate them.
Also, you may do the changes at real-time without re-compile assets and re-open map and etc like in case of RME. The key of success - shared structures.
5. Waifu algorithm, Atlas converting tools and other useful things are here.
6. Sublime-like project settings and editor for Lua Scripts.
82OTjSY.png
7. No more Dat & Sprite editor, Map Editor Items Editor, WTFTHIS Editor, YetAnotherEditor bundle for development your game. Just download one tool and do everything with that. That the point.

But mainly, i am focused on finish client first ;) Those tool - is an secondary objective after client will be done.
 
Last edited:
Great job, looking forward to start using this client for my custom server! This is the new revolution for the open-tibia world.
 
Motion Blur, Post-processing, sprites quality with stock, not touched tibia files (just converted)
zkmrcVN.png
Stable fps, no fps drops. Generally.

Well, let's go explain more about FPS and how this will works.

As you know, OTClient has a fps issues, and drops FPS from 800 to 0-20, and that is a bad thing. But literally, game like Tibia dont need a over90000 FPS generally, because that is sprites! Not a 30k polygonal models or HD content with alot of animations. (I mean any outfit for example does not have a 50 animations right?)

I am using an "ancient" technology in my client, called "Interlocked fps". They are permanently locked at 60fps. And no way to drop them to unplayable value. Interlocked FPS that is not just V-Sync, that limits framerate. Those thing reallocate unused resources and keep good perfomance things.

Just a example, of 25FPS only game! Did you see any laggz here? And that is OpenGL 1.o legacy.
(MuOnline 2003 year, they never change their drawcode from 2003 to nowadays, and it still uses OpenGL 1.0).
FPS counter at top-left of the screen.

On my client i am using 60 fps lock. (a little overheading) For Tibia-like game that is enough, because you will no see the difference between 60fps and 2000 fps on nVidia 1090 just because Tibia does not have a such quality content at all. We simple "draw twice" (30fps is enough, but i am do that twice). In that case, as we dont draw a similar frames 740+ times we are using less resources, and as point - we got a nice perfomance with nice looking game.
 
Looks awesome! I wonder is there any date when it will get released. To be honest i would like to start code :p
 
@Fenrisus
Will this client have packages management, so the modules stay hidden?

we need to stop thinking about tibia and start to think it as a full engine 2d, or else we will be limited to some stuff
 
we need to stop thinking about tibia and start to think it as a full engine

Just for example, that is my own game ^_^

ROvK2ry.jpg

tgvzPnx.jpg

pcSt8Sv.jpg

Will this client have packages management, so the modules stay hidden?
Yes that is. Also your modules will be covered. Game Architecture designed with modular things at startup.

As for note, only just one little thing: Some libraries from that client will be propietary. Lets explain:
Here is used payed & licensed software. Due to those software license things, i cant share those source code (for example NGUI),
some parts is used for my games (as on example above). But those libraries - is low level libraries. You dont need to change them. Everything tibia - related is opensource.
Just for example, some snapshot from tile rendering code:

Code:
public void Draw(Position dest, float scaleFactor, int drawFlags, LightView lightView)
        {
            if (_alreadyDrawed) return;
            _alreadyDrawed = true;

            _mDrawElevation = 0;

            var _maxZ = 0;

            for (var i = 0; i < MThings.Count; i++)
            {
                var thing = MThings[i];
                if (!thing.IsGround() && !thing.IsGroundBorder() && !thing.IsOnBottom())
                    continue;

                if (thing.IsGround() ||
                    thing.IsGroundBorder() ||
                    thing.IsOnBottom())
                {
                    var pos = new Vector3(dest.X - (_mDrawElevation * 0.031f), dest.Y + (_mDrawElevation * 0.031f), dest.Z);

                    // FIRST: ground, border, onBottom
                    //SpriteBatch & DrawSprite - API functions from propietary lib.
                    // You dont actually need to know how them communicate with Unity3D
                    // and draw sprite or even change them.
                    SpriteBatch.DrawSprite(thing, pos, drawFlags + i)
                    _maxZ = Mathf.Max(_maxZ, thing.Order );
                }

For example, CryEngine, or Unity3D does not have a direct access to renderer too, but peoples do the games on it! =) In our case, SpriteBatch.DrawSprite contains alot of Unity3D code and hacks. just one those function has near 50 lines of code due to Unity3D API itself. But for more understandable things, i will provide just single function, and everything you should know - those function draw your sprite at the screen with defined drawFlags. And dunno for what do anyone needs to change internal, low-level draw functions itself... Same thing as trying to change DirectX SDK or Glew/SDL C99 libraries itself. (for what?!).

Just use them and enjoy! ;)
 
Last edited:
@Fenrisus the unity game client looks amazing.
I'm looking forward to the beta-test. I can't wait to get my hands on this puppy to take it out for a spin. :cool:
Your personal game looks quite cool as well, the detail is stunning. Did you design the ships yourself? If so, massive props to you sir.

Keep it up, and I'll keep checking in.

Kjeld
 
Back
Top