OpenFellatio - open-source port of SDT to Haxe + OpenFL (HTML5, etc.) (1 Viewer)

a9s

Coder
Joined
Mar 22, 2022
Yo so with the death of flash and everything it's been kinda hard for me to setup my favorite... penis consumption simulator... on my assorted collection of devices and I was just about to give up and establish the eternal church of penis suckage inside my dusty copy of flash 10 for 'ze many centuries to cum...

But then I was like "wait I'm a programmer. I can carry on the sacred legacy... of virtual penis suckage!!!" And so OpenFellatio was born

It's a port of the decompiled SDT sourcecode to OpenFL and Haxe (OpenFL, OpenFellatio... getit?)

Here's what it looks like

2022-03-28 18_30_06-OpenFellatio - Chromium.png


Theoretically it should make an android port easier but OpenFL's android support kinda sucks (not like your waifu who sucks masterfully) so it's probably gonna be a while before that happens

The menu isn't implemented yet so you have to use the keyboard to switch chars (x and c keys) but the core gameplay seems to work alright. However it's still too glitchy and incomplete to be taken seriously by diehard penis consumption aficionados, whoever thou may be, so do set your expectations accordingly

I made a couple of improvements, for example character loading is now done with YAML so it's easier to export custom chars and a full-featured mod system could be added later

I also disabled some of the more advanced features like tears and mascara by default since they slowed things down too much. Clearly even after a decade of silicon valley driving technological innovation and the rapid proliferation of stupid shit like creamed corn recipe generators we are still unable to replicate the technologically sophisticated features of a humble penis eating game from ten years ago

Anyway my motivation kinda tapered off after a week of blacksmithing dicks so iunno if I'll be able to keep working on this in the future haha. So here is the code in case anyone else wants to have a crack at it

https://github.com/space-nuko/OpenFellatio

Peace
 

The Hacker Known As Snow

Admin
Content Creator
Joined
Aug 30, 2012
Hey a9s,

Just read this post and got your sc to build. This is pretty sick
with the death of flash and everything
It's a port of the decompiled SDT sourcecode to OpenFL and Haxe
I've heard of Haxe but not OpenFL, I was kinda rooting for Ruffle
I'm a programmer.
I like the minimum viable product approach. With what you know of the game's source code, is continuing to develop this project worth it? I'll definitely be taking a crack at it.
we are still unable to replicate the technologically sophisticated features
what other platforms did you try out? What about a desktop OpenGL build?
I made a couple of improvements, for example character loading is now done with YAML so it's easier to export custom chars and a full-featured mod system could be added later
This is sorely need, I was thinking json once the new archive was ready,
motivation kinda tapered off after a week
ah the cycle of burn out, you are one of us haha

You should join the Discord
 

a9s

Coder
Joined
Mar 22, 2022
I've heard of Haxe but not OpenFL, I was kinda rooting for Ruffle
Yeah I had to refer to ruffle's code to implement some of the unimplemented flash features in openfl since openfl's implementation was incomplete. That's why I had to fork a bunch of repos. We are literally revolutionizing the Haxe gamedev landscape by hackin' up the pr0nz! AHHHH!

...As for ruffle it only implements actionscript2 right now while SDT runs on actionscript3 so it's going to take a long time for a buncha volunteers to pick up the pieces of proprietary corporate toil. Also ruffle is merely a flash emulator so if you want code cleanup or feature enhancements it's impractical with ruffle alone

I like the minimum viable product approach. With what you know of the game's source code, is continuing to develop this project worth it? I'll definitely be taking a crack at it.
Definitely I would say since in a sense this will futureproof the game beyond the lifespan of flash. IMO since the code is now opensource it's a lot easier to point out things to enhance or allow people to contribute their own code to core. Pasing around only a compiled SWF limits what can be done to enhance the base game beyond just mods on top I think

For example since animtools is such a big deal it might be a good idea to have it as part of core and officially supported instead of a random mod floating around

I see a couple ways forward if people wanna contribute mods to this version of SDT:

