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

I also think 16k is too big.
You could write Starcraft in that size.

A variation is to make a seperation between assets and code, where
16kb can be used for Graphics and sounds, but no sourcecode. (-> i mean bytecode here of course)
(Although someone would write a tricky compiler then, using the art-assets as scriptlanguage, or something like that)

8kb might be a good compromize between clean programming and still hovering limitations.
Yet leaving enough room to make a propper full game. (menus, helptext, and especially soundfx, wich often are missing from the 4k games)


Another idea for a contest limitation: Predefined artwork.
Where there can only be the provided artwork be used, with a limit of the dynamic objects drawn or so.
It could be like rendering the gameworld only with specific tiles from a free game.

Or putting a limitation of using only 3 specific colors for the game.

But these contest have been done before I suppose.

About LWJGL16k, do keep in mind that OpenGL, OpenAL and OpenCL are pretty low level libraries, it takes alot more code to do something that would only take a handful of lines with a higher level library like Java2D. Therefore a chunk of the 16kb will likely go to framework code. Having said that there would still be plenty of space to create games.

But why even limit such a contest to LWJGL? Especially since you’d have to either use AWT or do the boring bits like Font Rendering, Texture Loading, Model loading, etc manually. You could just allow all standard Java open source libraries (JMonkey, Slick, jPCT, LibGDX, etc) but limit the actual game code and assets to 16kb.

I don’t know how this works in java size coding but in C/C++ size coding you can do pretty much with 4k when you can use shaders. When you additionally have the java class libraries there should be very few limits. If file shrinking is as good as in C/C++ size coding, you will probably be able to do a 96k game like kkrieger with less than 16k for the java executable.

I want to limit it to LWJGL just to annoy gouessej :slight_smile: But also, because LWJGL works.

To those naysayers - yar boo sucks. Go back to not writing games. 16kb is still a major restriction. So what if some smartypants writes his entire game in a shader? It’ll maybe look quite impressive but it’ll probably play like shit.

So I think maybe I’ll get the LWJGL16k thing working in earnest this time and see what gradually floats to the top. Think of it as Java4k without all the minging code and having to use Java2D. (Yuk!)

Deployment shall be thusly: the commandline of your game will be java -Djava.library.path=. -cp lwjgl.jar;lwjgl_util.jar;jinput.jar;.jar and the size of .jar shall be 16384 bytes or less and lwjgl.jar shall be v2.8.2. We’ll worry about judging, judges, winners and prizes some other time and place.

Cas :slight_smile:

If there are enough people willing to join, I will finish my JGO/applet code (it works, there simply is no upload-functionality…) I can customize it to something like:

[lwjgl16k]filename.jar[/lwjgl16k]

Trying to think up contest-like things in the spirit of Cas’s call-to-arms. Could something like the following work?

A single candidate is picked at random from a list of eager JGO volunteers. At noon on Friday the candidate is given their game development challenge, something suitably vague like “Space Invaders but more bouncy” or “Grand Theft Auto without the cars”. They then have ten days (until the Monday two weekends later) to produce some sort of game using whatever Java-based technology they like. They can then choose the theme for the next candidate’s challenge which begins the following Friday.

My thinking is that by putting people in the spotlight, they have a strong incentive to produce results. Ten days should be long enough to complete a respectable game/prototype/whatever without sinking too much time into it. And because the ‘contest’ just rolls on to the next candidate, it’s not too painful if one game turns out to be a complete disaster.

Join the queue here to tell me how bad this idea is. :wink:
Simon

In my opinion, the real reason that a 16k comp (using any tech, lwgl or otherwise) is that the barrier for entry is so much higher.

  1. people will expect much nicer graphics, sound effects, story and game play
  2. if mandating the use of a graphics library, i.e. lwgl, then we participants need to know the library.
  3. games in 16k will be that more complex to achieve point 1. leading to much more development time thus time commitment.
  4. by natural extension of point 3, there will be many more bugs that will need to be hunted down.
  5. One of the big demotivators, well at least for me, would be. well if markus and his ilk :stuck_out_tongue: can make left for dead, miners etc in 4k… what manner of uber game can they make in 16k… how am i even ment to remotely compete?

I think i agree with the sentiment that we are mostly “playing” with making games and not really willing to accept the sacrifices, both code quality and real life, to complete a “proper” game. I know I find enjoyment in the 4k comp as my poor game designing/ graphics / sound talent are adequate so i do not feel inferior and can actually compete a game! I am twisted as well in that i love finding ways to fit more content in the 4k limit.

