www.jpct.net

jPCT - a 3d engine for Java => Projects => Topic started by: rolz on October 21, 2004, 04:03:43 pm

Title: Technopolies
Post by: rolz on October 21, 2004, 04:03:43 pm
An upcoming effort to create XCom/Jagged Alliance/LSN like mmorpg.
Title: Technopolies
Post by: EgonOlsen on October 21, 2004, 09:25:10 pm
Looks amazing. I assume that it's turn based? When i'm finished with Paradroid3D (which is still a long way to go...), i may start something similar based on the idea of robosport (anybody remembers that game?).

Edit: I've added a link to this thread on the projects page (http://www.jpct.net/projects.htm). If you've got a public demo up and running, i can change the link to that...
Title: Tech demo
Post by: rolz on October 30, 2004, 06:07:33 pm
Playable demo.
http://213.232.242.32/technopolies/
Title: Technopolies
Post by: EgonOlsen on October 30, 2004, 07:41:50 pm
Very nice...seems like you put a lot of affords into this game to come that far in such a short period of time. Maybe a version with english texts for the menus would help some people to start a new game and such. I had to derive it from the naming of the HTML-page called which menu does what, because my girlfriends russian is too rusty to be helpfull in this case... :wink:
Anyway, i finally started my own game and killed two bots. When firing at the third, i got this exception:

 
Code: [Select]
java.lang.NullPointerException
at java.util.Hashtable.get(Unknown Source)
at game.client.engine.Grid.toVector(Grid.java:113)
at game.client.engine.Grid.getAngle(Grid.java:204)
at game.client.handlers.RotationHandler.process(RotationHandler.java:46)
at game.client.commands.FireCommandHandler.commandExecuted(FireCommandHandler.java:106)
at game.common.commands.Command.execute(Command.java:98)
at game.common.commands.CommandQueue.execute(CommandQueue.java:61)
at game.client.Game.play(Game.java:201)
at game.client.Game.process(Game.java:166)
at game.client.engine.Engine.notify3DHandlers(Engine.java:347)
at game.client.engine.Engine.gameLoop(Engine.java:146)
at game.client.engine.Engine.start(Engine.java:89)
at GameApplet.start(GameApplet.java:123)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)


However, this you've done a great job on this game and i think has lots of potential. Can't wait to see how it evolves in the future.
Title: Tech demo
Post by: rolz on October 31, 2004, 10:43:04 am
I took care of both the english version and the bug.
http://213.232.242.32/technopolies/
Title: Technopolies
Post by: EgonOlsen on November 02, 2004, 01:02:59 am
I'm having some problems to get it to run with Java 1.5 in both, Firebird and IE. It loads fine, it initializes everything and after doing the combined-vs-splitbuffer-test, it's sitting there displaying the Java 1.5 applet logo and nothing happens. However, it seems to do something in the background, because it consumes 50% of CPU power on my hyperthreading machine (i.e. one virtual cpu). If i reload the page, the actual game screen appears and i can play, but i'm at 100% CPU then, which means that the former instance of the game is still running in the background.
It worked fine on a 1.4.2 machine last weekend.
Title: Java 5.0 issue
Post by: rolz on November 03, 2004, 09:40:36 am
Fixed.
I recently started working on expanding the game's functionality and fixing resource management issues.

BTW, it appears that both 1.4.2 and MS JVM (1.1) work faster than 5.0 with JPCT ;(

http://www.laboiteaprog.com/tutoriel725
Title: Technopolies
Post by: EgonOlsen on November 03, 2004, 10:34:21 pm
Works fine now. I never experienced any performance differences between 1.4 and 5...not for the good and not for the bad. What exactly seems to be slower with Java5?
Title: Technopolies update
Post by: rolz on November 15, 2004, 07:54:29 am
I've improved resource handling and finally solved 1.1/1.5 compatibility issues.

1.5 works better now and even faster than ms jvm on big scenes.


there are also updates on game engine itself at
http://213.232.242.32/technopolies

- added inventory screen. Players can now switch weapons and equipment

- added close combat weapons (army knife). When no weapon is selected, players will attack with bare hands.

- death animation improved.

- added background music to the game (theme from UFO: Enemy Unknown) ;) plan to compose/buy sci-fi music soundtracks at some later point

- fixes to game server
Title: more tech screens
Post by: rolz on November 16, 2004, 11:14:30 am
http://213.232.242.32/technopolies/
Title: new shots
Post by: rolz on November 18, 2004, 10:40:14 am
(http://213.232.242.32/technopolies/screenshots/shot6.jpg)(http://213.232.242.32/technopolies/screenshots/shot7.jpg)
Title: nice
Post by: Necromancer on November 18, 2004, 05:01:44 pm
:twisted: look like many types shooters
but i'm like more intelectual game =) chess and etc

Andy! work harder! eat lot! =)
Title: Technopolies
Post by: EgonOlsen on November 18, 2004, 05:17:57 pm
Somehow, this version only works for 2 turns for me everytime i start it. So at the first run, i can play turn 1 and 2...then it hangs (no exception in the console). I can rejoin the game and play turn 3 and 4 and again, it hangs...this continues with 5 and 6 and so on...
I once got this message: Sound not found: /resources/sounds/hurt2.au, but i don't really think it's related to the problem.
I'm running the Java5 plugin in Firefox. One last thing: After it hangs, it repaints the loading screen if i'm moving the console (or whatever) window over the applet.
Title: latest update
Post by: rolz on November 21, 2004, 12:50:14 am
looks like something went wrong on the server side. In current version It will also show the message from server.

Btw, new version is available with more features, performance tweaks and so on. We are getting closer to building solid game engine.

I am off with midi keyboard to work on background theme ..

You might want to tweak Sun applet plugin to be able to run the game with more than 80 players on map:
http://forum.java.sun.com/thread.jsp?thread=158160&forum=30&message=2504614

It works perfect with MS jvm without any tweaks.
Title: Technopolies
Post by: EgonOlsen on November 22, 2004, 05:48:55 pm
I'm still getting this message:

Sound not found: /resources/sounds/hurt2.au

After that, nothing happens anymore.
Title: new version
Post by: rolz on December 02, 2004, 10:49:46 am
New version is available at
http://213.232.242.32/technopolies

- levels redesigned to be tiled and 3-dimensional.

- added semi-automatic weapons.

- shotguns redesigned to fire several bullets with a single shot.
Title: Technopolies
Post by: EgonOlsen on December 03, 2004, 12:38:59 am
I don't know, but i must do something wrong...i simply can't play it using Java1.5. It works fine using the MS-VM though. Under 1.5, i can make one move and it stops responding after that...no exception, no nothing. It just draws the "loading" graphics into the applet when i'm forcing the applet to redraw itself by moving another window over it.
Despite of this, i think that this is really great stuff. It looks very professional, it plays great...there should be a large market for a game like this.
Title: Technopolies
Post by: EgonOlsen on December 03, 2004, 04:05:16 pm
FYI: No probs under 1.4.2...only 1.5 shows this problem.
Title: sound problem
Post by: rolz on December 05, 2004, 10:12:38 am
Could you please check if it is reproduced on the latest version.

http://213.232.242.32/technopolies

- client performance optimized
- sound framework optimized for vm1.5
- fixed memory leaks
Title: wow
Post by: manumoi on December 06, 2004, 12:37:34 am
It looks really great.

I got two small questions. Which softwares did you used to design your level?  Did you describe your world with XML, using the DTD EgenOlsen provided or is it a classic format (3DS ...). And did you used Md2 for your characters? (if so, which modeller did you used?)

Thanks and congratulation

Manu
Title: Re: sound problem
Post by: EgonOlsen on December 06, 2004, 06:06:09 pm
Quote from: "rolz"
Could you please check if it is reproduced on the latest version.
It works under 1.5 now. Well done! However, sounds seem to have vanished after some turns, but that's maybe caused by the broken sound support of 1.5.  They optimized the sound system by using DirectSound hardware mixing but they obviously did a bad job. The only way to handle this, is to explicitly ask for a software mixer (like 1.4 was using it anyway).
Title: Technopolies
Post by: rolz on December 07, 2004, 06:50:14 pm
Quote
It works under 1.5 now. Well done! However, sounds seem to have vanished after some turns, but that's maybe caused by the broken sound support of 1.5. They optimized the sound system by using DirectSound hardware mixing but they obviously did a bad job. The only way to handle this, is to explicitly ask for a software mixer (like 1.4 was using it anyway).


Thanks for the tip. It was "the missing part" of the 1.5 sound issue ;)

The problem seem to be in DirectSound mixer initialization. Applet seem to close DirectSound Mixer if no sounds are playing, and it reopens/reinits it every time when new audio is about to be played, and causing sounds to "jam" for about 0.5 sec at start.

Seems very odd of Sun, but on software mixer the problem is not reproduced (as you described).

the workaround was to:

- loop() some audio file (silence.au) on Applet's start()
- do stuff (mixer is opened, so sound is no longer jammed)
- stop() audio loop on Applet's destroy()

It works for me.
Title: Technopolies
Post by: EgonOlsen on December 08, 2004, 12:43:42 am
Nice workaround... :wink:
Title: new version
Post by: rolz on December 11, 2004, 03:56:54 pm
http://213.232.242.32/technopolies

new version is available

new features :

- game loader (loads missing jars to disk before the game starts)
- redesigned human 3D models
- bullet impact sounds are now different for different materials
- buildings now have roofs when you point you mouse on the roof or when the player is inside the building then roof becomes transparent
- bot' AI modifications. Bots are now tracking down and hunting human players.
Title: Technopolies
Post by: EgonOlsen on December 13, 2004, 11:07:17 pm
Sound still seems to be broken on my 1.5 "powered" machine. I don't hear a thing after a turn or two. Sound really sucks under 1.5...
However, have you tried the 1.04 preview release of jPCT already? I've modified some parts that maintain the World's object list and while it works in every way i'm using it, i would be very interested if it works for technopolis too. One last thing: I noticed that you are loading the lwjgl.jar. Are you actually using anything from this package in your applet? jPCT only needs this for OpenGL support, so if you are not using anything else, you may skip loading it.
Title: new version
Post by: rolz on December 17, 2004, 01:27:59 pm
http://213.232.242.32/technopolies

- performance improvements. should run faster on weak machines

- added factions to game. Players of friendly factions do no attack you.

- added ranks. Bots now follow players with higher rank.

- added chat

(http://213.232.242.32/technopolies/screenshots/shot10.jpg) (http://213.232.242.32/technopolies/screenshots/shot11.jpg)
Title: JPCT 1.04
Post by: rolz on December 18, 2004, 10:44:23 am
Helge,

Quote

However, have you tried the 1.04 preview release of jPCT already? I've modified some parts that maintain the World's object list and while it works in every way i'm using it, i would be very interested if it works for technopolis too. One last thing: I noticed that you are loading the lwjgl.jar. Are you actually using anything from this package in your applet? jPCT only needs this for OpenGL support, so if you are not using anything else, you may skip loading it.


Where can i download 1.04 libraries ? The latest version which is available for downloads from the main section is 1.03.
Title: Technopolies
Post by: EgonOlsen on December 18, 2004, 02:07:52 pm
There's a post about it in the news section of the forum.
Title: JPCT 1.04
Post by: rolz on December 18, 2004, 03:05:19 pm
Quote
There's a post about it in the news section of the forum.


Ok, i'll give it a try.
Title: tech update
Post by: rolz on December 27, 2004, 03:03:00 pm
available at  http://213.232.242.32/technopolies

The project evolves. While it is still months away from the release date, i thought it is already something worth of bearing "powered by jPCT" logo ;). The more i work with jPCT the more i grow fond of it, great job, Helge !



New features:

- New applet loader. Added support for "on-the-fly" loading of required libraries.  
- new AWT l&f
- added navigation with mouse
- redesigned world. Each level now contains several "entry points" to another levels
- new weapon - katana sword
Title: Technopolies
Post by: EgonOlsen on January 11, 2005, 04:38:49 pm
What happened to your server? It seems to be down for some days now... :cry:
Title: Technopolies server
Post by: rolz on January 11, 2005, 07:38:51 pm
Hi Helge,

I am working on next version which is quite a leap comparing to all previous releases, with lots of new features.

The next release still will be combat-only game without game world.


new features so far:

- players may now drop and pick up items from the ground. Killed players drop some of their stuff before death.

- added minimap

- dead bodies are now bleeding. Corpses are removed from the map after some time to save resources.

- added ability to aim at specific body part. Damage amount and consequences depend on which part was hit by the bullet (e.g. head shots deal 3x damage, leg wounds deal much less damage but slow down your opponent, etc.)

- it is now possible to view items on the ground by highlighting them with mouse.

- added commands log window

- improved messaging window

- performance improvements.

- applet loader improvements (more stable now)


and some shots:

(http://rmjq.info/karneyenka/shot1-inventory_highlight_and_radar.jpg)
(http://rmjq.info/karneyenka/shot2-rumble.jpg)
(http://rmjq.info/karneyenka/shot3-player_inventory.jpg)
Title: Technopolies
Post by: EgonOlsen on January 11, 2005, 08:51:42 pm
Amazing...this really is the most advanced applet game that i've ever seen...
Title: ;)
Post by: rolz on January 14, 2005, 08:43:48 am
Thanks
 :oops:

There was an idea about writing a game for some time in my head. Frankly, there never was something like JPCT when i needed it

I hardly believe i can estimate real effort on JPCT, but what i could say is that for me it was AMAZING when i first started. It is even more amazing when i worked on a game for a while and got positive results and feedback.

The idea and the game engine could be BLOOD and FLESH for this game, while JPCT is its BONES, the technical base, which gave life to lots of risky ideas

I wish i could work more on the game (never have enough time tho, i do like my job after all ;) ) and promote JPCT, so one day it will start paying back and reward you for your efforts. We are definitelly on the same side here.
Title: New features
Post by: rolz on January 15, 2005, 10:02:51 am
- added modifiers to player and items in game (perks, bonuses or injuries and malfunctions) which affect player/item's stats

- added character screen

- added character icons. It is planned to make character's appearance fully adjustable.

(http://rmjq.info/karneyenka/shot4-character_screen.jpg)
Title: new features
Post by: rolz on January 19, 2005, 05:10:06 pm
- redesigned gameplay to depend on 4 player's attributes:

   STR (Strength) - defines how much you can cary
   AGL (Agility) - defines how fast you are on your feet
   CON (Constitution) - defines how much HPs do you have
   PER (Perception) - defines how accurate you are with ranged weapons

- Players now may wear hats and helmets

- Added heavy Marine Armor (tough but very heavy)

here are some screenshots

(http://rmjq.info/karneyenka/shot5-heavy_armor.jpg)
(http://rmjq.info/karneyenka/shot6-minigun_vs_katana.jpg)

This version is not yet available via public server, it will be published along with another major improvement - the game world and "peace mode" where players could walk along, buy weapons, get quests, enter guild or clan and travel between locations.
Title: technopolies update
Post by: rolz on January 28, 2005, 07:12:52 pm
Updated server at http://213.232.242.32/technopolies

new features

- added grenades and grenade launchers
- game redesigned to support both peace and war mode. However, only basic functions of peace mode are now available
- server code is now operates with database. Player's state is now persistent
- added background daemons on serverside. Players are now healed between battles when idle.
- added random map generator for battles
- UI graphics improvements
Title: jar compression
Post by: rolz on January 28, 2005, 07:16:51 pm
Helge,

I want to obfuscate applet classes for size reduction.
Could i do same with jpct libraries ?

 (170 kb technopolies.jar + 150 kb jpct.jar = 181kb technopolies.jar)
Title: Re: jar compression
Post by: EgonOlsen on January 29, 2005, 02:56:14 am
Quote from: "rolz"
Helge,

I want to obfuscate applet classes for size reduction.
Could i do same with jpct libraries ?

 (170 kb technopolies.jar + 150 kb jpct.jar = 181kb technopolies.jar)

The license permits it. So if it works...no problem. However, i would double check on all VMs...sometimes, obfuscated code won't run on one VM or the other.
Title: more screenies
Post by: rolz on February 07, 2005, 05:06:57 pm
(http://rmjq.info/karneyenka/shot7.jpg)
Title: Technopolies
Post by: EgonOlsen on February 09, 2005, 11:43:27 pm
Every time you are posting a screen shot, i ask myself how this is possible with jPCT... :wink:
If you promote your game (and i'll do for sure too), this should be a winner...
Title: Thanks
Post by: rolz on February 11, 2005, 04:40:41 pm
I hope the game will shape up and be ready for first public release in a month or so.

I am pushing away the release date to polish game details so it could attract people from the very first run.

As to the idea and gameplay, it is close to
http://runescape.com/
and
http://www.timezero.ru/

I am not planning the game to ever be commercial or subscription-based.
It will be:
  1. free
  2. community-based, like a global chat or forum where players could just chat or trade or perform quests or whatever else
  3. minimalistic  (the client is only 190kb for first-time download)
  4. should be bandwidth-friendly (about 10-20kb/min)
Title: new feature
Post by: rolz on February 11, 2005, 04:54:19 pm
Added custom bitmapped components to game:

 - labels,
 - textfields,
 - lists,
 - tooltips

check one of previous screenshots to see the difference.
(http://rmjq.info/karneyenka/shot8.jpg)
Title: new screens
Post by: rolz on February 16, 2005, 07:17:16 pm
New screens:

the inventory with page scrollers
(http://rmjq.info/karneyenka/shot9.jpg)

The shop
(http://rmjq.info/karneyenka/shot10.jpg)
Title: Technopolies 0.75
Post by: rolz on February 17, 2005, 06:40:59 pm
available at http://213.232.242.32/technopolies
Title: Re: Technopolies 0.75
Post by: EgonOlsen on February 17, 2005, 07:27:03 pm
Quote from: "rolz"
available at http://213.232.242.32/technopolies
Internal server error... :cry:

Edit: Seems to work again... :D
Title: Technopolies 0.76
Post by: rolz on February 19, 2005, 05:01:01 pm
Performance and stability improvements
at http://213.232.242.32/technopolies/game.play.do
Title: Technopolies
Post by: EgonOlsen on February 22, 2005, 01:12:21 am
Seems to run better now regarding memory usage...at least it doesn't bomb out with "out of memory", which the former version did for me. The upcoming jPCT 1.05 version may be able to improve this even further, because it uses less memory by default and you can even tweak some things in addition.
Should be ready within a week...i hope...
Title: Technopolies
Post by: Necormancer on February 22, 2005, 11:04:39 am
:twisted:
mmmm people
can i'm use you 3d engine fro my?
Title: Technopolies
Post by: EgonOlsen on February 22, 2005, 06:25:51 pm
Quote from: "Necormancer"
mmmm people
can i'm use you 3d engine fro my?
:?: I'm not really sure, what you are trying to ask here...
Title: JPCT 1.05
Post by: rolz on February 26, 2005, 10:29:09 am
Helge,

I've noticed that on the new 1.05 the average memory consumption is as low as 80-90Mb on Sun VM (vs 120mb on 1.04). Great work, really ;)


For the last two weeks i was working on adding scalable architecture to the backend. There would be only minor changes on the client side in the next release (except for JPCT 1.05 ;) .
Title: v0.78
Post by: rolz on February 28, 2005, 02:34:59 pm
http://213.232.242.32/technopolies/
now uses JPCT 1.05
Title: v0.79
Post by: rolz on March 05, 2005, 03:05:59 pm
http://213.232.242.32/technopolies

added quest managers

(http://rmjq.info/karneyenka/shot11.jpg)
Title: Tehnopolies engine
Post by: rolz on March 21, 2005, 07:47:17 am
v0.8 is out
http://213.232.242.32/technopolies

- added support for Groovy NPC scripts
- new look for walls and static objects
- walls and static objects are now destructible
- improved client/server response time
Title: Technopolies
Post by: EgonOlsen on March 30, 2005, 12:41:24 am
Any plans on getting a "real" domain for it?
Title: 0.85 is out
Post by: rolz on May 06, 2005, 03:49:12 pm
Will be available at http://195.91.144.195/technopolies later this evening.

New features:

- redesigned to operate as desktop application.
- added OpenGL support
- added high detailed player models
- added skeletal animation
- added particle effects like smokes and blood stains

NOTE: modify following line in techno.properties:
Code: [Select]
gameUrl=http://195.91.144.195/technopolies


@TODOs for the next release:
- redesign tiles to look better (use 3DS for tiles since flat tiles look awful)
- redesign network module to be more responsive (switch from HTTP to TCP, from unidirectional to bidirectional)
- add templating for in-game items. should greatly reduce b/w usage
- add money/stackable items
- buy a domain for the game. Cant wait to attract new people to the project to work on game story and gameplay ideas.

(http://rmjq.info/karneyenka/shot12-opengl.jpg)
Title: Technopolies
Post by: EgonOlsen on May 09, 2005, 08:17:22 pm
Coooool stuff....will OpenGL be optional or have you dropped software rendering completely?
I'm still having problems to figure out how to leave the starting area. I can walk on the places which seem to be the transition points between the areas, but nothing happens. Am i missing something here?
BTW.: I've corrected the link on my projects page to the new IP.
Title: Technopolies
Post by: raft on May 10, 2005, 03:24:01 am
ooh, it really looks nice :) how should i log in ? register link at your page doesnt work ?

and the game window does not have a title bar (only way to close it is killing). this is possibly for my box doesnt support full screen mode (paradroidz doesnt work in full screen mode either)

Code: [Select]
r a f t
Title: Leaving the starting area
Post by: rolz on May 11, 2005, 08:52:03 am
Hey there,

1. There should be no problem in switching between renderers as long technopolies does not use lwjgl features directly, only through JPCT api.

2. It is planned that big locations would consinst of smaller locations, like districts in city. Players will be able to move between locations via exit points on map. Currently this feature is not fully functional.
 A couple of quest bots has been placed to a starting location (Russian and English) to help testing combat mode. You have to do is to ask them to give you training. You will be teleported to a random location with hostile, ally and neutral units (60%/10%/30%). the fight will continue unless there are no hostiles left on the map.  

3. Currently, there is no system menu, i will add one later. Btw, raft, the game uses 1024x768 resolution. On higher reso it will look as floating window without titlebar. Support for multiple resolutions is another thing to do in the nearest future.
Title: Re: Leaving the starting area
Post by: EgonOlsen on May 11, 2005, 09:32:45 am
Quote from: "rolz"

 A couple of quest bots has been placed to a starting location (Russian and English) to help testing combat mode. You have to do is to ask them to give you training. You will be teleported to a random location with hostile, ally and neutral units (60%/10%/30%). the fight will continue unless there are no hostiles left on the map.
I've already figured that out, but somehow the combat doesn't work. I can give my orders, end the turn, get a wait-bubble and that's it....there seems to be some occasional network traffic but nothing else happens. No one moves, fires or anything and the wait-message doesn't go away... :cry:
Title: Technopolies
Post by: raft on May 12, 2005, 07:08:23 am
i've logged in but welcomed with an almost empty screen. the chat, inventory and character screens are there, but i couldnt go any further  :?:

Code: [Select]
r a f t
Title: Redesign.
Post by: rolz on May 20, 2005, 12:02:00 pm
The technopolies game model is going through intensive redesign.
 It is now meant to be 3Dimensional  and realtime, close to what World Of Warcraft offers.
It would take a couple of weeks to make working version of server/client, provided the load on my day job wont be too pressing.
Title: Development
Post by: rolz on May 23, 2005, 07:55:49 am
- Techno Server was redesigned to operate in realtime.
- Maps are no longer tiled structures but realtime 2D terrain.
- added terrain generator which generates relief terrain from GIF images

server map viewer
(http://home.ripway.com/2005-5/312079/shot15-map2.jpg)

server map viewer#2
(http://home.ripway.com/2005-5/312079/shot16-map3.jpg)


Original map image
(http://home.ripway.com/2005-5/312079/shot18-mapbuilder2d.jpg)

Generated map
(http://home.ripway.com/2005-5/312079/shot17-mapbuilder.jpg)

Same map with clouds and fog
(http://home.ripway.com/2005-5/312079/shot19-mapbuilder3d.jpg)

It is still needed to port previous objects (buildings & misc) onto the new terrain:

opengl'ed:
(http://home.ripway.com/2005-5/312079/shot12-opengl.jpg)
(http://home.ripway.com/2005-5/312079/shot11-opengl.jpg)
Title: Technopolies
Post by: Remo on May 23, 2005, 10:58:42 am
Wow man... When I first saw this project I tought it was going great but now I see it like a very very strong project man. Keep up the good work. Im looking forward to check your game out :).


Edit: I just drooled at your terrain generator for like 5 minutes wondering If I can achieve something like that for my project.

Edit II: I was wondering what server technology are you using for technopolies??? Im really new to server side programming so I want to start with something that will help me with my game project so I can learn and use the most of it.
Title: Terrain code
Post by: rolz on May 23, 2005, 12:52:54 pm
Sand storm on the surface ... 8)
(http://home.ripway.com/2005-5/312079/shot20-mapbuilder3d.jpg)

Here is the terrain generator code that uses images to generate 3D terrain. ClientFactory.addPlane() generates rectangle by 4 points, the code should be somewhere here in one of the forums.

Code: [Select]

//load map image and grab pixels data
        Image map = ClientFactory.getImage("/resources6/test_map2.gif").getScaledInstance(MAP_WIDTH, MAP_HEIGHT, Image.SCALE_SMOOTH);
        PixelGrabber pg = new PixelGrabber(map, 0, 0, MAP_WIDTH, MAP_HEIGHT, true);
        pg.grabPixels(0);
        int[] pixels = (int[]) pg.getPixels();

        //create terrain object
        ground = new Object3D(pixels.length * 4);

        //store map heights
        int[][] cols = new int[MAP_HEIGHT][MAP_WIDTH];

        for (int i = 0; i < pixels.length; i++) {
            int x = i / MAP_WIDTH;
            int y = i % MAP_WIDTH;
            int col = getCol(i, pixels);
            cols[x][y] = col;
        }

        //preload random textures for map tiles
        String[] textures = new String[]{
            "/resources6/test_texture.jpg",
            "/resources6/test_texture2.jpg",
            "/resources6/test_texture3.jpg",
            "/resources6/test_texture4.jpg",
            "/resources6/test_texture5.jpg"
        };
        for (int i = 0; i < textures.length; i++) {
            ClientFactory.getTexture(textures[i]);
        }
       
        //add polygons to Ground
        for (int i = 0; i < MAP_HEIGHT - 1; i++) {
            for (int j = 0; j < MAP_WIDTH - 1; j++) {

                int nw = cols[i][j];
                int ne = cols[i][j + 1];
                int se = cols[i + 1][j + 1];
                int sw = cols[i + 1][j];

                int x = j;
                int y = i;

                int textureId = TextureManager.getInstance().getTextureID(textures[(int) (Math.random() * textures.length)]);

                ClientFactory.addPlane(ground,
                        new SimpleVector(x * CELL_SIZE, y * CELL_SIZE + CELL_SIZE, HEIGHT_PER_UNIT * sw), //sw
                        new SimpleVector(x * CELL_SIZE, y * CELL_SIZE, HEIGHT_PER_UNIT * nw), //nw
                        new SimpleVector(x * CELL_SIZE + CELL_SIZE, y * CELL_SIZE, HEIGHT_PER_UNIT * ne), //ne
                        new SimpleVector(x * CELL_SIZE + CELL_SIZE, y * CELL_SIZE + CELL_SIZE, HEIGHT_PER_UNIT * se), //se
                        CELL_SIZE,
                        textureId);

            }
        }

        ground.calcNormals();
Title: Server technology
Post by: rolz on May 23, 2005, 01:17:40 pm
The server is build on top of java NIO and its own scalable lightweight framework. Earlier applet versions used j2ee server which turned out to be the overkill. Some later i had to switch to a home made solution.

I did some research on game servers and did not found anything for outright use. Most of techs are either in the prototype stage or are expensive or lack documentation and proven successful usage facts.

1. Java Game Server - http://www.gridtoday.com/04/0329/102930.html SUN demoed it a year ago and since then i did not hear anything about this technology. Still it looks very promising due to it's innovative resource management approach.

2. GREX engine http://www.grexengine.com/ claims to have same features. I did not managed to find a decent doc or demo or whatever that proves that it is worth using. Costs $5.000-$500.000 depending on the license type
Title: Animation Editor update
Post by: rolz on May 23, 2005, 01:24:36 pm
- Animation editor redesigned to support custom skeletons

animation editor
(http://home.ripway.com/2005-5/312079/shot21-animation_editor.jpg)

naked character
(http://home.ripway.com/2005-5/312079/shot22-character.jpg)
Title: Technopolies
Post by: raft on May 23, 2005, 05:54:57 pm
hey rolz,

can u say more about that animation editor ? what does it do exactly ? and may we use it ? ;-)

the links seem nice but i'm quite unsure if such a 'network engine' worths that much. for karga, up to now it wasnt the networking and and other server side stuff but client side 'mathematics' that challenged me.  for instance deciding a direction and making a character step to that direction smoothly is god damn harder than broadcasting server events to clients. it maybe because of i was experienced on those stuff but i'm not sure

your shots seem cool as always
Code: [Select]
r a f t
Title: Animation
Post by: rolz on May 24, 2005, 03:33:14 pm
Technopolies animation is simplier than skeletal (Cal3D ) or mesh animaton (which is supported by JPCT).

I used rot angles between body parts to define each frame. Then rotate all specified parts to some interpolated values on playback.
Animation editor is a visual tool for recording/previewing animations.

The pros of using own animations framewor are that it is really simple and lightweight. The cons are that you cannot mix several animations for same body parts (while it is still possible to mix separate animations for, say legs, arms and chest).

You may also want to check Cal3D as it should be more mature (in fact i am looking into switching to it someday on low priority), try googling for Fuze3D and java port of Cal3D
Title: Texture map
Post by: rolz on May 24, 2005, 04:50:07 pm
Added texture maps to map builder.
Different textures could be bound to colors of pixels on texture map


this is how the relief map looks like:
(http://home.ripway.com/2005-5/312079/shot24-heightmap.gif)

texture map that defines textures for map squares:
(http://home.ripway.com/2005-5/312079/shot23-texturemap.gif)

and the result:
(http://home.ripway.com/2005-5/312079/shot25-texturemap.jpg)
Title: Technopolies
Post by: EgonOlsen on May 25, 2005, 01:04:59 am
Nice progress on the 3D/realtime version...i can't wait to see how all this fits together graphical and gameplay wise. And i don't think that your animation system is simpler than jPCT's. It's just different and it has a lot of pros on its side compared to mesh interpolation.
Title: Technopolies
Post by: Remo on May 25, 2005, 09:57:08 am
Oh man, thanks for that.

All this stuff looks great!!!! You are doing a great job! Thanks for all the information.

Edit: Is all the 2D stuff blitted onto the screen?
Title: Technopolies
Post by: rolz on May 25, 2005, 02:48:57 pm
yes. There is no other way to show 2d in openGL mode
Title: Animated characters
Post by: rolz on May 25, 2005, 07:36:43 pm
- added animated characters to the new terrain. a
- added weather conditions to the world

(http://home.ripway.com/2005-5/312079/shot26-players_on_terrain.jpg)

(http://home.ripway.com/2005-5/312079/shot27-players_on_terrain.jpg)
Title: new models
Post by: rolz on May 29, 2005, 01:34:05 pm
- optimized player models (from 1200 to 530 faces)

(http://home.ripway.com/2005-5/312079/shot28-new_model.jpg)(http://home.ripway.com/2005-5/312079/shot30-new_model2.jpg)(http://home.ripway.com/2005-5/312079/shot31-new_model.jpg)(http://home.ripway.com/2005-5/312079/shot32-new_model.jpg)
(http://home.ripway.com/2005-5/312079/shot29-new_model_ambush.jpg)
(http://home.ripway.com/2005-5/312079/shot33-new_model.jpg)
Title: Loading server map
Post by: rolz on June 01, 2005, 10:21:46 am
- added support for map viles created in MS Visio

visio allows custom property sets for objects and makes it possible to export the entire drawing to XML.


drawing map in Visio using custom stencils
(http://home.ripway.com/2005-5/312079/shot34-visio_map.jpg)

same using the relief map as background
(http://home.ripway.com/2005-5/312079/shot35-visio_map.jpg)
Title: Technopolies
Post by: EgonOlsen on June 01, 2005, 05:12:50 pm
What a nice idea to simply use Visio as a level editor. That's something that i have to keep in mind...
Title: Technopolies
Post by: rolz on June 01, 2005, 05:56:00 pm
1. google for 'visio.xsd' , download it (5 min)
2. use Apache XMLBeans to generate XML stubs for visio document schema (5 min)
3. create custom property set and a couple of simple objects (walls, buildings  and trees) - 10 min
4. write a testcase for loading templates and objects on map - accessing coordinates, bounds and custom property sets - 15 min.
Title: Multitexturing
Post by: rolz on June 01, 2005, 06:06:57 pm
Egon,

Would it be possible to assign multiple textures to a polygon ?

Basicaly, i would like to lay "road bricks" texture on top of some polygons of the terrain object
Title: Re: Multitexturing
Post by: EgonOlsen on June 02, 2005, 12:00:35 am
Quote from: "rolz"
Would it be possible to assign multiple textures to a polygon ?
Currently not, i'm afraid. It's mainly a tribute to the software renderer that there is no kind of multi texturing in jPCT (not entirely true...the software renderer has this blended bump mapping, but that's all there is about it). If you want something like this, i suggest to use geometry instead or at least place some polygons with the needed texture on top of the landscape. That's something that you may have to do anyway, even if jPCT would allow for normal multi texturing, because what you want may not be normal multi texturing (i.e. multiplicative blending).

Hope this helps.
Title: Technopolies
Post by: rolz on June 15, 2005, 03:25:42 pm
too busy on day job to work on techno :(

- modified server side calculations to use QuadTrees instead of portals
- Internal game model modifications - looks much better now
- added support for bean to text serialization. For most objects it works faster than regular serialization and the output is 50% to 80% smaller that serialized data.
- modified network model to be more lightweight and comprehensive

Visibility detection using QuadTree:
(http://home.ripway.com/2005-5/312079/shot36-optimized_server.jpg)

Bounding boxes, chains of commands:
(http://home.ripway.com/2005-5/312079/shot37-optimized_server.jpg)
Title: Status update
Post by: rolz on June 19, 2005, 03:46:22 pm
- finished working on network code. The game now operates in realtime.

- added support for composite 2d objects on server (like buildings). collision detection with walls and moving objects works perfectly fast.

- started working on realtime 3d client.

a map generated in Visio, with some bots on it.
(http://home.ripway.com/2005-5/312079/shot39-client3d_static.jpg)

Same map, in 3d net client.
(http://home.ripway.com/2005-5/312079/shot41-client3d.jpg)

2d net client
(http://home.ripway.com/2005-5/312079/shot40-2d_network_client.gif)
Title: 0.88 is out
Post by: rolz on June 22, 2005, 11:44:32 am
After 2 months, now realtime.
There is not that much left from the former game though :)

- redesigned server/client
- added smooth movement transitions
- added picking/hiliting objects with mouse

client is available for download at
http://home.ripway.com/2005-5/312079/technopolies20050622.zip
server url: 195.91.144.195
usage: 3d.bat 195.91.144.195


(http://home.ripway.com/2005-5/312079/shot42-client3d.jpg)
Title: Technopolies
Post by: Sarge on June 22, 2005, 08:43:45 pm
Looks terrific  :shock: ! When do you expect it will be ready :?:
Title: Technopolies
Post by: EgonOlsen on June 22, 2005, 09:34:57 pm
A small flaw: The 3d.bat misses a ; after the %CLASSPATH%
Title: Technopolies
Post by: rolz on June 23, 2005, 10:31:45 am
Wops. I'll take a look
Title: 0.89 is out
Post by: rolz on June 27, 2005, 12:55:11 pm
client download (~1Mb):
http://home.ripway.com/2005-5/312079/techno_2005-06-26.zip

new features:

 - added attack command. It is now possible to slaughter NPCs ;)
 - added portals which move player between locations. there are 2 locations so far on the server: Olbridge and Evergreen Forrest.
 - fixed bug with movements which caused players to stuck at certain conditions.
 - fixed bug with zooming in/out (thanks Helge)
Title: Technopolies
Post by: EgonOlsen on June 29, 2005, 01:15:02 am
Works fine (except for the bat directing to jre\...which doesn't work on my system), but i don't have a clue how to attack the NPCs. They are all standing around doing nothing (not even moving) but i don't know how to attack them... :?:
Title: Updated server / client
Post by: rolz on June 29, 2005, 10:26:44 am
- added clothes
 - added close combat weapons (katana)

http://home.ripway.com/2005-5/312079/techno_2005-06-29.zip
Title: stuck bots
Post by: rolz on June 29, 2005, 10:34:25 am
Helge,

Looks like the bug with stuck bots remained. I've added some corrections to movements that will "push back" player if the last movement did not succeeded. This should prevent stucking in trees, houses, etc.

As for attack, try holding CTRL and pointing mouse at bots. The player will pursue target and attack it untill the target is killed
Title: new shots
Post by: rolz on July 03, 2005, 07:43:11 pm
- added die animations
- added some UI elements

(http://home.ripway.com/2005-5/312079/shot45-client3d_kills.jpg)
(http://home.ripway.com/2005-5/312079/shot46-client3d_kills.jpg)
Title: Technopolies
Post by: Remo on July 03, 2005, 11:10:45 pm
Seems a lot better. But I couldnt run it :(. Connection exception. I was wondering if theres a newer client or something.
Title: new version
Post by: rolz on July 05, 2005, 08:01:23 am
is available at
http://home.ripway.com/2005-5/312079/techno_2005-07-03.zip
Title: Technopolies
Post by: Remo on July 11, 2005, 10:06:43 am
Aw. Im getting a connection refused exception. Do you think this is due to my conection or is the server down sometimes?
Title: hm.
Post by: rolz on July 11, 2005, 11:39:22 am
Strange, just checked the server, it's up and running.

The server's IP was changed to 212.98.171.182, but it should work fine if you downloaded the latest client version.
Title: Technopolies
Post by: Remo on July 13, 2005, 09:21:56 am
I used command line with the old ip. I bet its that. Checking now.
Edit:
(http://www.opsdirector.com/3dart/Untitled-2.gif)
Title: Technopolies
Post by: rolz on July 13, 2005, 10:05:23 pm
oh i see. Running 3d.bat without parameters means localhost, that's  why connection refused. I will remove it in the upcoming demo, just use run.bat instead.

btw, new features are scheduled for tomorrow's demo:

- added auto generated transitions between ground textures
- new look for trees
Title: Technopolies
Post by: Remo on July 14, 2005, 12:50:23 am
Quote from: "rolz"
oh i see. Running 3d.bat without parameters means localhost, that's  why connection refused. I will remove it in the upcoming demo, just use run.bat instead.


Didnt work neither :(. I think it may be Norton firewall or something like that.



Quote from: "rolz"

btw, new features are scheduled for tomorrow's demo:

- added auto generated transitions between ground textures
- new look for trees



Great! I want to see those :D
Title: ideas
Post by: rolz on July 14, 2005, 01:05:20 am
It's been very quiet in the forum lately. Things are not much different with technopolies, i dont recall a noticeable thing that was done in the last two months ;)


To give a push, i'd like to share some ideas and code from technopolies (as long as Helge doesnt mind me blogging here :)


1. Terrain generator.

The common concept for landscapes in technopolies was in
 - making it easy to edit (drawing landscape map in photoshop with a couple of brush strokes)
 - making it lightweight enough to be transfered via network (~4kb for a 1000 x 1000 meters level)
 - make it possible to be divided into regions (to define footstep sounds for different tiles, add effects like sand smokes and animated grass )
 - load / render only visible parts of a bigger level


1. Tiles. It seems natural to split big level into smaller rectangular tiles.  A 1000x1000m level could be interpreted as a Object3D consisting of 100x100 tiles (10x10 each).  The code generates an object consisting of 100x100 rectangles
Code: [Select]

 @todo


2. Relief. The main idea is to adjust tiles' heights according to some "heights map". The "heights map" is a grayscale image, where color corresponds to some height value, e.g. white = 50m height, black = 0m.  For a 1000x1000 level consisting of 100x100 tiles the grayscale image should be 100x100 - each pixel corresponds to 1 of 4 single tile vertex.
(http://home.ripway.com/2005-5/312079/shot48-Olbridge.gif)
Code: [Select]

 @todo


3. Textures.  The idea is that there could be several terrain types on a single level - like sand, grass, dirt, rocks, roads.  Assigning a single huge texture to a whole level might pass for small levels but is not applicable for big ones - due to low detalization and huge texture size.  
 The solution is to use a "texture map" image that defines texture per each tile.

 Let's bind some colors to specific textures, let's say green corresponds to "grass.jpg", yellow - "sand.jpg", brown - "dirt.jpg", etc.  Then, paint a 100x100 image in photoshop using green, yellow and brown brushes. For a 100x100 tiles level, assume that 1 tile corresponds to 1 pixel of the "texture map". Pixel's color will define what texture file should be used for this tile
(http://home.ripway.com/2005-5/312079/shot50-Olbridge_t.gif)
Code: [Select]

 @todo


 While textures look detailed, transitions between tiles of different types are still rough. Let's smooth transitions from one tile type to another (jpct107a or newer is required).  Let's take several basic texture types and generate "gradient textures" for each combination on tiles.

 First, create RGBImageFilter that generates Image from 2 different tile types (let's say something different between dirt and grass) depending on % of each tile (say, 10%dirt 90%grass or 70% dirt 30% grass).
 Generate several gradient textures for each combination of tiles.
Code: [Select]

 @todo


 Then add some method that will pick closest texture depending on the requested color.
Code: [Select]

 @todo


In photoshop, apply Gaussian Blur to the texture map to smooth transitions between different tiles. Looks much better now. ;)
(http://home.ripway.com/2005-5/312079/shot49-Olbridge_t.jpg)

(http://home.ripway.com/2005-5/312079/shot47-client3d_tile_transi.jpg)
Title: Technopolies
Post by: Remo on July 14, 2005, 08:23:28 am
Its looking great!!!!
About not rendering the whole level but only the visible parts, How do you achieve this? Do you use like a dummy sphere or something to get a visible area?
Title: autogenerated terrain
Post by: rolz on July 19, 2005, 07:32:20 pm
quadtrees. The work is still in progress, an is of low/normal priority.

Basically, i did not find a better idea than to split big rectangular level into several regions and generate 3d terrain when player approaches the border of a region. I hope to add better implementation if i have new ideas
Title: new version
Post by: rolz on July 19, 2005, 07:36:44 pm
finally. available at
http://home.ripway.com/2005-7/356549/techno_2005-07-19.zip

(edit: added fine JVM tuning settings to the batch file.)

new :
 - smooth texture transitions
 - inventory and chat UI sketches

todo:
 - add autoupdate capability (proprietary or jws not sure though)

some shots
(http://home.ripway.com/2005-5/312079/shot51-ui.jpg)
(http://home.ripway.com/2005-5/312079/shot52-ui.jpg)
Title: Technopolies
Post by: EgonOlsen on July 19, 2005, 11:43:26 pm
The texture transitions are very well done. How much texture data does this approach produces?
Using OpenGL acceleration for AWT is a bad idea at least on my machine (WinXP, P4HT, Ati X800XT-PE), because it flips RGB to BGR (i.e. the loading screen is blue and the character screen brown (with a blue body)) and the VM crashes hard when i'm clicking into the chat window. It works fine using the normal AWT pipeline. Why are you limiting max. memory to 64MB? Isn't that a bit on the short side?
Title: Technopolies
Post by: rolz on July 20, 2005, 01:37:23 pm
nice to see you back :)

for 4 type of terrains ( dirt, rocks, grass and sand),  and 10 levels of transitions 62 textures were generated. I used 64x64 images for tile textures.


I expected the opengl pipeline to give performance boost for 2d UI elements which use transluency and antialiasing. I did not encounter issues you described - only on older hardware with integrated 3d card (certainly not your case ;) ).  I will need to include it as an optional flag.

regarding the memory flags - just tried to make this stuff to run on an old box with 128mb ram and it went pretty smooth - not superfast but without hickups. It is ok to remove -Xm.. flags at all unless no OOM errors occur
Title: Technopolies
Post by: EgonOlsen on July 20, 2005, 09:09:39 pm
Quote from: "rolz"
nice to see you back :)

for 4 type of terrains ( dirt, rocks, grass and sand),  and 10 levels of transitions 62 textures were generated. I used 64x64 images for tile textures.
I was never gone. :wink:
So that means around 1MB of textures...that's not much, i thought it would require more.
I noticed some jPCT/AWTGLRenderer related problems in your client and i spent some time today to get rid of them. I've uploaded a new version that includes this fixes here:

http://www.jpct.net/download/jpct107a2.jar

Changes are:

Fixed a threading issue in the AWTGLRenderer when changing the FOV. Added the option to blit into the backbuffer. This is a fix for a problem that occures when one tries to blit into the background of a over-/undersampled framebuffer. Added on option to modify sorting order of the VisList. Can be helpfull in case of sorting issues with transparent objects. Added on option to Loader to disable vertex sharing (helpfull for loading otherwise unusable keyframes in some cases). Added a new constructor to Texture to create Textures directly from Images. Improved texture loading a little bit.
Some fixes for the AWTGLRenderer: Fixed an occasional class cast exception when setting RGB-Scaling. Fixed a stupid bug that caused green color values to be mapped to green and blue when rendering (i can't believe that this one remained unnoticed). Modified frustum handling to cover a problem that could occur if two or more frames lie between two actually painted ones and the fov has been changed in between. Fixed a bug that prevented the command queue from being resized when needed in some cases which could result in some polygon missing for a frame or two. Fixed a bug that caused queued commands to be removed from the queue in some cases.



However, there still is a problem which i couldn't get fixed and i'm at a point where i'm having my doubts that's its reason can be found in jPCT but in the client. The problem is: Trees are flickering/disappearing (not sure what they really do) sometimes for a frame. I'm not talking about the "normal" sorting problems on transparent objects...this must be something different. To me, it looks like a kind of threading problem (because i had this kind of problems myself on hyperthreading/dual cpu machines). I'm just not sure if it's located in my code (i doubt it because it seems to affect trees only) or in yours. Are you by any chance doing some matrix/object/world/...-manipulation in a different thread than the one that executes the calls to World.renderScene() or World.draw()? Or in other worlds: Is there a chance that rendering and manipulation of the scene and/or objects interfere sometimes?
Title: Technopolies
Post by: rolz on July 20, 2005, 09:41:10 pm
nope, all manipulations are done in in a single thread. I have noticed "blinking trees" myself and tried to check where it happens but with no luck.
Title: Technopolies
Post by: EgonOlsen on July 20, 2005, 10:23:12 pm
But at least some translations on transparent objects (i don't know exactly how to detect a tree, so i limited it to transparent objects) are happening from inside a netty-evt-thread:

Code: [Select]
com.threed.jpct.Object3D@b51c29Thread[main,5,main]/(228.44463,627.73645,148.74597)---
com.threed.jpct.Object3D@4bf53eThread[netty-evt-0,5,main]/(383.0,667.0,162.75)---
com.threed.jpct.Object3D@d1e7c2Thread[netty-evt-0,5,main]/(252.60387,475.0233,118.229996)---
com.threed.jpct.Object3D@c68a98Thread[main,5,main]/(237.27441,624.1358,150.66376)---
com.threed.jpct.Object3D@b51404Thread[netty-evt-0,5,main]/(393.0,508.5864,160.44)---
com.threed.jpct.Object3D@354749Thread[netty-evt-0,5,main]/(327.56393,472.576,170.94)---
com.threed.jpct.Object3D@1db484dThread[main,5,main]/(246.53288,620.346,144.48578)---
com.threed.jpct.Object3D@bf1d3bThread[netty-evt-0,5,main]/(406.24905,725.4451,121.59)---
com.threed.jpct.Object3D@cc0e01Thread[netty-evt-0,5,main]/(289.96194,466.99997,161.49)---
com.threed.jpct.Object3D@ab7165Thread[main,5,main]/(256.31824,616.3402,138.6347)---
com.threed.jpct.Object3D@19a37aThread[netty-evt-0,5,main]/(410.00003,613.0,150.78)---
com.threed.jpct.Object3D@13bdd36Thread[main,5,main]/(265.8971,612.4185,136.0576)---
com.threed.jpct.Object3D@1381960Thread[main,5,main]/(275.305,608.56665,135.85318)---
com.threed.jpct.Object3D@9fa8fThread[netty-evt-0,5,main]/(432.49133,679.6593,150.15001)---


Or maybe it's a problem with the quadtree somehow? I also managed to get a "blinking house" once or twice.
Title: Technopolies
Post by: EgonOlsen on July 20, 2005, 11:36:17 pm
I tried to reproduce it in a modified CarTest-example, i.e. changed it to use the AWTGLRenderer, loaded your trees instead of my plants and placed 2K of them on the map. Had fog enabled and the car was emitting light...just like in Technopolies, but it worked just fine. No blinking at all. If this is a jPCT problem, it must be a very strange one.... :?:
Title: Technopolies
Post by: rolz on July 21, 2005, 12:54:27 am
Damn, I should've drunk too much beer just right before my previous post ;*).  

Yes, it looks like network event processing threads are modifying the world (add/remove/translate objects) It won't take much to fix, i will let you know if  it worked.
Title: it worked
Post by: rolz on July 21, 2005, 12:18:12 pm
It worked, try new client
http://home.ripway.com/2005-7/356549/techno_2005-07-21.zip

btw, one thing that remained - trees consist of several planes and sometimes (depends on camera placement) they way one plane overlaps another is inconsistent: on one frame first plane overlaps second and on the other frame second frame overlaps first, causing "blinking"
Title: new features added yesterday
Post by: rolz on July 21, 2005, 12:25:35 pm
- chat
 - some feedback from bots on your actions ;)

(http://home.ripway.com/2005-5/312079/shot53-ui.jpg)
Title: Technopolies
Post by: EgonOlsen on July 21, 2005, 04:18:19 pm
It works fine now. Even if it wasn't a problem in jPCT, it made me rework some parts of the AWTGLRenderer and discover some bugs. Speaking of bugs: On my machine, the blitted text is gone (happens on some machines  and/or in some resolutions due to some weird zbuffer/clipping plane stuff). Set Config.glFixedBlitting=true and it will appear again. I'll enable this by default in the next release anyway.
About the blinking: There's not much you can do about that, i'm afraid. Sorting is always an issue with transparency. The polygons are sorted by the painter algorithm using their z-midpoint (roughly) but this won't give you correct sorting in all cases. And a zbuffer is pointless for transparent polygons (i had this enabled once and it looked even worse)...so you have to live with that. It's not that bad anyway, IMHO.

Edit: I like the talking bots...add some "personality" to them.
Title: new version
Post by: rolz on July 24, 2005, 03:15:08 pm
Is available (6.5mb)
All-in-one (no java required)

http://195.91.144.195/techno.exe
 - camera controls (cursor keys)
 - minimap
 - minor graphics & animation improvements

(http://home.ripway.com/2005-5/312079/shot54-minimap.jpg)
(http://home.ripway.com/2005-5/312079/shot55-minimap.jpg)
(http://home.ripway.com/2005-5/312079/shot56-minimap.jpg)
Title: Technopolies
Post by: EgonOlsen on July 24, 2005, 06:00:28 pm
I got this one from time to time...:

Code: [Select]
Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at aD.a(Unknown Source)
at aD.paint(Unknown Source)
at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
at java.awt.Container.paint(Unknown Source)
at y.paint(Unknown Source)
at y.update(Unknown Source)
at sun.awt.RepaintArea.updateComponent(Unknown Source)
at sun.awt.RepaintArea.paint(Unknown Source)
at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


It's a show stopper, because it bails out of the AWT event dispatch thread which causes some problems in the AWTGLRenderer.
Title: same problem
Post by: manumoi on July 25, 2005, 01:17:46 am
Hello, I got the same exception with my NIO client/server... I thought it was a question of synchronizing some of my collections... But it may not be this. I now think that maybe I receive too much updates for a time slot(in fact i send and receive an updatePosition method at each loop of the game loop of each of my clients)... If you have any ideas about this bug, I will be interested to see it...
Title: Technopolies
Post by: rolz on July 25, 2005, 09:31:48 am
nope, this looks like a synchronization bug to me.
just make sure to add synchronized(XXX) block to you code wherever you iterate/modify collections from different threads

btw, regarding too much updates - you can split events into "started" and "finished" instead of sending updates each turn.

For instance, a movement can be interpreted as
 1. movement started (where to, speed)
 2. arrived (where)
Title: yop
Post by: manumoi on July 25, 2005, 10:14:02 am
I did this stuff about synchronising my collections access... But the problem with this bug is that it doesn't appear so much... So it  s hard to point where it comes from...
Concerning your start/end strategy, i thought about that before but my concern was that, for two clients with different hardware speeds (and faster game loops) movements may differ,  I mean if you are 10 units far from your objective, the avatar that is representing you may arrive earlier on it on your computer than on another one.... That would give problems of consistency to my world. That s why i prefer to send positions of all my moving objects at each game loops... since my server receives updated positions of each objects when they are moving.
Maybe the best solution would be to use your technic and find a technique for controlling frame rate and game speed of each client but I don t know such trick.
Anyway I will check for the exception tomorrow (4 am here) and come back if i found something.
bye bye
Title: Technopolies
Post by: rolz on July 25, 2005, 11:42:01 am
dont you have a dedicated system where game logic is processed ?
i mean server which processes commands from players and send back events.

The simple example of a command-event cycle is something like
Code: [Select]

1. player1 sends move command
2. server starts processing command (rotates player and checks for collision)
3. server sends start movement event to players on map
...
4. server moves player some more forward and checks for collisions
...
5. server sends arrived event to players on map


btw, do you use any middleware tier on top of NIO like netty or mina ?
Title: Technopolies
Post by: Uija on July 25, 2005, 01:24:28 pm
You are doing every single step the player is moving on your server?
I haven't got your client running yet, so I don't know exactly the game mechanics, but it sounds alot dependend on a good connection and no lag.
I am playing mmorpgs for some years now, and have the opinion, that the client is sending a movement command (a vektor or something) and the server checks it. until the server is not sending a failure, the client is moving.
Perhaps there are some sync processes running, but moving a Char in those Games I played way to much (ao, eq 1+2, wow, AC1/2) was not affected by lag. in wow you can run around for some time after the server is gone, until the timeout is running out.
perhaps I understood you wrong, tho ;)
Title: Technopolies
Post by: rolz on July 25, 2005, 04:45:36 pm
Yes, the idea is that client only sends commands. server does calculations and sends processed events back to players.

as to lags/connection - it depends on how much data you are going to send and how often. Technopolies generates <0.3 kb/sec of data on a 100 players map , i dont think it is too much even for a modem connection.

The situation with lags is the same - lags exist anyway, it is up to client application to smooth these lags and respond immediatelly after player started doing something. I.E. if i start movement, the client will start moving character outright without waiting for server's confirmation.
Title: Technopolies
Post by: Uija on July 25, 2005, 04:53:56 pm
I see. Your client starts to walk, so you start the animation and the movement and send the data to the server. now the server calculates the informations and sends correct values to the client. as the client should have the same date (if not, bug or cheat) he corrects it?
That was, what I was planning. The only problem that fills my mind regarding this is the problem of holding the map on the server. are you using a 3d client for each zone/map or do you calculate on base of an array or something yourself?
Title: Technopolies
Post by: manumoi on July 25, 2005, 11:19:19 pm
i think i fixed my ConcurrentModificationException . I was trying to modify a collection (a Hashmap) while i was iterating it and of course it is not allowed... Maybe your error is similar.
Title: Technopolies
Post by: rolz on July 26, 2005, 08:28:24 am
currently, technopolies stores relief and texture maps for locations as images on client in a jar file. I do not think it would take much to load maps from server (less than 3k for each image)
Title: Technopolies
Post by: Uija on July 26, 2005, 08:50:57 am
I think you missunderstood me.
You said, you are calculating collision stuff on the server. My question was: Is your server calculation this based on an 3d Engine or are you calculatin this by yourself, based on some Mapdata in an Array or something?
Title: Technopolies
Post by: rolz on July 26, 2005, 10:34:58 am
You may have to check previous posts in this topic to see what Technopolies server  (http://www.jpct.net/forum/viewtopic.php?t=190&postdays=0&postorder=asc&start=60) looks like.  

The map is 2d on server, looking at minimap  (http://home.ripway.com/2005-5/312079/shot55-minimap.jpg)(in the upper right corner) should give you the picture about what is hapening on server.
Title: Technopolies
Post by: Uija on July 26, 2005, 10:51:47 am
Oh, yeah I remember the images. So you really work with a graphical engine on the server.
Title: Technopolies
Post by: rolz on July 26, 2005, 12:31:30 pm
a kind of, server manipulates with 2d shapes.
It is quite fast, on a p4-3g 100 zones 1000x1000 meters each (200 moving objects, 200 static objects) takes ~0.7sec. to calculate movements / collistions.
Title: updated client
Post by: rolz on July 26, 2005, 02:29:03 pm
updated client  (http://195.91.144.195/techno.exe)

 - fixed concurrentModification exception
 - fixed bug when event listeners were not cleared after moving to another location, causing to receive events from invisible players
Title: Re: updated client
Post by: EgonOlsen on July 26, 2005, 04:59:33 pm
Quote from: "rolz"
- fixed concurrentModification exception
Are you sure? I've downloaded the new client, but i'm still getting the same exception:
Code: [Select]
Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at aD.a(Unknown Source)
at aD.paint(Unknown Source)
at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
at java.awt.Container.paint(Unknown Source)
at y.paint(Unknown Source)
at y.update(Unknown Source)
at sun.awt.RepaintArea.updateComponent(Unknown Source)
at sun.awt.RepaintArea.paint(Unknown Source)
at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


The client.jar is dated 2005-07-25 11:17. Is that the most current one?
Title: Technopolies
Post by: rolz on July 26, 2005, 05:05:43 pm
AAAAAAAAAAAAAARGGGGGGGH!!!!!!!!!!!!!!!!!1
Title: Technopolies
Post by: manumoi on July 26, 2005, 08:56:02 pm
Rolz, did you look at ConcurrentModificationException page in the JDK javadoc? there is a small discussion concerning when it can occur. As i said before my own problem was that i was modifying a collection (removing elements) while there was an iterator working on the same collection. I resolved it by not directly removing the element but putting its key (the collection is an hashmap) in a vector and deleting every elements referring to keys that are in my vector after the end of the iterator work (hope i m clear  :? )...
Title: Technopolies
Post by: manumoi on July 26, 2005, 09:08:48 pm
Is there a specific reason you choosed to do all your processing on your server? My own approach is to separate processing. Each clients will do collision detection... etc and send periodically its new position to the server... The server will maintain a collection of object position and it will send that collection to clients... It is more or less oriented on a grid topology:  each node/client participates to the processing...I think if the number of clients grow, the performance should not differ that much. So is there something that made you choose to centralize your processing?
Title: Technopolies
Post by: rolz on July 27, 2005, 04:20:50 pm
your idea sounds interesting. How are you going to resolve interactions that involve 2+ players (movements, picking items, attacking)?

I thought of something like this but finaly came to conclusion that i should care about simple comprehensive model first ;)

Really, at first technopolies should have been very extensible/scalable/whatsoever, but i stuck in the middle because of the overhead of the complexity that was caused by all these "thoughts ahead of time". And finally i had to roll back and start anew relying on a simple model. BTW that is why i hate IOC and its followers ;)

If it is ever doable to to eat an elephant - then only by small pieces
Title: Technopolies
Post by: EgonOlsen on July 27, 2005, 05:44:12 pm
Quote from: "manumoi"
Is there a specific reason you choosed to do all your processing on your server? My own approach is to separate processing. Each clients will do collision detection... etc and send periodically its new position to the server... The server will maintain a collection of object position and it will send that collection to clients... It is more or less oriented on a grid topology:  each node/client participates to the processing...I think if the number of clients grow, the performance should not differ that much. So is there something that made you choose to centralize your processing?
Depending on how you are implementing the collision detection, this may cause trouble IMO. Imagine entity A on client a move towards entity B (standing still on a) and entity B on client b moves towards A (standing still on b). Locally, this is no problem. On a, you correct the movement of A to not run into B and on b, you correct B's movement to not run into A. a and b are then sending the result back to the server. But then, A and B may cover the same space.
Have a look:
(http://www.jpct.net/img/intersection.gif)
Title: Technopolies
Post by: rolz on July 27, 2005, 05:53:40 pm
Exactly, it is simplier to have calculations centralized.

Regarding technopolies, the server is a forever loop that executes player orders and sends resulting events to event listeners. Clients do not modify anything directly, they place orders from player to a command queue on server.
Title: Technopolies
Post by: manumoi on July 27, 2005, 09:02:17 pm
DOH...
Egon you re right once again... However i think this problem is unlikely to happen on my own application (and it has not occured for the moment), But there is a chance... I will try to find something to avoid such problem (maybe a little collision detection on my update method on the serverSide. If a collision is detected, this will result in the rebound - not sure of the english word - of players, in the next update)
Maybe also asking an update from the server just before and just after movements calculations on the client side will also reduce the opportunity for such problem to occur given the fact that the time slot will be very short...
anyway... more work to do :S
Title: Technopolies
Post by: Uija on July 28, 2005, 12:15:52 am
I still don't believe games like everquest or world of warcraft do all the collision and movement stuff on the server. maybe the server recalculates the movements, after the clients told him what they did, and sends correcting packets to the client, when something is going wrong.
When you cast in WoW you feel that you need the okay from the server, as you feel the lag when casting. when you see that you have a latenz from 1 second, yor will have to way 1 second from hitting the castbutton to seeing the castbar moves. same with attacking and stuff. But walking is not affected by lag. sometimes you have some lagspiked that feel like you had no networktraffic for 10 seconds as the fight "stops" and after the 10 seconds everything goes extremly fast (you get the damagemessages from the lagtime) but your movement is not affected. you can move while the lag and you get no correction at the lag, as long as your position can be reconstructed by the server.
When you use other travelingmethods than running (there are "birds" you can fly given routes with) and you have lag, lets say the moment when you jump on the bird, than you stand still until the lag is over and jump to the correct place as soon as the networkcommunication comes back.
So the movement is handled on the client and the server checks if it is correct. I think you have way smoother gameplay on this way, than when you need a okay for every move you do.
When I remember correctly your games control is done with the mouse. so you click on a place on the ground and your character moves there, right? So this would be something different, because the player has not 100% direct control over the movement of the char.
Well, was a long day and I may talk some weird stuff, I hope everyone understood what I said ;)
Title: Technopolies
Post by: rolz on July 28, 2005, 08:56:43 am
You forgot to mention that WOW doesnt check collisions with moving objects. In WOW, players could go right through players and it looks like that collisions with static objects are checked entirely on client. And it looks like players just send server notifications about position changes.
Title: Technopolies
Post by: Uija on July 28, 2005, 09:48:24 am
hehe, yeah thats true, but EQ does ;)
I am thinking much about this stuff, as my maingoal is to write a good working server that is able to handle more than 1 server per zone and you can group more than 10 players without creating zonewide lag.
and yeah, I like to set goals high ;)
Title: Technopolies
Post by: manumoi on July 28, 2005, 10:23:22 pm
i did a small test today concerning collision detection. I was afraid that if two objects could move to the same position, they could block each other (some kind of "collision deadlock") and when you would like to move them in another position, they would detect a collision and refuse to move...
I have access to many computers. so I logged 2 clients side by side and make the two avatars run on the others.  I did this test many times and they never blocked... So i think i will keep my solution unchanged unless i see a "deadlock"... Maybe if the lag is bigger, it could happen.

ciao

manu

PS : here is a small image of what my project looks like now

(http://www.iro.umontreal.ca/~blanchae/screenshots/screenshot14.JPG)
Title: Technopolies
Post by: manumoi on July 28, 2005, 11:23:01 pm
In fact this is the technopolis forum.... so i will stop sending screenshots not related to it
sorry...  :oops:

Manu
Title: Technopolies
Post by: EgonOlsen on July 28, 2005, 11:48:29 pm
Why don't you open your own thread for your project? Looks cool btw.
Are you using jPCT's ellipsoid collision detection for this? If so, a deadlock should never happen...the ellipsoid collision detection is a collision avoidance algorithm, so it doesn't really care if used on objects which are already intersecting. There is some code (2 lines to be exact) to try to push such entities out of the intersection but due to the nature of the algorithm, this may or may not work. But there should be no real deadlock. The entities should be able to move out of this situation on their own.
Title: Technopolies
Post by: manumoi on July 29, 2005, 12:17:05 am
yes it s the algorithm I m using...  
And i suppose i will open my own thread one day but, cause i m doing this stuff for my students researches (it s not a game whereas it looks like it), I can t explain all the objectives of my application. That s why I haven t opened a thread for the moment... And I have to found a name for my project before :P But thanks for all your help anyway.

Manu
Title: Technopolies
Post by: rolz on July 29, 2005, 03:22:31 pm
nice shot. you really have to open separate thread for this project
Title: 0.912 is out
Post by: rolz on July 29, 2005, 03:35:32 pm
New version here (http://212.98.171.182:3298/Download/client.exe)


new features

- autoupdate .You dont need to download the full package every time, autoupdate checks and downloads changed packages.
Dont ask why I prefer homegrown solution to JWS, i won't tell anyway ;)

- camera controls. It is now possible to hold right mouse button and look around with mouse

 - main menu. (F10) Added for people who need legal way to EXIT from application.

(http://home.ripway.com/2005-5/312079/shot57-menu.jpg)
Title: Technopolies
Post by: raft on July 31, 2005, 08:12:51 pm
Quote from: "EgonOlsen"
Depending on how you are implementing the collision detection, this may cause trouble IMO. Imagine entity A on client a move towards entity B (standing still on a) and entity B on client b moves towards A (standing still on b). Locally, this is no problem. On a, you correct the movement of A to not run into B and on b, you correct B's movement to not run into A. a and b are then sending the result back to the server. But then, A and B may cover the same space.
Have a look:
(http://www.jpct.net/img/intersection.gif)

another example that causes the same problem occurs when both A and B tries to move to the same empty point P

i did use this approach in karga. clients may also use collision detection for movement of other players, this solves the 'unwanted intersection problem' but client states may differ a bit. not a problem for a '3d chat' but may be considered a slight problem in a game. anyway since its unlikely to happen, i find it negligable even for a game

in fact my server doesnt now anything about the 3d world in clients. it only stores a few necessary information about users, like their location, direction and current node

if the user moves with keyboard, one have to calculate movement stuff for every frame (as opposed to movement with mouse, which employs path finding) and those calculations cannot be done in server in an internet application (due to network lags)

looking this way, it is obvious that clients must maintain their own states. maybe some correction stuff can be deployed depending on the application type. for instance, in 3d chat, it is important who a user looks at so correction may depend on this

anyway, as i said before i find this somewhat negligable and low priority stuff

Code: [Select]
r a f t
btw, sometimes forum engine doesnt notify about replies
Title: Technopolies
Post by: EgonOlsen on August 01, 2005, 06:29:11 pm
Quote from: "raft"

btw, sometimes forum engine doesnt notify about replies
Works for me all the time...couldn't possibly be your spam filter or something?
Title: Technopolies
Post by: raft on August 01, 2005, 06:36:59 pm
Quote from: "EgonOlsen"
Quote from: "raft"

btw, sometimes forum engine doesnt notify about replies
Works for me all the time...couldn't possibly be your spam filter or something?

no it isnt filtered as spam. maybe gmail is down for that moment and forum engine doesnt retry it  :?:
Title: Technopolies
Post by: Remo on August 01, 2005, 06:54:44 pm
Technopolies is looking great man. I like the new stuff.

About the forum I always get the new replys thingy.
Title: Technopolies
Post by: EgonOlsen on August 01, 2005, 10:16:49 pm
Quote from: "raft"
maybe gmail is down for that moment and forum engine doesnt retry it  :?:
Maybe. It's on a shared server and i don't have access to the mailer's logs, so i don't really know.
Title: a screenshot
Post by: rolz on August 02, 2005, 05:45:10 pm
Crawling through the evergreen forest ...
(http://home.ripway.com/2005-5/312079/shot58-trees.jpg)

:)
Title: Re: a screenshot
Post by: raft on August 02, 2005, 05:50:53 pm
Quote from: "rolz"
Crawling through the evergreen forest ...
:)

to be honest, i really admire your shots.. they seem great
Code: [Select]
r a f t
Title: Technopolies
Post by: rolz on August 02, 2005, 06:00:22 pm
it seemed that "blinking" of trees in previous versions was caused by overlaped transparent surfaces. To fix, tree models had to be reshaped to not contain overlaped surfaces. And they seem to look much fancier now ;)

btw, what is your progress with hair/cloth/grass/tree animation ? got any useful ideas to share  ? ;)
Title: Technopolies
Post by: raft on August 02, 2005, 06:24:23 pm
Quote from: "rolz"
btw, what is your progress with hair/cloth/grass/tree animation ? got any useful ideas to share  ? ;)

the mechanism for clothing, hair and other accessories is basicly complete. as i wrote in my thread (http://www.jpct.net/forum/viewtopic.php?t=252) all clothing -including skin color, make up etc- is based on generating textures on the fly. hair and other mesh based accessories (glasses, earing etc) depend on animations saved via max-script to text files

if i dont break or change something (i will for sure :wink: ) it is a matter of modelling and configuration

i'm now working on terrain structure and a simple LoD (level of detail) mechanism for performance reasons. i will write in detail when completed

what is that grass/tree animation btw ?
Code: [Select]
r a f t
Title: Technopolies
Post by: manumoi on August 02, 2005, 09:44:43 pm
just to say that your screenshot is amazing Rolz... Very good work

manu
Title: Thank you
Post by: rolz on August 03, 2005, 08:54:36 am
Thank you, I really appreciate it ;)
Title: Technopolies
Post by: rolz on August 03, 2005, 03:13:52 pm
New look for "grass" terrains.

(http://home.ripway.com/2005-5/312079/shot59-grass.jpg)
(http://home.ripway.com/2005-5/312079/shot60-grass.jpg)

and for "rocky" terrains
(http://home.ripway.com/2005-5/312079/shot61-rocks.jpg)

for mixed types (rocks+grass)
(http://home.ripway.com/2005-5/312079/shot62-rocks_grass.jpg)

crowded place
(http://home.ripway.com/2005-5/312079/shot63-crowd.jpg)
Title: Technopolies
Post by: EgonOlsen on August 04, 2005, 12:12:13 am
:shock:  :shock: Very cool...
Title: Technopolies
Post by: rolz on August 04, 2005, 06:30:16 pm
new version uploaded to server.

just run client and wait for autoupdate to complete.

- new look for terrains (you may adjust parameters in techno.properties to play with the look)
Code: [Select]

#server settings
server.host=212.98.171.182
server.port=3299
#autoupdate settings
autoupdate.url=http://212.98.171.182:3298/

#game settings

# true  will give better calculations for Z coordinate,
# false (default) is much faster but players/monsters could fall through the ground sometimes
game.disable.fast.placement=false

# true will enable animated grass/trees
# false will save some performance
game.terrain.animation.enabled=true

# 0 to 3 adjust terrain decorations density, such as grass/bushes/rocks
game.terrain.decorations.level=3

# 5 to 90 will adjust terrain decorations range.
game.terrain.decorations.range=40

- new look for trees. Trees are now animated (wind effects)

- W key now shows wireframe

- ESC now shows menu (was F10)

- some items are dropped to the ground at server startup. You may not yet pick them up but you may see them lying on the ground
Title: Technopolies
Post by: EgonOlsen on August 04, 2005, 10:35:37 pm
Wireframe...i'm loving this option. How about a fps counter next? Do you have some profiler data for technopolies? I would like to know where most of the processing time (jPCT related) is spent (except for the AWTGLRenderer itself) to see if there are some places where i can apply some optimizations.

BTW: I'm not sure if the auto updater works reliable. I got a class not found exception and had to restart. But maybe i just caught you in the middle of an update...
Title: Technopolies
Post by: Remo on August 04, 2005, 10:47:50 pm
Quote from: "EgonOlsen"
Wireframe...i'm loving this option. How about a fps counter next? Do you have some profiler data for technopolies? I would like to know where most of the processing time (jPCT related) is spent (except for the AWTGLRenderer itself) to see if there are some places where i can apply some optimizations.

BTW: I'm not sure if the auto updater works reliable. I got a class not found exception and had to restart. But maybe i just caught you in the middle of an update...



Yeah hehehe. He updates very often! I find that awsome. The game looks very very cool.
Title: Technopolies
Post by: rolz on August 05, 2005, 02:51:28 pm
It seems application had to be restarted if client.jar has been updated. I'll patch autoupdate to take care of this issue.

Egon, a question regarding transparency -

if i set Object3D transparency to the maximum (0) - the object's alpha is ~50%. Could I somehow set it to be more "transparent" ?
Title: Technopolies
Post by: EgonOlsen on August 05, 2005, 03:37:16 pm
What a coincidence...i've just thought about that this morning. I was wondering why no one ever required this option... :wink:
The short answer is: Yes, it is possible...but not in the current version.
The long answer is: The OpenGL renderer tries to mimic the behaviour of the software renderer. The software renderer can't go below ~50% (in fact it's 70% IIRC) for performance reasons. I think that i'll add a setting to Config (glTransparencyOffset or similar) that will allow to adjust the transparency formula for OpenGL only. This means that you'll have to adjust your transparency values when modifying this setting to get the same results as before. But that shouldn't be too much of a problem. I hope to add this on monday.
Title: Technopolies
Post by: Uija on August 05, 2005, 05:00:40 pm
I need to say, that Helge is one of the best projectmaintainer I have ever met!
Continue your great work!
Title: Technopolies
Post by: rolz on August 05, 2005, 05:04:28 pm
:) .......

Helge, one more thing:
when you create a clone of billboarding object using Object3D.cloneObject()
the resulting object is not billboarding.
Title: Technopolies
Post by: EgonOlsen on August 08, 2005, 05:36:36 pm
A version with the option to change OpenGL's transparency behaviour is here: http://www.jpct.net/download/jpct_108a1.jar (look at Config.glTransparencyOffset and Config.glTransparencyMul). It should also fix the billboarding flaw.
Title: Technopolies
Post by: EgonOlsen on August 09, 2005, 12:18:08 am
I have noticed a bug with the decorations when switching worlds. After switching from Olbridge to Evergreen Forest, the decorations are floating in the air (http://www.jpct.net/img/proj/technobug.jpg). The settings i used (in case that matters somehow):

game.terrain.animation.enabled=true
game.terrain.decorations.range=90
Title: Technopolies
Post by: rolz on August 09, 2005, 06:18:32 pm
weird........

does it happens ocassionally or it is stable reproducible ?
Title: Technopolies
Post by: rolz on August 09, 2005, 06:36:58 pm
btw, i did not found api docs that explain those glTransparencyXXX parameters, could you please give some more details ?
Title: Technopolies
Post by: EgonOlsen on August 10, 2005, 12:47:32 am
Oops, my fault. Here's the section from Config:

Code: [Select]
/*
Transparency in OpenGL is implemented in a way that tries to mimic the software renderer. If one is using OpenGL only or can live with different output, the offset in the formula used to calculate the actual transparency from an object's transparency value can be changed to broaden the range. The actual formula is trans=offset+objTrans*mul, default for offset is 0.7f. This setting is ignored by the software renderer.
*/
   public static float glTransparencyOffset=0.7f;

/*
Transparency in OpenGL is implemented in a way that tries to mimic the software renderer. If one is using OpenGL only or can live with different output, the multiplicator in the formula used to calculate the actual transparency from an object's transparency value can be changed to broaden the range. The actual formula is trans=offset+objTrans*mul, default for mul is 0.06f. This setting is ignored by the software renderer.
*/
   public static float glTransparencyMul=0.06f;


About the floating decorations: It doesn't happen every time, but quite often. Leaving and reentering the level doesn't fix it.
Title: Technopolies
Post by: Remo on August 10, 2005, 05:12:00 am
Sometimes when I get into a fight the game freezes. I dont know what it is but in the map I can still move but its not shown in the screen. The map keeps working just  not the main screen.
Title: Technopolies
Post by: rolz on August 10, 2005, 09:42:28 am
looks like awt thread falls out with exception. is there anything in log file ?
Title: Technopolies
Post by: EgonOlsen on August 10, 2005, 11:00:35 am
Are you sure that your redirecting to the log file works for stderr? I always had to change it to "2>log.txt" to get stderr messages IIRC.
Title: Technopolies
Post by: Remo on August 11, 2005, 12:47:28 am
Quote from: "rolz"
looks like awt thread falls out with exception. is there anything in log file ?


The log file is clear.
Title: Technopolies
Post by: rolz on August 11, 2005, 02:33:14 pm
new features preview. Additional notification will be sent later when server will be updated

Picking a sword from the ground
(http://home.ripway.com/2005-5/312079/shot64-picking.jpg)


Inventory screen
(http://home.ripway.com/2005-5/312079/shot65-inventory.jpg)
Title: Technopolies
Post by: EgonOlsen on September 01, 2005, 02:52:10 pm
I just started the client to see if something has changed during my holidays, but it downloads everthing each time i'm starting it (showing stuff like "lwjgl.dll 1576KB/0KB" which is a bit strange) and then hangs when trying to connect to the server (i.e. nothing happens anymore). Any ideas?
Title: Technopolies
Post by: rolz on September 01, 2005, 03:18:36 pm
well, i was not that lucky this month ;) Had to cancel all plans on summer vacations and stay 7/12 on day job to meet the deadline

So far technopolies server is not working, i think the estimate for getting it back is 1-2 weeks.
Title: I'm back
Post by: rolz on September 15, 2005, 02:52:32 pm
Some new features for tomorrow's build:

- the communication for server/client was redesigned to be event-driven. I hope this will make adding new functionality to the server game much easier.

- redone most of the previous functionality using events (move, attack, pick, equip, etc..)

- redesigned network code to use on-the-fly compression where applicable

- players can now equip/unequip objects

- added shadows to players, objects on the ground, trees and bushes (see new parameters in techno.properties)

- added 2 new weapons - SledgeHammer and the PowerHammer

- added explosion effects (see it when you equip the PowerHammer)

- added footprints on the ground

some screenshots:

closer look
(http://home.ripway.com/2005-5/312079/shot65-shadows.jpg)

the big picture
(http://home.ripway.com/2005-5/312079/shot66-shadows.jpg)

some explosions, and look at the bots below - there are footprints on the ground !
(http://home.ripway.com/2005-5/312079/shot67-footsteps_explosion.jpg)

SledgeHammers in action !
(http://home.ripway.com/2005-5/312079/shot68-sledgehammer.jpg)
Title: 0.914
Post by: rolz on September 16, 2005, 02:29:02 pm
available at
(requires java 5.0)
http://212.98.171.182:3298/Download/techno_20050916.exe
Title: Technopolies
Post by: EgonOlsen on September 19, 2005, 10:48:09 pm
Tested the new version on a Linux box (Debian) and it worked just fine. I got some exceptions, but that may be the case in Windows too... :?:

Code: [Select]
java.lang.ArrayIndexOutOfBoundsException: 1517
        at aS.a_(Unknown Source)
        at bk.b(Unknown Source)
        at bk.d(Unknown Source)
        at techno.client.world3d.Client3D.run(Unknown Source)
        at techno.client.world3d.Client3D.main(Unknown Source)
java.lang.NullPointerException
        at O.a_(Unknown Source)
        at bk.b(Unknown Source)
        at bk.d(Unknown Source)
        at techno.client.world3d.Client3D.run(Unknown Source)
        at techno.client.world3d.Client3D.main(Unknown Source)


It ran quite slow, but that's not much surprising because the system is a Pentium II 400Mhz with a TNT2-32MB graphics card. But it was still playable...
Title: Technopolies
Post by: rolz on September 21, 2005, 11:39:04 am
Thanks Helge,

I would have tested the game on my home p3-700 linux laptop but its video card does not work with LWJGL ;(
Title: projectile weapons
Post by: rolz on September 21, 2005, 06:07:18 pm
- added Pistol

Beretta in action
(http://home.ripway.com/2005-5/312079/shot69-projectile.jpg)
(http://home.ripway.com/2005-5/312079/shot70-projectile.jpg)
Title: Flickering with transparent objects
Post by: rolz on September 22, 2005, 11:39:21 am
- Transparent objets were flickering (grass, trees) , like on one frame object A was in front of object B, and on the other - object B was in front of A.

It appears that it is possible to control which object had to be displayed in the front by manually setting Object3d.setSortOffset() for such objects.
Title: Technopolies
Post by: rolz on September 22, 2005, 01:20:29 pm
-added rifles

Benelli M4 shotgun in action
(http://home.ripway.com/2005-5/312079/shot71-projectile.jpg)
(http://home.ripway.com/2005-5/312079/shot72-projectile.jpg)
Title: Re: Flickering with transparent objects
Post by: EgonOlsen on September 22, 2005, 05:51:17 pm
Quote from: "rolz"
- Transparent objets were flickering (grass, trees) , like on one frame object A was in front of object B, and on the other - object B was in front of A.

It appears that it is possible to control which object had to be displayed in the front by manually setting Object3d.setSortOffset() for such objects.
Basically, the inconsistent overlapping is impossible to avoid when using painters algorithm based on z-sorting...and that's what jPCT has to do to ensure an (almost) correct order. setSortOffset() may help if used right. But for overlapping trees, it will get quite difficult, i think. The method is in because i needed it for Paradroidz to avoid an overlapping problem between the fog of war and the energy pods.
I don't think that the sorting flaws are a big problem in Technopolies. I hardly ever notice them and i usually notice every subtle rendering artifact... :wink:
Title: 25
Post by: rolz on September 27, 2005, 09:55:42 am
Happy birthday to me  :!:

;)
Title: Re: 25
Post by: EgonOlsen on September 27, 2005, 05:21:03 pm
Quote from: "rolz"
Happy birthday to me  :!:

;)
Well...then...: HAPPY BIRTHDAY TO YOU! :mrgreen:
Title: Technopolies
Post by: manumoi on September 28, 2005, 01:45:52 am
Yep, happy Birthday.... Libra rulez!  :lol:
Title: whewww..
Post by: rolz on September 30, 2005, 11:54:17 pm
Hard times come with the deadline on day job.. It's 12:50AM now, I want to leave work and get some sleep  :cry:

I'd like to post shots of some features i added a week ago:

- added new alien race: Mutons

(http://home.ripway.com/2005-5/312079/shot73-muton.jpg)
(http://home.ripway.com/2005-5/312079/shot74-muton.jpg)
Title: new version
Post by: rolz on October 03, 2005, 04:06:50 pm
Available here:
http://212.98.171.182:3298/Download/techno_20051003.zip

unpack and execute
Code: [Select]

run.bat

OR
Code: [Select]

java -jar client.jar


new features
 
 - added pistol
 - added shotgun
 - added machinegun
 - added new agressive race: Mutons
 - added respawn points for bots
 - TAB key now hilites nearby visible items
Title: Sounds
Post by: rolz on October 04, 2005, 03:08:01 pm
http://212.98.171.182:3298/Download/techno_20051003.zip


- added sounds (LWJGL OpenAL)
Title: Technopolies
Post by: rolz on October 07, 2005, 09:40:34 am
TODOs for the upcoming version

- NPCs, dialogs and a first simple quest
- environmental sounds (forest, wind, river)
- water
- some new locations
- player will be able to reach another neighbour location by approaching the border of a level

some shots:

NPC dialog
(http://host.picturewizard.com/2005-5/312079/shot75-npc.jpg)

Water
(http://host.picturewizard.com/2005-5/312079/shot76-water.jpg)
(http://host.picturewizard.com/2005-5/312079/shot78-water.jpg)

Big continent consisting of 25 connected level maps
(http://host.picturewizard.com/2005-5/312079/shot77-continent_map.jpg)
Title: Technopolies
Post by: rolz on October 08, 2005, 05:41:56 pm
Added some new objects

Marines camp, Drop Zone sector A1
(http://host.picturewizard.com/2005-5/312079/shot79-camp.jpg)

Terran dropships on the beach
(http://host.picturewizard.com/2005-5/312079/shot80-dropships.jpg)
Title: Shadows
Post by: rolz on October 10, 2005, 03:04:56 pm
- added rectangular shadows for static objects

(http://host.picturewizard.com/2005-5/312079/shot81-shadows.jpg)


God, they still look SOOO clumsy ;( I did not found anything better than putting half transparent rectangular plane under the structure ;(

I hope adding silhouette images as shadows for specific structures will make it look much better.
Title: Technopolies
Post by: rolz on October 10, 2005, 06:02:19 pm
- new look for grass
- added shadows for trees

(http://host.picturewizard.com/2005-5/312079/shot82-grass_and_tree_shado.jpg)
Title: back to shadows
Post by: rolz on October 10, 2005, 07:19:22 pm
much clever implementation for static object shadows.

(http://host.picturewizard.com/2005-5/312079/shot83-clever_shadows.jpg)
Title: Technopolies
Post by: Remo on October 10, 2005, 10:53:14 pm
Looks nice! keep up the goos work.
Title: Technopolies
Post by: rolz on October 11, 2005, 01:13:23 pm
items are now shown as 2d sprites on the ground. Looks better than 3d models

(http://host.picturewizard.com/2005-5/312079/shot84-sprite_items.jpg)
Title: Technopolies
Post by: EgonOlsen on October 11, 2005, 11:47:50 pm
Your progress is astonishing... :shock: But what about gameplay? I think it's looking very nice now as it is and it seems to be time to add some more gameplay. What do you have in mind gameplay wise?
Title: Technopolies
Post by: rolz on October 12, 2005, 10:28:05 am
:) thanks.

Sure, good gameplay is not something that could be implemented from the scratch. And it was easier to develop/ test client engine without bothering for gameplay. This is the reason for being so slow with gameplay development.

My fault, i dont think i have a clear concept for the game, just several unique ideas and a wishlist. Anyway it is a good point to start with, the game engine will be evolving as new ideas and wishes come.



TODOs for the next two weeks:

- add experience
- add levels for player and NPCs
- add money
- add more objects (bushes, rocks, trees, buildings)
Title: Technopolies
Post by: rolz on October 12, 2005, 07:08:47 pm
Finally things calmed down on my day job, hopefully for me it would result in having more fun with technopolies development ;)

- added stackable items (ammo, potions, money sacks)

- added money

- you can now earn some money by selling Muton Heads to Military officers in A1 and A2 sectors ;)

- or alternatively kill some civilians and take these money off their cold hands  :twisted:

- you can talk with military officers and ask them to heal you for 1 coin.


(http://host.picturewizard.com/2005-5/312079/shot85-money.jpg)
(http://host.picturewizard.com/2005-5/312079/shot86-healer.jpg)
Title: Technopolies
Post by: rolz on October 14, 2005, 02:53:32 pm
- picking up stackable items now adds them to the stack (i.e. if i pick potion, it will stack to other potions of same type in inventory)

- added limit for stackable items of same type. (i.e. if i have 10 potions in a stack, and the limit for potion is 10 then picking additional potion will not add it to the stack)

- added Tips of the day that are shown when you enter new zone

- added location map (toggle with "M" button)

- added music support via LWJGL and FMOD. added some midi files from commodore64 games.

- added "Pick closest item / search closest corpse" command. Press G to activate it.

- added "Rest" command. Press R to activate. Resting will recover some HP over time. When you rest, you are unable to attack or do anything.

- added experience. Players now receive experience for kills. Experience amount depends on difference in levels, and other players who assisted the kill.

-improved performance for precise Z coordinate calculation on ground.
( adjustable by game.disable.fast.placement parameter in techno properties)

Changed
Code: [Select]
object3d.calcMinDistance(v1, v2) (2000ms)
to
Code: [Select]
object3d.calcMinDistance(v1, v2, n) (500ms)

still it is not as efficient as accessing avg heights data (<10ms)


One more thing, I've tried to unleash 2000 bots on 10 locations and let them roam for 12 hours. The server remained stable and running, it looks like that I've finally managed to fix all memory leaks. Memory consumption has never went above 30mb, and the CPU usage was 10-11% avg. Can't wait to test it on a real environment.

Babylon attacks :)  
(http://home.ripway.com/2005-5/312079/shot87-babylon.jpg)
Title: Technopolies
Post by: EgonOlsen on October 18, 2005, 06:53:50 pm
Quote from: "rolz"

-improved performance for precise Z coordinate calculation on ground.
( adjustable by game.disable.fast.placement parameter in techno properties)

Changed
Code: [Select]
object3d.calcMinDistance(v1, v2) (2000ms)
to
Code: [Select]
object3d.calcMinDistance(v1, v2, n) (500ms)

still it is not as efficient as accessing avg heights data (<10ms)

Are you using an octree on the terrain?  calcMinDistance may benefit from it (apart from the rendering itself).
Title: Technopolies
Post by: rolz on October 18, 2005, 07:49:15 pm
I've added Object3D.setOctree(), played with parameters.
Got optimal values with
Code: [Select]

        OcTree ocTree = new OcTree(rezult,100,OcTree.MODE_OPTIMIZED);
        rezult.setOcTree(ocTree);


Got slightly better results, but without significant increase.

"Fast" method gets an average height for a tile.
"Old precise" method uses object3d.calcMinDistance() without breakIfLarger parameter
"New Precise" method uses "breakIfLarger" parameter

Code: [Select]

Fast: 0
Old precise: 1867
New precise: 460


What these tests do - looking for Z coordinate on the ground for 2000 random points. Performance dropdowns with "precise" methods are noticiable in crowded places (10+ moving objects).
To beat this, the code recalculates Z coordinate every N ms (100-200) instead of every frame - it produces better results than with "fast"  method but still costs lots of time. ;(
Title: Technopolies
Post by: rolz on October 18, 2005, 08:20:42 pm
- added shops

(http://home.ripway.com/2005-5/312079/shot88-shop.jpg)
Title: Technopolies
Post by: rolz on October 19, 2005, 05:33:15 pm
- added roads
(http://home.ripway.com/2005-5/312079/shot89-roads.jpg)
Title: Technopolies
Post by: rolz on October 20, 2005, 04:04:29 pm
0.94 is out , after 2.5 weeks

available at http://212.98.171.182:3298/Download/techno_2005-10-20.zip


Note, that the this archive contains only WIN32 LWJGL binaries

New features:

- new big map (10 sectors are currently available)
- player can now travel between adjacent locations
- added water
- added experience
- added money
- added stackable items (muton heads)
- added NPCs
- added first simple quest (collect muton heads)
- added shop
- added roads
- new look for items on the ground
- added sounds and music (LWJGL + FMOD)
- added shadows for static objects
- added some enchancements for grass and dirt decorations
- some new items / static objects
- added "tips of the day"
- added "Rest" command. press R to regain HP  if wounded.
- added "Grab Nearest" command - press G to search nearby bodies / pick nearby items
- added "Attack Nearest" command - press A to attack nearest visible enemy
- dead bots are removed from the ground after 1 minute
- items on the ground are now removed after 2 minutes
- fixed memory leaks on server
- fixed calculation of bullet trajectory on server
Title: Technopolies
Post by: rolz on October 25, 2005, 07:51:50 pm
- added A* pathfinding for human players.
Title: Technopolies
Post by: rolz on October 28, 2005, 08:10:20 pm
- added boots
- added heavy armor
- added head armor - baseball hat and helmet
- addded decreased movement speed for loitering bots. When bots see enemy, they act at full speed.
- added "effects" feature,  added basic "leg trauma" effect.
- fixed equipping "equip /unequip item" command on client. It caused the whole model to be rebuild when something new has been equipped.
- fixed inventory / shop updates - the whole screen was updated when something was changed in inventory/shop (causing hickups)

(http://home.ripway.com/2005-5/312079/shot90-trauma.jpg)
Title: Technopolies
Post by: Champ on October 30, 2005, 09:27:00 am
Really silly question.  I'm new to this Java thing.  How do I run this game after I've extracted the archive?  I try the run.exe file but nothing happens.
Title: Technopolies
Post by: rolz on October 31, 2005, 09:28:23 am
You need to have java 5.0 installed to run this game.
I would've probably include it along with the installation for people who want to have this stuff up and running after double-clicking on the game icon, but this will add 15 more megabytes to the download package.

 I will need to include installer / bundle java in time when the game will need to be oriented for wider audience, not only other developers/testers.
Title: Technopolies
Post by: MFJ on October 31, 2005, 11:34:59 am
Ooooh.

How '1.5ed' is this project? It's nice to try and make Java apps Java 1.1 compatible in my experience. Most Windows machines for the last 5 years of so have a 1.1 VM already installed (Of the Microsoft variety). I believe JPCT is 1.1 compatible?
Title: Technopolies
Post by: rolz on October 31, 2005, 11:46:01 am
Yes, technopolies used to work under 1.1 but when you switch from applet to desktop application and plan to ship jre with the game, 1.1 compatibility doesn't matter.
Title: Technopolies
Post by: EgonOlsen on October 31, 2005, 11:53:27 am
Quote from: "MFJ"
I believe JPCT is 1.1 compatible?
For the software renderer path, yes. But OpenGL support requires at least 1.4.
Title: Technopolies
Post by: rolz on November 01, 2005, 01:27:16 pm
- added perks
- added temporary effects
- reworked character info screen

perks
(http://home.ripway.com/2005-5/312079/shot91-character.jpg)

temporary effect (trauma)
(http://home.ripway.com/2005-5/312079/shot92-character.jpg)
Title: Technopolies
Post by: rolz on November 05, 2005, 07:15:27 pm
- new skills:
 Bodybuilding (+con)
 Athletism (+str)
 Scouting (+movement speed)
 Dodger (+evasion)
 Unarmed Combat (ATK+1 without weapon)
 Dagger Proficiency (ATK+1 with dagger)
 Sword Proficiency (ATK+1 with sword)
 Automatic Rifles Proficiency (+2.5% perception, +2.5% critical with  automatic weapons)

-new Effect:
 Mutant Skin (20 min., + AC)

- you may now ask NPCs to train/upgrade skills

- it is now possible to knock down an opponent with certain kind of weapons.

- added critical hits. Crits cause either x3 damage or additional effect (trauma, knockdown)

- marines and aliens are now given random skills/levels

- reworked damage calculation. Badly need someone who understands D&D logic to help with this. ;)

(http://home.ripway.com/2005-5/312079/shot93-character.jpg)
Title: Technopolies
Post by: rolz on November 07, 2005, 10:30:24 am
- added rocket laucher

(http://home.ripway.com/2005-5/312079/shot94-laucher.jpg)
Title: 0.95 is scheduled for Monday
Post by: rolz on November 12, 2005, 05:26:46 pm
0.95 is scheduled for Monday


- added WebStart installer
- added ammunitions for different kind of weapons
- added corresponding skills for all kind of weapons
- slightly reworked character screen
- redesigned item icons

finally, long-awaited webstart support.
(http://home.ripway.com/2005-5/312079/shot95-webstart.jpg)

more skills/effects are now available. More additional info on character.
(http://home.ripway.com/2005-5/312079/shot96-character.jpg)

Added ammo for all types of weapons.
Finally, all game items could not fit on a single shop screen ;)
(http://home.ripway.com/2005-5/312079/shot97-shop_ammo.jpg)
Title: Re: 0.95 is scheduled for Monday
Post by: EgonOlsen on November 12, 2005, 06:17:36 pm
Quote from: "rolz"

finally, long-awaited webstart support.
Cool. The folks at Javagaming will appreciate it... :wink:
Title: Technopolies
Post by: rolz on November 12, 2005, 06:52:29 pm
Frankly there are lots of java folks who won't download/install java desktop application if it isn't JWSed ;) And yes, you are right, it was done mainly for JGF folks. ;)
Title: Technopolies
Post by: EgonOlsen on November 12, 2005, 07:17:37 pm
I love the fact that you are adding a lot of game play related things to Technopolies right now.

Have you already put the new multi texturing stuff to any good use?
Title: Technopolies
Post by: rolz on November 12, 2005, 07:19:46 pm
Helge,

I've noticed an artifact - "sawed" contours in place when one object intersects with another (tent and tent's shadow on the picture).
I've noticed that it depends on the viewing angle and distance from camera to intersecting objects. Do you have any clues on how it could be handled ?

(http://home.ripway.com/2005-5/312079/shot98-sawed.jpg)

EDIT: that could be one of the places where i would want to put multitexturing - static shadows. I have some ideas now, but still thinking on the implementation.

btw, i did some profiling last night and discovered two bottlenecks in 3d code:

1. calculation of 3d coordinate of mouse on the ground (Interact2D.reproject2D3D())
2. calculation of  distance from some object to the ground (object.calcMinDistance())

i have applied some optimizations like calculating coordinate every N msec, not every frame but it is still the most "heavy" spot in the game (15% & 25% accordingly).
 Could you please give your recommendations on improving performance for these 2 methods ?
Title: Technopolies
Post by: EgonOlsen on November 12, 2005, 07:26:51 pm
Quote from: "rolz"
Helge,

I've noticed an artifact - "sawed" contours in place when one object intersects with another (tent and tent's shadow on the picture).
I've noticed that it depends on the viewing angle and distance from camera to intersecting objects. Do you have any clues on how it could be handled ?
It's a depth buffer accuracy problem of the graphics card. You may try to adjust the far and/or near clipping plane (if possible of course) to get rid of it. What graphics adapter is that?
Title: Technopolies
Post by: EgonOlsen on November 12, 2005, 07:34:38 pm
Quote from: "rolz"

i have applied some optimizations like calculating coordinate every N msec, not every frame but it is still the most "heavy" spot in the game (15% & 25% accordingly).
 Could you please give your recommendations on improving performance for these 2 methods ?
Both may benefit from a call to enableLazyTransformations() on the ground object (if possible, i.e. if you are not applying any transformations to the ground after it's in place)). calcMinDistance() should benefit from an OcTree (with setCollisionUse(true)) too.  I understand that calcMinDistance() takes some time, but i'm wondering what should be so expensive in reproject2D3D()...i'll look into that method when i find the time to see if there's some room for improvement left in it.
Title: Technopolies
Post by: rolz on November 12, 2005, 07:38:53 pm
Screenshot was mad with intel 865 integrated, but i experience the same effect with Radeon on my home box.

I've played with Config.glZBufferDepth, Config.tuneForIndoor()/outdoor - but with no difference.
Title: Technopolies
Post by: EgonOlsen on November 12, 2005, 07:48:48 pm
It should help most to move the near clipping plane farer away. Try 10 for example (instead of 1) and see if that helps. Can be done via Config.nearPlane.
Title: 0.95 is out
Post by: rolz on November 12, 2005, 09:34:05 pm
available at http://javagamesfactory.org/jnlp/Technopolies/alpha.jnlp   (~3mb)
Title: Technopolies
Post by: EgonOlsen on November 13, 2005, 01:17:31 am
I couldn't even download it with Java1.6 b60. Got an exception that makes no sense to me....

Code: [Select]
java.net.UnknownHostException: javagamesfactory.org
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at com.sun.deploy.net.BasicHttpRequest.doRequest(Unknown Source)
at com.sun.deploy.net.BasicHttpRequest.doRequest(Unknown Source)
at com.sun.deploy.net.BasicHttpRequest.doGetRequest(Unknown Source)
at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source)
at com.sun.javaws.LaunchDownload.getUpdatedLaunchDesc(Unknown Source)
at com.sun.javaws.Launcher.downloadJNLPFile(Unknown Source)
at com.sun.javaws.Launcher.prepareLaunchFile(Unknown Source)
at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
at com.sun.javaws.Launcher.launch(Unknown Source)
at com.sun.javaws.Main.launchApp(Unknown Source)
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)


 :?:
Maybe an issue with the beta version...
Title: Technopolies
Post by: rolz on November 13, 2005, 12:00:23 pm
Strange.. have anyone tried it with 1.5 ?
Title: Technopolies
Post by: EgonOlsen on November 13, 2005, 12:51:59 pm
I tried with 1.5 again. Works fine now. I also had a strange problem (seems to be a bug in String) with the tokima applets and 1.6b60. What a pity...b60 gave me a 20% performance increase with the client VM. However, if nothing works anymore, it's not worth it... :wink:
Title: Technopolies
Post by: rolz on November 16, 2005, 05:16:41 pm
Helge, i didnt noticed any performance boost on 1.6 ;( looks like it is all about shitty videocard.

a small teaser:
(http://home.ripway.com/2005-5/312079/shot100-welcome_screen.jpg)
Title: Technopolies
Post by: acorn98 on November 16, 2005, 11:27:10 pm
hey rolz - this is looking amazing.

Can you offer any advice on animating people? Are you using MD2 or something of your own?
Title: Technopolies
Post by: raft on November 17, 2005, 10:45:23 pm
hey rolz, that's a really cool screen  :D
Title: Technopolies
Post by: Eyleath on November 20, 2005, 07:23:10 pm
Hello, this post in this topic might sound a bit wird but im having big trouble in 3d right now and i hope getting a bit of help here :)

My problem is that i just want to export a keyframed animation from 3ds, is it possible to do it with bones?? if not how did you manage in technopolies as i saw it was 3ds not md2... thx :)
Title: Technopolies
Post by: Remo on November 20, 2005, 10:13:35 pm
Hey Rolz Ive recently saw your game on javagaming forums :D ehehe. Nice job, tthat teaser looks really good.
Title: Technopolies
Post by: Raven on November 20, 2005, 10:52:22 pm
Hey rolz.
Comments past due: Your game looks awesome. I can only hope to maintaining your resilience when it comes to developing a game by myself. How's recruitment going? any online interest from ppl that'd like to help?

On the bad side: I'm running Mac OS 10.4 (Tiger) with Java 1.5.1 recently installed - yet running the jnlp file results in it getting stuck while "Starting application..".

The loading bar just continually blinks c.a. 98%, then 0% again.
Is this a known bug?
Title: Technopolies
Post by: rolz on November 21, 2005, 10:39:48 am
Hello folks, i am back.
Sorry for no replying - i was away from computer on weekends.
Thanks for all your comments, i am putting best efforts to make the game nice looking, and glad you folks liked it ;)

2 acorn98 & Eyleath:  models in technopolies consist of several objects3d (parts) which are programmatically linked. The code assigns one part to another (arm to torso) and explains how to move/rotate it. Animation is handled by another piece of code that rotates body parts aroung x/y/z.  I've already put some effort to move this code to a separate API, so if more that 1 people is interested in using it, i would be glad to expose it.

2 raven: No, as far as i managed to check there are no artists/designers that would want to spend their spare time to participate. Frankly i am not putting proper effort in search for an artist/writer - i dont have much time due to my day job.  Regarding mac os - i had similar problems and i thought they are somehow connected with javagamesfactory which goes down sometimes. Try again today
Title: Technopolies
Post by: Anonymous on November 21, 2005, 10:31:16 pm
very interesting method by programming the parts together for animation ... it would also benifit if u like blew up a guy, the parts are already seperated. It would also work good for interchangeble parts, like shirts and pants and stuff like that.. very neat!
Title: Technopolies
Post by: EgonOlsen on November 21, 2005, 11:43:53 pm
Quote from: "rolz"
Regarding mac os - i had similar problems and i thought they are somehow connected with javagamesfactory which goes down sometimes. Try again today
Javagamesfactory in its current is unusable IMHO. It's down very often. And if it isn't, just try to upload your files once or twice and see it stop responding. The administration is buggy as hell. I'm usually tearing my hair out to make it do what i want it to do. The JNLP created most be from hell. The only thing it does reliable is to blame others for their stupidity (have a look at the html sources). I would never rely on JGF alone to host my stuff. I love the idea behind it though.
Title: Technopolies
Post by: Raven on November 22, 2005, 10:24:00 pm
Ach. Still no luck with loading, tried yesterday and again today.
Title: Technopolies
Post by: rolz on November 23, 2005, 09:40:01 am
Strange. Where did it stuck, again ? was it JWS loader ?
Title: Technopolies
Post by: Raven on November 23, 2005, 07:58:01 pm
Yeah, it get's stuck 'Starting application...'.

However I just upgraded java5 to the latest release and I'm going to try it again as soon as the gamesfactory starts responding again.

EDIT: Hrmpf. Still no luck. just gets forvever stuck while starting the app. Hopefully it's just something wrong with my mac, and not all macs.

-Raven
Title: Technopolies
Post by: CinergyStudios on November 24, 2005, 12:57:33 am
thats sweet was checkin it out. so u have it multiplayer already, because i actually found another user in it lol.. if u need any help with models (3D) just let me know, i cant help out to much because im pretty busy but i can do some stuff for ya!
Title: new version
Post by: rolz on November 28, 2005, 11:58:21 am
Available at
http://javagamesfactory.org/jnlp/Technopolies/alpha.jnlp

-added startup screen at which you can set video/detalization options and player name.

(http://home.ripway.com/2005-5/312079/shot102-welcome.jpg)
Title: Technopolies
Post by: rolz on November 30, 2005, 12:49:21 pm
- added new building (bunker), added "labels" on building walls
- added concrete walls
- fixed hickups ~every 2 sec., thanks to Helge for pointing out the problem
- applied JPCT patch (thanks 2 Helge) - fixed near clipping/culling problem

(http://home.ripway.com/2005-5/312079/shot103-bunker.jpg)
Title: Technopolies
Post by: EgonOlsen on December 01, 2005, 11:43:17 pm
I've played it for some time today. Here are my thoughts:

- It's quite laggy from time to time. You click to move or attack and the command is executed up to one second later. That's quite annoying but i assume that it's due to my bad pings to the server (ranging from 90 to 700ms). It plays ok when pings are around 100ms, but 200 and above is noticable laggy.

- I got stuck two times. The game was still running, but i couldn't move. One time, it seemed to be related to collision detection. I tried to walk through two tents in the Muton area above the starting point. I failed to pass them but i couldn't go back either. The other time, i somehow screwed up the inventory.  The upper left box was always highlighted when entering the menu and i was able to highlight all others too by clicking into them. But i wasn't able to use the inventory itself and i couldn't move anymore after leaving it.

- Sometimes, my character ran right into a Muton when i was actually trying to attack him...:?

- I think that you should change the background color from black to the same light brown that the fog has.

- You can talk to NPCs and buy things as soon as they come into view. That should be limited to a smaller area around them IMHO.

- At times where the pings were better, i enjoyed playing it. You should make it possible to store the character on the server when leaving and let the NPCs only train you when you've enough experience points. That way, it's possible to concentrate on character development as a starting point to extend the gameplay and explore the world.

- I'm loving the forests. I'm always looking for trees in the sectors and run right to them when i found some. I usually skip sectors without any trees... :wink:

Edit: Maybe changing the sort offset on the shadows of the decorations helps to avoid the flickering between them and the plants. Something like Object3D.setSortOffset(100)...i'm not sure if it's really a good idea but it's worth a try.
Title: Technopolies
Post by: EgonOlsen on December 01, 2005, 11:54:03 pm
BTW: Here's a good posting about the current state of MMORPGs...he has some good points IMHO. Albeit it's quite long, it's worth a read: http://www.gamedev.net/community/forums/topic.asp?topic_id=361091
Title: Technopolies
Post by: rolz on December 02, 2005, 11:47:51 am
Whoa ;) Helge, thanks for such thorough personal analysis of the game, i really appreciate you spending so much time to evaluate it  


Quote from: "EgonOlsen"

- It's quite laggy from time to time. You click to move or attack and the command is executed up to one second later. That's quite annoying but i assume that it's due to my bad pings to the server (ranging from 90 to 700ms). It plays ok when pings are around 100ms, but 200 and above is noticable laggy.


Yes, the game server is on 128k line, i plan to move it to another location for the next build.

Quote

- I got stuck two times. The game was still running, but i couldn't move. One time, it seemed to be related to collision detection. I tried to walk through two tents in the Muton area above the starting point. I failed to pass them but i couldn't go back either. The other time, i somehow screwed up the inventory.  The upper left box was always highlighted when entering the menu and i was able to highlight all others too by clicking into them. But i wasn't able to use the inventory itself and i couldn't move anymore after leaving it.


Yes, i get this sometimes too, have to review collision detection for the next build.

Quote

- Sometimes, my character ran right into a Muton when i was actually trying to attack him...:?


Umm. not sure. Gonna check this out. There is a hotkey 'A' assigned to 'Attack nearest enemy' - it should be most handy for situattions when it might be too difficult to click on certain enemy to attack. I also plan to add a "AI control panel" from which player could define "autopilot" behaviour such as auto atacking enemies or auto flee, party settings etc. This is a low priority task for now.

Quote

- I think that you should change the background color from black to the same light brown that the fog has.

Agreed. Done. looks much better now;)

Quote

- You can talk to NPCs and buy things as soon as they come into view. That should be limited to a smaller area around them IMHO.

Agreed. Should be corrected in the next build.

Quote

- At times where the pings were better, i enjoyed playing it. You should make it possible to store the character on the server when leaving and let the NPCs only train you when you've enough experience points. That way, it's possible to concentrate on character development as a starting point to extend the gameplay and explore the world.

Agreed. I plan to elaborate experience / skill points/levels for the next build and make the gameplay closer to desired state. I also plan to make players persistent on server in the next build (actually it was always there, but it was easier to debug/develop without persistence)

Quote

- I'm loving the forests. I'm always looking for trees in the sectors and run right to them when i found some. I usually skip sectors without any trees... :wink:
Edit: Maybe changing the sort offset on the shadows of the decorations helps to avoid the flickering between them and the plants. Something like Object3D.setSortOffset(100)...i'm not sure if it's really a good idea but it's worth a try.


Yes, game content and appearance are top priority for the next build. I plan to add several buildings, more new areas, more in-game items and new creature - to fill gaps in gameplay. I also plan to add indoor locations (military base) and make indoor locations accessible from outdoors (player comes to the bunker's door and enters bunker location).
Additionally, i plan to add quests into game and and assign one more guy to writing some quests, and probable a a tutorial that should help newbies to get accustomed with the game.

So far, the list of priorities for the next build

- add buildings
- add walls
- add interior elements
- add new tiles for indoor locations
- add some furniture
- add indoor locations
- add teleports from outdoor to indoor locations
- work some time on indoor locations - put trees / objects to make them more unique
- add quests
- add persistence for players
- .. more todos, low priority
Title: Technopolies
Post by: rolz on December 03, 2005, 01:19:24 pm
-relief and texture maps has been redesigned to be stored on server and transfered to client when player enters new location (~3kb per location). This will give ability to add new levels to server "on the fly" without storing anything on client.



a couple of teasers: ;)

outside bunker: (outdoor)
(http://home.ripway.com/2005-5/312079/shot104-bunker.jpg)

inside bunker: (indoor)
(http://home.ripway.com/2005-5/312079/shot105-inside_bunker.jpg)
Title: Technopolies
Post by: Raven on December 04, 2005, 06:36:38 pm
Looks awesome!

Regards,
-Raven
Title: Technopolies
Post by: rolz on December 05, 2005, 02:32:50 pm
-added doors. You have to click on door to go to another location


Level editing in Visio:
(http://home.ripway.com/2005-5/312079/shot106-level_editor.jpg)

This is how it looks in 3D
(http://home.ripway.com/2005-5/312079/shot107-doors.jpg)
Title: Technopolies
Post by: Anonymous on December 05, 2005, 10:50:42 pm
looks good i have a few questions:

are you just hosting this off a spare comp u have right now.. like bandwidth wise how many people do you think it can host?

and another thing is did u just lay down a base texture in areas and put stuff like a rock or dirt texture over top, or did u just replace the polygon already there with the new texture of a rock or dirt.

and last question.. how many polygons do u have on each character like without the armor and stuff.. and do u directly replace the entire upper body with an armored upper body when he puts it on, or does it just get pilled on top of the naked part.
Title: Technopolies
Post by: rolz on December 06, 2005, 12:32:08 am
Quote from: "Anonymous"
looks good i have a few questions:

are you just hosting this off a spare comp u have right now.. like bandwidth wise how many people do you think it can host?


Yes, it's spare box on 64/64kbit channel. Should be enough to serve 15-20 players providing the average bandwidth is ~100-300b/s. The next build will be hosted on a more responsive host with 256kb channel.
Mock tests show that server handles 1000 clients pretty well without going beyound 10%cpu but i did not had the opportunity to test against real world coditions so far.
 
Quote

and another thing is did u just lay down a base texture in areas and put stuff like a rock or dirt texture over top, or did u just replace the polygon already there with the new texture of a rock or dirt.

Textures are pre-generated and assigned per polygon. There should be more detailы on this here in this forum, a couple of months ago.

Quote

and last question.. how many polygons do u have on each character like without the armor and stuff.. and do u directly replace the entire upper body with an armored upper body when he puts it on, or does it just get pilled on top of the naked part.


some ~100-120. Some items just replace textures of body parts (t-shirts, pants), other are "bound" to body parts (helmets, heavy armor).
Title: Technopolies
Post by: rolz on December 06, 2005, 06:11:23 pm
- added reception desks
- added doorways
- added guards to Coalition Bunker location. Makes it look more similar to military base now

(http://home.ripway.com/2005-5/312079/shot108-doors.jpg)
Title: Technopolies
Post by: Anonymous on December 06, 2005, 10:33:50 pm
thanx for the hels its looking really great... so on the rebuild are u renting a server? like the one that can host 1000 clients?
Title: Technopolies
Post by: rolz on December 07, 2005, 08:35:47 pm
Yes, a sort of. Still, it's not professional hosting, it's a spare box one of my friends "donated" to the cause of Technopolies ;) The server is in Moscow, but it's far more responsive than the previous one.
Title: Technopolies
Post by: rolz on December 07, 2005, 08:42:22 pm
fuff... finally got some spare time from my day work.

- player can now open / close doors
- added "key-locked" doors, which  can be opened/locked with proper key
- added plastic keycards
- added NPC which gives you plastic key on Coalition Base location

(http://home.ripway.com/2005-5/312079/shot109-doors.jpg)
Title: Technopolies
Post by: CinergyStudios on December 08, 2005, 02:30:55 am
lookin good
Title: time
Post by: Aramaz on December 08, 2005, 04:51:19 pm
How many hours (avg) each day do you work on this?

This is starting to look really good... you get alot of things done in small time, impressive! (tribute to the goodness of the java language as well as yourself)

Wish I had more time to program on my own game also... but job and family takes too much time.
Title: Technopolies
Post by: rolz on December 08, 2005, 05:07:39 pm
I don't have opportunity to work on game every day because of the day job. I mostly work from home, at night, and all through weekends (if not doing something for my day job already) - so it should be ~about 10-15 hours every week, i think.

The bad thing is i dont have good connection at home, so when it comes to upload updates/screens - i must bring files to work and do it from there ;(

P.S. The project has been in the works since August,2005. Actually, it started in Sept, 2004 but later I had to scrap everything and start from a scratch (reached point-of-no-return with of my old game architecture).  To make a game like techno you need: JPCT and 10-15 hours a week for about 5 months. I'd say it is worth trying. ;)
Title: nice work
Post by: Aramaz on December 09, 2005, 10:43:34 am
Well, with 10 - 15 h/week from august, the result is very impressive! :)

I'm working on a space shooter myself, it's only 2d but multiplayer on internet, started a tiny bit last christmas... but on avg I can only put in like 4-8 hours a week... and sometimes it goes several weeks when I don't get anything done...

Anyways, it's a lot of fun, and soon I hope to get it up for more testing than just my local friends...

After I'm finished with that I might try something 3d... but we're expecting our 2nd child... so come july I'll probably not have any time at all for game programming... :(

I'd really like to try out jpct... the results are looking really good.
Title: Site Launch.
Post by: rolz on December 15, 2005, 12:39:27 pm
Good news for Technopolies.
- We have moved to a new site
- The team has grown to 3 members who will be responsible for the web site and game server.

The dev journal is currently migrating from JPCT forum

Currently, you can check game's Dev Journal, Screenshots and Vote on game improvements.
We plan to add more new content, arrange proper download section and in time add own discussion board (until then Forum section links to JPCT site).

Welcome to *Removed*, and wish us good luck !

Technopolies dev team.

P.S. Helge, many thanks for your support, i appreciate it and will soon put proper credits on the game's site.
Title: Technopolies
Post by: dbz on December 15, 2005, 01:11:44 pm
первый нах!
Title: Technopolies
Post by: EgonOlsen on December 15, 2005, 05:51:07 pm
Great news! :D  Now you just have to move away from JGF with the webstart version. That site was a nice idea but blah^3 completely ran it into the ground with his "use a sledgehammer to crack a nut and blame others if it doesn't work out"-behaviour...  :cry:
Title: Technopolies
Post by: raft on December 15, 2005, 06:31:43 pm
good luck rolz ! and tech site looks cool  8)

Code: [Select]
r a f t
Title: Technopolies
Post by: CinergyStudios on December 15, 2005, 11:10:30 pm
looks very good hey u just hosting the site? or u just paying a monthly from a phone company or somehting
Title: Technopolies
Post by: rolz on December 16, 2005, 10:33:18 am
Thanks folks, I hope the site will give a push to the JPCT community and attract new people.

2Cinergy: yes, that's paid hosting, i plan to move JNLP and downloads there once all changes scheduled for the next version are done.
Title: Technopolies
Post by: CinergyStudios on December 25, 2005, 11:12:45 pm
hey what progam u using to model?... and a just a question about jpct as well: can u use .OBJ models
Title: Technopolies
Post by: rolz on December 25, 2005, 11:59:43 pm
I am not sure if JPCT supports .OBJ
What are benefits of using OBJ over 3DS ?
Title: Technopolies
Post by: CinergyStudios on December 26, 2005, 07:24:34 am
well its just i was having some problems exporting some models out of my modler to 3DS even though they were 3 point polygons.. anywho what modler do u use?
Title: Technopolies
Post by: manumoi on December 26, 2005, 09:31:16 am
Hello Cinergy studios,

Concerning MD2 models generation, Raven told me about the misfits modeler ( http://www.misfitcode.com/misfitmodel3d/  ). I installed it but had not the time to test it yet. However it sounds great for low polygons models.

Manu
Title: new features
Post by: rolz on December 26, 2005, 07:18:26 pm
- improved bot pathfinding AI
- network code has been redesigned to use combination of TCP and UDP
- changed hit/damage calculation for ranged weapons to follow D&D rules
- player's state is now saved on server after logout
- added quests

Title: Technopolies
Post by: rolz on December 26, 2005, 07:19:54 pm
Cinergy, regarding the tool - i doubt there is anything better than 3dMax. It is commercial, expensive but it is also the best tool available for 3d modelling.
Title: Technopolies
Post by: CinergyStudios on December 26, 2005, 09:24:12 pm
yeah well im using lightwave 3D i might get around to gettin 3DS but i hear its pricey
Title: Technopolies
Post by: CinergyStudios on December 26, 2005, 09:25:46 pm
and thanx for the modler recomdation im testing it out
Title: Technopolies
Post by: rolz on December 27, 2005, 07:21:48 pm
- added tables
- added hospital beds
- added infusion drip stands

Title: 0.96 is out
Post by: rolz on December 28, 2005, 06:16:31 pm
Available at
http://ftp://195.91.144.195/client20051228.zip
i'll send additional notification when webstart version is ready.


New features:

- relief and texture maps has been redesigned to be stored on server and transfered to client when player enters new location (~3kb per location). This will give ability to add new levels to server "on the fly" without storing anything on client.

- added Coalition Bunker location
- added passages. You have to click on passage to go to another location
- added doors
- player can now open / close doors
- added "key-locked" doors, which can be opened/locked with proper key
- added plastic keycards
- added NPC which gives you plastic key on Coalition Base location -
- switched to faster server in Moscow
- improved bot pathfinding AI
- network code has been redesigned to use combination of TCP and UDP
- changed hit/damage calculation for ranged weapons to follow D&D rules
- player's state is now saved on server after logout
- added quests ('Q' button)
- added tables
- added hospital beds
- added infusion drip stands
- added Terminals
- added Bulletin boards
Title: Technopolies
Post by: rolz on December 29, 2005, 11:33:43 am
Webstart version here:
*Removed*
Title: Technopolies
Post by: EgonOlsen on December 29, 2005, 12:06:46 pm
Coooool...i've only played it for a few minutes now (lack of time) but i noticed that there are masses of mutons running around on some places. It's impossible to survive this, there are just too much of them (around 30(?) at one place).
Title: Technopolies
Post by: rolz on December 29, 2005, 12:53:43 pm
Yes, creatures travel in small groups, following the leader (creature with highest level). There is no limit for number of creatures in the group, so yes, these groups can be quite huge.
 The good thing is that marines who patrol the camp - also gather in groups ;) and they are fair more effective with ranged weapons so they should handle creatures on camp territory easily.

Current AI is all about walking in groups and wandering around - without any clear task. I'd say it is ~10% of what AI is expected to be.

For the next version (January,15-25th) i'll try to make a "lifestyle" for bots - e.g. some constant action that should bring life to the game world. For example, marines patrol the camp, mutons launch coordinated attacks, couriers running and delivering packages, people wander on the streets, etc. Here is the list of TODOs for the next major release (0.97):

- Living Quarters. Players will be given a room where they could store items or rest.
- add Factions.
- add Karma. Karma will affect player's relations with othe factions.
- add capability of switching between attack modes for some weapons.
- add more objects
- improve bots' AI to behave in more "intelligent manner"



btw. regarding your problem with hordes of aliens:

 You can talk to Corp. Johnson at the coalition bunker and ask him to give you teammates - they will follow and protect you.

  btw, Corp. Johnson also gives you first real quest for muton heads. It appears on Quests page (press'Q') when you receive it - and after you bring him back 2+ muton heads it will be completed.
Title: Technopolies
Post by: CinergyStudios on December 31, 2005, 10:14:56 pm
lol that sounds like fun. Hey a question for anyone here who might know.. about the misfit model 3D program, i cant seem to be able to save.. like when i try to save it says file name not reconized?
Title: Technopolies
Post by: CinergyStudios on December 31, 2005, 10:17:54 pm
scratch that question lol i just figured out a way.. in the file name part i just manual put in the file type.. example: "model1.obj" i included the " so that the computer knows thats the file type and not the name...
Title: Technopolies
Post by: Kamil on January 12, 2006, 05:09:51 pm
hmm I've got about 20 fps on my machine : Caleron 1.7, Radeon 9100, 1GB RAM.   Is this speed "normal" for java or something is not optimised in game code?
Title: Technopolies
Post by: rolz on January 12, 2006, 05:51:02 pm
I think it should be around 30-60 fps, at least this is how it works on integrated shitty videocard.

Please try switching different settings, especially "terrain details" - set to 10-20% (this should reduce geometry complexity and give significant improvement on your CPU). Additionally, try running the game in windowed mode - i am not sure, but fullscreen mode reported to be slow on some cards.


and .. - game development is in progress, i hope there is a place for improvements
Title: Technopolies
Post by: EgonOlsen on January 12, 2006, 06:14:55 pm
Is that a Celeron M (i.e. based on the Pentium M) or a "normal" Celeron (i.e. based on the Pentium 4)?
Title: Technopolies
Post by: Kamil on January 12, 2006, 06:57:46 pm
It's normal caleron based on P4. videocard is not integraded.  Hmm car demo from engine zip runs  on averange fps at 75 at 800x600 fullscreen.  

Ok reducing terrain details gives me about 35fps.
Title: Technopolies
Post by: EgonOlsen on January 12, 2006, 07:10:25 pm
The P4 based Celeron is a weak CPU greatly handicapped by its lack of second level cache (only 128KB). It is especially bad in 3D games/applications and your clock rate is quite low. If lowering the details helps, you are most likely CPU limited. Have you tried Paradroidz? How fast is that one running?
For reference: Technopolies runs at around 40fps (starting position/1024*768/all setting default) on a PIII-866Mhz with 512MB SDRAM and a GeForce4Ti-4400. Due to the weak CPU, it drops down to 15 fps in situations where many many bots are visible, but it remains playable.

Edit: Here's a little benchmark based on the car-example: http://www.jpct.net/download/carbench.zip It can be run in "native" mode (st_opengl.bat) and "awt" mode (mt_opengl.bat). It would be interesting to see what your setup can score in this one (53/48 on the PIII mentioned above).
Title: Technopolies
Post by: Kamil on January 12, 2006, 07:28:59 pm
st_opengl.bat :
fps : 54.10

mt_opengl.bat :
fps : 46.96
Title: Technopolies
Post by: EgonOlsen on January 12, 2006, 07:55:50 pm
That's almost on par with the PIII-866...i'll try to get some reference values for a similar machine to see if this is normal for such a setup. I fear it is... :cry:
BTW: The current record in this benchmark are 381fps scored on an overclocked dual core P4 Presler... :shock:
Title: Technopolies
Post by: Kamil on January 12, 2006, 08:11:13 pm
I've just played Paradroid (highscore list 736 ;) ) .  Depends from scene, fps were 50-80, but mostly around 70.
Title: Technopolies
Post by: EgonOlsen on January 12, 2006, 10:56:05 pm
Speaking of that old PIII, i've tried to run Techno on some old graphics cards lying around here. It runs fine on a Kyro2 chip with 64MB. Slightly slower than on the GF4, but not much. However, blitted text was blured...maybe you are using a texture for that that is too large for the Kyro2 to handle? I couldn't find the chip's exact specs anymore, so i don't really know what max texture size it supports. I remember something like 1024*1024, but i'm not sure. (pic1 (http://www.jpct.net/img/techno1.png), pic2 (http://www.jpct.net/img/techno2.png))

Edit: Found the specs: It is 1024*1024.

Then, i tried to run it on a Voodoo5-5500...it didn't work... :cry: But neither did Paradroidz. Both started fine in windowed mode but only managed to survive a few seconds before crashing. I've tried different drivers but to no avail. Well, it's a long gone card anyway...
Title: Technopolies
Post by: rolz on January 13, 2006, 08:57:41 am
Yes, I actually use 2048x16 texture for bitmap fonts. Will try to see if if can be changed to 1024x32
Title: Technopolies
Post by: Anonymous on January 16, 2006, 04:07:34 pm
Quote from: "rolz"
Yes, I actually use 2048x16 texture for bitmap fonts. Will try to see if if can be changed to 1024x32


 :evil: Andrew, it's a good practice to use only (strongly preferable) square textures ;-) so, you'd better use 192x192 texure, and place your font here.

PS. It's Mike :-D
Title: Technopolies
Post by: rolz on January 17, 2006, 08:43:33 pm
- improved texture generation

Textures are now generated using more clever algorithm:

Fine transitions between textures:
*Removed*

Coarse transitions:
*Removed*

Not sure what of these two methods is better, they both make terrain look better than ever before. ;)
Title: Technopolies
Post by: EgonOlsen on January 17, 2006, 11:07:06 pm
I'm not sure either. I think i prefer the fine transitions when looking at the texture alone but seeing it in game could be a completely different story.
Title: New terrain look
Post by: rolz on January 18, 2006, 01:59:49 pm
Yes, fine transitions look better when applied to the 3d terrain:
*Removed*

some more additions:

- Olbridge location has been converted to a single big map (it should take about 10-20 minutes to reach from one corner to another)
- It appeared that texture generation takes some time (172 textures, 128x128 each - 10-30sec.), so i decided to generate them at first start and store on disk.
- added some improvements to terrain generator. Basicly, what i want is to generate terrain and decorations on the fly - to allow smooth changes between locations.
Title: Technopolies
Post by: rolz on January 22, 2006, 05:43:41 pm
- terrain is now generated on the fly, this will allow maps to be really huge and continuous.
- some improvements for game quests/scenario

Auto generated terrain. Works fine with shadows.
*Removed*

Olbridge Map so far:
(lots of small dots near radford are trees. the small orange square is the bunker)
*Removed*
Title: Technopolies
Post by: manumoi on January 23, 2006, 03:55:29 am
As usual, your screenshots are amazing.
I have 2 questions :

Where did you get your trees? Do you know somewhere where i could find free low polygons trees with texture?

Could you explain the algorithm you used for your transitions and for rendering the terrain? And also what is the method you use for shadow?

Thanks

Manu
Title: Technopolies
Post by: Uija on January 23, 2006, 09:37:30 am
I bought lots of tree and other naturestuff in 2 packs from here (http://www.loopix-project.com/) and I am quite happy with them. There are some free trees too, to test.
Title: Technopolies
Post by: rolz on January 26, 2006, 05:09:20 pm
sorry for late response folks, i dont have much time lately. ;(

regarding models - trees are quite simple, you can use them. Just unpack client.jar and check resources1/static/trees for model and textures

regarding texture generation, it's actually an RGB filter which i use to mix 4 textures - one per each vertex, here is the code. It's rough and somewhat code dependent but.. anyway - it's enough to explain the idea

Code: [Select]

    private static class MixFilter extends RGBImageFilter {
        BufferedImage [] images;

        int size = 0;

        public MixFilter(Terrain3D []terrains) {
            images = new BufferedImage[terrains.length];
            for (int i = 0; i < terrains.length; i++) {
                Terrain3D terrain = terrains[i];
                images[i] = (BufferedImage) terrain.getImage();
            }

            size = images[0].getWidth();
        }

        public int filterRGB(int x, int y, int rgb) {

            double maxLen = Math.sqrt(2) * size;

            double[]weights = new double[images.length];

            weights[0] = (maxLen - 1 - Point.distance(x, y, 0, 0)) / maxLen;
            weights[1] = (maxLen - 1 - Point.distance(x, y, size, 0)) / maxLen;
            weights[2] = (maxLen - 1 - Point.distance(x, y, size, size)) / maxLen;
            weights[3] = (maxLen - 1 - Point.distance(x, y, 0, size)) / maxLen;

            if (Math.random() > 0.2)
                return getFineRGB(weights, x, y);
            return getCoarseRGB(weights, x, y);
        }

        private int getFineRGB(double[] weights, int x, int y) {
            double r = 0;
            double g = 0;
            double b = 0;
            for (int i = 0; i < weights.length; i++) {
                weights[i] = weights[i] * weights[i];
//                weights[i] = Math.pow(weights[i],2.5);
            }

            double weightsSum = 0;
            for (int i = 0; i < weights.length; i++) {
                double weight = weights[i];
                weightsSum += weight;
            }

            for (int i = 0; i < weights.length; i++) {
                weights[i] = weights[i] / weightsSum;
            }

            for (int i = 0; i < weights.length; i++) {
                double weight = weights[i];
                Color col = new Color(images[i].getRGB(x, y));
                r += (col.getRed() * weight);
                g += (col.getGreen() * weight);
                b += (col.getBlue() * weight);
            }
            return new Color((int) r, (int) g, (int) b).getRGB();
        }

        private int getCoarseRGB(double[] weights, int x, int y) {
            double weightLimit = 0;
            for (int i = 0; i < weights.length; i++) {
                if (i < weights.length - 1) {
                    double lim = 0.2 * (0.5 - Math.random());
                    weights[i] += lim;
                    weightLimit += lim;
                } else {
                    weights[i] -= weightLimit;
                }
            }

            int idx = 0;
            double maxWeight = 0;
            for (int i = 0; i < weights.length; i++) {
                double weight = weights[i];
                if (weight > maxWeight) {
                    maxWeight = weight;
                    idx = i;
                }
            }
            return images[idx].getRGB(x, y);
        }
    }
Title: Technopolies
Post by: rolz on January 26, 2006, 07:07:10 pm
a couple of new shots
*Removed*
Title: Technopolies
Post by: Uija on January 27, 2006, 03:34:42 pm
erm, alittle offtopic, but how do you manage to be 2 days ahead of me? Your titlebar sais: 2006.01.29 We here have Friday 2006-01-27 :P Wrong clock?
Title: Technopolies
Post by: rolz on January 27, 2006, 03:41:50 pm
nope, that's the build/date string for upcoming version.
I increase version number just after the previous release - a reminder for keeping up to the schedule ;)

EDIT:
that is, the next public version is 2 days away.
Title: Technopolies
Post by: rolz on January 30, 2006, 10:07:39 am
The build is postponed till the next week.
Title: Technopolies
Post by: rolz on February 04, 2006, 05:49:41 pm
I am going on vacations and will be out of computer for a week. The build is postponed till feb, 15.


New features for today

- switched from AWT GL to GL renderer. Lost most of 2D functionality, but i hope to recover it in a couple of weeks
- started reworking 2d to be based on opengl
- added GLComponent, GLTextArea, and GLButton base classes

Simple UI with a couple of semi-transparent panels and lots of small buttons in the background:
*Removed*
Title: Technopolies
Post by: raft on February 05, 2006, 12:44:23 am
brave decision !

why ? what went wrong ? talk about details please.. i really wonder as (i guess) many others do
Title: Technopolies
Post by: rolz on February 05, 2006, 01:17:45 pm
The main reason i beleive is just too many people coplaining about problems making the game to run at all. ;(

I had this decision in mind for a long time, but was unsure if it is worth switching from AWTGL to OpenGL renderer. ;(

I liked AWTGL renderer for being able to mix AWT and GL seamlessly, but i see now it has drawbacks. I would not throw it out completelly, it is still used by map viewer and animation editor (with AWT UI), but the game now uses GLRenderer.
Title: Technopolies
Post by: EgonOlsen on February 06, 2006, 11:37:27 pm
Quote from: "rolz"
...but the game now uses GLRenderer.
I somehow saw that coming... :wink: That's one reason why the upcoming 1.10 offers a multi-threaded GLRenderer to make better use of dual core cpus...
Is that new GUI based on LWJGL directly or on jPCT's blitting stuff combined with alpha blending?
Title: Technopolies
Post by: rolz on February 09, 2006, 01:31:23 pm
Yes, I got new GL renderer performing much better on my system.

In average, I get 133-135 fps with new renderer and 75-85 with 1.10_pre3.


Regarding 2D - i would like to stick with JPCT's blitting unless you recomend to do otherwise.


BTW, I need your thoughts regarding blitting text.

After doing some UI benchmarks it appears that in general the UI works just fine except for text rendering - it is rather slow.

For example, the UI with 5 semi-transparent windows with a dozen of buttons
displays at 250-260 FPS.

If i add10 lines of text, 30-symbols per line, fps drops to 160. With 20 lines of text, FPS drops to 85-90.  

I assume that the reason of poor performance is my current text blitting implementation. I load the whole alphabet as a single texture and blit chars as regions of this texture, every char is blitted separatelly as a single polygon.

What are your suggestions on improving text blitting ?

I had ideas of creating a texture effect that would change UI component's texture when UI component's text changes - do you think is it worth trying ?
 Let's say if the texture is 256x256 and text changes every 1-2 sec - will generating/uploading a texture be faster than blitting text as separate chars ?
Title: Technopolies
Post by: EgonOlsen on February 09, 2006, 06:03:44 pm
Yes, blitting can be slow if used a lot, because every blit results in 2 polygons being rendered in OpenGL's immediate mode. Blitting larger parts as dynamically generated textures is an option, but i'm not sure if it's faster. Texture loading is a performance killer too. I'll have a look at the state of the current blitting code...could very well be, that there is some room for improvements. I can't remember that i've worked on it since i've written it... :wink:
Title: Technopolies
Post by: EgonOlsen on February 09, 2006, 07:49:17 pm
Here is a version with improved blitting speed. I doubt that it'll get much faster than that without changing the way how blitting currently works at all. Well, give it a try and let me know: http://www.jpct.net/download/beta/jpctapi110_pre4.zip
Title: Technopolies
Post by: rolz on February 09, 2006, 07:54:44 pm
Wow, MUCH faster now,

old version: 117 FPS
pre_4: 243 FPS

What did you change that influenced performance so much ?
Title: Technopolies
Post by: EgonOlsen on February 09, 2006, 08:05:03 pm
Quote from: "rolz"
Wow, MUCH faster now,

old version: 117 FPS
pre_4: 243 FPS

What did you change that influenced performance so much ?
Cool... :D
Blitting was quite "dumb", because it has never been a performance problem before. When calling blit, i had simply set up the OpenGL pipeline to a clean state, did the blitting, set it back to the former state. Now, this process is a bit more clever and i've removed some obviously unnecessary state changes.
Title: Technopolies
Post by: EgonOlsen on February 09, 2006, 11:45:21 pm
I've updated the zip with a newer version that fixes a bug in blitting int[]-arrays that i had introduced in the last version. In addition, this version improves state management and should be even faster when blitting (well, not much but anyway...).
Title: Technopolies
Post by: rolz on February 12, 2006, 04:18:54 pm
finally got some time to work on ui. Ported small part of older UI to GL, this time inventory screen:
*Removed*
Title: Technopolies
Post by: rolz on February 15, 2006, 04:07:52 pm
- ported character screen to GL UI:
*Removed*
Title: Technopolies
Post by: EgonOlsen on February 15, 2006, 06:01:01 pm
Looks better than ever... :D
Title: Technopolies
Post by: rolz on February 17, 2006, 11:25:53 am
- ported dialog screen
*Removed*
Title: Technopolies
Post by: rolz on February 18, 2006, 03:57:08 pm
- added support for TTF fonts (textures are auto generated from TTF)
- added "Quests" tab to character screen
- ported Shop screen to GL UI


Todos for the upcoming release (ETA ~1 week):
 - chat screen
 - "Karma" and "Status" tabs on character screen
 
*Removed*
Title: Technopolies
Post by: Anonymous on February 18, 2006, 08:45:06 pm
Can't run the online version:
Code: [Select]

java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at org.lwjgl.Sys$1.run(Sys.java:67)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.<clinit>(Sys.java:65)
at org.lwjgl.openal.AL.<clinit>(AL.java:57)
at eD.c(Unknown Source)
at techno.client.world3d.Client3D.main(Unknown Source)
... 9 more
Title: Technopolies
Post by: rolz on February 18, 2006, 08:58:56 pm
Obviously the same problem  (http://www.javagaming.org/forums/index.php?topic=11025.msg100340#msg100340).

Do you use java 6.0 to run the game ?
Title: Technopolies
Post by: Anonymous on February 18, 2006, 11:15:07 pm
yup!
Title: Technopolies
Post by: EgonOlsen on February 18, 2006, 11:26:11 pm
Quote from: "rolz"
Obviously the same problem  (http://www.javagaming.org/forums/index.php?topic=11025.msg100340#msg100340)
I hope i got it fixed for Paradroidz. What i've changed in the jnlp is this:

Old:
Code: [Select]
<resources version="1.4+" os="Windows">
<nativelib href="lib/lwjgl_win.zip"/>
</resources>


New:
Code: [Select]
<resources os="Windows">
<j2se version="1.4+"/>
<nativelib href="lib/lwjgl_win.jar"/>
<property name="java.library.path" value="." />
</resources>


The new one should work under Java6. Note that i also had to change the .zip -extension to .jar, because .zip causes a class cast exception after download. Javaws in Java6 beta seems flawed to me...
Title: Technopolies
Post by: Anonymous on February 18, 2006, 11:31:20 pm
Anyways I made the game work and now I can't connect to the server...
Title: Technopolies
Post by: rolz on February 22, 2006, 01:19:57 pm
My apologies, obviously public server went down. Try now.

Another thing - the jws'ed version that is currently available at game's site is about 2 months old.

Here is a brief list of major new changes that are scheduled for the upcoming version (i suppose to be released later this week - friday or saturday)


- large locations. 3D terrain is now generated on the fly.
- switching from AWT/GL combination to conventional GL. This should solve performance and compatibility issues on most systems
- redesigned user interface (looks much closer to commercial games like NWN now)
- team bot AI

Good news: I expect to have more time in the near future to concentrate on the gameplay and the plot. I also hope to provide a playable version in the nearest two months. It will be much more than just the tech demo.

I also plan to add more content to the game thanks to support from gaming community. We are on our way ! ;)
Title: Technopolies
Post by: Raven on February 22, 2006, 03:36:45 pm
Congratulations on your progress so far! I really look forward to seeing this go public -- not to mention trying it in a public status.

Keep it up! :)

-Rav
Title: 0.971 is out
Post by: rolz on February 25, 2006, 06:48:33 pm
New version is available !
*Removed*

New features since 0.96:

- switched from AWT GL to GL renderer.
- redesigned user interface to be GL based
- added support for TTF fonts in GL UI
- new look for shadows
- terrain is now generated on the fly, to allow to allow smooth huge locations.
- better texture transitions
- bot team AI improvements
- new game objects
- skill points and level-ups.

----------------------------------------------
Guide for this demo version:

Login:
Enter username/password - if the user with specified login does not exist then new account is automatically created.

Locations:
You start in the north-western part of Olbridge Island, in a small town - Radford. There is an underground location with some NPCs and a shop - 50 meters to the west from where you start - Coalition Bunker. You can also visit the Junk Yard. Follow the eastern road through the forest.

NPCs:

There are 3 NPCs in Coalition Bunker:
 Corporal Edison - gives you quest for Muton Heads. Gives some money and increases reputation with Coalition after you complete his quest. Also, can train you new skills when you reach new level and get some Skill Points.
 
 Enzo - shop owner. Trades in basic items. You have 5000GP at the beginning - so go to his shop and check out weapons/armor.

 Frankie - actually does nothing. Gives you 2 different keys to locked doors here in Coalition Bunker. Asks to bring these keys back ;)

 Hospital Terminal - shows some information and also shows top scorers
 
 Bulletin Board - shows official posts.

To find specific person easily - press TAB. This will display players / items
names.


Coalition Patrol quest:
 You can complete this quest any number of times. Just go to the Radford's south-eastern entrance and patrol for some time. Usually, every 5-10 minutes mutons launch an attack on the city.
  The best way to survive is to stay close to marine patrol. Do not engage into close combat - mutons are much tougher. Stay away from Muton Avengers, hunt  Muton Scouts and Harrasers.

When you are killed, you often get injured. Check Character screen for details on Injuries, their effect and duration.

 Use "R" button to rest if wounded. You can also go visit Corporal Edison and ask him to heal you.


Good luck getting in there ! ;)

Screenshots:
*Removed*
Title: Technopolies
Post by: EgonOlsen on February 26, 2006, 05:22:06 pm
Has the same or a similar problem like i had with Paradroidz. On this machine (with the Java6 beta), it bombs out with an unknown host exception, which is a bug in Java6 that i already got in the preview release...annoying...if this version of Java6 is a beta, i don't want to see the release version... :evil:
Going to install Java5 again to make things work. Using this flawed beta causes more trouble than it helps.
Title: Technopolies
Post by: EgonOlsen on February 26, 2006, 06:08:27 pm
So far (using Java5 now... :wink: ), i've noticed two problems. I'm not sure if they relate to a laggy server or something else: When you move, it happens quite often (so often, that it's annoying) that you seem to run into an invisible rubber wall which throws you back. It not just pushes you back quite a distance but it also turns you around, so no constant movement in one direction is possible. The second problem is, that it sometimes takes ages to load the coalition bunker interiors and the gui elements like the shop screen. And even if the shop screen is visible, buying takes ages. I was klicking like mad on the green trousers to buy some but nothing happens. After half a minute, the commands executed and i ended up with an inventory full of trousers... :wink: At least this gets better when disabling the "fast network" option.
Title: Technopolies
Post by: rolz on February 27, 2006, 09:35:06 am
Thanks for your feedback.
I've just fixed JNLP - added system.library property for native libs. It's weird that webstart runner doesnt set it to ".", but anyway.. You can try to run it with 6.0 now.

As to "Rubber wall" problem - movement commands start executing on client without getting acknowledgement from server that the command actually started. e.g. when you click on some place on the map, the player starts moving at once. If the server is too laggy, it receives this command and sends acknowledgement too late, and causes player to "roll-back" his position. I've updated the jar that should fix this problem on even laggy server.


As to "shop" problem - i think i'll do it in a NWN way - you will receive confirmation message every time you buy / sell something. You will still be able to omit confirmation if holding CTRL.  I think i'll add it this evening.

The most obvious problem now is laggy server. It just makes the game unplayable. I would be very grateful if someone here could offer a shelter for the game server for a while, until i find better channel.
Title: Technopolies
Post by: raft on February 27, 2006, 02:14:52 pm
Quote from: "rolz"
The most obvious problem now is laggy server. It just makes the game unplayable. I would be very grateful if someone here could offer a shelter for the game server for a while, until i find better channel.


you may wish to take hosting from http://www.jsp-servlet.net/. reasonable prices and good performance. i'm quite happy with their hosting

Code: [Select]
r a f t
Title: Technopolies
Post by: rolz on February 27, 2006, 02:38:42 pm
i'm affraid this wont' work. Techno server is a custom java app which does not run inside a container like tomcat or jboss. I dont think hosting company will allow you to host custom applications
Title: Technopolies
Post by: Anonymous on February 27, 2006, 02:46:47 pm
karga server is a custom application too. i start an rmi registry and rmi server, open a server socket, create directories, write to files and so on..

in short your app runs with no security restrictions

do you need anything else ?

Code: [Select]
r a f t
Title: Technopolies
Post by: rolz on February 27, 2006, 02:49:13 pm
well thats cool, i gonna check it out. thanks for the tip
Title: Technopolies
Post by: raft on February 27, 2006, 02:57:14 pm
yeap, they're cool, they provide private jvm, shell access etc..
Title: Technopolies
Post by: rolz on February 27, 2006, 03:03:10 pm
Well, 16 mb vm for $14/month is not that much cool.
And the fattest package offers 32mb vm for $60 .
I dont understand how is it ever possible to fit anything into 32m ? ;(
Title: Technopolies
Post by: raft on February 27, 2006, 03:13:14 pm
yeap, memory is a constraint :/ it's not a problem for me since i have no jPCT world on server side but you may run into trouble..

maybe you may have a custom package, writing to them and trying wont hurt i guess

Code: [Select]
r a f t
Title: Technopolies
Post by: Uija on February 27, 2006, 03:31:32 pm
I am paying 50Euro a month for a server with 400gig traffic free and win2003 installed and 40euro a month for a linuxserver with the same stats.
Title: Technopolies
Post by: EgonOlsen on February 27, 2006, 07:31:47 pm
Quote from: "rolz"

As to "Rubber wall" problem - movement commands start executing on client without getting acknowledgement from server that the command actually started. e.g. when you click on some place on the map, the player starts moving at once. If the server is too laggy, it receives this command and sends acknowledgement too late, and causes player to "roll-back" his position. I've updated the jar that should fix this problem on even laggy server.
It's better now. Not totally fixed, but much better. Two others things that i've noticed:

1.) You seem not to use mip-mapping/trilinear, do you? If you don't, you should make it an option IMO. The textures are looking sharp now, but they are "flickering" quite a lot.

2.) I would like to zoom in but i can't. It would be great to have this option again.
Title: Technopolies
Post by: rolz on February 28, 2006, 10:40:38 am
Quote
t's better now. Not totally fixed, but much better. Two others things that i've noticed:

1.) You seem not to use mip-mapping/trilinear, do you? If you don't, you should make it an option IMO. The textures are looking sharp now, but they are "flickering" quite a lot.

2.) I would like to zoom in but i can't. It would be great to have this option again.


I set
Code: [Select]
Config.glMipmap = true;
Also, i disable mipmapping for fence walls and items on the ground - they just look too biased when i leave mipmapping on.

I leave
Code: [Select]
Config.glTrilinear to its default, e.g. false.
I'll have set it to true to improve picture's quality.


The zoom is still here, you can zoom in/out by using key up/down buttons.  I bet you mentioned that mouse wheel zooming no longer works. It's a drawback of new GL UI, i hope to fix it soon.


BTW, I've relocated server to the faster channel. Work very well, especially with "Fast Network" option enabled. Give it a try.
Title: Technopolies
Post by: EgonOlsen on February 28, 2006, 06:25:19 pm
Works much better now on the new server. It's really playable now...no bouncing anymore and the character reacts to commands within a reasonable time frame... :wink:
About the mip mapping: I guess the "problem" is caused by my new TFT monitor. I'm not used to that kind of sharpness. My old CRT had a build-in blur filter.... :wink:
Title: Technopolies
Post by: Kamil on March 02, 2006, 12:05:20 pm
Hi again :)

I wasn't playing Techno for some time and now I see FPS on my machine are "a bit" higher ;) (from avg 40 to 80),  btw there is bug in positioning player on the map, see screen :

http://kamilt.go.pl/bug.jpg



http://kamilt.go.pl/
Title: Technopolies
Post by: Kamil on March 02, 2006, 12:08:03 pm
OK maybe this screen is not very informative :D  the point is that only helmet of my avatar is above the ground
Title: Technopolies
Post by: Crate on March 02, 2006, 05:36:24 pm
Hi,

great Game! Its fun to play already, even at this early stage. :)
Some things I noticed:

the "falling through ground bug" mentioned above.
the "hey mate" and "wait for me" from the npcs can be very irritating.
you can shoot soldiers but they don't shoot back  :twisted:
its imposible to survive a muton attack (if you fight them)
guns don't use ammo
rockts kill you most of the time too, because they fire slow, muton runs at you, he gets too close, boom.
maybe less mutons more often would be more fun :)

I guess you know most of this already and its all game play related, which I'm sure is going to change alot still, but I jope it helps a little.

Looking forward to seeing more  8)
Title: Technopolies
Post by: Raven on March 07, 2006, 09:14:51 pm
Hey rolz.

I agree with Crate -- the game is fun to play already!
Unfortunately I also agree with Crate on the NPC chatter, get's really annoying.

I noticed some additional bugs

* When I ask the corportal guy (supposed to be "corporal"?) in the bunker to train me in using the shotgun, the Skill Point level increases each time. So the first time I asked him it was something like 5 SP, next time 6 SP..etc..

* The mutons often look a lot further away then they actually are, so sometimes they can hit you from 5 meters away.

* Muton heads often aren't grouped together in your inventory, but spreaded around

* I disagree with Crate -- I want more mutons, not less! :)

Some ideas that would be cool to implement in the future:

* Vehicles: The players walk *really* slow compared to the size of the gamespace. Vehicles would be really cool - like a jeep that can host 1-4 players.

* Hire and control a group of NPC's in a Warcraft type style. E.g. you could select a NPC in your group by clicking, and then click on a muton you want them to kill.

Anyway.
Great work! Look forward to seeing more.

-Hrafn "raven"
Title: Thanks folks !
Post by: rolz on March 08, 2006, 02:37:35 pm
Thanks, Kamil, Crate and Raven - i appreciate your feedback. Sorry for being idle for these 1.5 weeks - was away and busy on my job.

 Regarding issues and suggestions - i have applied fixes for most issues you discovered. I will send additional notification when they all will be fixed.

Regarding suggestions - there will also be several changes to make gameplay more ballanced.

Currently working on:

- new monster creatures, new buildings, new objects
- updates to scenario. Finally it is going to be a well-formed map with NPCs and monsters, unlike it is now.
- AI for guards and city inhabitants
Title: Technopolies
Post by: rolz on March 11, 2006, 08:33:29 pm
- new creature: trilobite
- new buildings
- fixed "falling through ground" bug
- fixed bug with messy blood spots on the ground

*Removed*
Title: Technopolies
Post by: Crate on March 14, 2006, 07:25:43 pm
hi rolz!

When can we try out the changes? I'm really itching to see the new features in action!  :lol:
Title: Technopolies
Post by: Melssj5 on March 15, 2006, 07:58:22 am
Hi, for 35 USD a year you cant have a server to your custom java game server with:

php, cgi, asp, tomcat, and more. You can load your server

If you want it, tell me I can help you with that.
Title: Technopolies
Post by: rolz on March 23, 2006, 09:47:03 pm
just wanted to say that the project will stop for an unspecified period of time.

I am really depressed with what is hapenning now in Belarus. I really wished that me and my family's commitment to democracy and freedom will not interfere my job, my private life and this project in particular.

But things have changed - i've got problems on my day job because of my activities, my father has been assaulted today and is in hospital now..

I really wish i had some time to work on a project, but will certainly not in the next couple of months. I am planning to find a job far away from here, move to a quiet place and take care of my parents. No more games, sorry. Wish me luck folks.


http://www.guardian.co.uk/worldlatest/story/0,,-5706065,00.html
Title: Technopolies
Post by: Crate on March 23, 2006, 10:16:18 pm
I'm very, very sad to hear that!!

We here (Germany) have been following very closely what is going on in Belarus – its in the news every day. Its very depressing but I do believe the whole world is watching the developments very carefully, you are not alone!

I wish you all the best for the future and hope you will soon find the leisure to continue with your game. It is very sad to see you go. Your project and commitment is an inspiration to me and a lot of people here.

The best of wishes to you and your parents and hoping to hear from you soon with good news!
Title: Technopolies
Post by: manumoi on March 24, 2006, 01:53:55 am
Yes very sad news, I wish the best for you and your family. Here also in Canada, we hear about the situation in your country daily and for what i have heard, many governments, the OCDE and other international organisms are also watching it carefully. Best luck for the next days and hope to see you soon here after the happy ending.

Manu
Title: Technopolies
Post by: raft on March 24, 2006, 02:28:12 am
sory to hear that, both for you, your family and Technopolies :roll:
i wish you all good luck, take care

sometimes coding takes me out of my depressed mood..
anyway, hope to see you here again soon

Code: [Select]
r a f t
Title: Technopolies
Post by: Melssj5 on March 24, 2006, 02:50:18 am
Sorry to hear that, good luck in anything you do.
Title: Technopolies
Post by: EgonOlsen on March 24, 2006, 07:57:04 am
Sorry to hear that! I wish you best of luck. May things turn out well in the end for you and your family. Techno is a great project and even if it's on hold now, i'm sure you'll be back working on it one day.

Take care,
Helge
Title: Technopolies
Post by: Remo on March 26, 2006, 10:37:32 am
Sorry to hear that rolz.

I hope things work out the way you want!
I wish the best to you and your family.
Title: Technopolies
Post by: Melssj5 on March 26, 2006, 10:45:01 am
Maybe you should go to live in another country with your family!!!!!  until things go better there :(

Here in Ecuador foreigns are always well received.
Title: Technopolies
Post by: acorn98 on April 18, 2006, 02:04:20 am
Sorry to hear that rolz. I hope things work out for you.
Title: 0.98 is out
Post by: rolz on May 12, 2006, 05:37:07 pm
Download links:
*Removed*
Launch run.cmd (Windows) or via command line (Linux/Mac):
Code: [Select]
java -Xmx128m -Xms128m -jar client.jar



What's New:


- Added new monster: Trilobite

- Added usable items. To use item, equip it to main hand / off hand
  and click on item's icon in the lower right corner of the screen (info screen).
  Items that are usable on self only: Bandages
  Items usable on others: Pick Axe, Axe
  
  Note: Axes and Pick Axes may be purchased at "Gilbert's Tools and Hardware"


- Added resources: Wood, Iron Ore, Coal, Animal Skin, Meat.
  Resources may be used to make another resources or items.

- Monsters are no longer "dropping" items - click on dead monster to loot the body.
  (Meat and Animal Skin)

- Added resource mining.
  Use Axe on tree = Wood
  Use PickAxe on Rock Boulders = Iron Ore / Coal

- Added quality indicator for items. Quality affects item's characteristics
  (increases armor or damage)  

- Added Crafting.
  To craft an item, you should posess specific crafting skill and
  the recipe for an item. Crafting skills could be learned from NPCs,
  recipes can be purchased in shops. When you purchase new recipe from the shop,
  it is added to your "Recipe Book". Recipe Book is accessible from
  Character Menu (C) -> Crafting
  Crafting skills:
        Leatherworks (items from leather)
        Ironworks (items from steel)
  Recipes:
        Leather (2x Animal skin)
        Iron (2xIron Ore, 2x Coal)
        Light Boots (Leather x5)
        Leather Jacket (Leather x20)
        
  Note: Recipes could be purchased at "Gilbert's Tools and Hardware"

- When you purchase stackable item from a shop, you may enter specific
  amount of items to purchase.

- New buildings

- Added visual indicators for portals (yellow circles)

- Improved texture generation
*Removed*
Title: Technopolies
Post by: raft on May 12, 2006, 05:44:56 pm
looks great ;)
and nice to see you working on techno again
Code: [Select]
r a f t
Title: Technopolies
Post by: EgonOlsen on May 12, 2006, 06:42:40 pm
Good to see you back in business. The new textures look great. I like the vivid colors very much. I've noticed a two things:
There sometimes seems to be a problem with the trees' shadows not being there, but when i tried to reproduce this problem in my second run (my first run crashed due to a cooling problem with my machine), i couldn't...so i'm not sure what caused it.
The far clipping plane is a bit strange when zooming in. If you are standing on a hill, the lower parts of the terrain get clipped, which looks strange. This is not a new problem, earlier versions had it too. I thought i might just mention it this time... :wink:
Other than that, it worked fine and it feels better from version to version. It also got faster, doesn't it?
Title: Technopolies
Post by: Uija on May 15, 2006, 11:32:05 am
yay, welcome back!
Very nice screenshots!
Title: 0.9.9 is out
Post by: rolz on May 29, 2006, 10:40:17 am
Download links:
*Removed*

What's New:

- changed versioning
- changed application loader
- improved usage of items. Cursor will change to "HAND" if your equipped item may be used on target. You may now equip axes and pickaxes to main/off hand
- new object: Cactus. May be harvested to pick cactus spikes
- new object Junk Pile. You may search junk piles for random items.
- new objects: water and oil tanks
- new object: wooden fence
- fixes for UI
- changes to serialization and 3d mapping. old clients may become incompatible
Title: Technopolies
Post by: rolz on June 17, 2006, 04:04:25 pm
New version is just a couple days away.

Changes:

-new small tutorial scenario
-new mosters
-new objects
-game balance improvements

Hopefully, it will be now possible to create new scenarios / quests fast and easy with new NPC Editor.
Title: 0.9.10 is out
Post by: rolz on June 22, 2006, 01:40:32 pm
Download *Removed*



New features:
- new NPC scripting engine
- new monster: Skavenger
- new structures & plants
- new weapons & armor
- new tutorial scenario
- minor features and bugfixes
*Removed*
Title: Technopolies
Post by: EgonOlsen on June 23, 2006, 01:00:09 am
Looks great...but doesn't work... :( I tried to run the webstart version and am getting this:

Code: [Select]
Total textures:1331
Total textures: 11
java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$ListItr.set(Unknown Source)
at java.util.Collections.sort(Unknown Source)
at t1.as.b(Unknown Source)
at t1.as.a(Unknown Source)
at t1.di.c(Unknown Source)
at t1.di.b(Unknown Source)
at techno.client.world3d.Client3D.startVisual(Unknown Source)
at techno.client.world3d.Client3D.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.continueLaunch(Unknown Source)
at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Removing AWT listeners: ...Removing Handlers: ...done
Clearing 3d objects...Clearing map ...done
Title: Technopolies
Post by: rolz on June 23, 2006, 09:52:40 am
Quote from: "EgonOlsen"
Looks great...but doesn't work... :( I tried to run the webstart version and am getting this:

Code: [Select]
Total textures:1331
Total textures: 11
java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$ListItr.set(Unknown Source)
at java.util.Collections.sort(Unknown Source)
at t1.as.b(Unknown Source)
at t1.as.a(Unknown Source)
at t1.di.c(Unknown Source)
at t1.di.b(Unknown Source)
at techno.client.world3d.Client3D.startVisual(Unknown Source)
at techno.client.world3d.Client3D.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.continueLaunch(Unknown Source)
at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Removing AWT listeners: ...Removing Handlers: ...done
Clearing 3d objects...Clearing map ...done


probably because of multi-threaded code. Fixed, try now please.
Title: Technopolies
Post by: EgonOlsen on June 23, 2006, 04:10:29 pm
Loads fine now, but i can't connect to the server ATM. Is it down or is this a local problem? About the Display-before-Keyboard-stuff mentioned in the JGF: I assume this is caused by the Display not initialized because of the lack of matching video modes. I had a look in the properties file and you are setting the bpp to 32. This is fine on Windows, but on Linux, you don't get 32bpp reported by the driver but 24bpp. Maybe that's the problem?
Title: Technopolies
Post by: rolz on June 23, 2006, 04:14:50 pm
Looks like the old properties file makes you to connect to old server.

Delete "Documents and settings/user/.technopolies" folder to reset to default
or adjust the following property:

Code: [Select]
server.host=dev.maryno.net
Title: Technopolies
Post by: EgonOlsen on June 23, 2006, 04:26:27 pm
Yes, that worked. I thought the file was current, because it said:

#Auto generated
#Fri Jun 23 16:00:41 CEST 2006

However, runs fine now. Too bad, that i haven't got the time to play it today... :(
Title: Technopolies
Post by: Raven on June 24, 2006, 04:01:52 am
Hey Rolz, screenshots look great!

I downloaded the latest WebStart version, but unfortunately got an error while launching:

Code: [Select]
java.lang.IllegalStateException: Display must be created before you can create Keyboard
at org.lwjgl.input.Keyboard.create(Keyboard.java:286)
at t1.ar.a(Unknown Source)
at t1.di.a(Unknown Source)
at t1.di.<init>(Unknown Source)
at techno.client.world3d.Client3D.startVisual(Unknown Source)
at techno.client.world3d.Client3D.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.sun.javaws.Launcher.executeApplication(Launcher.java:1154)
at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1101)
at com.sun.javaws.Launcher.continueLaunch(Launcher.java:944)
at com.sun.javaws.Launcher.handleApplicationDesc(Launcher.java:515)
at com.sun.javaws.Launcher.handleLaunchFile(Launcher.java:218)
at com.sun.javaws.Launcher.run(Launcher.java:165)
at java.lang.Thread.run(Thread.java:613)


I'm running on Mac OS 10.4.6., java 1.5. Any ideas?
Look forward to testing it.

-Hrafn / Raven
Title: Technopolies
Post by: rolz on June 24, 2006, 07:35:15 am
Hey Raven,

You could try switching between 16/32 screen depth to make it run,

edit /home/.technopolies/techno.properties - as mentioned above.

p.s. I will have to add a startup / options screen in the next version
Title: Technopolies
Post by: CinergyStudios on July 02, 2006, 06:58:45 pm
sounds like rolz is back in action
Title: Technopolies
Post by: rolz on July 04, 2006, 09:18:14 am
Yes. Got a job offer from abroad, moving later this autumn.

Also, an agreement has been made with nationwide internet provider - they are adding the game to the pool of their intranet resources and will provide a server and steady internet connection. The future is getting brighter for technopolies.
Title: Technopolies
Post by: Melssj5 on July 04, 2006, 06:08:34 pm
Very nice.  8)  Keep on going rolz.
Title: A bit of a random question!
Post by: CinergyStudios on July 06, 2006, 04:35:32 am
hey just a question for those who know how much space do u think key frame animation takes up when u have at least 5 different models with about 5 different animations.... i hear u need to basically break up each animation, but couldnt you put all the 5 animations for one character on one after another then break it up in the programing? and i guess what ill probably do if i can is use the same animation for each of those 5 models or something like that... any tips?
Title: Technopolies
Post by: Crate on August 15, 2006, 03:31:42 pm
Hi Rolz!

Nice that you are continuing your project. As always its fun to play, even at this stage! Some of the bugs I've found:

The skulls don't get deducted from inventory when you complete the quest, you can level quickly by accepting and completing the quest constantly.

The calculation of what you can buy doesn't seem to work - sometimes I can't buy 100 ammuntion, but 2x50 works.

You can't buy ammo for the machine gun, it always says that you need to buy more. (no price set?)

I don't like the combat system, there is too much chance: you miss most shots (randomly) which is irritating. I'd prefer hitting almost ervery time, but maybe doing less damage. Then you get a feeling what monsters you can kill at your lvl of skill and which you can't.

Rezzing after 15sec with 1 hp sux. The monsters don't go away, so you get killed again and again. Also they follow you for too long, you can't realy run away...

If they monsters come in groups, the outcome is always the same: either you die because they all hit you, or you don't take any dmg because they hit on the npc defenders.

The town (towns?) should be marked clearly on the mini-map - I was hunting for more towns but was disapointed because I found none.

Otherwise I really like the quest and crafting system (a little like wow). And as I said, the game is enjoyable already. :)
Title: Technopolies
Post by: rolz on August 15, 2006, 05:31:11 pm
Thanks for the review, Crate.

I did not touch anything on technopolies for two months already - had lots of events in my life lately. I hope eventually it will calm down in the next two weeks and i'll be able to release the whole bunch of latest changes - including fixes for bugs you mentioned, more items, some new animations and mostly the updated scenario/plot.

P.S. got a chance to wear knight's equipment while being on vacations...
Tough stuff I'd say - waving two-handed sword with some 40+kg of steel on you ;) I will definitelly have to review game combat system.
Title: Technopolies
Post by: Melssj5 on August 30, 2006, 10:06:37 pm
A question!!!!! How do you handle the comunications between many players and the server, I mean how are rendered the other players on the client World (receiving just a position and a direction on each iteration???) I have problems on that part and cant fix them, so I decided to ask you who has the best multipayer project here.
Title: Technopolies
Post by: EgonOlsen on August 30, 2006, 10:51:50 pm
Wanted to play a bit but...the server "dev.maryno.net" seems to be down ATM.. :cry:
Title: Re: ideas
Post by: athanazio on December 12, 2006, 06:21:13 pm
Quote from: "rolz"

1. Terrain generator.

The common concept for landscapes in technopolies was in
 - making it easy to edit (drawing landscape map in photoshop with a couple of brush strokes)
 - making it lightweight enough to be transfered via network (~4kb for a 1000 x 1000 meters level)
 - make it possible to be divided into regions (to define footstep sounds for different tiles, add effects like sand smokes and animated grass )
 - load / render only visible parts of a bigger level


I'm very curious how you make this :)
split a big plane in smal rectangles ... can you share this one ?
pleeeease
Title: Re: ideas
Post by: rolz on December 12, 2006, 06:35:31 pm
Quote from: "athanazio"
Quote from: "rolz"

1. Terrain generator.

The common concept for landscapes in technopolies was in
 - making it easy to edit (drawing landscape map in photoshop with a couple of brush strokes)
 - making it lightweight enough to be transfered via network (~4kb for a 1000 x 1000 meters level)
 - make it possible to be divided into regions (to define footstep sounds for different tiles, add effects like sand smokes and animated grass )
 - load / render only visible parts of a bigger level


I'm very curious how you make this :)
split a big plane in smal rectangles ... can you share this one ?
pleeeease


Sure, i'm now moving code to the open source repository and splitting the whole engine into separate modules, like UI, terrain generation and so on. Hopefully will finish and share this code soon.

As to the idea of splitting plane into smaller ones - you can:

1. generate plane from several smaller planes
2. create IVertexController that will adjust Z coordinate for smaller planes' vertices
Title: Technopolies
Post by: athanazio on December 12, 2006, 06:49:25 pm
thanks Andrei !!

I was afraid that the creation of a plane with 1000s of small plane would reduce the performance, but it seems that dont :)

I will give a try !!

thanks again
Title: Technopolies
Post by: rolz on December 12, 2006, 06:50:37 pm
NP ;-]
Title: Technopolies
Post by: athanazio on December 12, 2006, 08:38:24 pm
oh well ... not lucky :)
my frist try didn't gave me nice results ... just outofmemoryerrors, any sugestions ?

Code: [Select]
public class Map extends AbstractEntity {

private int height;

private int width;

public static final int SQUARE_SIZE = 50;

/**
* define the number of subpanels that the map will have defined in a matrix
* [width x height]
*
* @param width
* @param height
*/
public Map(int width, int height, World w) {
super(Primitives.getPlane(SQUARE_SIZE, 1), w);
createThePlanes(width, height);
}

private void createThePlanes(int width, int height) {
this.width = width;
this.height = height;

Object3D[][] matrix = new Object3D[height][];
for (int i = 0; i < matrix.length; i++) {
matrix[i] = new Object3D[width];
}

int shiftX = SQUARE_SIZE;
int shiftY = SQUARE_SIZE;
String textureName = "red";

for (int i = 0; i < matrix.length; i++) {

for (int j = 0; j < matrix[i].length; j++) {
matrix[i][j] = Primitives.getPlane(SQUARE_SIZE, 1);
matrix[i][j].translate(shiftX * i, shiftY * j, 0);
matrix[i][j].setTexture(textureName);
addChild(matrix[i][j]);
prepare(matrix[i][j]);

// TODO remove this
if (textureName.equals("red")) {
textureName = "white";
} else {
textureName = "red";
}

}

}

prepare(this);

}

private void prepare(Object3D one) {
one.rotateX((float) Math.toRadians(90));
one.translateMesh();
one.rotateMesh();
one.setTranslationMatrix(new Matrix());
one.setRotationMatrix(new Matrix());
// one.createTriangleStrips(2);
one.enableLazyTransformations();
}

private static final long serialVersionUID = 1L;

}
Title: Technopolies
Post by: Mizuki Takase on December 12, 2006, 09:58:44 pm
Your code seems normal to me... Instead of constantly making a new plane with Primitives.getPlane(SQUARE_SIZE, 1); why not Object3D.cloneObject()? I hope that helps, but then again, I would think that a Plane is already too small of a memory hog to even get an out of memory error...
Title: Technopolies
Post by: athanazio on December 12, 2006, 10:52:44 pm
I tried with the clone but still have the same problem ... :(
(feeling stupid) hehehehe, its part of the game hehehe
Title: Technopolies
Post by: Mizuki Takase on December 12, 2006, 11:05:40 pm
Does Egon's answer about using addTriangle() seem helpful to you? I am going to read the source that he mentioned later...
Title: Technopolies
Post by: manumoi on December 12, 2006, 11:18:27 pm
don t forget to use the -Xmx option with the java command in order to extend the allowed memory to the virtual machine. For example -Xmx256m to allow the virtual machine to run with 256 meg
Title: Technopolies
Post by: alexh on January 14, 2007, 03:19:51 am
Are you still planning on releasing the code? Is there a link to it, I'm really interested in finding out how you approached writing of this Game.  I've written some bits here and there in the past but begin to drown in the code I've written.
Title: Technopolies
Post by: cyberkilla on January 16, 2007, 12:54:13 am
I recieved this error as soon as the application finished downloading...

Code: [Select]
java.lang.IllegalStateException: Display must be created before you can create Keyboard
at org.lwjgl.input.Keyboard.create(Keyboard.java:286)
at t1.ar.a(Unknown Source)
at t1.di.a(Unknown Source)
at t1.di.<init>(Unknown Source)
at techno.client.world3d.Client3D.startVisual(Unknown Source)
at techno.client.world3d.Client3D.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.sun.javaws.Launcher.executeApplication(Launcher.java:1154)
at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1101)
at com.sun.javaws.Launcher.continueLaunch(Launcher.java:944)
at com.sun.javaws.Launcher.handleApplicationDesc(Launcher.java:515)
at com.sun.javaws.Launcher.handleLaunchFile(Launcher.java:218)
at com.sun.javaws.Launcher.run(Launcher.java:165)
at java.lang.Thread.run(Thread.java:595)


I am using Ubuntu Edgy, with X11, Ati's FGLRX 3d Driver.
I have no special setup. This is your standard modern linux installation.

I hope this is helpful to you in some way:)
Title: Re: Technopolies
Post by: Melssj5 on September 26, 2008, 04:53:34 pm
Anyone knows what happened with this?
Title: Re: Technopolies
Post by: zammbi on September 26, 2008, 06:35:05 pm
Seems he has stopped working on it. Which is a shame because I wanted to test it out.
Title: Re: Technopolies
Post by: Melssj5 on September 26, 2008, 06:37:09 pm
ROlz is online, did you continue it rolz? I remembered was nice once I saw it.
Title: Re: Technopolies
Post by: EgonOlsen on September 26, 2008, 08:26:52 pm
Seems he has stopped working on it. Which is a shame because I wanted to test it out.
I think he has stopped working on it for personal reasons a long time ago. I'm still linking to it on the projects page, because it was a nice project. It also was a very good thing for jPCT, because it had driven the development. Multitexturing and the AWTGLRenderer were initially triggered by Technopolies.
Title: Re: Technopolies
Post by: rolz on September 26, 2008, 08:54:25 pm
Hey guys,

Sorry to say that, but Helge is right - I've stopped working on the project after 2 years of development. Just couldn't get it evolved into something more global than just my personal hobby.

It was my all-time favorite, I really enjoyed the time being spent as the part of the jPCT community and I wish the community to live and prosper.
Title: Re: Technopolies
Post by: zammbi on September 27, 2008, 04:45:07 am
Could always release the source code? Would help others in doing such projects or even build on top of what you currently have.
Title: Re: Technopolies
Post by: Nebelritter on October 23, 2008, 01:46:05 pm
what a pitty..

I have a similar(but not Multiplayer) project in mind, but am very new to programming o the whole.
Still searching for a good engine, but what he did with this is nearly exactly what i would like to do too.
So i would be interested in the source, just to have a look and get a feeling, how the problems are solved that are so numerous in my mind...
obviously it is possible..
Title: Re: Technopolies
Post by: frulica on November 30, 2008, 09:36:02 pm
any news on that source code?
Title: Re: Technopolies
Post by: EgonOlsen on November 07, 2010, 11:09:01 pm
For the record: I've removed all references to rolz' website, because it has been abandoned a long time ago and seems to serve as a malware distribution platform now. I'm really sorry about this...Technopolies was a great project and one that really pushed jPCT to its limits and beyond. The engine gained much from this project. More info here: http://www.jpct.net/forum2/index.php/topic,1786.0.html (http://www.jpct.net/forum2/index.php/topic,1786.0.html)
Title: Re: Technopolies
Post by: rolz on November 07, 2010, 11:37:55 pm
Helge,

You're right. It has been abandoned, but I could share the source code :-)

What's the malware problem ???


For the record: I've removed all references to rolz' website, because it has been abandoned a long time ago and seems to serve as a malware distribution platform now. I'm really sorry about this...Technopolies was a great project and one that really pushed jPCT to its limits and beyond. The engine gained much from this project. More info here: http://www.jpct.net/forum2/index.php/topic,1786.0.html (http://www.jpct.net/forum2/index.php/topic,1786.0.html)
Title: Re: Technopolies
Post by: rolz on November 07, 2010, 11:54:09 pm
Ok,

I think I may have found it. There was a suspicious hidden frame calling online-demarco.com
Not sure how it got there, but I've removed it and sent site reconsideration request to google. Thank you for the heads up.


Sorry guys, I didn't update the site for a while and have even removed the forum since as Helge mentioned it became a spam bot paradise.
It's linking to Technopolies thread on JPCT forum site...

PM me if you're interested in the source code.