cocos2d / cocos2d-iphone-classic

Repository of original V1 and V2 of Cocos2D-iphone
zlib License
47 stars 79 forks source link

Anyone have an update for Xcode 15 and beyond? #11

Open EricHemingway opened 6 months ago

EricHemingway commented 6 months ago

I am sure I speak for many developers when I say that it would be great if someone who worked out how to get this library running on the latest version of iOS and Xcode, as well as Apple Silicon, could possibly post an update.

I’m planning to work on it as well, but I’d hate to duplicate somebody else’s work just because there’s no more community.

Anyway, if you’re reading this and you actually get this thing, working for whatever the current version of iOS and Xcode and etc. then please post for myself and everyone else.

There’s a whole Lotta games that got mothballed because this never got updated correctly… unfortunately, version 3.x was a completely change and required complete rewrites… in this poor old library was put out to pasture.

Maybe someday someone will revive it… if they do please post here so we can all find it.

RockStar-Programming commented 6 months ago

Hi

The cocos2d-objc/iphone/classic api was a great api, which helped a lot of people getting into making apps for ios devices. Unfortunately I think it would be too much work, with too little benefit, to try to get it to run on modern setups, also, when Apple introduced SpriteKit, it pretty much ment the death of cocos2d-objc.

So, sad to say, my advice to you would be to simply move on.

To clarify. I was for several years responsible for developing and maintaining cocos2d-objc. I also was in charge when v3 was released, and I agree, it was a big mistake to break backwards compatibility, but my hand was kinda forced : ) I never became a big fan of Swift, so today I use SkiaSharp for my "daily 2D needs".

/Birkemose

EricHemingway commented 6 months ago

Birkemose,

I totally hear you, and I’m sure that eventually it will be nearly impossible to get this running… I mean right now Apple is not updating or maintaining OpenGL support so days are numbered for even a possibility.

I actually got it fairly close and was able to launch my game but I kept getting EXC_ACCESS error inside of CCNode due to a call to drawing triangles of all things. What’s interesting is that it actually was able to display the basic game screen, but then it would crash. I’m confident it’s not my code (or COCO2D) since my game never had any intermittent crashes or anything like that and was completely leak checked before I last put it aside… But apple keeps increasing their levels of checks and moving things around… And the new Apple silicone certainly doesn’t help.

At one point a few years ago, I was able to get the entire game running in the simulator after several groups of changes… Unfortunately my PC had to (unexpectedly) get wiped for a completely unrelated reason and I lost all my changes so I thought I would try with the latest version instead. I think that version was around XCode 10 (or maybe 12)… so there’s at least a little hope.

Anyway, I figured if someone out there decided to put in the time for their own game then perhaps they might share their code base so that other developers (like me) can give their games one last breath of life.

My primary purpose for doing so is simply to give a copy of my game to a few new people, and to install it on some unused iPhones for posterity.

In any case, thank you for maintaining the code base for that period of time and for making the effort to move it to 64 bit, even though the new version had been released… my limited success would not have been possible without those changes.

If you can, please leave this issue open in case someone ever does update the code base… So that they can reply, and hopefully I will get notification.

Cheers !

ksjogo commented 2 months ago

Yeah, the v3 switch was unfortunate.

@EricHemingway I have my 'fork' at https://github.com/ksjogo/cocos2d-iphone-classic which seems to be fine in Xcode 15 and is still powering https://apps.apple.com/de/app/frantic-frankfurt/id440522348 in the App Store. (Though that has some extra dodgy libffi code that still luckily works somehow xD). I can even run the MacOS X target.

The EXC_ACCESS issues I had last update (do it around once a year) were related to old deployment targets, update those to 12.4: https://github.com/ksjogo/cocos2d-iphone-classic/commit/1313b116497ade587277e7180e67bbcc05d1bab2

My fork has stripped out most of the external libs though (no physics etc.) as I didn't use them and didn't want to spend time testing/fixing.

EricHemingway commented 2 months ago

Thank you so much for this! I actually bought a new MacBook and returned it because I couldn’t compile my old program… This gives me hope that maybe I will be able to get it working again.

Itried updating the deployment targets in my build but I am must have missed some stuff. Also I use some deprecated APIs but dudn’t get compile errors on those…so maybe I will get lucky.

I’ll try running the vanilla Cocos2d test suite first (then again with Box2d physics tests) to make sure I am on the right track.

Thanks again.