Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411283 Posts in 69325 Topics- by 58380 Members - Latest Member: bob1029

March 29, 2024, 12:56:00 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Any engine or framework that is fully focused on cross-platform support?
Pages: [1]
Print
Author Topic: Any engine or framework that is fully focused on cross-platform support?  (Read 2038 times)
Pineapple
Level 10
*****

~♪


View Profile WWW
« on: September 13, 2021, 05:11:05 AM »

I know this will be an odd question. Maybe it's too much to ask for. I certainly haven't succeeded in finding something like this on my own.

I've been sort of tinkering on making some small prototype of this for myself, but even a small prototype is a lot of work. It would be really nice if I could find something like this already out there. Even the start of something like this that I can build upon instead of starting from scratch. It can't hurt to ask, right?

I want to be able to write a game's logic and rendering once, and then I want it to run anywhere. I want it to run on Windows, MacOS, and Linux. I want it to run on Android and iPhones and on a Raspberry Pi. I want it to run in a web browser. I want it to run on my PS Vita and my PSP and, with the rendering code tweaked a bit, on my 3DS and maybe even my regular DS. I know it's a weird hill to die on, but I just really want to have a tool that does this.

I need it to be reasonably performant. I don't need it to be wildly complicated. I don't really care that much what language the game logic has to be written in, as long as it runs fast. If I can render in 2D with sprites and tilemaps and geometric primitives, play sound effects and music, get input from keys/buttons and mice and sticks and touchscreens, and run at native or near-native speeds, then that's enough. What I would need is for the engine or framework to have rendering, audio, and input interfaces that are simple and abstract enough to work with anything.

I know about homebrew running on emulators - but I don't want to be stuck with the lowest common denominator. The lowest screen resolution, the lowest audio quality, the simplest inputs. I especially want to be able to make a game that can use a full mouse and keyboard interface when it's available, use a touchscreen when it's available, and fall back to just a small set of buttons only on devices that are themselves limited to that.

I know about Pico-8 and ZZT and MegaZeux - but they are riddled with limitations, whether deliberately chosen or needed at the time they came out, and I haven't yet found a tool of this kind that would work for me.

I know about SDL, and in fact that's what I've been using in my efforts at a prototype - but there is a massive amount of work to go from a low-level input and output library to something you can actually make playable games with.

So... does anyone know of anything like this?
« Last Edit: September 13, 2021, 05:21:40 AM by Pineapple » Logged
InfiniteStateMachine
Level 10
*****



View Profile
« Reply #1 on: September 13, 2021, 05:18:34 PM »

Vita and nintendo DS makes this a bit harder. You could maybe take something like Haxe with a multi-target game framework and then write the backends for vita/3ds yourself.

How would you write the vita backend though? Is there some sort of homebrew path you plan to take?
Logged

sambloom
Level 0
**



View Profile
« Reply #2 on: September 14, 2021, 04:00:18 AM »

I'd recommend the MonoGame framework for cross-platform gamedev in C# and .NET. But what you ask for requires a lot more low level knowledge because of the optimization requirement and also a bunch of extra code to support the stuff usually .NET would already support you with (like reading inputs, saving and reading files, etc...). It also requires a lot of knowledge architecturally about each platform. The big bois out there with the resources to maintain these things while also fixing bugs and making sure it supports newer platforms would definitely deem regular DS and PSP support way too niche to actually justify resources to support.

But if you want console support, Iphone, Android, Mac and Linux then MonoGame would suit you
Logged
Murzy
Level 0
**



View Profile
« Reply #3 on: September 14, 2021, 12:32:22 PM »

While it doesn't tick all of your boxes, GameMaker: Studio has quite a lot of exports and is a quick tool for prototyping once you get your head around the tool.

From your list, GM:S can do:
  • Windows
  • MacOS
  • Linux(Ubuntu)
  • Switch/Xbox/PS
  • Mobile
  • HTML5
  • PS Vita (I think? This might've been supported in the older 1.4, when now the tool runs in the 2.3 version. PS Vita is dead I think :D)
  • There is a RPi export of some sorts, but I have no further info about that

GM:S doesn't have fancy 3D support like other bigger multiplatform tools have, but that's one of the reasons why I'd say that it is also quite performant when you compare it to giants like Unity. Of course there are some limitations, and the proprietary programming language that the tool uses is not perfect, but it has been my tool of choice for hobby/professional gamedev for 10+ years Smiley
« Last Edit: September 14, 2021, 12:38:41 PM by Murzy » Logged
J-Snake
Level 10
*****


A fool with a tool is still a fool.


View Profile WWW
« Reply #4 on: October 01, 2021, 03:39:41 PM »

From your requirements SDL2 might be the best match. Because it is the minimal set of functionality that satisfies your requirements (or comes close to do so). You want it to be rather minimal to ensure the best possible reliability. The less stuff you depend on (that you don't need), the bigger your chance of being in control.

I know about SDL, and in fact that's what I've been using in my efforts at a prototype - but there is a massive amount of work to go from a low-level input and output library to something you can actually make playable games with.
Not really, all you initially need is a reasonable effort to wrap SDL just for gameloop, input, sprite rendering, and audio. Those are the main components that will get you started to go into any direction. The rest of the engine- or game-code is then rather game specific. If the design of this low-level architecture is posing a big hurdle to you, then you aren't ready for serious game-programming anyway.
Logged

Independent game developer with an elaborate focus on interesting gameplay, rewarding depth of play and technical quality.<br /><br />Trap Them: http://store.steampowered.com/app/375930
qMopey
Level 6
*


View Profile WWW
« Reply #5 on: October 05, 2021, 12:16:16 AM »

SDL2 is the most cross-platform non-engine and framework-y thing available that is useful for games, at least that I know of. Though it is lacking in features, and only does platform abstraction. I've been working on something called Cute Framework for a number of years, and while I wouldn't recommend using it (as it's not yet hit first release), I'm slowly starting to tell people it exists. If you're curious you can take a peak. It will run anywhere SDL2 does, and provides some higher level things games would like in a similar style to SDL2's api, like cross platform shaders, networking, serialization, ECS, data structures, and more.

I'll be talking about Cute Framework for the second time in a row at this years Handmade Seattle conference in Day 2: https://www.handmade-seattle.com/

https://github.com/RandyGaul/cute_framework
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic