Recent Topics

Reezy(DevonteTheOne) - Fanta FT. BroskiTheFiend, JB NICE by Chakrai
[March 19, 2017, 05:20:41 AM]


DragonBall Z - MajinBoo SpeedArt (Manual) March 2017 by MasterKame
[March 16, 2017, 09:23:46 AM]


Dragon Ball Super by Tofu
[March 16, 2017, 07:12:16 AM]


¡Qué tal estáis guerreros Z! by Tofu
[March 13, 2017, 03:18:49 AM]


100 SUBSCRIBER SPECIAL (MUST SEE) by Chakrai
[March 12, 2017, 06:19:32 AM]

View Desktop Site View Mobile Site

* ShoutBox!

Refresh History
  • Keep it Clean! No Advertising!
  • Today at 02:12:00 AM
    kees
  • Today at 02:11:55 AM
    peter
  • Today at 02:11:42 AM
    jan
  • March 22, 2017, 10:25:59 AM
    this is universe 7 mate, not 6
  • March 22, 2017, 09:13:21 AM
    in a parallel universe it is.... ::)
  • March 22, 2017, 09:06:41 AM
    because thats obviously dutch :P
  • March 22, 2017, 02:00:01 AM
    is it [link]
  • March 22, 2017, 01:55:16 AM
    i doubt you can guess my name, because my name is so damn dutch you wont guess it
  • March 22, 2017, 01:54:53 AM
    nah im not a jackson
  • March 21, 2017, 12:21:50 PM
    Jackson. You look like a Jackson
  • March 21, 2017, 10:05:23 AM
    What's my name
  • March 20, 2017, 09:15:10 PM
    [link]
  • March 20, 2017, 07:10:18 PM
    theoretically i can make meth now xD
  • March 20, 2017, 07:08:40 PM
    we do loads of stuff in chem
  • March 20, 2017, 04:45:38 PM
    Oh, right. Wasn't even chem... I never did a thing in chemistry lab then
  • March 20, 2017, 10:34:36 AM
    i once dissected a fish
  • March 20, 2017, 10:34:14 AM
    isnt that more of a biology thing?
  • March 20, 2017, 07:26:58 AM
    Well... more like just cutting around and not having a clue what was going on
  • March 20, 2017, 07:26:34 AM
    At least you guys did something in chemistry class. I only remember opening a cow heart.
  • March 20, 2017, 04:10:03 AM
    there was a gaping hole in it
  • March 20, 2017, 04:09:53 AM
    once i burnt the bottom of an aluminium can because i had the torch set on a high temperature
  • March 20, 2017, 04:07:05 AM
    that's why the safety in chem class is always put on top
  • March 19, 2017, 09:06:11 PM
    but no worries. My face is alright. Just had some red spots on my face because of the burn thx to that liquid sh*t.
  • March 19, 2017, 09:04:13 PM
    woah...that was hard man [link]
  • March 19, 2017, 01:06:08 PM
    Also, yeah. I read something about that, but didn't get too much into the news so I don't know more than that

Topic: Development Diary #2  (Read 25293 times)

0 Members and 1 Guest are viewing this topic.

Development Diary #2
« on: July 21, 2014, 01:19:06 PM »

    Offline Pigeon

  • Developer
  • None
  • Honor: 5 / 0
  • Posts: 5
    • View Profile

Greetings all,

Here is the much requested Development Diary #2. This development diary is going to be fairly technical as we've been getting some technical questions about our core server and other development related topics on the forum and from the AMA. Hopefully it's not too boring to anyone.

