Still hardly any games, why entity systems suck, and why 4k is good

It’s about defining an API. I define what you access in my API. We have a contract. Anything I don’t provide to you is none of your damned business and I am free to change without breaking you. There are plenty of scenarios where this makes sense. Everything could be public, but then I would have to assume any change I make will break all clients, and that is shit. If you want to access something that isn’t exposed, you aren’t using the API as intended and it is supposed to be a PITA. Blame the poorly designed API.

Don’t listen to Cas on this; he’s forgotten what it’s like to work with competent-but-imperfect colleagues - he only knows “useless” and “expert”.

Encapsulation is the single best thing in language design since the invention of ARM assembler.

It’s clear you haven’t really worked on a large codebase with a big team of typical software engineers. You cannot rely on other engineers doing the right thing and in fact have to work VERY hard just stop them from doing idiotic things.
[/quote]
You will not win that argument. You aren’t putting it strongly enough (it’s too easy to say:“well, work with better people”)

The way to go is:

“It’s clear you haven’t reallyh worked on a large codebase where you yourself fscked-up your own code, because you misinterpreted what you’d previously written, or abused it in nice-sounding-but-actually-quite-stupid ways”.

C programmers know this innately: there is no code so simple that an expert coder cannot shoot themself in the head. One of the best things that programming languages can do is protect us from ourselves.

^ this; I’m kind of surprised this isn’t the common understanding and am at times kind of amazed at some of the discussion in this thread and forums in general. Not to be disparaging per se, but it’s like CS 101 hasn’t sunk in at all. Interface based programming is one of the industries best practices and is core to API / framework creation in Java. It’s central to my efforts with component architecture development and separating things modularly. I think interface based programming is likely the most important best practice that can be objectively discussed as such without a question of whom it might benefit.

Still going to try and post a bit of a response to various replies in this thread likely on Sat when I’m on a plane again.

I fully understand the need to help people understand the usage of APIs by how you expose them. I just feel that most of the time it is a major pain in the arse deciding, when you aren’t making a library for the use of others but instead writing end-code, or if you’re the recipient of such a library, you simply can’t use the code you have executing in your own damned program the way you want to have it executing if you don’t have the source to hand.

I think there must be a better way.

Cas :slight_smile:

And that’s how all new languages are born…

You’re all still wasting time! Get on with the frickin games damn you! :slight_smile:

Cheers,

Kev

I remind you that Wurm Online used JOGL until 2011. JOGL success stories are more numerous outside gaming, for example Playviz.

Oh all bloody right Kev! So far I’ve used 8000 of my 16384 bytes and I’ve somehow managed to squeeze the entire sprite engine and effects engine and FM synth game framework from Puppygames into it. Text rendering and particle effects next. No actual, ahem, game yet :slight_smile:

Cas :slight_smile:

I gave up on Wurm Online years ago because the rendering was so buggy and glitched… but that’s another story.

Cas :slight_smile:

Does any game use it?

I don’t know really that any game really needs it.

Cas :slight_smile:

None that I’m aware of, but then I’m not sure how many people know you can use it as other than a Swing platform.

Try reading it in the context of what you (and others just above) had written about deployment! It basically does what you mentioned, with a couple of nice extras thrown in. It’s not particularly heavyweight in the context of a desktop installed game.

Is it possible to use it to make something as simple as Java Web Start for the final users?

I think you’re missing the point there! It’s about making native installers and launchers so that the app / game behaves like any non-Java app / game, including things like desktop shortcuts / menu integration, as well as choice of VM (potentially included) or system one. It could be simpler for end users because it’s not some completely different mysterious process peculiar to Java.

One thing as you’re a Linux user, like me. The Windows and Mac options are standard to the platform. The Linux installer is currently a self-installing executable, which works very well and also allows installation into the user’s home directory, but automatic .deb / .rpm creation is unfortunately lacking - it’s a manual job, though far easier given the launcher.

.deb and .rpm are the worst possible way to distribute a game. Games on unix will almost always be installed in user space. Not system wide. Linux package management handles this very poorly.

Most GNU Linux users have a root access and can use KPackage or any other GUI front end to install RPM and DEB. I don’t understand your objection.

Wish I’d never brought that up! ::slight_smile:

Installation in user space can sometimes be useful, and as I mentioned the NetBeans Linux installer works great. In fact, it can install in user or system space, depending on whether it’s run as root or not. It’s not like all the dependency stuff with RPM or DEB is usually that useful for us.

So what if you have root? I don’t want to install games globally. Period. Packages don’t let you do that. Games are not part of the system so they don’t and shouldn’t be distributed as if they are part of the system (that is what these packages do, install things in places like /usr/bin etc).

Also no. A lot of us don’t have root, for example at work i don’t. When i am admin on a block of computers i don’t give everyone admin. One of the criticisms of windows is you always need admin… I am allowed to install games at work if they are not distributed with stupid package management crap. Like say the id games.

Also do you have a Slackware package? Just stick with a simple installer or a archive. Done and Done. Why make it complicated? Why make it so specific. This is not how windows does user space application installs.

Agreed about the package management issues on Linux but there are some installers that work reasonably well without admin permissions, however its far from ideal.

As much as I dislike Macs, I think their application bundles are probably one of the nicest solutions for downloadable applications. Easy as dragging and dropping. Also since the application and its files are all self contained inside the application bundle (everything inside one folder) it keeps the system really clean unlike the now retarded methods used by Windows and Linux where applications files are all over the place.