Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (521)
Games in Android Showcase (127)
games submitted by our members
Games in WIP (589)
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
1  Game Development / Networking & Multiplayer / Re: Status on: 2006-07-31 05:10:04
Nevetheless it would be interesting to see how the stack-extensions-API might work ... those is part of the EA2 with a tutorial, is that correct?

Ragosch
2  Game Development / Networking & Multiplayer / Re: Could a game like EVE Online be implemented on the SGS? on: 2006-07-24 11:36:37
MAYBE what we need is some kind of JDBC tranasactio nwe can pass betwen the tasks to keep a JDBC transaction oepn until all the GLOs tuff completes and then be set to commit as aprt of that final event's commit...

This comes near to a solution, because it creates a kind of combined task (consisting of 2 separate SimTasks) which continues using the already open and not yet commited transaction. My first idea was to have GLOs which can be put to sleep after a DB request and get activated again when the results are available, not counting the sleep time as active GLO time (a longer sleep would not cause an abort). Your idea now is something similar to that, because the combined task "sleeps" inbetween the commit of the first task and the activation of the second one. Nevertheless when the second task is started the first one is already made permanent and would need some kind of correction if the second one is aborted due to an issue - that is why I said "comes near to a solution".

Such a correction would be kind of difficult, because who should do that?- The second task cant, because it is the one which was aborted. A possible solution would be a kind of exception handler GLO ... but now it starts to get more complicated than using a single task with overall transactional safety IMO.

Ragosch
3  Game Development / Networking & Multiplayer / Re: Could a game like EVE Online be implemented on the SGS? on: 2006-07-22 15:07:46
Returning the result-set to a different task is good for query-only access, because there is no problem with transactional-safety. This could be done with the current version of the SGS also using the raw sockets from the SimTask object. There is no real problem as long as you dont need to work and manipulate both, database tupels and the objectStore in a way which ensures transactional-safety. Where changes to the objectStore are only made if all changes to the database are made valid at the same time ... or if the SimTask needs to be aborted, all the database manipulation is rolled back also. This is the problem to solve and if you try to do that in different tasks it will become really nasty fast, because you need methods to ensure and repair consistency of both storages, database and objectStore, if one or the other of both tasks has failed but the other was valid and made permanent already.

Ragosch
4  Game Development / Networking & Multiplayer / Re: Could a game like EVE Online be implemented on the SGS? on: 2006-07-17 17:15:30
I use SQL-like databases since the early days when it was called SEQUEL in the 80s; if you are used to real database systems and a powerful data query and manipulation language like SQL, you do not want to do that on your own again ever in your life. Is there any proof that javaspaces can provide all the beneficial features of a database system and performs well in comparision to SQL databases?- I think especially of fast joins between several normalized tables, complex selections over those joined tables, and result-sets which are grouped and sorted in the desired way (including standard functions like average, sum and such). If you know of any performance contests between databases and javaspaces, let me know and post a link here.

Those features are not trivial, a good database represents about 30 years of experience using relational databases and speed up of database queries by optimization of the query before it is performed on the data. I remember those days when I studied computer science in the early 80s where these database manipulation and query languages were born. I can remember the problems with optimization of database queries and therefore I dont want to use anything "new and modern" which is not proven safe, fast and reliable as far as database management and database query is concerned.

Ragosch
5  Game Development / Networking & Multiplayer / Re: Could a game like EVE Online be implemented on the SGS? on: 2006-07-14 07:33:28
Search abilities on GLOs - a database is so much more than just some search abilities on GLOs. What about complex queries which do joins over several tables filtering out the requested data grouped and sorted in the desired way?- The last is what is needed if you think of a database like EVE has it ... do you really want to return to information retrieval like in the pre-database area?
Ragosch
6  Game Development / Networking & Multiplayer / Re: Could a game like EVE Online be implemented on the SGS? on: 2006-07-12 20:25:05
But that is exactly what i dont want to do ... reinvent the (database) wheel again - I want to use it because it solves the problem of manipulating and query data which is hold in several tables in a transactional safe manner. The issue is here to embed a database nicely into the SGS to ensure transactional safety for the whole database (consisting of the database and the objectStore, which itself is just a table inside the database).

Or did I misunderstand you?