At a high level, the server has two main parts: network and simulation (of course, there are others like the database, but let's ignore that for now).

For the network side, There is the network thread pool which handles all the connections and inputs from players, the simulation is the core of the game play. This is where the world, and all the game objects (players, npcs, and everything) are, as well as all the game logic.

The simulation consists of many subsystems, In our initial list, we have spec'd out more than 40 subsystems. From simple ones like inventory or mail, to more complex and heavy ones like collision detection. And I'm almost positive that there will be more as we go.

All these subsystems communicate with each other via events. Each type of events can be subscribed to. In our last sneak peek video where you see a simple combat, it was basically a test of a combat event flow among a number of subsystems.

Here is a quick step through on how different subsystems worked together in that example:
  • When the player starts an attack on a mob, it sends an event which the combat manager has subscribed for.
  • The combat manager starts the combat logic between the two objects. Each round of attacks it will fire off events that get sent back to the player like damages and LP/Lifepoints updates.
  • When the mob dies, an event is fired off again to indicate that the player has killed the mob.
  • The player manager that has subscribed to this event can award the player with experience point, while the drop manager that has suscribed to the same event can award the player a drop of money or, like, 7 dragon balls ;)
Similarly, the quest manager can subscribe to this event to update the player's quest progress (if killing this mob is part of a quest).

Having subsystems not only make things more manageable, it also makes it possible to have them running in parallel where we see fit. It also allows us to move a subsystem to a different process or a different host, which makes the server more scalable. For instance, the collision detection or the proximity manager might get overloaded as we get more and more players.

I'm not saying this design is perfect (and it definitely isn't), but this is what we've been working with. I'm sure our design will be broken, changed, and improved as we progress.

There are also things that we have implemented purely for development benefits. From simple things like auto login and auto character selection, to things like a special server mode which we can terminate the game server, make some code changes, recompile and restart, all that while the clients stay connected and without the need of restarting. Of course, some states of world are not preserved after a restart (not yet anyway since there is no point), but it does help a lot when testing various areas of the server.

This quick video demonstrates this:


The two players could see each other's movements, until the game server was stopped. Both clients stayed up without knowing what had happened. When the server was brought again, things were back to normal. You can also see how the npc's positions were resetted when the server was restarted, as their states were not preserved.

I'm also in the progress of writing up some test clients so we could do some early profiling and stress test, and I'll post a video of it when I get to it.

Apart from writing actual server code, we also need to do a lot of reverse engineering to see how the client work.

A lot of people think since now we all have the old client source code and libraries, it should be easy. Well, the old source code does help obviously. But the fact is a lot of the protocols, packet structures, data tables, etc have been changed. Some of them took us more time to work out.

Unsurprisingly, we have also found that even the TW client has a different build from the HK client in terms of protocols and packet structures, and they are incompatible with each other.

Meanwhile, the client will just crash if you send it just one byte (or bit) of incorrect data, and there is no easy way to debug without the source, assuming you don't count the assembler code as source ;) And since we are writing everything from scratch and not relying on any existing DBO/NTL's code, this makes the process a pretty long one.

To sum it up, our goal is certainly a big and an ambitious one, but we are happy with what we have done so far. And once again, thank you for the patience.

I would also like to say a few words about other DBO projects that's been going on. I personally think they are all great. And as a developer, there's nothing more exciting than seeing people taking interesting in programming. Different projects will have different directions and different ways of doing things, but ultimately we all share the same goal - bringing DBO back. I truly wish that we can all respect each other, respect each other's work, and respect the differences.

Well, I think that's all for now. I hope I can do more this kind of write up more often. If you have any questions, feel free to ask and I'll try my best to answer.


Thank you!
Pigeon.
« Last Edit: December 06, 2015, 02:49:00 PM by Luke[Dumke] »

Development Diary #2
« Reply #1 on: July 21, 2014, 01:25:56 PM »

    Offline Vroku

  • 7 Dragonballs
  • Honor: 35 / 5
  • Posts: 1,206
    • View Profile
    • Typocalypse
  • Aussie!
  • I am a: Super Saiyan
Awesome. Thanks DBOR.

Development Diary #2
« Reply #2 on: July 21, 2014, 01:30:52 PM »

    Offline Shinozaki

  • 3 Dragonballs
  • Honor: 7 / 0
  • Posts: 193
    • View Profile
  • The Myth is What Starts The Legend.
  • I am a: Swordsmaster
Pretty awesome.

Development Diary #2
« Reply #3 on: July 21, 2014, 01:33:42 PM »

    Offline Takaroku

  • Shenron
  • Honor: 66 / 5
  • Posts: 1,584
    • View Profile
    • RagingSoul Site
  • RagingSoul Leader
  • I am a: Human
