Archive 17/01/2023.

Stepping down from Urho lead dev role

cadaver

Following the release of Urho3D V1.7 I also have another announcement to make, which unfortunately isn’t as positive.

I have found that at this point, I don’t have an opinion on most matters regarding Urho3D’s continued development. I also have found a lack of time to evaluate pull requests properly, therefore often pulling them in with only minimal review.

In light of this, I believe the proper course of action is for me to step down from Urho3D’s lead dev position, instead of remaining in a semi-retired state and letting the project stay in uncertainty.

This means leaving the engine into the hands of the rest of the core developers. The good thing is that if you want to do something, you don’t need my acceptance. The bad thing is, you shouldn’t ask me for opinion either.

There’s still the 3D UI PR https://github.com/urho3d/Urho3D/pull/2074 which I want to see through properly, but after that I will not take part in evaluating PR’s, matters regarding project direction or membership, or in the release cycle.

I may still contribute on issues if I have time, and find something that’s clearly my territory.

I can imagine this can come as a shock. However, I actually hope the end result will be positive - you can take the engine in whatever direction you want, without having to second-guess whether I would be doing something, or whether I would be accepting that direction.

Thank you for understanding, thanks to all contributors for your efforts over the years, and good luck!

Eugene

Are you going to monitor forum/issues and answer questions?

slapin

Probably you could just share responsbilities in a way that takes less time? That is quite hard decision you do, to let go completely, isn’t it?

hdunderscore

A big thanks for all your hard work and effort ! You have made something to be proud of, for sure.

I hope you don’t part with the feeling that you were seen as an obstacle in the way of progress. I think everyone appreciated your time as lead and approved of your direction. I certainly hope we will still see you around in discussions or maybe post any projects you are working on, even if you don’t have time for code contributions !

Victor

Congrats on making it this far, and a huge appreciation for all of your hard work! I’m sure the core devs will continue to make this a great engine as it moves forward.

Thanks again! :slight_smile:

Alex-Doc

Thanks for all of your efforts, for writing such a clean and well organized engine and keeping it MIT licensed.

I would also like to congratulate with the new lead devs as I’m sure they were already doing a great job and will keep doing so.

cadaver

As time permits. If you have questions on the engine’s structure or workings of some class, certainly I hope to answer.

1vanK

Without a leader who will say the last word, even such a simple question as the coding style will turn into a war

Bluemoon

Wow!! Now that’s a bit of a shock and kind of sudden, but I get you. You’ve been awesome all these while, I just hope you’ll pop in once in a while to give your thoughts and advice on the directions the engine might be taking from now on.

But all the same, Great Job :+1:

Bananaft

Shocking news, indeed.

Thank you for making my favorite game engine, Lasse. I really hope you are right, and it will work best for the engine.

stark7

Oh man, this is really sad news as Urho has been a shining light of hope for me for more than a year now. I am currently using urhosharp extensively and I am not sure if there is any equivalent replacement for this great work.

Alan

@cadaver: I think I speak for all the Atomic community when I say that your work has been invaluable for us, and we wish you the best of luck in your future endeavors.

We are following this closely and I wonder if there’s going to be a new official lead dev or if it’s in the hands of the community now.

Thank you @cadaver and the Urho community for this awesome project! :heart:

slapin

btw @cadaver, @weitjong could you tell me the accounts of the rest of active core developers?

Thanks!

Alan

Preparing the ballots? :smile:

ppsychrite

I didn’t expect you to resign from your role but good luck on your future projects! :grinning: :heart:

Nevertheless thank you for your tremendous work on this engine.

slapin

No, just for records. I don’t have much time to do much hobby coding these days though. Just waiting what finally happens about community repos, would like to participate though.

I guess nothing much change, just PRs might get slower in (or at all). Most community might go for Atomic or Urho#
if things stagnate more than they are, as these are close enough. I hope some live youngsters with burning eyes and dizzy fingers will do some motion though.

weitjong

Lasse has written to me personally to break the news just before making the public announcement. For those long time followers of the project as myself, we have been prepared by Lasse on a few occasions already for thing like this to happen. Nevertheless, it is still shocking and sad to learn this as it eventually does.

@cadaver, thank you for EVERYTHING. You have laid down a very solid groundwork for the future of this project. I am very certain you will be still around to see this project reaches its new heights and also to share your insights with the new and the existing core developers for the time to come.

No doubt some of you, especially the naysayers type, will leave the community because of this. And that is fine. But for those who want to see the project to continue to thrive, now it is time to show your passion. Contribute back one way or another. Work together to fill the big void left by Lasse. Otherwise, we just prove what the doomsayers said is right.

slapin

Well, I have read through this topic and see only optimistic and wishful words.
Who do you call a doomsayer?

I really hope that uncertainty period will be as short as possible and new contributions
are accepted again, also some plans are shared on where things are going to.

TheSHEEEP

It’s the right decision by @cadaver and I fully support that.

However, I also agree that someone has to step up now. I think not having someone with the power of the “final decision” is a bad thing, especially in open source projects.
Thankfully, there are a few candidates, aren’t there?
Looking at the recent commits, @TheComet @weitjong or @Eugene come to mind. But you guys will have to decide that among yourselves of course :slight_smile:

The project at the moment is in a fairly good state, so the faster things can get “back to normal”, the better.
Ogre had the same happening when the original dev removed himself as project lead (for valid reasons, too) but the project went on just fine because others took over.

Victor

Community vote? (I love you all though :-D)

You’re right, there does need to be a lead heading the project, even if it’s just by title.

TheSHEEEP

I would vote against a vote. This is something the active devs should decide, not the community.
IMO, in the best case, in a few weeks and after some internal discussions, the most active devs made a decision and we get a “Urho’s new dev lead is X” news post :slight_smile:

cadaver

Naturally, I can’t speak authoritatively at this point, but my belief is that the remaining core devs should decide among themselves how leadership is to be organized.

weitjong

And I already gave my personal reason to Lasse why I won’t be taking that position. So, I will pass.

Victor

Sorry, I meant that more as a joke. My real point was that there should be a lead, even if it’s just by title.

TheComet

It feels like I only just got into the fun and already the project author is jumping ship. I didn’t know my code was that bad :stuck_out_tongue:

I’m sad to hear you go, and I wish you all the best. Urho3D is something special and you should be proud.

On a more organizational note, if this project is to continue optimally, there needs to be a lead dev who has the final decision on changes. Typically when people step down from other projects they appoint the person they trust most to take their place, but since that hasn’t happened here, we might have a problem.

I don’t actually know who the “core devs” are, is there a list somewhere or is it just defined as “those people who commit code fairly regularly”?

Either way, if I am somehow on that list, I don’t believe I know enough of the engine to make competent decisions. I know the ins and outs of my IK contribution but that’s about it.

slapin

It looks like you have time and energy to get to know the project, also you can ask people, also @cadaver won’t go away from answering your questions, so I don’t see why you can’t take over leadership, so don’t run away too quickly. I hope you and @Eugene might decide as @weitjong does have reasons not to.

Dave82

That’s really sad. My only fear is that the engine itself will turn into a giant cumbersome mess with bad design choices.I saw it happening once so i hope it won’t be the case.Who ever going to be the leader , keep your eye on current easy , practical , indie friendly design and keep following it what ever takes.

kostik1337

Everything flows. Thank you Lasse for creating and maintaining such awesome game engine, you are the man.

Actually, I don’t think Urho3D really needs one lead dev. I always thought of totalitarianism as the more effective form of government than authoritarianism, I mean, there are already core developers in project, why don’t just let them vote for big changes? AFAIK, some OSS projects are developed this way, e.g. Debian

Enhex

The reason for final authority is to avoid disagreements which lead to people going with their own fork, thus fragmenting the community and progress.

My opinion about who should be the lead is whoever is most familiar with Urho3D’s design and code, and has the most experience working with it (and has to be competent enough of course).

That’s quite a huge demand since Urho3D has many domains and its own code and third party libraries for the lead to be familiar with.

When thinking about it a way to deal with this big scope problem is to distribute responsibility for core developers over different domains. One is responsible to the physics, one for rendering and sound, one for networking and AngelScript, and so on. Each one is responsible to be familiar with Urho’s and 3rd party’s design & code of his domains.
It will also help with processing PRs since you’ll have many people being qualified to handle reviewing PRs for their specific domains.
There’s still place for a lead to oversee the whole thing(officially assigning domain devs, final word, etc).

This is the best approach I can think of.
If we agree about it the next step is to specify development domains, and after we have a new lead, assign volunteers.

cadaver

Generally I remember it has been hard to find people who want to commit to a steady dev role, even if their contributions have been good. Ie. some are happier just contributing occasionally, or cannot promise a commitment.

For the reverse case, I’d certainly hope no-one who wants to contribute and take an active role, and has a good contribution history, is turned down now.

EDIT: forgot to say what @Eugene touches below: contributions often determine authority in most natural way. E.g. @weitjong for the build system, or dark_sylinc in Ogre when he began the whole 2.0 renderer revamp.

Eugene

I suggest to move on and return to the topic about leadership if it become important. BTW, splitting Urho into core and modules shall decentralize responsibilities.

Alex-Doc

I agree with you:
By having a lead for each engine “section”(physics, rendering, …) is the most realistic and manageable way to continue.
It would also make the eventuality of a replacement of a team member less disruptive.

Another pro is the team structure would also integrate well with the community-made components and subsystems as the actual roles and competencies would be well defined.

Then the actual project lead(aka guy with the last word) could be chosen by the engine sections leads basing on trust and competencies.

hdunderscore

Although assigning team members over specific modules makes some sense, in practice we haven’t currently got the active contributors to split it up that fine-grained. Also, I feel artificially assigning titles to inactive contributors based on promise could lead to problems.

At the moment, I feel that @weitjong and @Eugene are both active and talented enough to at least be the guiding voice in the interim, until hopefully another talented contributor appears. With the community repo brewing, I think we will be opening the door to lower quality or less relevant contributions, that can also serve as a side channel for PRs that don’t make the cut.

In the meanwhile, we can explore options to ensure the long term project health. Eg,

  • We can look at bringing Urho and Atomic closer together, or maybe pulling components from atomic into the community repo.
  • We could re-evaluate the core of Urho and look at bringing in more third-party libraries to essentially out-source the problem (eg, rendering, UI)
Enhex

Not sure what’s the scope of “steady dev role”, but perhaps more people will be ok with taking a role with smaller responsibility over a single domain.

Also the role doesn’t have to require active development (tho obviously it’s desirable), just being familiar with the domain so RP reviews can be done is good enough for a start.

cadaver

Yeah, with “steady dev role” I meant that one is following their area of the project (eg. issues and PRs), not necessarily doing active development the whole time, but the sense that one hasn’t just dumped in code once and then moved on.

Alan

Atomic and Urho can mutually benefit from each other without being merged into a single project… our communities could certainly be more in contact though. I guess from a user adoption perspective, a merge or some kind of official endorsement would be beneficial, but that’s way beyond my department. While I don’t necessarily agree with something like that, it’s a fact that your forum is way more active and helpful, while we are quite active on Gitter for realtime support. Larger and more active communities also tend to attract more users, it’s a kind of snowball effect, once you have enough momentum the thing goes on on its own. Again, I’m just stating the facts here, personally I think Atomic and Urho have different enough scope to the point that anything beyond a friendly approximation on both sides wouldn’t be justifiable.

That’s one of the most discussed topics in the Atomic community. We’ve been discussing for example swapping the renderer for bgfx for a long time, and one of our contributors even started making something in that regard. One has to be careful though because it could be a shot in the foot: you may end up with just a bunch of libs frankensteined together since these days you find high-quality permissively licensed libs for absolutely everything, from ECS to autobinders.
However, by sensibly ‘outsourcing’ a few more things, perhaps the internal efforts could be focused on modernizing the core, what’s another recurrent discussion in the Atomic community.


On a related note, why that guy who maintains the Russian tutorials/docs and community wasn’t mentioned here? I don’t know how active he is in terms of core development, but he seems to know a lot about the internals, and also made some quite amazing code to extent the functionality in the right direction imho (e.g.: sprite batcher).

It seems nobody is looking forward to be the next cadaver :laughing:

johnnycable

Sorry to hear that. It’s not that much I’m tampering with Urho, but afaik this engine has been around about ten years or so to days… that’s a lot of time, so I can see your decision.
Anyway you did a very good job. Not easy to see around such polished things, and I’ve been seeing code a lot…
Best wishes for your next enterprise, hope it’s so lucky as well.

Bluemoon

I quite agree with @Enhex to distribute responsibility for core developers over different domains of Urho. But I still feel there will be need for an Arbiter when there are more than one conflicting ideas

rasteron

I think the better term is project lead, the one that oversees, makes contributions and the final decisions. I agree, the current roles seems to be more natural than by assignment, Wei-Tjong (Build), DragonCastJosh (Renderer), Eugene/HD_ (Core), and so on…

I got interested one time when Lasse mentioned first this topic, but the way things are moving right now and with other interesting ventures, I’m leaning towards a sharper fork eventually.

Lasse should definitely appoint the next lead if the developer/contributor is willing and accepts it.

indie.dev

