OpenDrakan ~ A Drakan engine recreation

Anything to do with Drakan level editing and modifications, post it here! Also this is the place to tell us about your new levels and get player feedback.
User avatar
Mechanist
Dragon
Posts: 303
Joined: Wed Mar 07, 2018 7:27 pm
Location: Poland

Re: OpenDrakan ~ A Drakan engine recreation

Post 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.

Rjremington92
Hatchling
Posts: 1
Joined: Thu May 16, 2019 7:35 am

Re: OpenDrakan ~ A Drakan engine recreation

Post by Rjremington92 »

Android!? :shock: :shock: does this mean I get to play drakan on my nvidia shield???

draltaica
Hatchling
Posts: 2
Joined: Mon Jun 03, 2019 7:29 am

Re: OpenDrakan ~ A Drakan engine recreation

Post by draltaica »

Rah! Rah! Rah! go Zalas8s Go!

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

Zalasus
Whelp
Posts: 18
Joined: Mon Jan 29, 2018 6:50 pm
Location: Germany

Re: OpenDrakan ~ A Drakan engine recreation

Post 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

User avatar
mage150
Dragon
Posts: 173
Joined: Sun Aug 12, 2001 3:05 pm
Location: USA
Contact:

Re: OpenDrakan ~ A Drakan engine recreation

Post 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
Moderator Of Arokh's Lair.

Drayldan
Hatchling
Posts: 2
Joined: Sun Aug 23, 2020 5:55 pm

Re: OpenDrakan ~ A Drakan engine recreation

Post by Drayldan »

Hiya! Any new update or finishing the project maybe??? :roll: :?:

Zalasus
Whelp
Posts: 18
Joined: Mon Jan 29, 2018 6:50 pm
Location: Germany

Re: OpenDrakan ~ A Drakan engine recreation

Post 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.

Post Reply