I want to share with you here somehow for upcoming blog posts that some years ago I came across a project and what it lead me to: Pokemon3D.
I cannot remember any more how I came to this project. It was maybe twitter or searching for pokemon games because I was bored. Anyway, I came across this project. Up to then I already had my passion and lot of experience with C# and developing 3D Engines with MonoGame and it seems that this project was built on that.
I had the crazy idea to write an email to the developer and asked for if they want someone to improve their rendering code and I had luck: nilllzz answered me and offered collaboration. Yay! Though, the work went in a different direction as planned.
Pokemon3D Reboot
We did not work on improving the existing code base but rather start from scratch. We separated work and I was responsible developing a rendering pipeline and an Entity Component System and he was responsible for the scripting, providing data models and domain knowlegde from the old game.
As always in these kind of projects initial development speed was fast, fun, and satisfying. We set up quite fast a first pallet town map based on a scripted map, movement, collision, shadow maps:
We made good progress and easily integrated more and more functionality, like 3D UI interfaces
Involvement of original script members
As the software grow and we more and more are able to integrate other people, we invited the original crew working on the existing pokemon3d game creating the scripts and maps. We talked about features, what we want to support and change and had vivid conversation.
One idea was that we can replace the minecraft like buildings with real models. I also integrated it into the model and renderer and it worked really nice:
Slowdown and discontinuation
As I said, as a typical free time project with no pressure things at a certain point stand still. This was due to the typical circumstances as having not more time, motiviation degenerated, software was more complex and and it was not that fun as it was at the beginning.
I worked from time to time but no real more progress was present. I though kept the source code for several years as it was not bad work and it would be a shame to through away.
Godot for the rescue
Some years passed and in the mean time my personal life changed significantly moving to a different town, changing the partner and also changing focus. I have fewer free time than before so coding everything from scratch was not an option any more.
Due to a lucy blog post in a forum I came across
godot. It as the time when the porting to version 3.0 was actively in the making and I started heavily playing around since then. Though I just tinkered small games, trying out concepts but the more I used it it evolved to the engine I ever wanted to have. Each version makes the engine more useful and a pity to use.
So I came to the idea that I use godot instead of writing the engine itself. Deal for really limited free time was that I need to get good results within a few time to think if its worth to do. So I set up a project with C# and lucily had the old source code which also included a project to convert the old pokemon3d maps to the new data model developed for the reboot. I just use that to read the old maps, convert to the new model and render everything with godot.
What should I say - it worked like a charm! Much more performant, few code needed and most problems are solved out of the box!
2024
From that point up to day several years also passed. I am now married and have my current situation with again much less free time. Though I get time back and I dug out this old pokemon3d godot project. I started to port it to 4.0 and made some changes.
I happily want to share with you about this topic in upcoming blog posts. You will learn about pokemon3d and godot, so stay tuned for upcoming posts.
Comments
Post a Comment