i lost a bunch of data by plugging a flash drive into a mac. it didn't recognize the filesystem and decided to format for mac.

Ouch!! I take back what I said, you probably hate it more than me I hate it for the quality/content per price ratio: a verrrryyyy tiny fraction. It might look pretty, but the only thing it's useful for is web browsing and documents.What file system did you have on the flash drive?

I can't stand the transparency! In fact I'm not really all that keen on how the whole windowy paradigm has gone. I think the Amiga got it right with Screens. They were a great idea and really well executed.

I'm in a similar boat with Cas here. I don't hate all modern OSes..they are all equally "meh". There's been some cool stuff over the years in research that (for some strange reason) haven't made in into consumer level products. All the fanboy-ism around this or that really confuses me.

However, I have to admit that when I first used NextSTEP (around '88)...I was wowed. Never had an Amiga.

Note: OS-X is mach based, not linux. So it's closer to various BSD flavor unix-a-likes.

1. How long exactly demo version of PuppyGames can be played?2. Did you use lwjgl on your AlienFlux? it just look different from another games.3. Is it good idea to treat Texture class as Image class? so I can put something like TextureFactory class that will pass each Texture needed by all entities and do active rendering.4. What is your approach in calculating dx and dy of your bullet when move diagonal (given by mouse cursor position, like Ultratron)5. what is kind of music you hear when coding? heavy metal rock?

1. How long exactly demo version of PuppyGames can be played?2. Did you use lwjgl on your AlienFlux? it just look different from another games.3. Is it good idea to treat Texture class as Image class? so I can put something like TextureFactory class that will pass each Texture needed by all entities and do active rendering.4. What is your approach in calculating dx and dy of your bullet when move diagonal (given by mouse cursor position, like Ultratron)5. what is kind of music you hear when coding? heavy metal rock?

Again? Did I miss one?1. Revenge can be played as long as you like, but only up till the end of the Moon. The other games randomly choose how long they can be played for in various ways (max level, max time, max games limits).2. Yes, but that was our first game, and we hadn't settled on a style.3. No idea A Texture is a GL concept; an Image is a general concept.4. It varies - sometimes I'll use Bresenham's line scanning algorithm, sometimes just plain old floats.5. Now there's a good question Revenge of the Titans was coded extensively to:Nine Inch NailsLed ZeppelinDr Phibes and the House Of Wax EquationsFaith No MoreDr Dooomand tons of miscellaneous stuff

OS X started using the Mach Kernel from the NeXTSTEP project, which basically a dumbed down OpenBSD.

Bzzzzt! Wrong answer! Thank you for playing! My NeXTSTEP box was my main dev machine from 1989-1998, even though I had more powerful boxes. Afterwards it move to a secondary role until roughly 1999-2000. In that entire time I had exactly one OS crash, which was due to me setting an invalid parameter. I've never had an OS/hardware pair that reliable. The "cool" thing about it in 1988 was the fact that it is a microkernel, so hot deployment of kernel level software and a crash in ring-0 code doesn't bring the whole OS down. Not that I'm in the microkernel rule, monolithic kernels suck camp. Hybrid solutions are the best solution IHMO. Beyond the kernel level there is a long list of cool features that made it a very productive machine, esp for rapid prototyping.

As for it being a "dummied" down version of OpenBSD, that would be a neat trick, since it wasn't released for another 8 years. If fact (if memory serves, too lazy to check wikipedia), no free version of BSD exisited at the time. Also, BSD is the poster child of monolithic kernels. And yeah, OS X is derived from NeXTSTEP, but what was cool is '88 is "meh" in 2001.

Again? Did I miss one?1. Revenge can be played as long as you like, but only up till the end of the Moon. The other games randomly choose how long they can be played for in various ways (max level, max time, max games limits).2. Yes, but that was our first game, and we hadn't settled on a style.3. No idea A Texture is a GL concept; an Image is a general concept.4. It varies - sometimes I'll use Bresenham's line scanning algorithm, sometimes just plain old floats.5. Now there's a good question Revenge of the Titans was coded extensively to:Nine Inch NailsLed ZeppelinDr Phibes and the House Of Wax EquationsFaith No MoreDr Dooomand tons of miscellaneous stuff

Cas

no you didn't. I meant this is my second session on asking you 1. because yesterday I can't play any level (even lv1) of Titan Attack.3. I meant to treat it as object, pass it from one class to another class. I have a class that will load texture and give it to each entities so I dont need to load same texture for different entities. Honestly I'm little confused on how do rendering in LWJGL based style, should I draw everthing on game main class or what? 4. thanks for the info.5. those're cool

There's a random flag also set at install time, which says "cripple the game completely when the demo times out". 50% of people get this. The rest will be allowed to play 1 game before the game exits (basically annoying). I haven't checked the stats lately to see which sells better at the moment, it's probably changed over the years as people's expectations drift due to web competition and so on.

I'd say an Image is a client (system RAM) side representation of a bunch of pixels in a particular format. You upload Images to GL via glTexture2D (for example), at which point you get a handle to a GL texture which refers to something that can be represented serverside (the graphics card). I'd say a Texture was the object that wrapped this handle. Once the image is uploaded to GL you probably have no further use for it and it can be discarded and garbage collected.

Have you met any other JGO members personally? If JGO was your first interaction with them, how did it go (generally, don't need to point fingers of awkwardness)?

I'm never awkward in any social situation Very gregarious, me. I've met Kev Glass, Jeremy Booth, Adam Martin, Elias Naur and the other oddlabsers (who I don't think hang out here). I do like people coming to visit, especially if they're unaware of what the local cider is like and I can inflict total brain death upon them.

Oh, and a throwaway comment: pixel perfect collision sucks! It only exists because of an anachronism in the way sprites were handled on the C64 for example. In modern times, it's unforgiving, computationally expensive, and a waste of time. I could probably say a similar thing for pixel-perfect raycasting into 3D models for FPS guns. Most people will be happier and enjoy themselves more scoring a hit when things are more or less on target, not perfectly on target.

Cas

It may depend on context. Pixel-perfect 2D collisions were handled in hardware in the past, that's true. I suppose it would be possible to do them in hardware with todays graphics chips as well.

But I have to say I suspect I would prefer it. I basically stopped playing first-person shooters because the network lag and rendering meant that what should have been a near miss according to the local rendering was often counted as a hit by the server and so I felt the game was ripping me off. E.g. locally: duck out from behind a wall and take a shot and duck back in. Server's version: shoot a rocket into a wall directly in front of you and kill yourself. I.e. Not Fun.So I'm not a fan of a near miss counting - when my player is the thing that should have been missed :-)

OS X started using the Mach Kernel from the NeXTSTEP project, which basically a dumbed down OpenBSD.

NextSTEP and the kernel are independent things. NextSTEP was the set of Objective-C based APIs - which are cool, despite how much I can't get used to Objective-C syntax.

The Mach Kernel influenced a lot of other OS kernels.. including Windows NT and it's successors

NextSTEP is old tech, but sadly still the most advanced stuff around as far as OS APIs go. Everyone else is stuck on lame C interfaces and no good object oriented APIs to the OS at all. Linux is stuck in the 70's insisting that nothing comes after C. Coding kernel level stuff in C++ is next to impossible on Linux as far as I know, yet it is basically the norm on Window -even though MS is brain dead and still doesn't officially support it.. Heck they still don't support kernel development with their own primary development environment, Visual Studio.

Since I can find something to hate about most OS's I'll answer too :-) .. and I've always wanted to write my own... but...

Time & Money

Think of the device drivers required just to get a basic system going... Somebody should make a very high-level language for device drivers and then a compiler that did the right thing for each OS... there's a project for ya!

Hmm I know! How about an OS that's basically a JVM on top of a microkernel Then devices can actually supply their own drivers when plugged in, in the form of bytecode.It'd all be possible using the realtime Java APIs and some APIs for segregating VMs and memory spaces. And structs!

Just think about the possibilities... all the toolchain already sorted out (yay Eclipse/netbeans etc!)... one day maybe...

Yeah, I've thought about a Java-centric OS as well. It would be cool... but definitely would need real-time extensions to Java... responding to interrupts and then doing a stop-the-world GC in the middle of one would be, shall we say, "interesting"?

I had heard that one of the original proposals for PCI devices was that they contain rudimentary drivers in a on-board ROM as Forth code that would provide BIOS-like access to the device so it would be usable on it's own.. high performance drivers tailored for the OS would be loaded later as needed. Not sure if that was for real or not.. but it is an interesting concept.

1) a LLVM like system in Java2) Java runtime written in Java (like extended version of Jikes RVM)3) a java interpretor written in java4) microkernel based arch (again in Java)

