Java-Gaming.org    
Featured games (78)
games approved by the League of Dukes
Games in Showcase (429)
Games in Android Showcase (89)
games submitted by our members
Games in WIP (467)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
   Home   Help   Search   Login   Register   
  Show Posts
Pages: [1] 2 3 4
1  Games Center / Android Showcase / Re: Steal the Loot on: 2014-01-25 20:08:16
Sorry for the down time on the images ; I was starting a web site for the game and moved the files.

By the way, you can now visit us at http://vbousquet.free.fr/

2  Games Center / Android Showcase / Re: Steal the Loot on: 2014-01-19 23:33:47
Hi,

just a small post to inform of the relase of a new version both on Android & Kongregate, solving some of the problems you reported ;
- lots of performance improvements,
- google game integration,
- AI refinement,
- achievements.

     Vincent
3  Games Center / Android Showcase / Re: Steal the Loot on: 2014-01-11 18:27:48
Hi, and thanks for the feedback !

I have uploaded a new version of the game on Kongregate and Android Play Store. It should solve the issues ;
- I corrected this stupid mistake regarding the texts,
- I improved the way soldiers are moved (dragging should be better now, selection of the last character is kept from turns to turns),
- I also opened the distribution to other devices than tablets (I had intentionally blocked it at the beginning, since I did not had a chance to test it on smaller screen).
Regarding the Kongregate, I find it very difficult to deploy a "run everywhere" webGl version of the game. I have tested it on the exact same setup (Windows 7 + Chrome 31) and everything worked fine. I still have to work out from what comes this issue you encounter. During the testing, I also discovered strange behavior regarding glClear on Firefox... If anyone has experience with GWT + WebGL deployment, please share it !

    Vincent
4  Games Center / Android Showcase / Re: Steal the Loot on: 2014-01-10 09:40:57
Thanks a lot ; it is linked to a change made just before releasing. I modified localization (the game is available in French & English) to be in a cross platform but not tested enough.
I will prepare a new release for this evening.
5  Games Center / Android Showcase / Steal the Loot on: 2014-01-08 14:14:54


Teaser :
Come and explore the world of Steal the Loot ; move your adventurers in the dunjeons, discover the hidden loot, but beware of oblivions !

Discover playing familly board game on your tablet. Play alone against the AI or with your friends and familly from 2 to 4 players on the same tablet.

Run through the 5 beautifull levels of this game ; the village, the mansion, the caves, the forest and the mountains.
Imagine new strategy to block your opponents, steal their loot, or keep them away from the exit.

This game is designed for adults and kids aged 7+.

Try it :

Technology
The game was made using the following resources ;
  • Libgdx game engine which in turns use Google ADT for Android, and GWT for the HTML5 + WebGL version (used on Kongregate)
  • OpenGameArt et OpenClipart as a reference for all graphic and sound assets (complete references are in the game 'Credits' screen)
  • Usual opensource development and asset pipeline : Ubuntu + Eclipse + Inkscape + Blender + Gimp

My aim on this project was to go the full path down to a clean release. Therefore, I designed a simple turn-based game and worked around that, polishing it to a point it seems ok for a release.

Give it a try and share your thought !

Thanks,

      Vincent

6  Game Development / Newbie & Debugging Questions / Re: Scene Graph vs Level structure vs Maps...... on: 2009-08-23 16:01:22
The usual A way to learn coding FPS is to code a Quake 3 BSP renderer, then add collision detection,...

Edit : remove the usual by 'a' because, I really don't know if it's the usual way, but it is definitely a way to learn.
7  Discussions / Miscellaneous Topics / Re: I want to install linux, with a goods heads up. on: 2009-06-10 15:17:08
I think I should add something ; moving to Linux is now problem but you will losse a lot of great tools ; most NVidia / ATI free tools are Windows only and will not work under Wine (the windows emulator for linux). So think twice. I also used to monitor OpenGL with http://glintercept.nutty.org/ which is not available under Linux.
8  Discussions / Miscellaneous Topics / Re: I want to install linux, with a goods heads up. on: 2009-06-10 15:14:48
I have moved to Linux when Vista came out (too expensive for me and I was tired of XP).
It works perfectly for game development with Eclipse + Java.
I use JOGL but I think LWJGL should work as well.

