TUER: Truly Unusual Experience of Revolution, FPS using JOGL

I realize that my previous schemas were not very easy to understand. All adjacent right triangles located in the same plane are stored by pairs, there is a pair per cell. I store these pairs in a 2D array. This array is often obviously not full. I have to reduce the count of full arrays in order to reduce the complexity of the mesh sent to the graphics card. The fewer rectangles I get, the fewer quads will be necessary to represent the whole mesh. That’s exactly what I have succeeded to do as you can see below:
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][X][ ][ ][ ][ ]
[ ][X][X][X][X][X][X][X]
[ ][ ][X][X][X][X][ ][ ]
[ ][X][X][X][X][ ][ ][ ]
[ ][X][X][X][X][ ][ ][ ]
[ ][ ][X][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]

Instead of having 21 quads, I only use 7 quads, each one is represented with a different color. Best regards.

I have respect for your capability to handle code with so many indentation levels. (up to 20!)

Never needed to scroll horizontally to read the full name of a variable before :wink:


boolean oneCommonSideCorrectVertexOrder2oppositeSidesOfSameLength=false;

When this class becomes too fat, I will have to split them into smaller ones and it will be fine to avoid using static methods. Eclipse already puts tabs even though I modify its settings, it drives the source code harder to read outside of this IDE.

Sorry. I try to comment this class as much as possible and I really need such names. If I call this variable 0cscvo2ososl, I will have to remember its real meaning while reading the source code whereas this very long name already tells me exactly in which case I am.

Edit.: My website was unavailable for several hours because of a problem on Sourceforge.net. It should work fine anew now.

Hi

I have just tried to fix the stuttering reported by RobinB. I just skip auto-repeat events thanks to NEWT. I will update the Java Web Start demo today.

Hi

I have just found a workaround for a regression in the JNLP parsing introduced in Java 1.6 update 37 and Java 1.7 update 9:

[quote]Known Issues

Area: deploy/webstart
Synopsis: Regression - Issue in parsing jvm args for Java Web Start relaunch on Unix platforms.

Some combinations of java-vm-args and elements in a jnlp file may cause some properties to be set incorrectly when Java Web Start is forced to relaunch. The problem is applicable to Solaris and Linux platforms.

In some cases, adding dummy property elements to the jnlp file may help prevent the problem.
[/quote]
http://www.oracle.com/technetwork/java/javase/7u9-relnotes-1863279.html

I have updated my game, it should work correctly. I don’t really understand how the maximum direct memory size is set by default, especially in Java 1.7. If it is set to the maximum heap size, I won’t have to use -XX:MaxDirectMemorySize any more.
@Riven, do you know how it works? Is there a difference between Java 1.6 and Java 1.7 for the handling of this VM option? Maybe I should dig a bit in the source code. I use sun.nio.MaxDirectMemorySize too.

I’ve almost ended up implementing the sixth step of my optimization. I will try to implement the 7th and the 8th steps before the end of December.

Edit.: The sixth step is ready.

Hi

I’ve just repaired this feature, the fix is not very smart:
http://tuer.svn.sourceforge.net/viewvc/tuer/pre_beta/engine/statemachine/GameState.java?r1=588&r2=623
I will update the demo soon. I pay attention to constructive remarks and suggestions.

I try to prevent the weapon from being clipped into other 3D objects by drawing it after all other meshes and by clearing the z-buffer just before drawing it but it doesn’t work yet.

I’m working on the 7th step of the optimization.

Edit.: The weapon is no more clipped into other 3D objects thanks to this change:
http://tuer.svn.sourceforge.net/viewvc/tuer/pre_beta/engine/statemachine/GameState.java?r1=623&r2=626

Edit.2: I’ve just updated the demo: http://tuer.sourceforge.net/very_experimental/tuer.jnlp

Why clear the zbuffer? Just change the range on the depth buffer when rendering the weapon.

Hi

It’s a possible solution too. Why would it be better than clearing the z-buffer?

I have just ended up with implementing the 8th step of the optimizer but I need to test it (a lot) as only a part of the 5th step is covered by a unit test. I remind that this optimizer is based on a suggestion of a French computer artist in March 30th, 2010, it has required lots of work, I really expect an important increase of the frame rate from it.

