Java-Gaming.org Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (686)
Games in Android Showcase (198)
games submitted by our members
Games in WIP (758)
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 ... 5
1  Game Development / Newbie & Debugging Questions / Re: Converting RGB images to a master palette on: 2016-08-20 19:41:03
There are different solutions depending on if the palette is fixed or flexible.  

You can do pretty well by taking a color distance metric and selecting the nearest palette color. Keep track
of the RGB error and add it into the next pixel, so the average selected pixel stays near the original RGB colors.

If you can choose your palette, then histogram your colors, and use a peano curve to walk the histogram
to group histogram colors to select palette colors, and make the palette colors conform to the centroid of
the corresponding histogram boxes.  This can produce magically good pictures even with very few colors.

Of course, doing all this efficiently is difficult to do yourself, and I have no idea what commercial color reduction
programs will work well for you.   Photoshop is not bad.
2  Game Development / Networking & Multiplayer / Re: Issues with synchronisation of player movement on a multiplayer server on: 2016-08-09 23:59:25
There is no way to eliminate these issues.   If you're playing over the internet, you
will occasionally encounter round trip delays that are unbelievably long.  I mean seconds long.  I recommend a few things.

First, disentangle your game engine "move to this square" from the
real time interface "user hit a key".

Second, if the actions are supposed to be simultaneous, you'll need a
system to reassemble the normalized time sequence after the fact.  To
present a reasonable interface to the user, time has to move on at 1:1,
but when new actions arrive from the network, which took place "before"
the current time, you must unwind and replay in the correct time sequence.
This will occasionally result in your local user thinking he has succeeded in
some action, only to find that he hasn't.
3  Discussions / General Discussions / Porting with Codenameone on: 2016-08-09 23:00:00
Around the beginning of this year, I started a project to port Boardspace.net
to Android and IOS using Codenameone.  I think I first found Codenameone as
a possible tool set here, so I'm linking to this, sort of my final report, here.

http://boardspace.net/english/codename1-port/Porting%20Boardspace.html
4  Game Development / Newbie & Debugging Questions / Re: Fast color manipulation on: 2016-07-05 17:52:20
use a pre-computed lookup table with 256 elements, or if you really need them, 3 lookup tables.
Bonus; this gives you arbitrary color remapping.
5  Game Development / Newbie & Debugging Questions / Re: Movement interpolation - alpha ruins floating point and makes jerky moves on: 2016-06-20 22:51:42
floating point calculations are inherently unstable.  For sufficiently different values, A-B can yield
a result with no valid bits at all.  Even for "normal" values, you're likely to get into trouble if any
calculation's value approaches zero.

Its better to use fixed point, or rationals, or structure your calculations to not depend on the normal
laws of arithmetic.  Putting a little slop into floating point comparisons can help, but it's only papering
over the problem.  The slop will build up and eventually your threshold will be exceeded.
6  Discussions / General Discussions / Re: Question: Bit-exact floats on different computers? on: 2016-06-16 16:38:54
It's unwise to depend on exact value floats.  Even if you believe everyone is doing the same
calculation, compilers can and do change the order of calculations in ways that are permitted by
the normal laws of arithmetic, but which no floating point implementation can actually follow.
7  Game Development / Artificial Intelligence / Re: Hnefatafl on: 2016-04-26 00:22:34
different from traditional =  modernized .  It scans for me.
8  Game Development / Newbie & Debugging Questions / Re: Adding multi-player on: 2016-04-16 19:08:37
You should design for multi-player from the ground up.  The essential bit is that
the game has to move forward based on discreet messages.  Events in the UI
have to be transformed into messages, and then messages (both the locally generated
and those received from other players) have to be parsed and interpreted.

If your framework follows this discipline rigorously, then switching from local/fake
multiplayer to real multiplayer will be relatively painless.
9  Game Development / Artificial Intelligence / Re: Hnefatafl on: 2016-04-16 18:06:02
A standard alpha-beta AI works very well, counting the "wood" and a few simple
factors such as king safety and proximity to the goal.   The asymmetric rules
has no effect at all on the AI - all it needs is a move generator.

You can play on against this simple AI on Boardspace.net, where the game is known as
Tablut (no one can pronounce or spell Hnedatafl!)
10  Discussions / General Discussions / Re: Oracle kills webstart on: 2016-02-12 18:48:23

The hidden flaw is this:  Sandboxed applets were theoretically safe, but sometimes compromised by bugs.
Web start applications, or any other means to download and run a program is guaranteed to be unsafe.

So by training users to switch from mostly safe to a guaranteed unsafe software, you are making
them less secure, not more.

IMO the ongoing deprecation of applets is more about oracle washing their hands of the problem
than about real security.
11  Game Development / Networking & Multiplayer / Re: what would be the basic structure for UDP multiplayer server/client on: 2015-12-15 19:03:29