To have a quick and good start. I suggest using the Ubuntu distribution with its default setup.
You can check that everything will work flawlessly using the LiveCD.

For using Eclipse, you have 2 options ; either use the version packaged by the Ubuntu team for you. It works like a charm but it will only be updated with the Ubuntu update. The other way is to have an application folder in your home directory where you just unpack Eclipse and keep it up to date manually. The later is what I have chosen since it allows you to fine grain your development environment more easily.

  Vincent
9  Game Development / Game Play & Game Design / Re: Game Object Component System on: 2009-06-04 20:59:07
Reading your post, I think that maybe the adapter design pattern could be exactly what you need.

The usual implementation for this pattern is to have a factory in charge for creating adapters for objects.
It gives you something like this ;

1  
2  
3  
4  
5  
6  
7  
8  
ComponentInterface componentInterface = componentFactory.adapt(gameObject, ComponentInterface.class)

For your example, it gives :
Shooting shooting = shootingFactory.adapt(entity, Shooting.class);
if (shooting == null) {
  // entity is not able to shoot so skip
} else {
}


An easy way to implement all this is to use a simple modeling framework like Eclipse's EMF. it seems to not be that much in the habits of game developpers but I still find it very usefull and efficient since it will provide you with the code for adapting objects as well with a notifier system for keeping your adapters up to date (which is way trickier and error prone).

    Vincent
10  Java Game APIs & Engines / JInput / Re: JInput and Linux on: 2009-05-15 09:25:31
A very good howto to setup these permissions can be found here : http://gizmod.wiki.sourceforge.net/HOWTO+-+Setting+Input+Device+Permissions+-+Creating+a+udev+Rule
11  Games Center / Archived Projects / Re: Nex Gen LWJGL Applets! on: 2008-04-23 08:35:09
This is absolutely impressive (WinXP + Firefox 2.0.0.14) !

Two minor issues ;
- when switching to fullscreen, I have a bit of garbage above and below the game area,
- the keyboard input is only suitable for QWERTY keyboards, I have an AZERTY, so....
12  Java Game APIs & Engines / OpenGL Development / Re: Keyboard weirdness on: 2008-01-07 08:14:39
You get the exact same problem with the AWT event queue under Linux ; you have to filter the key repeat behavior.
You can see how it is done in jinput (AWTKeyboard class) or looking into Kevin Glass tutorial on the subject.

   Vincent
13  Game Development / Performance Tuning / Re: how to detect occasional stuttering on: 2008-01-07 08:10:58
I had the same problem. I first thought it was the gc. It occurs that I was wrong ; it was the way I managed the AWT event queue.
I ended up switching to SWT and everything is fine now.

By the way, don't go to fast modifying your code with object pools ; I did the same and then had to revert it for sake of code simplicity....

     Vincent
14  Java Game APIs & Engines / JInput / Re: Problem with nGetAxisMap on Linux on: 2007-12-28 00:56:16
It ends up that the build you provide was not completely working ; the link problem was gone but I had a new one ; getAxisMap failed with errno 22, that is to say invalid argument.

Therefore I built jinput from scratch using the ant script (I was surprised how easy it is to build, this is great work). And now it works perfectly.

The compiled linux dist is http://vbousquet.free.fr/jinput-linux.zip if you want to compare.

I will try to investigate this a bit further.

   Vincent
15  Java Game APIs & Engines / JInput / Re: Problem with nGetAxisMap on Linux on: 2007-12-27 20:29:25
Thanks a lot ! It solved the problem. I will post an updated zip here when I will get the time to.
16  Java Game APIs & Engines / JInput / Problem with nGetAxisMap on Linux on: 2007-12-27 09:35:29
I was using jinput happily on Linux (Ubuntu) for keyboard and mouse input, until I plugged a joystick (Microsoft Sidewinder).
With this device plugged, the JVM throws a 'UnsatisfiedLinkError' for the 'nGetAxisMap' function (when enumerating js devices).

