Be honest

Be honest.

Is there anything wrong with using java to make games today?

nothing wrong but its alot of work though since you have to code everything

what are you using? applet

libgdx.

You're ok.

>Look mom I am a game developer

Why use it over C++ tho

Maybe a sider scroller or something

It'd be easier if you used Unity/Unreal and it would be more optimized if you used C++/Rust instead if you do something really unconventional and need low level stuff.

Java is meh, could be worse but if you are doing something more than angry birds, go for Unity.

yeah but if you want it to be fast you'll basically be ignoring all of the "cool" object-oriented "abstractions"

If you want to make games use c/c++/rust and avoid "game engines" they're all a waste of time

Bad, use JOGL.

The ram limit, there was a game written in it that had to swap out features because they were running out of ram

The real waste of time is implementing all kinds of managers and tools on your own just to save these dozen MBs. There is no point spending days on implementing them(and mostly likely lose interest in the project like 99% of projects here) to make simple game in 2 days.

If you want to make games, make games, not game engines.

It's probably because they weren't using GPU memory effectively.

Why are they a waste of time? For the scope of 90% of games you could make them in an already existing engine

Language doesn't matter, you can create a decent game in just about anything.

Why would you use Java at all, let alone for games.

Create a decent game in brainfuck

Memes aside, Java is nice because it's simple, well supported and quite universal.
I had fun writing game serwers in Java8 from scratch.
But I got cancer once I had to use some libraries that heavily use reflections, adnotations, tons of useless classes and were written 5 years ago.

Java 6 was the darkest age of programming I think, it's COBOL on steroids. Java 8 at least got some modern programming features.

try-with-resources introduced in 7 was pretty great.

Not op, but I am looking for a serious answer to this question. How do I ensure that it will be compatible across all platforms without doing something hacky in code?

I really like c++ as a language, but I don't really see the benefits for small hobby project games desu

>try-with-resources
Is that like C#'s using? RAM usage became way better once I started using it, probably goes for Java as well.

THIS

Yep. I like that it closes resources from the bottom-up.

And it closes them even if an uncaught exception happened.

RAII is better though.
I like functional features in new Java though.

C++ is cross platform.
But if you have to ask them you surely will fall into some platform specific pitfall.
Unity is for people like you.

>RAII
explain for a brainlet

Java has performance issues

unity is bloated as fuck with horrible performance

In languages like C or Rust you can predict when objects will be deleted(their destructor is called when they run out of scope) so you can simply release these resources (files, data on heap, sockets etc) when variable representing them on stack goes out of scope.
In Java object deletion is not deterministic. It happens long after it goes out of scope, when garbage collector find it. In theory there is a callback for that but it's antipattern and doesn't really solve the problem. So to emulate destruction that is called on return/exception/whatever they need syntactic sugar like try-with-resources.

It's for small cross platform games.
You don't need everything to take 512KB of ram, your time is more valuable than that.

>C
I mean C++
But IIRC you can make RAII in C too, but it's not in standard.

How does a non-object-oriented language like C handle object deletion better than an actual object-oriented language like Java?

Spotting cool shapes in the source could be a game

It's not about objects per se, it's about executing a function when a variable goes out of scope to free data that isn't on stack, aka destructor.
You could declare function like that for any variable in C IIRC.

Found it.
It's __attribute__ cleanup(func), and it's non standard GCC thing.
Of course it makes little sense to use RAII in non object oriented using nonstandard features, but it's a cool thing to know.