Porting to a new range of hardware requires adding CPU description data in the LLVM like system & kernel. You run an exisiting version, which cross compiles a sub-set of the Java runtime, kernel and all of the interpretor to lowest supported processor and saves off the execuatable. (The runtime needs to be able to cache precompiled code) The system gets copied to the new target, which boots, no full cached runtime, uses interpretor to construct cached binaries of 1,2,4 for the "exact" hardware which it is on. (Of course all of this could be pre-compiled, but this is cooler as well as smaller). Restarts itself. Thus the only portion of the system that cares about the hardware are descriptors in the compiler and kernel frameworks. Yeah, yeah, there lots of gaps in this "fantasy", but what the heck.

3. Do you think it would help Java's Gaming Exposure(spark additional life) if we had a site(better then whats out there right now for java) and more games, that compete directly with flash games. Ones that work decently well on all systems, load fast, and offer similar gameplay but with the added benefits of using Java (over flash's performance and other limitations)

1. What are you general views of applets in general(specifically for java)? Perhaps a direct competitor to Flash games(max size 3-15mb)?2. Do you think that overly simplified 5 minute games help,destroy, or simply diversify online 'casual' gaming?3. Do you think it would help Java's Gaming Exposure(spark additional life) if we had a site(better then whats out there right now for java) and more games, that compete directly with flash games. Ones that work decently well on all systems, load fast, and offer similar gameplay but with the added benefits of using Java (over flash's performance and other limitations)