This is strange since I'm sure that the native library is loaded. I performed tests with the jinput-test.jar :
-  event devices are correctly detected and working (I had unplugged the USB joystick for this test),
- looking at the source (CVS) code, before calling nGetAxisMap, the js devices handling class call other native methods defined in the joystick c file (nGetName for example) without throwing any link exception.
I have performed these test with the latest (2007-12-07) and previous (2007-07-26) combined binaries.

It looks like if the signature of the C function nGetAxisMap does not match the java expected one.

Is someone experimenting the same problems ?

Any idea would be welcomed. Thanks

           Vincent
17  Game Development / Shared Code / Re: [Renamed] Ye mighty lexer compiler! on: 2007-11-28 13:06:43
Have you tried http://www.antlr.org/ ?
I've used it a lot and it is a very convenient and efficient solution for this type of problem.
Especially given that it comes with a grammar design/interpret/debug tool.
18  Game Development / Performance Tuning / Re: Best algorithm to sort semi-sorted arrays? on: 2007-05-03 08:56:10
I have the same problem but with a different data organization so my solution may not fit your situation.

To sort my objects, I use a red-black tree ; when the sorting key changes, items are removed and re-added to the tree.
This makes the sorting dependent on the number of changes in the tree and not (directly) on the number of items in the tree (it is not fulylm true since the cost of adding/removing is linked to the number of items, and this cost will be fairly higher than in a standard list).

In my situation (state sorting in a game engine) this is very well suited since sorting key almost never change, and node adding/removal is fairly sparse (just a few per frame). On a side note, it happens that optimizing the state sorting algorithm was useless since it was not, and by far, a bottleneck.

    Vincent
19  Java Game APIs & Engines / JInput / Re: JInput and Linux on: 2007-04-24 20:21:17
I have so little time and my TODO list is so huge that I don't think I can seriously offer to work on a new plugin.
I moved to Linux recently (Vista is really too expensive) and, if the general feeling is great, I'm sad to say that developping under Linux is fairly harder...
Perhaps I will have to go back to Windows when I will have stopped my mourning against Microsoft...

Anyway, thanks for the fast answer. I will only detect the permission problem and give an information message explaining how to set up the permission right.
When I will have finished the more urgent tasks I have, perhaps I will get back on the subject (who knows...).

