Mono c# vs c++ in opengl game development? [closed] - c++

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
Which of these languages is better for opengl game with primary platform linux?
I would like if you compared them in performance and libraries support.

C++ is a low-level, highly flexible and powerful language. It compiles native code (it's fast) and has a large array of helpful libraries. I would recommend it for any OpenGL project. You may also look into other c-family languages, that share many of the same benefits.
(I sound like an ad)

If you don't know enough about C++ and C# to answer this question yourself then I suggest you go for C#.
In C++ you may get slightly better performance, but only if you have enough experience with it. Otherwise it'll probably end up being slower.
C++ libraries can be easily called from Mono using pInvoke, but Mono libraries cannot be used from C++ (without embedding entire mono in your game).

Library support is about the same, all of the 3d rendering libraries I can think of have .net bindings. If you want lower level libraries(openGL, openAL etc.) OpenTk has bindings for just about everything you need. A quick look at the programming language shootout looks like mono is 1/2 the speed of G++ I would be really surprised if that held in the general case though.

I would say it largely depend on the code to be developed, I mean, the rest of the app. For pro gaming stuff and so on C++ seems to be the stronger choice.
I've used OpenGL + C# to render our version tree (plastic scm) on Linux, Windows, Mac with very good results, but we're not doing a game! :)

Related

What are the compromises with using Xojo for cross platform development? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
Much of the cross-platform development topics on SO seems to be 6 to 9 years old. Anyone have recent experience with Xojo? Can it be used to quickly deploy UI on top of C++ generated linked libraries on macOS and Windows? How does that work on iOS? What are the limitations of this tool?
I have no experience with iOS deployment with Xojo but used Xojo for quite a few x-platform projects (Mac/Win/Linux) where I also access self-written C code, in iBored for instance.
Overall, I like Xojo better than Qt or Java for designing and deploying apps with a GUI. Xojo adheres closer to the UI specifics, IMHO. You'll have a harder time finding help, however, since the community is rather small.
To access C++ code you need to write yourself a C-level layer because Xojo does not provide an easy way to link to and use C++ objects. But interfacing plain function in any library (.dylib, .dll, .so) is super easy, and mainly involves writing the Xojo equivalent of a function declaration, and possibly add some structure definitions as well. You can pass all the simple datatypes (Int in all sizes, float, double, C and Pascal strings, even access raw memory via pointers) but will have to provide accessor functions for more complex data structures (array, dicts etc.) as Xojo's object manangement does not mix with that of C++ or other runtimes.
Xojo has been around for nearly 20 years now (formerly known as REALbasic) and is decent enough to rely on it.
OTOH, Xojo is closed source, and the company is rather slow (or even unable / unwilling) to fix issues - and you can't fix them yourselves, obviously. I had more than one case where I figured out how to fix a bug in their binary code, and they wanted to prohibit me from doing that, threatening to invalidate my license, while also not committing to providing a fix. If that worries you, I advise you to stay away from Xojo.

GPU programming on Clojure? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 1 year ago.
Improve this question
I'm wondering what if any GPU integration libraries exist for Clojure?
I've seen examples of this that involve hand-rolling OpenCL code, but I'm specifically I'm looking for something similar to Anacoda accelerate, which translates Numpy Python expressions to CUDA code relatively seamlessly.
I'm open to either OpenCL or Cuda approaches.
here is a project that recently started on github https://github.com/JulesGosnell/clumatra. Its seems more like an experiment and its quite impressive!
There is a Google Summer of Code project proposal to add a GPU matrix implementation to core.matrix:
http://dev.clojure.org/display/community/Project+Ideas
Once completed, this project would allow large vector/matrix expressions to be optimised and executed on GPUs.
Disclaimer: I'm a possible mentor for this project.
clojureCL was released a few months after this question was posted. It looks like it offers a more idiomatic interpretation of the standard interface, but it is not a tool that would transform Clojure math / vector operations into OpenCL operations (I think that that is what the OP is looking for?)
[ClojureCL] brings a lot of power, but do not expect it to be an easy ride if you’ve never programmed anything on the GPU or embedded devices. With ClojureCL, it is not [as] difficult as in C (OpenCL Hello World in C is a hundred lines of source code, in ClojureCL it’s only a few), ...
The good news is that you can use any OpenCL book to learn ClojureCL, and we even provide ClojureCL code for the examples used in the OpenCL in Action book.
An old topic but now we have clojurecuda, which is a wrapper on JCuda!
It won't give you automagic speedup on things but at least Neanderthal is a higher level library for linear algebra.

Looking for a C++ GUI library in which you can design fancy GUIs (like for games), [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
Looking for a C++ GUI library in which you can design fancy GUIs (like for games),
something in which you can make something beautiful (rounded buttons with rollover effects, embed beautiful background graphics, cool and colorful scrollbars and progress bars, etc.)
It needs to be open source & allowed to be used in proprietary software. Should be also cross-platform, and shouldn´t need to be linked to thousands of libraries or days to get the compiler configured to run even for small samples.
I hope I´m not asking too much
I tried CEGUI and I wasn´t convinced — it was tricky and I compiled the samples but they didn´t run on some computers.
QuickGUI seems to need OGRE (tell me if I´m wrong), which I don´t want to learn now.
Navi needs GeckoRuntime, which ist too big for my project!
wxWidgets doesn´t seem to be focused on design but on functionality (tell me if I´m wrong)
Try GTK+ or Qt, although it's more of a framework than a library. Both are widely used GUI toolkits. Hope that helps.
I believe libRocket is designed with game user interfaces in mind.
http://www.librocket.com/
Its based on HTML/CSS which, in my opinion, is an excellent way to define a user interface.
You might want to take a look at Qt. You can probably do much of what you are asking for using Qt. More specifically take a look at these features in Qt
CSS Customizations of Qt Widgets
QtOpenGL for 3D graphics ( if you need 3D graphics and need to embed Qt Widgets into a 3D environment).
QGraphicsView for combining multiple widgets in different ways
When you download Qt, it comes with a set of demos. You can take a look at these demos and other examples and re-use the concepts of the parts you like.
I have worked with Qt quite a bit and I can confidently say that you can achieve just about anything you can imagine.
GuiChan? http://guichan.sourceforge.net/wiki/index.php/Features
I haven't personally used it yet, but will intend to use it on a game I'm currently working on.
Scaleform is a commerical solution.
http://www.scaleform.com/products/clik
Many people tell me good things about it.

C/C++ J2ME interpreter [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
do anyone know some C or C++ interpreter for cell phones? I have Nokia 5310 and found some Basic interpreter (CellBasic) and want to develop in C or C++ on the go. Or, does anybody knows Scheme J2ME intepreter?
You don't want to do a C interpreter in J2ME unless you first compile it to bytecode elsewhere: you'd waste a lot of space with the parser.
If you're interested, I have my own interpreter that's used by various people and companies called Hecl, at http://www.hecl.org
It's fairly simple, but has commands to access a variety of things, and is under active development, with a nice user community.
A lot of Symbian uses JIT. Most of Sony Ericsson devices uses AOT. Lots of Nokia S40 devices uses Jazelle. JIT, AOT and Jazzele have some advantages and disadvantages but I'm sure that they're much faster than plain interpreter (like Nokia 3120's JVM).
However, there is one performance issue. There are several ways to run code in Java, e.g.:
interpreter (it can use AST)
generating bytecode + special ClassLoader
generating bytecode and creating special jarfile
using JNI
Way no 1 is possible but slow.
Way no 3 can be fast but it can be really uncomfortable and difficult to implement without library like BCEL or ASM. (I can imaginate comfortable implementation running on Sony Ericsson Java Plarform 8.5+ devices that offers to install generated app and then launches the app. Note that JP 8.5 currently support two phones: Yari and Aino.)
Ways no 2 and 4 are not feasible with J2ME CLDC.
j2me is notoriously slow. I can only shiver when thinking how slow it would get if it had to interpret another language. ;^)

Open Source & Cross Platform Multiplayer/Networking Libraries? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed 8 years ago.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Improve this question
While raknet seems fairly interesting and really appealing from a feature-point of view, its licensing terms seem to be possibly troublesome for GPL'ed projects that may be leveraged commercially, something which is explicitly forbidden by the terms of the creative commons license.
While there's also opentnl, it doesn't seem to be as actively maintained anymore nowadays, in fact downloading the latest stable tarball even fails during compilation because it doesn't seem to support gcc >= 3.0 (?)
Of course, there's still also enet, but this one cannot be really compared to the abstract features that are supported by raknet/opentnl.
So, apart from any non-trivial dependencies such as ACE, Boost or Poco, are there any viable alternatives for embedding a fairly compact, well-maintained UDP-networking library?
Thanks
The wiki of Ogre3D provides a list of networking libraries and a short description for them.
Though this answer comes late to the party, I'm using OpenTNL for my game, Bitfighter, and I really like it. I use it on OS X, Windows, and Linux without a hitch. True, it's not maintained by its creator, but when I get the time, I'm going to create a new SourceForge project for it so people have a place to post their patches. It's stable and (fairly) well documented, so I would recommend giving it another look.
I have been looking for something very similar, but to no avail. So, I decided to create my own C++ Networking Library, at the time of this writing it isn't complete, but will be very soon. I will keep you up to date if your interested in trying it out. It's features so far are TCP/UDP, IPv4, IPv6 Async/Sync and multicasting. If there are any other features you have in mind that should be implemented, just let me know :)
Unfortunately network programming tends to be non-trivial.
Said that you would be advised to get aquainted with the network programming facilities from either Boost or ACE, as both are mature libraries that have been successfully employed in many applications.
I would also suggest to read C++ Network Programming: Mastering Complexity Using ACE and Patterns and C++ Network Programming: Systematic Reuse with ACE and Frameworks