1. Hm, broken for too long, I fear. And still nowhere as good as Flash. I can't quite figure out how you can just whack a Flash applet into a page and it's just.. there. As fast as the jpegs load. Why can't Java do that? And half the time they break. Literally. Stacktrace in a console. Not good enough. And Apple broke all the good ones completely.2. No real idea. Games are games.3. No. That ship has sailed. It sailed maybe three times - Flash, then Silverlight, then Unity. Now Flash is probably going to get 3D rendering too and it's already pretty fast. Java was asleep blissfully counting coffee beans with a dummy in its mouth every single time thanks to stunningly poor management and leadership. Java might fix all this stuff - we got a long way to it with the LWJGL applet loader and some smarty pants javascript to wallpaper over the many cracks - but it's too late for anyone else to give a damn.

Hi Cas, the stupid answers you got to that bug request about struts are really sad.Did you ever get any new info about that? other than what is in the bug report?Did you ever try the javolution structs? are they useful or just too much overhead?

Nope, it just got filed in a dusty cupboard somewhere at Sun and forgotten. Considering how crucial it is to compete with C on performance for critical I/O tasks it's pretty odd that it hasn't been championed a little more.

Javalution structs are almost but not quite entirely not the solution at all They might superficially make it look a smidgen easier to do but they're just as slow as what we have now if not slower and pretty ugly compared to the proposed neato mapped bytebuffer solutions.

Hi Cas, the stupid answers you got to that bug request about struts are really sad.Did you ever get any new info about that? other than what is in the bug report?Did you ever try the javolution structs? are they useful or just too much overhead?

Nope, it just got filed in a dusty cupboard somewhere at Sun and forgotten. Considering how crucial it is to compete with C on performance for critical I/O tasks it's pretty odd that it hasn't been championed a little more.

What we need to do is extend ByteBuffer with getObject(x), putObject(x) methods. They would be defined to fill in the public fields of Object x from the buffer, in the order they are declared (is that order info preserved?). Only primitive fields would be allowed or there would be a runtime exception or undefined behaviour. We can do that all with pure Java. Then once everyone clues in to how useful this is, convince someone to make it an intrinsic operation for HotSpot.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org