Hi

I have just started to test the whole optimizer:

  • first step: OK
  • second step: OK
  • third step: OK
  • fourth step: NOK (the test about vertex order seems to be wrong)
  • fifth step: partially OK (the first algorithm loops forever, the second one works in its separate unit test)
  • sixth step: untested
  • seventh step: untested
  • eighth step: untested

I don’t think that I will have enough time to fix it this week but I still hope to make it work before 2013.

Hi

I uploaded a corrupted JAR, the demo does not work any more, I will fix it soon. Best regards.

Hi

At first, the problem with Java Web Start is probably solved, the demos seem to be broken only under platforms with no support of IPV6.

Secondly, I’ve fixed the fourth and the fifth steps but I’m not really sure my fixes are fine. The optimizer has become so complicated that I would feel better with a lot more unit tests. I will need some more weeks to make it work reliably.

Edit.: I confirm the problem with Java Web Start came from IPV6. It works fine on my own computer at home.

Clearing the depth buffer is expensive and changing the range is about free.

Hi

It seems impossible to shoot on “fast” machines, I will have to fix this bug as soon as possible. Best regards.

dev since 2007 and such a buggy project
don’t want to offend
really
just bugs/discomforts and lacks r so big that even don’t want to mention

Hi

This is the plan for the next weeks:

  • fix the shoot feature when the frame rate is high
  • cross-hair and icons for ammo and weapons (RobinB’s suggestions)
  • fix the stuttering bug (reported by RobinB)
  • fix the few remaining bugs in the optimizer
  • OpenStreetMap integration: conversion of OSM files to Ardor3D binary files by improving OSM2World
  • joypad support (probably with JInput and NEWT)
  • improve the artificial intelligence a little bit and the reaction of the players when he is shot by someone else
  • insults (the implementation of this feature has been postponed several times)
  • other objectives mentioned in the latest roadmap published in my blog

I have worked on this game on my spare time since October 2006 and I have had to maintain a whole ecosystem (especially 3D engines), not just my own project, it is difficult and very time consuming, my project cannot evolve as fast as those of people who only work on their own projects and rarely contribute. The alpha version only contained less than ten bugs when I stopped its development. The latest version contains fewer bugs but some major features are still missing. If your post was an attempt to discourage me, sorry but you failed. EgonOlsen legitimately complained about a regression when moving close to walls, he was often stopped, this bug was fixed some months ago. Someone else complained about the weapons being drawn through the walls, it was fixed too. Some people asked me to allow to modify the resolution and the windowing mode, it was implemented some months ago too. When you program, you end up by discovering that there is only one kind of program: the buggy ones. Bug-free programs do not exist. I love my buggy project. I go on fixing bugs, constructive comments and suggestions are welcome. As time goes by, there are less bugs in my game, it’s not like it was becoming worse. I’m not in a hurry. I have nothing to sell, it’s an hobby project.

Very well said.

Damn…I’m agreeing with gouessej? Must be the end times… :persecutioncomplex: ;D

I don`t know what contributions julien did to the open source community, but I’m pretty positive it was something more than spamming a java gaming forum with nonsense posts.

Some of my contributions are listed here (Ardor3D, JMonkeyEngine 3, Xith3D, Nifty-GUI), some notable ones are missing including those for Jeti (Java XMPP instant messenger, I ported it from Lucene 1 to Lucene 3 and I fixed a few bugs in its GUI), LibGDX (JOGL 2.0 backend, Xerxes helped me to improve it and to make it work with Raspberry Pi), JMonkeyEngine 2 (some of them have not been merged into the trunk) and JogAmp. I report bugs for some GNU Linux distros, especially Mageia.

[quote=“gouessej,post:1115,topic:29428”]
I must say I’m impressed by your persistence, and I really wonder what TUER will turn out to be. The name is pretty awesome I think ;D Go goussej!

Although I believe that if I ever decided to write an FPS, this thread and Goussej’s source code repo would be the first two places I would go. Maybe some Doom and/or Quake source code repositories as well.