![]() |
|
Reflecting on its development - Printable Version +- Tilengine - The 2D retro graphics engine forum (http://tilengine.org/forum) +-- Forum: English forums (http://tilengine.org/forum/forumdisplay.php?fid=3) +--- Forum: Presentations (http://tilengine.org/forum/forumdisplay.php?fid=10) +--- Thread: Reflecting on its development (/showthread.php?tid=2295) |
Reflecting on its development - vonhoff - 06-09-2023 Hi Marc, If you could go back to 2015 when you started working on Tilengine, how do you think your development process would have changed? With your current understanding of software development and the project itself, would you have chosen a different approach to create Tilengine? What do you wish you had known before starting to work on Tilengine? I would like to express my appreciation for your remarkable work. I respect the passion you have for this project. Thanks
RE: Reflecting on its development - megamarc - 06-10-2023 Hi! Good question. I started Tilengine as just a test for myself because there was nothing similar out there, without any intention of releasing it. However as it started to grow and having more unique features, I pushed to release it. It's a lot of work, because along the engine itself, I had to:
Often all this complementary work keeps me from developing Tilngine itself. I'm a single individual doing this on my free time, that I also share with other activities that require time. Thtat's why from time to time it may seem abandoned, but in fact it never really is. One day I get a suggestion for a new feature, and if I think it fits on the project, then it becomes a challenge that drives me to complete it. What I hate more of all is writing documentation. I know it is absolutely necessary, but even nowadays it is quite incomplete. Regarding design choices, in these years I've learnt new technologies of course, but I won't go back and change anything. Being written in good-old C gives these features:
Nowadays it's still the only open-source engine of this kind. The only other similar engine I know about is Retro Engine, used to build Sonic Mania and Sonic Origins ports. But it is proprietary, closed-source, so it doesn't count here. One thing I hadn't anticipated is community involvement. It's a small but enthusiastic community that has contributed so far:
RE: Reflecting on its development - vonhoff - 06-10-2023 Thanks for replying, it means a lot to me ![]() You mentioned the Retro Engine before, and I looked into it. I found a project on GitHub that's working on taking apart and understanding Retro Engine v4. It seems interesting to explore, I also noticed that Christian Whitehead's website has been down since 2019. It might be cool to compare Retro Engine and Tilengine since both use SDL2 for windowing and input: https://github.com/Rubberduckycooly/Sonic-1-2-2013-Decompilation I understand that writing documentation is a pain, and I don't enjoy it either. These days I use ChatGPT to help me generate draft documentation or content for README's. I usually use it when I have to write lots of function documentation, although I try to keep my code as self-explanatory as possible, so I only write documentation when necessary. Could you elaborate on the implementation of the basic features you didn't like? I'm very curious to know what changes you would make if backward compatibility wasn't a concern. RE: Reflecting on its development - vonhoff - 06-11-2023 By the way, where did you learn the most about 2D chipsets? I'm really interested in graphics programming, and I'd love to know more about it
RE: Reflecting on its development - megamarc - 06-14-2023 Hi, SDL2 provide just the underlying mechanism to use windows and input in a portable manner. But the inner workings of both engines must be quite different. I guess the Retro Engine is much more tied to Sonic gameplay mechanics -only 2D Sonic games have been developed/ported with it- whereas Tilengine use cases are more varied. Things that I would change in the API? Some ideas:
Got the idea. Nothing really wrong, but as C doesn't support function overloading, it's not possible to add or remove parameters to an existing function. You have two choices:
I don't know how the sources to Retro Engine have been leaked to GitHub, because it is proprietary, closed source. However it's cool to be able to peek inside, thanks for the link! I've been gathering info from several sites. The official manuals from Sega and Nintendo for their consoles are one of them:
RE: Reflecting on its development - RootBeerKing - 08-17-2023 (06-14-2023, 03:23 AM)megamarc Wrote: [*]https://rasterscroll.com/mdgraphics/ (Genesis) Very interesting! Is Tilengine capable of the silhouette effect mentioned on that website? I really like the way the Mega Drive does this, had no idea it was a thing, but it's very inspiring as an artist, lol https://rasterscroll.com/mdgraphics/graphical-effects/silhouette/ RE: Reflecting on its development - megamarc - 08-17-2023 Hi! The "shilouette rendering" thing is specific to the Sega Genesis and its way to process priorities. It's not a feature, but a quirk that gets exposed when its priority system is twisted in an inconsistent way. Tilengine doesn't emulate this quirk as it's not a Genesis emulator. But it's always cool to see how developers found defects in hardware and used them in creative ways, taking advantage of their side effects. Clever people! |