- asking people to install a haxe compiler, downloading the sourcecode of each mod, and compiling it into the final code (the "friday night funkin" maneuver). This is because Haxe is compiled natively so if you want those mods to work on android for example it needs to be a part of the SDT "project" that's built
- embedding Lua somehow so you don't need a compiler and people can just drop stuff into a "mods" folder. Dev-wise this would be more complex to maintain since a lot of stuff would need to be bound to Lua and there's no typesafety
- for really simple stuff like hairs have things be totally declarative like YAML so no compiler (personally I wasn't a fan of the weird folder nesting thing going on with Loader and charcodes and wanted a system that appeased my devops-flavored palate)

Either way existing SWF mods and things would need to be ported to this system but since openfl and haxe are reasonably similar to flash and actionscript it shouldn't take a lot of effort for someone who's motivated enough (...by which I mean horni enough ;)

(BTW the as3-haxe port was done using a thingy called "ax3" (GitHub - innogames/ax3: AS3 to Haxe converter) and the total process for the whole SDT codebase was only a week, which is why I think SWF mod porting shouldn't be too hard)

what other platforms did you try out? What about a desktop OpenGL build?
Yeah so unfortunately the desktop backend of openfl is pretty buggy. I tried compiling the code for Windows desktop but it crashes on startup due to bugs in openfl's engine code (memory allocation or something I dunno)

I myself was very surprised at this since openfl has been used for some really popular titles in the past (like Papers Please) and it might be the one blocker for serious adoption of this kind of direct port in the future. Openfl is great just for the fact that it reimplments flash really well so you can just take the whole SDT code and port it over without much trouble but it looks like their native (android/desktop) backend doesn't get a lot of love and maintenance has slowed down a lot

For reference here is the bug I filed for the OpenFellatio-specific issue: Allocating a huge string causes heap corruption · Issue #986 · HaxeFoundation/hxcpp

With some kuro mahou I think this can be worked around (by not allocating gigantic JSON strings) but because of SDT's inherit complexity I'm not totally sure

I have not tested android yet since presumably the same issue would crop up as the deskop/android engines share the same C++ codebase

This is sorely need, I was thinking json once the new archive was ready,
Yeah but the problem with JSON is it's meant to be an interchange format instead of a config format, yet its adoption has spread like cancerous cat memes since 2001 to conquer every corner of Earth so everyone uses it without batting an eye. Things like being unable to write comments or having to quote all keys make me wanna tableflip when I am forced to use JSON-as-config-format, when stuff like YAML exists that solves those problems

I myself hate significant whitespace with a burning passion and wouldn't poke at a python with 10-foot-pole but at least YAML is a passable config file format (if you don't try to embed a whole turing-complete templating smorgasbord on top... lookin' at you Ansible)

ah the cycle of burn out, you are one of us haha

You should join the Discord
Yeah speaking of burnout I myself have been burned by the whole Discord thing one too many times. These days I tend to count myself instead as discordian (FNORD!)

But yeah I'll probably end up joining sometime haha
 

a9s

Coder
Joined
Mar 22, 2022
Oh yeah and by "technologically sophisticated features" I meant "bitmap blitting". Kinda hyperbolic statement haha. Bitmap operations are inheritly slow on any platform (not just html5) so those would need to be moved to shaders. I think it can be done although I dunno if it's going to look exactly the same (and I'd have to go back to learning GPU programming again)
 

Savitar

Potential Patron
Joined
Jan 16, 2016
I was googling a new opensource game engine, clicked on this and thought about you guys...


About half way down it references to "converters" , Adobe Animate, Adobe Captivate and Articulate Storyline.
Also talks about bluemaxima.org porting 70k flash games.
It's a little pedantic, but may reference useful information.
Hope this helps.
 

sclover13

Content Creator
Joined
Nov 29, 2012
I've attempted HTML5 ports straight from AA in the past with little success, but this looks great! Keep us in the loop if you make progress on performance.

As Hacker mentioned, definitely join us on the Discord. We love talking sdt ports and remaster potential there.
 

maesltromragex

Potential Patron
Joined
Apr 26, 2020
Interesting, I wanted to decompile SDT and found your post
Do you mind telling me why you decided to use Haxe over Godot/Unity or something else?
 

Users who are viewing this thread

Top


Are you 18 or older?

This website requires you to be 18 years of age or older. Please verify your age to view the content, or click Exit to leave.