Page 3 of 3

Re: OpenDrakan ~ A Drakan engine recreation

Posted: Fri Nov 02, 2018 10:16 am
by Mechanist
Regarding the separation of renderer code from the rest of the object logic - as well as the general server/client considerations to make multiplayer possible (and actually playable), here's how I think it should look like in the most general terms:
OpenDrakan.png
(161.59 KiB) Not downloaded yet

Now the key point, which is not immediately obvious from the block diagram, is how the rendering logic works.

Instead of each object pushing its own updates to the renderer, I think it would be better that each object gets queried by the renderer instead.

Of course this would require each object to have some kind of flags variable, which determines whether the renderer should even bother processing the object - for example, there's no point in attempting to render objects which are not supposed to be visible, those whose models use no textures at all, or those which don't even have any model assigned to them in the first place.

Now, I'm fully well aware that the Riot Engine closely ties the processing of some (all of the?) objects to the visibility states of the layers they are on - but IMO, that's more of a bug than a feature (certainly it causes a lot of bugs!), and it would hardly be missed if it were to be disposed of.


Regarding multiplayer: observe how in my proposed engine architecture, functionally speaking, from the client's perspective, nothing changes if the entire MP intermediate layer is thrown out.

The only difference is that in singleplayer mode, instead of the client's logic interacting with its own local copy of the object data, it instead interacts directly with the server's own object data as if it were the client's.

Alternatively, the MP intermediate layer can be retained, to avoid possibly complicating things - of course the de'd reckoner needs to be disabled then, since there's no network delay with local communication.

The general idea is that in MP, outside of the usual rendering and input handling, the client logic should only perform the most basic tasks required to make the game playable - and even then, only those tasks that can't be reasonably offloaded to the server because of network delays; all of the "important decisions" which have a significant impact on gameplay should be instead handled only by the server.


In other words... in terms of the underlying architecture at least, you need to start with getting the MP to work. SP mode then emerges naturally as a consequence of that.
Trying to do it the other way around (SP first, then MP) would almost certainly lead to disaster; it's far too easy to write oneself into a corner that way.

Re: OpenDrakan ~ A Drakan engine recreation

Posted: Thu May 16, 2019 7:43 am
by Rjremington92
Android!? :shock: :shock: does this mean I get to play drakan on my nvidia shield???

Re: OpenDrakan ~ A Drakan engine recreation

Posted: Tue Jul 09, 2019 11:47 am
by draltaica
Rah! Rah! Rah! go Zalas8s Go!

Just encouraging you to keep it up on the OpenDrakan project.

Re: OpenDrakan ~ A Drakan engine recreation

Posted: Wed Sep 04, 2019 4:51 pm
by Zalasus
draltaica wrote: Tue Jul 09, 2019 11:47 am Rah! Rah! Rah! go Zalas8s Go!

Just encouraging you to keep it up on the OpenDrakan project.
Work is ongoing. I'm not gonna flush a year of effort down the drain, don't worry ;)

The hardship regarding multiplayer still keeps stalling me, but I'm gonna figure this out sooner or later.

Rjremington92 wrote: Android!? :shock: :shock: does this mean I get to play drakan on my nvidia shield???
Don't see why not. The code is portable and should run on your grandma's fridge once it is done :D

Re: OpenDrakan ~ A Drakan engine recreation

Posted: Mon Apr 06, 2020 3:25 pm
by mage150
Zalasus wrote: Wed Sep 04, 2019 4:51 pm
draltaica wrote: Tue Jul 09, 2019 11:47 am Rah! Rah! Rah! go Zalas8s Go!

Just encouraging you to keep it up on the OpenDrakan project.
Work is ongoing. I'm not gonna flush a year of effort down the drain, don't worry ;)

The hardship regarding multiplayer still keeps stalling me, but I'm gonna figure this out sooner or later.

Rjremington92 wrote: Android!? :shock: :shock: does this mean I get to play drakan on my nvidia shield???
Don't see why not. The code is portable and should run on your grandma's fridge once it is done :D
hope all is still well with this

Re: OpenDrakan ~ A Drakan engine recreation

Posted: Tue Aug 09, 2022 10:43 pm
by Drayldan
Hiya! Any new update or finishing the project maybe??? :roll: :?:

Re: OpenDrakan ~ A Drakan engine recreation

Posted: Thu Oct 20, 2022 12:01 pm
by Zalasus
Drayldan wrote: Tue Aug 09, 2022 10:43 pm Hiya! Any new update or finishing the project maybe??? :roll: :?:
Yes and no.

There are some good news, but also some bad ones, as one might expect. The good news is: my interest in continuing this project somewhat spiked again. I started a new implementation of my asset loading library a few months ago, attempting to avoid some of the roadblocks I encountered in the project's last iteration. I've been playing with the idea of using an off-the-shelf game engine instead of trying to write my own to speed things up.

The bad news is that I don't know how long I can keep motivation up this time around. Motivation is hard, and knowing I kept this project on the back burner for so long made it even harder for me to go back to this and face my failure.

I'm not a student anymore and work a full-time job now, so my time is as limited as it has never been before. What does not help is that I work as a software engineer, and after an exhausting day of programming my brain is rarely interested in more of it. I wonder how many projects of hobbyist coders end up like this.

I put a lot of work into this, work of which I am proud, and I'd hate for it to go to waste. Maybe somebody else with a better work ethic picked up the reins, maybe using some of the insights me and all the others in this community gained on the Riot Engine? I don't know, and right now I can't go and check because I am afraid of what I might see. Afraid of where that would put all my previous efforts. Right now I'm not in the best place, mentally, to handle OpenDrakan more professionally, and I am deeply sorry for that.

I know people would like to see this project finished, me included. I'd absolutely hate to let them down.