But this is just my opinion. I truly hope that a lwgl16k comp takes off. It is good for java and this forums!

I remember that one, as I wrote Sharpshooter16k for it. Can I still enter it ;D

Hmm, I’m really not sure that applets are a good idea - they add a serious amount of extra instability and require extra coding and care in certain places that I’d rather not have to worry about, myself.
Also, I’d just like to leave the theme wide open and the dates fixed and see what comes out. No predefined sprites or anything, no MonkeyEngines, just LWJGL and Java 5.0+ and that commandline and see what comes out of it. 16kb may sound like a lot to fill but if you’ve got 1 month to fill it you’re still going to be pretty limited.

@moogie -

  1. Good. Though obviously in 16kb you’re still not exactly going to set the world alight. And I think I may have insinuated that the game is everything - not the graphics and sound.
  2. You really only need to know OpenGL. Maybe this is your chance to learn it and we can all swap hints and tips. OpenGL isn’t a whole lot harder than Java2D. In fact I find it easier to achieve the effects I want consistently.
  3. Or less. Depends on how much time you spend in 4kb just optimising bytecode.
  4. And you may catch a cold tomorrow, but let’s not worry about that until it happens, eh
  5. You won’t know until you try

Less negativity please! This thread is exasperating.

Cas :slight_smile:

Nice talk by Braid’s programmer related to OP :slight_smile: http://the-witness.net/news/2011/06/how-to-program-independent-games/

Awesome talk. Everyone should listen to it.

Cas :slight_smile:

Thanks for the link! Here’s a similar one by Rich Hickey, the creator of Clojure. He focuses on the difference between simple and easy and promotes focus on results rather than the code.

It’s a great listen, thanks for the link!

I’m having a hard time with the 3500 lines of code/year example, though. Sure, you need to be 10x more efficient than that, but most of it comes from simply not having burdensome process, the reduced communication overhead that comes with a small team, and increased motivation. In other words, things not directly related to the code. It’s hardly plausible that the 3500 line corporate figure arises simply from gratuitous over-engineering :slight_smile:

In large coporate projects, implementing and updating and maintaining businesslogic, its natural to have a low number
of codelines written.

The main work is put into a failsave update and evolution of these large code-bases. A game on the other hand
is a one purpose product, wich is much faster to erect.
Im shure updates on the WoW serversoftware also take painstakinly slow, because the codebase has to be kept maintainable
over years for many different eyes.

That’s net lines though, not gross. So if you spend January writing a new system that’s 2k lines big, then a few months fixing bugs and adding features you might still only be on 2k lines for the whole year. Remove a subsystem and replace it with something new and you might have ‘written’ negative lines of code.

Lines of code is a horrible code metric, but managers like it because it’s easy to measure and easy to understand, even though it’s next to useless.

If that’s indeed what the 3500 represents, then it’s an apples and oranges comparison. “Hey, if you’re not writing new code, you add less lines of code!” …

No argument from me. People start gaming metrics (of any kind, really) right away, and from a gameplay point of view, they tend to be as abuse-proof as an elder scrolls game :smiley:

The “Braid” developer is also talking about a different environment.
As fas as I understood it, he is writing the code alone.

But when there is more than 2 developers, the problems with coordination kick in.
There the code needs to be more organized and modular than in a single-Dev scenario.
Especially if the programmers join later or have to take over the codebase.

So the first thing is to think about
-How many developers are working on that, (and how close do they sit/communicate together)
-How much is this code to be updated and maintained in the future.

From there you should start to decide on the programmingstyle.

Eh? libgdx has a 2D scene graph, you can add images and move them around without making any draw calls yourself.

HTML5 loaded first, then Java. Flash didn’t load at all, because I have a blocker. :slight_smile: Disabling the blocker and refreshing the page though, and Java loads first every time. I guess it is just JVM start up time? Shift refresh doesn’t change anything, but then maybe that doesn’t touch anything cached for Java.

Coordination is a whole different game in itself. That’s why there is a role called “manager” in large teams.

However, nobody in here needs to worry about managers or coordination. You’re all nearly working on your own. You don’t honestly need to work with anyone else. So stop trying to dodge the issue :slight_smile: Make some games! Go join in the lwjgl16k competition. It should be an eye-opener.

Cas :slight_smile: