Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Access to older version of Tilengine on itch.io
#1
I would like to get access to an older version of Windows binaries for Tilengine, namely 2.7.0. I have no problem building them myself on Linux, and after not having much success building them on Windows, I thought it would be easiest to get the binaries from itch.io. The problem is that when I select an older version on itch.io and then go to the download page, the list of files look like they are from the latest version of Tilengine.

In this link it lists the files I would like:
https://megamarc.itch.io/tilengine/devlo...te-masking

But then the purchase page lists something different:
https://megamarc.itch.io/tilengine/purchase

As a side note, the reason why I need an older version is that the Python bindings do not work with the latest Tilengine updates. I'm still in the process of trying to get them to work, and will hopefully create a pull request on PyTilengine soon, but in the mean time I need binaries for 2.7.0 for Windows. 

Any suggestions?
Reply
#2
Hi Daniel,

Itch.io doesn't keep releases history, when you publish an update, it just overwrites the older files. Best way to have a specific version is to clone that source release fom github and build.

What kind of issue are you facing building for Windows? The sources, Visual Studio 2017 and windows_libs.zip available for download are the only requirements. It should be straightforward.

Also, I don't think release 2.7.0 will solve your problem regarding the binding. The python binding is stuck at release 1.21 dating two years old right now, with just the extended input of release 2.1.2 added. I don't know what feature of the binding is not compatible with current release, but I guess it was broken long ago.

Recommendation? Check out Tilengine release 1.21 that it's compatible with the python binding, and also contained prebuilt binaries for windows:
https://github.com/megamarc/Tilengine/tr...133cdc6fdc
Reply
#3
Hi Marc,

Thanks for your response. The Python bindings have been quite stable for us for a while. We haven't run into any issues up until > 2.7.0, at least for our use case. It was the revamping of the animation system in 2.8.0 that seemed to brake our game we are currently working on with the Python bindings. In the short term, we are okay using an older version of the bindings as it is stable and we are just in the phase of getting an alpha build of the game ready.

But if there is no long term plans for maintenance of the Python bindings, then may I need to consider maintaining them myself, or maybe we will convert our game to C\C++ when we are ready to move beyond the alpha build. Python has been great for quick prototyping and experimenting in our case. Another reason why we want to use 2.7.0 is because it has the nearest-neighbour interpolation when the CRT effect is disabled, which has more of the look we want.

As far as building for Windows is concerned, I got the libs working by myself and updated the project using Visual Studio 2019 (not sure if that may cause a problem?). It builds successfully, but when trying to run the game with the binary I get: OSError: [WinError 193] %1 is not a valid Win32 application. With that kind of error with the DLL file it could be many issues, so it may not be enough information for you to provide a solution. It's probably something small I'm doing wrong.
Reply
#4
Hi!

I didn't know you were developing using the python binding. You shouldn't port the game to C just because of this, Python is a great applications language whereas C is a systems language. It would be great to have a dedicated maintainer to the binding, because current releases have many new features. What I can do is at least fix the broken parts due to recent API changes.

The error you see may be due to mismatching x86 / x64 binaries. Make sure that both Tilengine.dll and SDL2.dll have the same architecture than your host Windows version, because Python ctypes requires all architectures to match or else it refuses to load.
Reply
#5
Hi Marc,

That would be a great help if you could fix the binding!

It's quite possible that I unintentionally mixed the x86 / x64 binaries. But I decided to purchase the files from itch.io and I will give it a try again with the windows_libs. I gave a bit extra for the purchase as a token of our appreciation Smile

Will let you know how it goes!
Reply
#6
Hi Daniel,
Thanks for your contribution! Really appreciated Smile 
I'll fix the binding so at least it continues working with current version. Lately I started adopting a deprecation mechanism when adding new features, but sometimes it's very temping to just remove something that feels wrong or out of place now just for keping backwards compatibility.
Let me know if you have any trouble building for Windows with windows_libs.zip. Just unzip the contents under /src directory and build.
Reply
#7
Hi Daniel,
I've partially updated the python binding. It still lacks some functions, but I've added many of the current features and the basic samples work again without modification.

However, due to the underlying Tilengine animation system having changed in 2.8.0, it's impossible to keep old code using sprite animations. In few words, previous sprite animations were handled by a common Animation class, whereas now they're handled by the Sprite class itself. This has many advantages and simplifies management: no need to handle separate animation slots, and each sprite has its own animation.

If you're using sprite animations in your prototype, most significant change is:

Code:
# old code
animation.set_sprite_animation(sprite, sequence, loop)

now becomes:

Code:
sprite.set_animation(sequence, loop)

And for getting animation running state:

Code:
# old code
animation.get_state()

Becomes:

Code:
sprite.get_animation_state()

I recommend you checking https://github.com/megamarc/TilenginePythonPlatformer that is updated. It uses sprite animations so you can see how to use it now, and also discards old .sqx animation descripton file, as it now uses named spriteset-based sequences introduced in release 2.4.0.

Of course let me know if you have some difficulty or need help adapting your current prototype.
Reply
#8
Hi Marc,

Thank you so much for updating the bindings! Smile I've made the changes to the animation code, as you have shown, and it is working well.

Regards,
Daniel
Reply
#9
Hi!
Glad to know you're doing well with the latest updates Smile
Regards,
Marc
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)