Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Basic Embedding
#31
(11-11-2019, 06:01 PM)megamarc Wrote: Hi RootBeerKing,

For this to happen, Godot itself must expose a way to load external libraries and expose them an ARGB surface where to draw. Does Godot engine have such feature? If so, can you please point us to the reference documentation explaining how to do it?

Thanks!

Hey Marc, I'm not sure if this is what you're talking about but https://docs.godotengine.org/en/3.1/tuto...ugins.html Godot does allows C#, and is pretty similar to Unity, so while I can't tell you about ARGB(I'm new to programing, so I'm not all up on the lingo) I'm pretty sure it can be done as it shares many features of Unity(Maybe something like this? https://docs.godotengine.org/en/3.1/clas...xture.html, or this https://docs.godotengine.org/en/3.1/clas...xture.html ?).
Reply
#32
Thanks for your research.

The proper documentation seems to be this:
https://docs.godotengine.org/en/3.1/deve...aries.html

However this is an advanced topic, because it's not about Godot usage, but about its internal development. That means, one must modify the internal workings of Godot to integrate external libraries.

Another topic is to think about the usefulness of integrating them together. Godot is a full game engine with its own editor and many many more things like audio, etc. Tilengine is better for true 2D graphics, but it doesn't offer anything else past graphics. There are some areas where they collide: asset loader and manager, rendering. Godot doesn't have knowledge about the resources used by Tilengine and its special features (like the unique raster effects).

Have you something in mind?
Reply
#33
(11-10-2019, 10:54 PM)RootBeerKing Wrote: Hey Richard Kain, any plans on doing an embed of Tileengine for Godot Engine?

It's a possibility, but I haven't really considered it to be a priority. Godot supports the use of C++ for plugins. So it is certainly possible. The issue is that Godot doesn't "need" a Tilengine embedding as much as some other engines might. Godot already has fairly capable pixel-based 2D options. They aren't structured the same way that Tilengine is, but they are much more true to traditional pixel graphics than you would see in Unity or Unreal. Godot also has some pretty decent scaling options that would allow you to insure integer scaling if you so chose.

Part of the reason why I'm playing around with a C++ and OpenGL approach is to get Tilengine running really well on a Raspberry Pi. You have to step back to a lower-level language in order to squeeze performance out of modest hardware. Also, I'm learning how to program in C++. But modern Godot would only marginally benefit from a Tilengine embedding.
Reply
#34
(11-09-2019, 02:27 AM)megamarc Wrote: Is there any public repository with your test, or are they it just private experiments?

It's a private experiment. However, I would be willing to bundle up a tutorial that has all of the basics included in it. I've been doing this with several other of my experiments. Fair warning, it will be in C++, and not straight C. It should be possible to take the C++ objects and methods and shift them over to pure C, but I usually work in OOP design, so there will be class definitions and includes. I'll let you know when I post the tutorial to my site. Given the complexity of the code, the text explanation for the tutorial isn't going to be as extensive. But there will be commenting in the code.
Reply
#35
(11-12-2019, 04:06 PM)Richard Kain Wrote:
(11-10-2019, 10:54 PM)RootBeerKing Wrote: Hey Richard Kain, any plans on doing an embed of Tileengine for Godot Engine?

It's a possibility, but I haven't really considered it to be a priority. Godot supports the use of C++ for plugins. So it is certainly possible. The issue is that Godot doesn't "need" a Tilengine embedding as much as some other engines might. Godot already has fairly capable pixel-based 2D options. They aren't structured the same way that Tilengine is, but they are much more true to traditional pixel graphics than you would see in Unity or Unreal. Godot also has some pretty decent scaling options that would allow you to insure integer scaling if you so chose.

Part of the reason why I'm playing around with a C++ and OpenGL approach is to get Tilengine running really well on a Raspberry Pi. You have to step back to a lower-level language in order to squeeze performance out of modest hardware. Also, I'm learning how to program in C++. But modern Godot would only marginally benefit from a Tilengine embedding.