Good job with the server so far, I hope you make much more excellent progress.
✮My Soul is Raging...Is Yours?✮
    
Sig Credit to xskysaix

Development Diary #2
« Reply #4 on: July 21, 2014, 01:45:22 PM »

    Offline Nia

  • Dragon King's Focus
  • Honor: 75 / 6
  • Posts: 2,891
    • View Profile
  • Two in harmony surpass one in perfection.
  • I am a: Kaioken Master
Keep it up. ^^


"I am the bone of my sword
 Steel is my body and fire is my blood
 I have created over a thousand blades
 Unknown to Death, Nor known to Life
 Have withstood pain to create many weapons
 Yet, those hands will never hold anything
 So as I pray, Unlimited Blade Works."

Development Diary #2
« Reply #5 on: July 21, 2014, 01:49:06 PM »

    Offline Plasma

  • 1 Dragonball
  • Honor: 1 / 0
  • Posts: 39
    • View Profile
  • Guild Master of Unified Rage
  • I am a: Poko Priest
Excellent work as usual DBOR team  ;D keep it up!
Unified Rage

Development Diary #2
« Reply #6 on: July 21, 2014, 01:51:25 PM »

    Offline Loaf

  • 1 Dragonball
  • Honor: 1 / 0
  • Posts: 41
    • View Profile
  • Just love bread like you love me
  • I am a: Crane Hermit
Wow :o...so much progress  ;D

Development Diary #2
« Reply #7 on: July 21, 2014, 01:54:47 PM »

    Offline Xeyon

  • 4 Dragonballs
  • Honor: 11 / 0
  • Posts: 328
    • View Profile
  • Turtle Hermit
  • I am a: Turtle Hermit
OMG a wild Pigeon appeared.

What should Xeyon do?

Xeyon says : "Thanks for the new development diary, keep the good work up ;)"
« Last Edit: July 21, 2014, 02:21:36 PM by Xeyon »
Check our Recruitment Thread and join the Typocalypse  Guild ;)

Development Diary #2
« Reply #8 on: July 21, 2014, 02:20:48 PM »
    • View Profile
Excellent work as usual DBOR team

Development Diary #2
« Reply #9 on: July 21, 2014, 02:30:01 PM »
    • View Profile
It'd be nice if we can more or less get like an estimate on a release date. But I'm glad the progress is going really well :3
I'm really hyped to start playing again.

Development Diary #2
« Reply #10 on: July 21, 2014, 03:03:21 PM »

    Offline Vroku

  • 7 Dragonballs
  • Honor: 35 / 5
  • Posts: 1,206
    • View Profile
    • Typocalypse
  • Aussie!
  • I am a: Super Saiyan
It'd be nice if we can more or less get like an estimate on a release date. But I'm glad the progress is going really well :3
I'm really hyped to start playing again.

No.......................

Development Diary #2
« Reply #11 on: July 21, 2014, 03:46:54 PM »

    Offline HanWS

  • 1 Dragonball
  • Honor: 0 / 0
  • Posts: 19
    • View Profile
  • Nameks op
Awesome.. thanks for trying to bring back dbo  :)

Development Diary #2
« Reply #12 on: July 21, 2014, 03:58:33 PM »
    • View Profile
Yay, update

Development Diary #2
« Reply #13 on: July 21, 2014, 04:25:06 PM »

    Offline NIC3

  • 2 Dragonballs
  • Honor: 1 / 0
  • Posts: 66
    • View Profile
  • I am a: Majin
NICE .
keep it up guys :P

Development Diary #2
« Reply #14 on: July 21, 2014, 07:01:08 PM »

    Offline Danny

  • 4 Dragonballs
  • Honor: 3 / 1
  • Posts: 484
    • View Profile
  • bang bang
  • I am a: Gun Maniac
It's nice to wake up, eat breakfast etc. launch forums and see another progress.
Good work team.

Development Diary #2
« Reply #15 on: July 21, 2014, 07:16:29 PM »

    Offline Mindless

  • 3 Dragonballs
  • Honor: 2 / 0
  • Posts: 160
    • View Profile
  • I am a: Kaioken Master
Quote
I would also like to say a few words about other DBO projects that's been going on. I personally think they are all great. And as a developer, there's nothing more exciting than seeing people taking interesting in programming. Different projects will have different directions and different ways of doing things, but ultimately we all share the same goal - bringing DBO back. I truly wish that we can all respect each other, respect each other's work, and respect the differences.

That's why I'll wait for DBOR.

Development Diary #2
« Reply #16 on: July 21, 2014, 07:21:10 PM »

    Offline MSnake124

  • 1 Dragonball
  • Honor: 0 / 0
  • Posts: 14
    • View Profile
  • DBO
  • I am a: Fighter
very nice can t wait when its release



keep it up
<iframe src="//giphy.com/embed/Vwd3ZqwLEqYdq" width="480" height="172" frameBorder="0" style="max-width: 100%" class="giphy-embed" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>

Development Diary #2
« Reply #17 on: July 21, 2014, 08:27:45 PM »
    • View Profile
Awesome! The game will be awesome upon it's release.

Development Diary #2
« Reply #18 on: July 21, 2014, 08:34:16 PM »

    Offline Mjolmir

  • None
  • Honor: 0 / 0
  • Posts: 2
    • View Profile
Impresionante el trabajo que estais haciendo segid asi muchos animos estoy impaciente por volver a jugar a este juegazo ojala que be pronto ;D
« Last Edit: July 21, 2014, 08:35:55 PM by Mjolmir »

Development Diary #2
« Reply #19 on: July 21, 2014, 08:36:59 PM »

    Offline MooseTwig

  • 1 Dragonball
  • Honor: 1 / 0
  • Posts: 44
    • View Profile
  • Dark Super Ultra Mega Alpha Turbo HD Remix Piccolo
  • I am a: Namekian
I'm glad we got a look at how the servers work, really Interesting stuff. Keep up the good work guys!

Development Diary #2
« Reply #20 on: July 21, 2014, 10:17:25 PM »
    • View Profile
Good work DBOR staff

Keep on going  :D

Development Diary #2
« Reply #21 on: July 21, 2014, 10:28:45 PM »
    • View Profile
    • 妖怪Youkais
  • Dê O Seu Melhor, E Seja O Melhor Que Puder Ser.
I would also like to say a few words about other DBO projects that's been going on. I personally think they are all great. And as a developer, there's nothing more exciting than seeing people taking interesting in programming. Different projects will have different directions and different ways of doing things, but ultimately we all share the same goal - bringing DBO back. I truly wish that we can all respect each other, respect each other's work, and respect the differences.
Pigeon.

Take my like pigeon o_o


Development Diary #2
« Reply #22 on: July 21, 2014, 10:36:52 PM »

    Offline Iceman

  • Oolong's Wish
  • Honor: 52 / 8
  • Posts: 2,049
    • View Profile
  • Emperor!
  • I am a: Shadow Knight
Nice Pigeon and with that yours OP Bird Logo, I know you will do great job xD

Development Diary #2
« Reply #23 on: July 21, 2014, 10:44:04 PM »

    Offline Luke[Dumke]

  • Administrator
  • Dragon King's Focus
  • Honor: 168 / 1
  • Posts: 2,988
    • View Profile
  • Project Leader
  • I am a: Great Namek
Nice Pigeon and with that yours OP Bird Logo, I know you will do great job xD

Nice touch, don't you think? xD
 I had it made, since i thought it would be a nice addition.
Project Leader for DBORevelations || Contact Email: Support@dborevelations.com

"We'd rather under-promise and over-deliver"

Development Diary #2
« Reply #24 on: July 21, 2014, 10:45:29 PM »

    Offline Iceman

  • Oolong's Wish
  • Honor: 52 / 8
  • Posts: 2,049
    • View Profile
  • Emperor!
  • I am a: Shadow Knight
Nice touch, don't you think? xD
 I had it made, since i thought it would be a nice addition.

Haha omg Luke. You have your hands in everything.
Designs, project leader, global admin.....
But yeah, nice work I just love it. xD