I feel sad. IMO, Urho3D is the best open source game engine all over the internet! I read most of the code. They are clean, elegant, well-designed, implementation knows where to stop. Even the 3rd party libraries are well selected! I’ll contribute as much as I can.

IMO, it is the open source version of Unity. With the character of open source, from many aspects, it’s even better. Now the growing baby’s father is leaving. Please keep growing… Urho vs other commercial engines is just like Blender vs commercial modeling software. Now Urho’s Ton Roosendaal is leaving. Sad.

Cross fingers and go team!

indie.dev

Let me explain further about the potential of Urho.

Only if we have -

  • A better and stronger editor (current editor is really elegant actually), e.g. if it’s based on something like QT,
  • AngelScript IDE/Debugger() or another well integrated script with IDE and debugger
  • Workflow optimized: e.g. model export, prefab, editor workflow, binary packing, etc.

We can use it to make games in an efficient and professional way!

It’s as powerful as Unity but with clean, elegant, well-designed and easy-to-maintain source code and powerful community behind it! Who knows how far can Urho3D go!

Let me add some more words. I also used / further developed game engines like Unreal Engine, Gamebryo, Nebula Device 3, cocos2d-x, Unity, etc. for commercial or casual projects. The best part of Urho is that though it’s very professional we still get lightweight and elegant game engine implementations. With some more additional work Urho can be very powerful. Obviously, @cadaver is one of the best game engine programmers on this planet. His leaving is a huge loss for the project. If there is any chance he can be on this project, please happen.

Gentle22

Really sad news! I also think that Urho3D is by far the best Open Source C++ engine out there. I worked with many engines - Irrlicht, Ogre3D, Unreal, Unity3D, Cocos2d, CodeCreatures Engine, NebulaEngine, … - but none of them have been so lightweight as Urho3D. To create such a piece of work it is not enough to be a good C++ developer, you must also be a good architect and that combination is rare out there. You have my biggest respect @cadaver.

The sad thing for me is, that I decided a few weeks ago to dive deeper into Urho3D and do some serious stuff, but now I fear that Urho get abandoned or at least the core code get cluttered over time like it happened with Ogre3D. Personally I don’t have the time and talent to contribute much, but I hope that the core devs are able to continue with what @cadaver started.

But anyway, I wish you @cadaver all the best and thank you for creating Urho3D.

1vanK

Absolutely right. At the moment I’m studying the Unreal engine. This is a good engine, but it is unreasonably heavy. But Urho has tremendous possibilities and flexibility with so small size. The engine with this potential will certainly achieve great popularity. In fact, its popularity in the Russian segment is already high. For example VK official application https://vk.com/vkmasks uses Urho3D (vk is CIS analogue of facebook).

I think that Cadaver could make a website like UnityAssetStore or https://www.blendswap.com/ where users will post their components (paid or free) and receive revenue from it. Then he will have the incentive to continue engaging in the engine.

Eugene

Urho has certain problem with assets: it doesn’t have any infrastructure.
C++ code has to be integrated manually (download&unzip&copypaste).
Assets have absolute resource paths that makes integration hard.
These problems shall be resolved before trying to make “Asset Store”

dragonCASTjosh

@cadaver Its sad to see you leave has you have done so much for this community not to mention starting Urho, i wish you the best of luck with whatever you do in the future and i think i speak for everyone when i say your welcome back at any time.

@rasteron

Wei-Tjong (Build), DragonCastJosh (Renderer), Eugene/HD_ (Core), and so on…

I wouldn’t turn down the offer but i agree with the idea that system leads is not a bad way to go forward as long as they communicate often about direction.

rasteron

Well, nobody is hinting on stepping up until now so that’s good to know. :+1:

Urho’s PBR is looking awesome btw.

cadaver

@1vanK unfortunately time is most important currency for me so I would be averse to any action that would lead to more of my time required. Ideally it would of course be exactly opposite, that a lead should be hungry for more popularity and to take on more work. It would potentially be a different story if we’d be using Urho directly at my employer, but it isn’t so (apart for one project which is already in the past.)

dragonCASTjosh

If i was offered the role id have to sit down for a hour or so with Cadaver as he walked me through the parts of the engine iv not looked at, only then would i feel comfortable taking on such a role.

hdunderscore

Realistically I believe only currently regular and active contributors who have developed a strong sense of the code base through their contributions should be considered for the position of lead, if we were to appoint a lead. That isn’t to say new or returning contributors shouldn’t be considered, however they should become active before being considered.

For that reason I will object to any lead nominations outside of the pool of recently active contributors, as I believe the lead should have a natural interest in furthering Urho3D without the external pressure of living up to an appointed title-- after all this is a purely volunteer effort with no funds backing it.

It’s certainly not a terrible idea for the devs to share their knowledge over the code base with anyone considering becoming an active contributor, such topics are worthy of new posts in the development forum.

weitjong

2 posts were merged into an existing topic: Attribute refactoring

pqftgs

NOooooo!
I shall relay the sentiment of my fellow users: Hopefully Urho3D stays clean. Cadaver’s vision for this project was, from my humble perspective, flawless.

Really what we should do is either breed a clone OR blackmail his employer into using Urho3D again. Who’s with me?

Or perhaps that’s not a good idea…

yushli1

Please do come back often and spend a little time here. We will all miss you.

coldev

Thanks 4 you support… You r the man… :sleepy:

Lumak

Thank you cadaver for all you’ve done as the lead dev since the inception of this wonderful engine. You have done an awesome job with the architecture and many cohesive implementations for this engine. You stepping down as a lead developer is uncomforting, however, I don’t think you’ll do this without already knowing that the remaining core devs can handle it – 10+ years of investment shows passion that just cannot be thrown away lightly.

KonstantTom

Thank you very much for perfect game engine with well-organized source code! Urho3D is really wonderful. You did great work. Thanks again! :slight_smile:

Modanung

Indeed, many thanks to @cadaver for all his hard work that allows for pleasant high quality free and open game development from sketch to release.
It’s hard to imagine this project without Lasse’s guidance, but I have full confidence in the remaining core devs.

:metal: URHO!!! :tropical_fish:

cosmy

Thank you @cadaver for this amazing game engine crafted over the years. I would like to see the engine growing in the same direction keeping the lightweighting as the central point of the project. Not sure who will handle all PRs now but I hope they will be selected without integrating everything just because they are nice, as someone will have to keep that piece of code maintained. I have already seen the C++11 feature enabled by default which makes (at the moment) everything a bit inconsistent with actual container classes: we should either go fully STL (maybe EASTL) or keep actual containers and use C++11 features like constexpr, lambda expressions, auto, nullptr, etc… but not the Standard Template Library.

Eugene

Okay, I suppose I must write it here too.

Please stop complaining about this “lost leadership” so much.
Urho is mature now. It doesn’t need hard architectural decisions and sleepless weekends of programming anymore. Now developement and maintenance is perfectly done by contributors, maybe slow, but steady.

I don’t even want to talk about final words and so on. Let’s solve problems as they arise. As a last resort, we could summon cadaver for 5 min to say this (cough) word.

The only practical thing that has changed is that now Urho need more community involvement into investigating/fixing issues and reviewing PRs. I ask contributors not to skip e-mails from GitHub if you see familiar words in the title. Spend some time and try to find bugs or pitfalls in the code.

Don

100% agree here. Most of the hard work has been done, and the engine is very stable and usable at this point. The main focus of the community now is to work out the bugs and steadily build features. There are definitely some things I would like to see on the rendering side (and I will do my best to implement some of them), but nothing groundbreaking.

I would like to thank cadaver for the persistence to make a fully-functional, clean, and organized engine. I’ve used many libraries in the past, but none as good as this. Now it’s up to the community to keep it going.

1vanK

Actually, take PRs is also a difficult task. Including from a psychological point of view. Cadaver many times rejected my PRs, and never it was not offensive to me. But when peoples who have made less contribution to the engine than I, says to me: “You need this, but I do not need, so report back”, I lost any motivation to do anything else.

Eugene

If these people are not core devs, why do you care at all? I’ve read a lot of things against my PRs and I’ve never taken it personally. If there are issues or defects, I take it into considiration, then fix problems or revoke PR. If someone is just dislike something… Okay, continue disliking this in master, then.

Huh, just checked… I have no revoked PRs.

1vanK

Ok, let’s not talk about the latest PR. Why we have buggy model in repo? https://github.com/urho3d/Urho3D/pull/2024

Lumak

How is that a buggy model?

yushli1

I learned a lot from all your open source projects, like the sprite batch tutorial, outline selection, flappyurho, model dissolving. Actually I think you should step up as the rendering lead here. So please do not lose motivition and continue the great work.
Also I learned a lot from Lumak’s open source projects, like skinned armor, material effects. Both of you are doing great contributions to Urho3D and to us as urho3d users.
Please unite together for the benefit of The urho3d engine and the community.
Right now it seems the most important thing is to settle down for a way to handle PRs. We should not let PRs stall but also not rush into the main branch. some kind of consensus mechanism should be established.