Thanks
20  Java Game APIs & Engines / JInput / JInput and Linux on: 2007-04-24 09:44:03
At the moment, I'm trying JInput in my engine and game under Linux (Mandriva Spring 2007).
Everything works fine as long as I manually change the permission for /dev/input/* (Mandriva does not allow neither read nor write).
I do not consider asking the user to change it's computer configuration as a suitable solution for deployment.
Are there any other alternative ?

I was thinking of things like ;
- a plugin that would rely on SDL (as I heard, SDL seems to handle the permission problem),
- a plugin that would rely on one of X11 / AWT / SWT
- a way to dynamically select the choosen plugin ; i.e. a way for the game to select the plugin based on the the capability of the running platform (for example ; Linux Kernel plugin reports no controller, AWT reports mouse/keyboard only, SWT reports plugin not available due to missing SWT library, SDL reports joystick/mouse/keyboard then select SDL plugin).
- another existing library that could serve as a backup when the running system is not properly configured for JInput.

In short, I would like running my game under Linux to be as easy as running it under Windows.

Any suggestion would be welcomed !

Thanks

                   Vincent
21  Java Game APIs & Engines / Tools Discussion / Re: Looking for an open source 3D format on: 2007-03-02 13:42:07
Collada is an open format that supports bones and many other things. I think it is the best choice for an interchange format (Not yet supported by Blender but most other modelling software do support it).

Cal3D is specialized in skeletal animation. It is fairly limited but it is easier to load and theere used to be a plugin for Blender export (broken in 2.42, hopped it has been fixed).

MD5 (and MD4) supports skeletal animation but it is fairly specialized and there aren't many exporters. It can be added that this file format is not that well adapted to GPU skinning (i.e. data are organized to be processed by the CPU not the GPU albeit it can be done).
22  Java Game APIs & Engines / Xith3D Forums / Re: Quake3D level loader... where is it? on: 2006-10-28 10:01:23
Here is a Quake3 shader parser I've made for my own engine ;
http://vbousquet.free.fr/tmp/quake3.zip
It uses Antlr for parsing so you will need to download the library.
It also has a lot of other dependencies so it is unlikely that you will be able to use it "as-is" but the grammar for the lexer/parser is fairly complete and it can save you wuite a lot of work.

       Vincent
23  Java Game APIs & Engines / Xith3D Forums / Re: Display Lists on: 2006-08-29 19:07:57
- I don't have much knowledge about how memory is allocated either into RAM or VRAM and I didn't know it impacted that much on performance.. If I recall correctly, in OpenGL you specify anyway separately vertex data, color data, UV data, and so on, am I wrong ?
You specify data separately but you can source them from the same VBO and you can interleave the data in order to have better memory access coherency.

- Which bugs have you spotted in the atom cache system of Xith3D ?
Honestly I don't remember precisely the case were it failed. I still remember that in some situation modifying the appearance properties did not cause the shape atom to be updated.

- In your opinion, is it worth working on Xith3D to fix/optimize it or to work on a new engine ?
It depends on your needs. I preferred starting on a clean engine, with my own design and no compatibility issues.


Display lists are, and will be for the forseable future, the fastest way to render static geometry.
I do agree with you. In my post I state that implementing display list in Xith seems to me as a good idea. In my first post I was just saying that I don't think display lists will be the solution to the fact that Xith3D has poor result with the Quake3 benchmark posted in these forums some time ago.
24  Game Development / Performance Tuning / Re: Examples of high JNI performance overhead? on: 2006-08-22 19:36:47
I fully agree with the previous post.

I will just add a note on this point ;
2) Fix bound checks or w/e it is that slows down Buffer accesses. This board has several little benchmarks laying around the site which show that people can get significant speedups using sun.misc.Unsafe in comparison to going through the Buffer interface.

For me there has allways been a strange design in Java library which exception handling ; external error and internal error are alltreated as exceptions. From my point of view external errors are exceptions (IO, database, ...), internal errors should stay at the development level and hence are assertions. 'assert' has been introduce since java 1.4. but does not seems to be used extensively in the core library. I think this could be very usefull especially for time critical section like NIO buffer accesses.

   Vincent
25  Java Game APIs & Engines / Xith3D Forums / Re: Display Lists on: 2006-08-22 19:27:22
- which vertex format do you think would be more efficient ? How would you do a "compact vertex format" ? All in a single float[] ?
There are lots of information on NVidia and ATI informations developer web sites about performance issue. For vertex format, it is advised to use 'compact' vertex format, that is to said that all you array pointers points to the same memory block of the VRAM. That means that you need to pack all your datas into a single VBO and use array pointer with a non 0 stride and offset. It is also advised to align your data eventually padding them. I never tried this last bit. There are lots of ways to implement it and there is not such a thing than a universal geometry class among the different 3d engine.

- how to implement that efficiently ? Or, in other words, how should we sort the calls ?
I don't understand what you mean by 'that'. If it is the vertex format, I did not found any perfect answer in any engine. For my own engine, I have choose to let the programmer creates tuple array which references memory blocks that holds the data in NIO buffers. This means that data management is left to the engine user. This may not sound satisfying but It really fits well with the design of my engine (see below).

- what exactly gets recomputed each frame ?
The scenegraph is traversed for each frame. Each node is tested for culling, each node goes through all the renderNode / getAtom methods of the View class. The cache system caches render atom with some sort of lazy updating (which is rather buggy). In the Quake3 benchmark, Xith3D spends most of the time traversing the scenegraph. With a system that only works on modification, you just don't spend a single millisecond traversing nodes that did not change. For the  (limited) understanding of Java3D that I have, this is one of the main difference ; Java3D creates a clone of the node which is updated when its user node sends change events.

BTW, are you working on a new engine ? How is it going ? And how do you handle these issues ?
I am working on my own engine and it is going rather well. The development is not as fast as I would like but my first child is born a few month ago, I have switched job and I'am moving into a new flat, so it's a bit more difficult to keep up with my hobby projects...

Regarding the design of my engine. I tried something fairly different from the engines I used (CristalSpace then OpenSceneGraph, then Java3D, then Xith3D).
The first point is that I discovered that there is no perfect design for an engine ; depending on the project I had, I prefered a very high level engine with medium performance, or one tailored to top-down view or another one that handles shadows with a technique that was ok for me,...
Therefore, the main idea of my engine is just to be a scenegraph framework ; the scenegraph is composed of nodes implementing the INode interface that's all. The INode interface is very minimalist ; a node has an optional name (get/set), a parent INode (get/set), extension points and can have listeners for change on these fields. That's all.

The second idea is to introduce 'interpreters' which as you can guess interprets the scenegraph. Example of these interpreters are bounds interpreters (computes and update bounds), environment interpreter (maintain a list of each node implementing the IEnvironmentNode interface that influence a node and updates the list of influenced nodes that each IEnvironmentNode maintains, example of this are light and fog), graph interpreter (provides a way to traverse the scenegraph), transform interpreter (maintain a matrix stack of the transform), scene interpreter (define what compose a universe)... These interpreters are completely isolated from the scenegraph. Most interpreters are built using plugins this allows to extend the scenegraph very easily ; create a node, create a plugin for the interpreters you need, your done !

Renderers are built upon this system. The core video renderer defines its own interpreter which keeps the render frame up-to-date. Only change events are processed.
Culling is implemented using a culling system object which is in charge of sending the enter/exit render frame events.

So in short the general idea is ;
- either use the core nodes and be satisfied with the medium range performance you will get,
- or define nodes adapted to your application that will allows you to reach better performances.

So far it works very well. I have converted a few of my own (small) projects to test the engine and it works well. The point that I did customize for nearly each project where the culling system (it really depends a huge lot on your project) and the appearance system.

Regarding the state of the engine (you asked in another thread if I would release it, open sourcing it or not). This engine is not meant to become commercial ; I do not have the time not the competence for this. I will eventually release it as an open source project but I don't think I have matured it enough for this. There is a really big difference between something that seems a good design and a working design with a few full applications that prove it.

Ouch, that was a long answer. Hope it is what you expected.

Bye

                         Vincent
26  Java Game APIs & Engines / Xith3D Forums / Re: Display Lists on: 2006-08-12 08:33:38
From my benchmark, display list offers the same performances than VBO. But this is only true if you setup "optimal" VBO which in my case where single VBO with packed data and indexed geometry. Additionnally NVidia drivers performs basic bounds checking when rendering display list.

Adding display list support seems to me as a good idea since display list lets the choice of the vertex format to the video driver hence you will allways get the optimal one.

If the main reason you are thinking on implementing display lists is because of the thread of the benchmarks of the Quake3 viexer, I think this is not the best way to go. I've done a bit of profiling on this benchmark to learn the good and bad design idea beyond the 3 3D engine. Xith3D is the slowest because the cost of rendering a node is rather high because ;
- the vertex data format is the worst that you can choose (separate data arrays, no compact vertex format),
- there is very few state caching in Xith3D (I have posted a GLInterceptor log showing this) and hence lots of redundant OpenGL call,
- Xith3D recompute nearly everything for each rendering, there is nearly no frame coherence caching (only compiled render atoms),
- Xith3D allways uses UNSIGNED_INT for the geometry indices.

         Vincent
27  Java Game APIs & Engines / Xith3D Forums / Re: Which API (Java3D or Xith3D) do you use? on: 2006-07-16 11:04:43
I have used Java3D and left when it was left apart by Sun. Then I tried Xith3D. I was happy with it as long as I was doing 'simple things'. Then I wanted more, so I dived into the code and tried to add the functionnality I was missing. I then discovered that the code is a whole mess (just my opinion) and that it would be fairly easier to start an engine from scratch than to try to improve Xith3D (just my opinion again). So I dropped Xith3D and moved on to my own engine. In the process, I tried jMonkeyEngine which I found wonderfull but since I had allready started my engine and had a working base I did continue on my own path. I have no plan to use Xith3D again at the moment but I still follow closely the progress of the available graphic engines to learn good design ideas from them.
28  Java Game APIs & Engines / JOGL Development / Re: Performance on: 2006-07-06 11:06:12
To WhiteHexagon :
A draw call in your situation is "gl.glCallList". It doesn't matter how many glVertex,... are in the display list.
The thing you should minimize is the number of gl.glCallList. Therefore splitting display list is not a solution, you would make thing worse. Regarding your display list, there are "good habits" given by cards manufacturers that parhaps you are not applying. Here are some ;
- dont perform state change in a display list (like glBindTexture, glTranslate,...). This can render the display list rather inefficient since it force the driver to perform a state validation when you call the display list even if you did not change the state.
- use an uniform vertex format ; i.e. when you specify a vertex you should allways provides the same information (for example : a normal + a texture coordinate + a vertex) ; your are not doing this since in your snippet, normals are specified once per face, texture coordinates just for one of the faces, color seems to be one per model.

Anyway, your model is composed of only 6x4 = 24 vertices which is very low. I'm not sure using 5600 display lists is a very efficient technique. You could try to create one FloatBuffer, put in it interleaved data for all your blocks, when a block move, just update its coordinates directly in the FloatBuffer and submit this to the GPU with a single glDrawArray call. I think you would get fairly higher frame rate (at leats if not all block are moved each frame).

To KitFox :
I have spent some time implementing a terrain algorithm for my game. In this process, I initially tried ROAM. The result were that it was somewhat inefficient ; the fact that you have to generate a new index array for each frame with all the stripping problem made it too CPU intensive for my game. I have moved to a very straightforward system similar to geomipmapping which performs really well and was really easier andfaster to implement. So, before wasting too much time on ROAM, I would suggest to quickly try a brute force system like geomipmapping to see if it does not fit your needs.

    Vincent
29  Java Game APIs & Engines / Xith3D Forums / Re: Shader Programs once again on: 2006-07-06 10:25:34
First question ; NVidia compiler creates a valid program. You just have to bind your transposed model view projection matrix to the program local parameter n° 1 and everything will work fine. It is stated in the comment ;
1  
#var float4x4 gl_ModelViewProjectionMatrixTranspose :  : c[1], 4 : -1 : 1


Second question ; You need to compile the GLSL code yourself because Xith3D doesn't support high level shader but only assembly ones.

Last question ; my own point of view is that using assembly shaders is an entirely deprecated way of using shaders. So if you really want to use shaders either add support for high level shaders to Xith3D or don't use Xith3D.

       Vincent
30  Game Development / Performance Tuning / Re: can anyone recommend a good profiler? on: 2006-07-01 18:21:46
I tried TPTP (Eclipse's profiler) but it is really complex to make it works and there is a significant overhead.
Now, I use http://profiler4j.sourceforge.net/ which is very nice and intuitive.

Note that I have not yet found a profiler that allows me to get good results on the small methods that are called a lot of times (like activate of my state wrapper class, or render of my render command class) ; I also have my integrated profiling functions to narrow and validate profiler4j results.

    Vincent
Pages: [1] 2 3 4
 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

xsi3rr4x (81 views)
2014-04-15 18:08:23

BurntPizza (73 views)
2014-04-15 03:46:01

UprightPath (84 views)
2014-04-14 17:39:50

UprightPath (67 views)
2014-04-14 17:35:47

Porlus (84 views)
2014-04-14 15:48:38

tom_mai78101 (107 views)
2014-04-10 04:04:31

BurntPizza (167 views)
2014-04-08 23:06:04

tom_mai78101 (263 views)
2014-04-05 13:34:39

trollwarrior1 (214 views)
2014-04-04 12:06:45

CJLetsGame (223 views)
2014-04-01 02:16:10
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
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
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!