I feel like I should know this but seems like no
-
How can i connect imagine a Qt interface(C++) with a logic in java. I feel like I've should know this already but I don't, I know there are API but I don't want to do it,
More context:
They told me to write an aplication, game such as 4 connect, battleship or that kind of games, so I've thought to make the "snakes and ladders", i knew how i could do the 2 thinks separately but I don't know how to connect the frontend with backend, even tho I knew the games should works with threads. So I don't know if I could do it with the interface in Qt, because the main porpouse of the practice is to work with threads -
-
[email protected]replied to [email protected] last edited by
A socket, pipe, or shared memory region?
A network connection to localhost?
Running the backend as a child process of the frontend, and using standard io?
-
[email protected]replied to [email protected] last edited by
Think about why you're wanting to do this. Is there a material benefit you'll get from splitting your codebase like so? Enough to overcome the fact that you've split your codebase into two very different languages?
When you're going between languages like this, you either need some kind of communication protocol (e.g. JRPC, TCP, or maybe something home cooked) or you need a stable ABI to allow the programs to talk to each other directly.
My point is, you probably don't want to do what you're trying to do. Unless you have a really good reason, pick one language and stick with it.
-
[email protected]replied to [email protected] last edited by
i second the comment that you need to consider why you want to do this. You generally need a pretty good reason to split your codebase into multiple languages.
As far as actually doing it, you have a ton of different options, some of which have been mentioned here. Some i can think of off the top of my head:
- create a library (dll or so file or the like)
- set up a web server and use communication protocols (either web socket or rest API or the like)
- use a 3rd party communication/messaging framework like MQ or kafka or something
- create your own method of communication. Something like reading and writing to a file on disk, or a database and acting on the information plopped in
basically every approach is going to require you to come up with some sort of API that the two work together through, though, an API in the generic sense is basically a shared contract two disconnected pieces of code use to communicate.
-
[email protected]replied to [email protected] last edited by
Does the frontend need to be written in C++, or can you write the frontend in java too (in a JFrame from the javax.swing package)?
-
[email protected]replied to [email protected] last edited by
or if you really wanted qt, using java qt bindings: https://github.com/OmixVisualization/qtjambi
-
[email protected]replied to [email protected] last edited by
Making things loosely coupled like this has a funny habit of making games harder to develop. If you don't NEED the front and backend to be separate components then go for a tightly coupled setup where the state lives in the frontend.
-
[email protected]replied to [email protected] last edited by
Also, a funny side effect of game programming is that loosely coupled components like this can make development harder. If it doesn't need to be split like this, you probably shouldn't.
-
[email protected]replied to [email protected] last edited by
In class i've learnt PyQT, that is for python, and the main language for all practically is Java, but I want to do it in C++, to learn C++ for my final project, and the QT main language is C++