TANSTAFL.   The reason TCP has "unacceptable" performance is that to fulfill the
in-order guaranteed delivery, sometimes you have to hold everything up while the
lost messages are transmitted.   Adding reliability to UDP will incur the same penalty.

The internet and IP are based on throwing stuff on the floor if you get too busy,
and therefore are inherently unsuited to certain kinds of games, for instance multi-person
fast shooter games.

The OP ought to understand that before he invests a lot of time in a project.
12  Game Development / Networking & Multiplayer / Re: what would be the basic structure for UDP multiplayer server/client on: 2015-12-15 18:26:08

You shouldn't use UDP to build games, at least not without a lot of extra complexity,
for the simple reason that UDP is not guaranteed to be reliable.   UDP messages
can arrive out of order, or not at all.  You can use UDP for non-critical messages
such as the instantaneous mouse position, but anything that affects the flow of
the game has to be sent reliably.

This leaves you with two choices.  Either use TCP for "important" messages, and
somehow integrate the non-synchronized TCP and UDP streams, or add a layer
of complexity to your UDP messages to add TCP-like reliability guarantees to
the important messages.
13  Game Development / Newbie & Debugging Questions / Re: Sending data through Socket leads to lock-up on: 2015-10-16 16:27:33
send and receive can both block, independently.  It's essential that there are separate threads for sending and
receiving, and that the producer and consumer of the positions not be dependent.
14  Game Development / Artificial Intelligence / Re: Decision Making in Strategy Game on: 2015-07-22 05:21:50
You're on the right track.   The individual game has to provide some basic
interface methods, such as "copy the board" and "make a random move",
while every thing else is done by a generic framework, which is instructed
to start with the current situation and spend N seconds finding the best
move to make.
15  Game Development / Artificial Intelligence / Re: Decision Making in Strategy Game on: 2015-07-16 19:30:24
The basic idea is to play many games using random moves, all the way to the end.  If you win the random game, give positive reinforcement to the root move of the tree.  If you lose the random game, give negative reinforcement.   There are many variations and different formalisms based on this idea.

AFAIK this was first used successfully in world class Backgammon programs, but it reached critical mass as the basic technique in Go playing programs.  

The amazing thing is that it doesn't require any strategy or knowledge of the game, other than recognizing the winner.  Of course, adding some knowledge can help too.  For example, I recently made a MCTS robot play several variations of checkers, and with absolutely no tuning it beats me flat using 10 seconds per move.
16  Game Development / Artificial Intelligence / Re: Decision Making in Strategy Game on: 2015-07-10 17:13:03
I've done AIs for over 60 strategy games, ranging from simple movement games to complex
euros.  These days, I always start with MCTS.   Depending on the game, it works anywhere
from poorly to magically well - but it is trivial to implement for any particular game (once you
have a generic MCTS framework) and the work to create a basic MCTS bot for a particular game
is necessary for other methods, so no effort is wasted.


17  Game Development / Newbie & Debugging Questions / Re: Self-cert Java Applet Issues on: 2015-06-10 05:20:52
Self certs are no longer acceptable as applets or jws applications.  You have to
pay for a real certificate.   As security this is complete BS, but that's the way it is.
18  Java Game APIs & Engines / Android / Re: From Java to Android, challenges on: 2015-05-27 18:53:36
I'm thinking of porting legacy java too. 

One major advantage I have, I think, is that 95% of my graphics is done using only a canvas, no swing or awt widgets.  If I use only a canvas, then doesn't that eliminate using XML for layout?

Big open question, networking.  Can I use raw sockets?
19  Discussions / Miscellaneous Topics / Re: screen scraping as a hacking method? on: 2015-05-02 20:41:49
Scar is the kind of thing I suspect is in use, but something much more than just scriptable is needed.
I know there are other windows programs, ostensibly  intended for testing GUIs, that will remember
and playback sequences of mouse actions.
20  Discussions / Miscellaneous Topics / screen scraping as a hacking method? on: 2015-04-30 21:50:46
I'm engaged in a low stakes hacking war with an unknown party who is messing with one of my java web start applications. The available evidence suggests that the most likely way this hack works is by interpreting the pictures on the screen, and feeding in mouse clicks. This can't be a simple replay attack - some pretty sophisticated image processing must be involved, and the interpreter has to be coupled with a custom back-end robot. All in all, an improbably sophisticated package for this hack, which is definitely "just for fun" not profit or malice.