Ragosch
7  Game Development / Networking & Multiplayer / Re: Could a game like EVE Online be implemented on the SGS? on: 2006-07-12 05:57:55
Pluggable events would definately be good - no doubt. But for a market-database like EVE has you need a real database system which can be accessed in a transactional safe manner seen from the SGS point of view (it needs to be safe inside the current SimTask). That is why you cant do this in an asychron way because it would break the transactional safety as I have pointed out in the OP; it needs to be synchron to the SimTask. The transaction should database-side not be commited until the SimTask is ready to be commited also. This way the results in the objectStore and the database can be seen as either both valid or both rolled back, i.e. both transactional safe in relation to the same context (the SimTask).

Seen from a programmatical point of view SQL command would be good to manipulate and query the database. An SQL query is optimized by the database system and leads to an efficient access (this is the job of a database system, so let us let it do it's job), which is needed for sophisticated and fast results. I am totally against any form of doing it by hand while there is a database system which can do it even better because it is specialized to do so.

Ragosch
8  Game Development / Networking & Multiplayer / Re: Could a game like EVE Online be implemented on the SGS? on: 2006-07-11 11:53:22
Yes, we had this in a way before - but I feel it is not taken serious as a real problem. I wanted to point out in a different thread, that it is not only our game which needs this but that there are a lot of other games which need this also ... and to give a good example of a game which is currently top ranked and has a constantly increasing number of subscribers which would need that also, I made this example. It is vital for the success of the SGS IMO to take this problem really serious. That is why I made a new topic about it and point out the problems regarding to transactional safety if you would use an external database for it using the raw sockets from the SimTask object.

Ragosch
9  Game Development / Networking & Multiplayer / Could a game like EVE Online be implemented on the SGS? on: 2006-07-11 11:28:08
My complaints about the SGS are basically that database queries are not supported by the SGS itself. Now imagine you would need to implement something like EVE Online on the SGS. SGS has a huge market and mission database with millions of entries and you would need a database system for it to manage all the queries needed for proper access to the markets like EVE provides it (local, regional and global markets and mission data). If you would do that with just GLOs you cant expect any sophisticated answers in decent time and the game would be broken. So you would need to use an external database and the SGS currently just provides this using raw sockets with asynchron query/result access. This means you would need to do a query or database manipulation operation on one SGS task and get the results on a different task. What about transactional safety then?- It could happen that it is broken because the manipulation operation is send from one task (which could be discarded afterwards) and the result is given to a different task (and this result is maybe invalid due to the discard of the task before); or the sending task commits but the database fails and the state of the SGS objectStore is not valid and needs to be fixed.

So, how would you implement an EVE Online like database with the SGS?- IMO the SGS model is broken for games which needs to deal with some huge databases as far as transactional safety is concerned, but maybe you have a better idea I am not thinking of.

If you have never played EVE to answer this question: EVE offers a 14-day free trial currently where you could get an idea about this huge database and the way EVE provides access to it.

Ragosch
10  Game Development / Networking & Multiplayer / Re: central, time-driven loop ? on: 2006-06-26 13:59:43
I guess that is what package com.sun.gi.gloutils.pdtimer is for. A new event can be registered via SimTask.registerTimerEvent(...). I have not tried it out yet, but it should basically work like the heartbeat in a mud-like game.

Ragosch
11  Game Development / Networking & Multiplayer / Re: Images at client? on: 2006-06-26 10:02:20
Yes, the client requests all the changes since last login from the server after login has completed. A join-operation of these changes with those elements already stored in the local database is made and the intersection of both is loaded from the web-server and integrated into the local database in order to update it.

Actually we think of creating our own server-cluster software parallel to SGS and see how SGS will evolve. SGS seems to be good for all mud-like games which use a kind of room and items storage while it has a big downside when it comes to handle data which needs to be accessed via database queries or managed by a fast loading manager class which could provide the mass data as needed ... currently with the SGS this class would need to be a GLO which needs to use external storage accessed via sockets in an asynchron manner ... we doubt that this will be fast enough for our requirments and it fails where we need some synchron interaction of mass data with the SGS; there is no way to access any local serverside storage other than the objectStore in the SGS which is not suitable for huge data IMO.

Ragosch
12  Game Development / Networking & Multiplayer / Re: Images at client? on: 2006-06-10 17:17:19
Our current idea for this is an embedded derby database client-side holding all static graphical data. An XML-document with the current version info is accessed from the same location the discovery.xml is loaded from and then a query to the local database is made to check what is needed for an update. Then this new data is requested from the web-server on the same location as the discovery.xml comes from and stored in the local database with a new timestemp. All details about what and where to load is given in this version info xml-document. Atleast this is our current idea how to implement this - all static graphical data is on the web-server outside of the SGS.

Ragosch
13  Game Development / Networking & Multiplayer / Re: Global time resp. timesteps on: 2006-06-10 17:02:22
Good idea, Jeff, thank you, I already found a german company which has ready-to-run hardware for this.

For your information here the link to this site: NTP-Hardware

Ragosch
14  Game Development / Networking & Multiplayer / Re: Global time resp. timesteps on: 2006-06-08 08:36:26
I would not count on having VERY precise synchronized time. Some general level of synchronization, sure, but a guarantee that one server will see the later time then the server which have just comitted the transaction... I don't think so. In truly distributed systems such things are solved by logical clocks.

Now, said that, we may think about requesting some kind of Lamport/vector clock in SGS provided on low level. What would you use it for ?

Calculation of the physics basically, there a precise timer and a uniform time across all slices is vital.

Ragosch
15  Game Development / Networking & Multiplayer / Global time resp. timesteps on: 2006-06-07 08:29:16
While breaking down our game logic into GLOs I found the need for an universal time which is the same on all slices. Many operations are based on time and it needs to be ensured that the time on all slices is the same to make those calculations possible. If the time on different slices are not synchonized calculations using time would be dependent on which slice they are performed and some strange situations might occur where the time seems to go backwards. A simple solution to this would be a precise global time which you could access through the SimTask object instead of requesting the system time of a slice.

Ragosch
16  Game Development / Networking & Multiplayer / Re: Scattered storage model? on: 2006-06-05 16:42:28
That link is also that info I read about the HADB technology - it is a highly accessible database capable to repair itself when an error occurs. Jeff said, HADB is planned as backend storage in the "big" version of a SGS installation, afaik.

Ragosch
17  Game Development / Networking & Multiplayer / Re: Tasks are assumed to be short-lived - how short? on: 2006-06-05 01:16:28
Hm, I think you can forget about the MVM in the context of J2SE. From what I read it is planned to transfer the MVM to J2EE and J2ME, but afaik there is no decision made for J2SE yet ... but my infos are about 1 year old, maybe you have newer ones.

Ragosch
18  Game Development / Networking & Multiplayer / Re: Tasks are assumed to be short-lived - how short? on: 2006-06-04 09:45:39
The restriction on task length is really for two reason:
(a) To prevent a lock being held on an object for an inordinate amount of time
(b) To prevent endlessly looping tasks which never release locks.

Case (b) is a bug issue and it could have a very long time-out because it is of no real use to deal with those bugged tasks over and over again. Instead of causing lags big enough to make the staff work on the buggy tasks a too short time-out would abort those tasks too early which might not be recognized by the team because it does not cause real trouble (with complaining players who recognize those lags very fast).

When calculating the time-out you should think of the programmers point of view. He has no control over the loading process of GLOs and does not know how long it may take in practice to access a GLO, but he can estimate the amount of time needed to do the task not counting the access time needed. So maybe your time-out method should just take pure execution time into account, so that you are able to give a precise hint on this issue.

Ragosch
19  Game Development / Networking & Multiplayer / Re: Scattered storage model? on: 2006-06-04 09:14:25
Hm, yes, it is true, that is a nice feature too. But I would not say that those missing relational database features, query and manipulation abilities would just count as 50% of the database features. If you are used to express and query your data in relational tables you will heavily miss those if they are no longer there.

Ofcourse some of those features could be intergrated using an external database from inside the SGS via the SimTask.openSocket(....) method and the associated callbacks via a GLO, but it would call this GLO 3 times for a single query, while an implementation via a new SimTask.startSQLQuery(....) method could do this by just invoking the callback GLO once (maybe with an automatic deletion of this GLO when this callback task ends). Wouldnt that be a much more efficient way to use relational database features from inside the SGS?

Ragosch
20  Game Development / Networking & Multiplayer / Re: Tasks are assumed to be short-lived - how short? on: 2006-06-04 08:55:14
I did not think of tasks running for minutes, not even for seconds. I would be totally satisfied with a solution which would give me about 100 ms pure execution time (i.e. time to GET and save GLOs not included).

Ofcourse most tasks should be much shorter. Longer execution is just needed for these special tasks which need to update a larger structure in a transactional safe way (like recalculation of the screen pixel error metric in those nodes of a quadtree I mentioned in my last post).I agree that marking those tasks would be good in order to give the SGS the ability to provide some extra execution time for those tasks. This extra execution time saves time compared to a child task which would need to load the GLOs again before it could continue to work (that is not very efficient), not to speak of breaking the transactional safety when using a child task instead of a marked "long task" - I start to like your idea of marking tasks.

Ragosch
21  Game Development / Networking & Multiplayer / Re: Tasks are assumed to be short-lived - how short? on: 2006-06-04 05:27:05
Maybe in a quadtree - I am disappointed, do you think I am a complete 3D noob?-

We use a modification of the terrain rendering algorithms presented in this terrain.pdf document. Terrain chunks are requested from the server only if the local database does not have a valid copy of it yet. A valid copy is a copy which is not expired or invalidated. We use that local database also to provide a special feature which we call "3D-automapping". Players are able to access their memories and "walk" through the terrain like it was when they were last there (we simply do no updates of the local database while in rememberance mode), but in this mode there are no moving objects and we use just ambient lighting to let the scene look unreal in a way (because it is just a retrospective, not reality).

This quadtree-based terrain is overlayed by an octree for all the objects. Ofcourse we use those data structures to make fast software culling possible. Local structures which are combined objects basically are represented by scenegraph-branches and currently stored in the database using a modified subset of X3D. Quadtree and octtree are client-side representations while those scenegraph-branches are used client- and server-side.

The terrains ground structure is a 8,193x 8,193 heightmap where each tile is enhanced with JIT-generated overlay-heightmaps of size 33x33 (which need not to be stored in any database). Due to the used algorithm a terrain chunk is very memory-efficient while it can be rendered at different LOD levels very fast (asynchron loading process) and features detail enhancement in the near. This is a quite fast and sophisticated method to render terrain because the grid distance between vertices on the map is 62.5cm while the map spans over 163.84x163.84 kmĀ² and 99.9% of the terrain details are JIT generated only if needed.

I guess, this is sophisticated enough, isnt it?- Unfortunately we need to store terrain and object information in a way which can be easily accessed by the game logic because our terrain is not static but terraformable (much in the way like wurmonline.com has implemented this feature). Some alterations of the terrain may cause a larger part of a quadtree branch to be recalculated (basically a new screen pixel error is applied to some nodes of a branch). That is one of those places where I ask myself if we could do this recalculation in a single task or if we need to break it down into several ones. That is one of the reasons why I ask for a more precise answer to "how long is a task running before it will be aborted".

Ragosch
22  Game Development / Networking & Multiplayer / Re: Scattered storage model? on: 2006-06-04 04:36:59
what do you mean by snapshotable?
23  Java Game APIs & Engines / Tools Discussion / Re: writing and loading large data sets on: 2006-06-02 15:33:34
Even this topic is a little outdated I will give a hint. You did not say what kind of data you are talking about but I guess it is a kind of terrain rendering problem you are talking about. See this document which might help you understand how terrain is rendered in an efficient way including such cool features like detail enhancement and out-of-core rendering.

Rendering Very Large, Very Detailed Terrain

Hope this helps (if not you then maybe others who take a look at this topic)

Ragosch
24  Game Development / Networking & Multiplayer / Re: Scattered storage model? on: 2006-06-02 10:27:24
Correct, I forgot to mention that. But it is still like using a Mac truck for the transport of a six-pack.

Ragosch
25  Game Development / Networking & Multiplayer / Re: Scattered storage model? on: 2006-06-02 08:33:20
Its an interesting thought.  Unfrotunately exposing the database would make the ObjectStore interface  in the system SQL specific.  Currntly it is not and I dont really want to put that limit on an implementation.

How to do RDBMS stuff though in general is an interesting question.  Let me ponder it a bit...

We would not want to access the ObjectStore by SQL (the ObjectStore keeps being untouched as before), it would just be adding another option to use the underlying (highly accessible?) database as RDBMS. And because SQL is most common I thought of an SQL interface in addition to the already existing methods in the SimTask object - so from my perspective this is not a limitation but a new option, which would make more efficient use of the maybe expensive hardware (=HADB + dedicated database servers). HADB has no other use than serving as a highly accessible database system ... but SGS is just using it like a very expensive hashtable.

Ragoschj
26  Game Development / Networking & Multiplayer / Re: Tasks are assumed to be short-lived - how short? on: 2006-06-02 01:37:29
Ok, then I try to be more concrete. I am currently trying to find out how to store our really huge terrain efficiently - either inside the SGS using a set of  (terrain chunk descriptor, terrain mesh/texture info, terrain decoration info) which would sum up in using about 1.05 million GLOs for that, or just storing the terrain chunk descriptors in the SGS and use another extern database outside of the SGS on a different server instead.

If I would need to extract the requested data out of several GLOs and send it back to the client, I need to know if I have enough time to do this in a single task for 1 terrain chunk (the atomic operation here, because our terrain is terraformable and not transaction-safe information could lead to cracks in the mesh, flying objects or objects stuck in the ground visually).

But again, if I am more or less forced to use the out-of-SGS solution and just operating on terrain chunk descriptors inside the SGS which would arise the need to communicate between the SGS and the external database the question arrives "why should I use SGS if the answer to all vital questions for our game so far is _use an external database instead_?".

So far we need to externalize the economic database and the terrain database - now to the next point, calculating the flow network for our terrain. Currently this is organized in a huge flow network graph with several "roots" which is traversed down 1 level each idle cycle of the server and the results are stored in the associated terrain decoration info; as it is now we need about 3 to 5 seconds to recalculate the whole flow network using just idle cycles of the server (not realtime, but good enough to render realistic rivers, flooding and dry periods on the terrain). I wonder what the answer will be to these requirements of our game ... again "use an external solution for this"?.

I really start thinking that the SGS might be the wrong technology for our game - I can imagine a lot of games which might be able to be run on the SGS, but I am really in doubt if we can implement our requirements on the SGS given the current abilities of the SGS. That is why I ask for more precise information about the timing of task. How much will I be able to do in a task?- How many GLOs may I be able to access with GET before a task might be discarded assuming they would have just a few kB each?-

These are the things I am struggling with ... any ideas or comments?

Ragosch
27  Game Development / Networking & Multiplayer / Re: getting the swordworld demo to run on: 2006-06-01 10:38:02
The joys of serialization Cheesy

Never change an already serialized class - subclass it instead!

Ragosch
28  Game Development / Networking & Multiplayer / Re: Scattered storage model? on: 2006-06-01 07:00:55
It will, because all those APIs in the SDK never have anything to do with the process of farming out GLOs on a server-cluster. The server-cluster itself is transparent to your development as well as the underlying database for the ObjectStore.

Ragosch
29  Game Development / Networking & Multiplayer / Re: Tasks are assumed to be short-lived - how short? on: 2006-06-01 04:25:54
Nothing against that, I just want to know, do I need to tune it more to lets say 200ms or to 5ms or maybe up to 1 second?-

That makes a big difference in breaking down processes and game logic into GLOs and before I dont know such simple facts I am not able to really work on the design of those GLOs. And I really dont want to waste my time on things I can throw away in a few weeks or months. Sure, they cant provide exact numbers yet, no one demands that - just a statement giving an idea of what is in the mind of the developers about these numbers.

Ragosch
30  Game Development / Networking & Multiplayer / Re: Scattered storage model? on: 2006-06-01 01:18:22
Jeff, might it be possible to get direct access to the underlying database of the SGS maybe via a method in the SimTask object much in the way like a socket is opened from there yet, but the message would be an SQL request to it. The reason I ask here is that the underlying database is maybe highly accessible (you said HADB, I looked at it and it seems to be a really safe technology) and data you want to store outside the GLO pool (i.e. the ObjectStore) would be able to make use of these super-safe storage and SQL queries.

Breaking down the game logic and data into GLOs is ok as far as this data is small enough per GLO (because it is loaded and stored in full), but it becomes a pain and a bottleneck if you need to access mass data this way and want to get meaningful information out of it. What is easy using SQL on a real database becomes a pain when it needs to be performed on GLOs - and because of the short-lived nature of a task I dont believe in any sophisticated information to get out of hundreds or thousands of GLOs. Breaking this down into task and child-tasks does not help here because using another task means there is no longer transactional safety for the whole query operation.

I hope I have explained it good enough to show the need of external database access and why we want to use the (maybe highly accessible) database system in the SGS.

Ragosch
Pages: [1] 2 3
 

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

The first screenshot will be displayed as a thumbnail.

xFryIx (59 views)
2014-11-13 12:34:49

digdugdiggy (38 views)
2014-11-12 21:11:50

digdugdiggy (31 views)
2014-11-12 21:10:15

digdugdiggy (27 views)
2014-11-12 21:09:33

kovacsa (49 views)
2014-11-07 19:57:14

TehJavaDev (52 views)
2014-11-03 22:04:50

BurntPizza (52 views)
2014-11-03 18:54:52

moogie (67 views)
2014-11-03 06:22:04

CopyableCougar4 (66 views)
2014-11-01 23:36:41

DarkCart (152 views)
2014-11-01 14:51:03
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
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!