There are still a few things that Tilengine does that Godot can't, like the color cycling, and raster effects. But I understand, it's not much that is missing...
Reply
#36
The main reason to create Tilengine was the raster effects. It's the only open source engine that handles them properly as a core feature. Of course, if you're not interested on them, there are many alternatives out there. But raster effects were a key technique in 2D graphics, used to create all sorts of impressive visual effects and overcome limitations. Arcade boards, home consoles and the Amiga computer did extensive use of them. Tilengine allows you to use these same techniques. It's only a feature, but a big one... Its suitability for your project depends on the type of graphics you want to have.
Reply
#37
(11-13-2019, 08:25 AM)megamarc Wrote: The main reason to create Tilengine was the raster effects. It's the only open source engine that handles them properly as a core feature. Of course, if you're not interested on them, there are many alternatives out there. But raster effects were a key technique in 2D graphics, used to create all sorts of impressive visual effects and overcome limitations. Arcade boards, home consoles and the Amiga computer did extensive use of them. Tilengine allows you to use these same techniques. It's only a feature, but a big one... Its suitability for your project depends on the type of graphics you want to have.

Yes, this is why I am so drawn to using Tilengine(the shooter example is gorgeous and very inspirational)! I very much want to use this engine for my game, I just wish the documentation was easier to understand/more complete as it is very confusing as is for a beginner like myself.
Reply
#38
I'm glad you like the shooter example :-) the graphics are ripped off from a masterpiece on the Sega MegaDrive/Genesis called Thunder Force IV (Lightening Force in the USA).

You're absolute right, the documentation is on the short side. That's why I try to give direct support here in the forum to users who are evaluating it.
Reply
#39
(11-13-2019, 05:42 AM)RootBeerKing Wrote: There are still a few things that Tilengine does that Godot can't, like the color cycling, and raster effects. But I understand, it's not much that is missing...

Actually, I was able to cook up a custom shader combined with a command-line image converter that allows you to create color-palette style support for Godot. Moreover, it works for both 2D and 3D graphics in Godot. With a little extra scripting work, I could easily create a plug-in that would use a temporary graphics object to add timed color-cycling as well.

That's part of the reason why I'm not all that eager to embed Tilengine into Godot. Godot's 2D implementation is fairly robust, and is proper 2D, with very capable support for low-resolution pixel graphics. If you want to create a retro, low-res 2D pixel art game in Godot, you're basically good to go. More advanced engines like Unity and Unreal have 2D support that is really just an extension of their 3D support. These systems tend to run fairly well on modern hardware, but require a significant amount of crowbar forcing to get retro-styled graphics running on them. They're geared much more toward modern graphics.

Part of the reason why I'm so fond of Tilengine is that it is one of the only graphical rendering systems I know of that has decent support for the Raspberry Pi. (and other various micro-computers) Thanks to its retro approach, Tilengine can run on just about anything, and run well. I've also been able to compile it from source on pretty much any platform I've thrown it at. (excellent cross-platform support) There are almost no existing engines designed to be compatible with the Raspberry Pi. Tilengine is a breath of fresh air in that regard. Its legacy approach to game graphics structure is also a good exercise for beginner developers to better understand how games can be structured. And of course, its support for legacy raster effects is wonderful.
Reply
#40
Hmmmm... a possibility for Tilengine embedding just occurred to me. It might be an interesting idea to develop a libretro core that could serve as a Tilengine-based game engine. libretro offers an interface for selecting games, and programming cores that are usually emulator-related. But if you came up with a basic rule-set, and then some standardized resource loading, you could probably use it as a front-end for running Tilengine-developed gaming cores. Create a JRPG-style engine with most of the data stored in XML files. Then the logic for the game can reside in the libretro core, and all of the bundled assets and XML data can be loaded in as a "ROM." Develop multiple games using the same core. Develop a separate core for other types of games, but using Tilengine for the 2D rendering.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)