My question is what toolkits might be the basis for such a system?
21  Discussions / Miscellaneous Topics / Re: Crash - Corrupt File, Months of Work Lost on: 2015-03-20 06:37:12
The correct answer starts like this: "six months ago, establish a reliable backup procedure..."
22  Game Development / Game Play & Game Design / Re: Getting Adjacent Tiles on: 2015-03-11 06:48:06
My games all give each cell on the board an array of links to adjacent cells; and all routine navigation from cell to cell uses it instead of the coordinate system.  This has lots of advantages.  It's efficient to use.  All the standard overall geometries are obviously handled, but so are oddly shaped boards with cells missing, boards closed into a torus, boards with arbitrary networks of cells and so on.
23  Game Development / Newbie & Debugging Questions / Re: What should i use to develop multiplayer game online in browser ? on: 2015-02-28 21:04:00
You have to jump through the right hoops to get a java version working.   To work for ordinary
users without disabling all security, the applet has to be signed by a real certificate, and if it
uses sockets it has to use the "all permissions" setting instead of sandbox.
24  Game Development / Game Play & Game Design / Re: The impossible 15-Puzzle on: 2015-02-11 07:35:21
Don't quote me, but I recall that for the classic 15 puzzle, exactly half of
all positions are impossible, and that a simple counting algorithm can be used
to determine which half any position is in.
25  Game Development / Newbie & Debugging Questions / Re: Java game : is it possible that update is called before re-paint is completed ? on: 2014-12-20 18:10:05

It's insanely difficult to get the synchronization right if you have 2 or more
threads marching through the same data structures, some making changes,
some trying to generate a new display.

A better strategy is to centralize drawing and mutating in one thread.
Other threads that feed in  events of various types, such as network activity,
mouse activity, and display update requests, should only queue these events
to have their effects one at a time.

26  Game Development / Newbie & Debugging Questions / Re: Starting a Java Game, Where to Start? Eventually want to be network multiplayer on: 2014-12-14 07:53:33
It all depends on what you value most: the result and a community of players, or the learning experience across the whole process.   It is appealing to start by mining your own sand, but not if you actually expect to love the first few castles you build.

You won't find a lot of formal teaching materials, but there are a bunch of open source frameworks you can either use or just study.
27  Game Development / Networking & Multiplayer / Re: [Solved] Three Solutions to UDP's Critical Packet Loss on: 2014-11-18 17:14:34
Unneeded "features" of TCP shouldn't be a consideration, they cost you nothing.
28  Game Development / Networking & Multiplayer / Re: Three Solutions to UDP's Critical Packet Loss on: 2014-11-17 20:46:24
Switching to TCP ought to be simple, and it solves your problem definitively.

The other solutions put a band-aid on UDP, but only probabilistically, and at the same time introduce
other problems.   A retransmitted UDP packed is out of order, and adding consideration of the state
of communications to higher levels of the program complicates things greatly.

If you think about it, the main reason not to switch is the less-predictable latentcy; and recovery
of critical packets adds this same unpredictability.

BTW, solution #6 would be to redesign your game to not have critical packets.
29  Game Development / Networking & Multiplayer / Re: java.net.SocketTimeoutException: connect timed out on: 2014-11-11 18:52:44
It sounds like the actual problem is that the process providing the data is blocked.
A common error is assuming that sending a small amount of data will always
succeed quickly, when in fact it can block. 

Outside of the actual data transfer, other kinds of synchronization issues
among threads can stop progress; "socket timed out" is only a symptom.
30  Game Development / Game Mechanics / Re: Packing data on: 2014-11-08 07:27:01
ignore this until your game is complete, and you metering shows that the bandwidth consumed is a major factor.
Pages: [1] 2 3 ... 5
 
roseslayer (435 views)
2016-08-06 11:43:29

roseslayer (395 views)
2016-08-06 09:43:11

xTheGamerCodes (471 views)
2016-08-04 15:40:59

xTheGamerCodes (464 views)
2016-08-04 15:40:24

orrenravid (814 views)
2016-07-16 03:57:23

theagentd (890 views)
2016-07-11 14:28:54

Hydroque (986 views)
2016-07-06 05:56:57

Hydroque (1000 views)
2016-07-03 08:52:54

GrandCastle (812 views)
2016-07-01 09:13:47

GrandCastle (640 views)
2016-07-01 09:09:45
Rendering resources
by Roquen
2016-08-08 05:55:21

Rendering resources
by Roquen
2016-08-08 05:52:42

Rendering resources
by Roquen
2016-08-08 05:50:38

Rendering resources
by Roquen
2016-08-08 05:49:53

Rendering resources
by Roquen
2016-08-08 05:32:39

Making a Dynamic Plugin System
by Hydroque
2016-06-25 00:13:25

Java Data structures
by BinaryMonkL
2016-06-13 21:22:09

Java Data structures
by BinaryMonkL
2016-06-13 21:20:42
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!