Friday 28 December 2007

New demo video on youtube

Nearing the end of the year I added a bonus video for showing the new things in the last few releases. Enabling grass, far view and bloom ate up much more performance resulting an FPS of 14 in the captured video.



Normally it runs around 26-28 FPS with these extra settings on the Nvidia 6200Go. I bet it's not too bad. If you want more FPS on older hardware like this and such you have to switch the extras off for sure now.

Saturday 22 December 2007

Merry Christmas to every jcrpg readers

To all jcrpg readers around here I wish a merry Christmas. Hope you'll have the possibility for a great time. I will pause the development and put it to rest for some days now. I advise you to do the same with your everyday tasks. Create and enjoy this little rest in between the storms of war of existence. ;-)

Friday 21 December 2007

The "Many Things plus Farview" release

Headlines:
"Base geographies (Mountain, Plain, Forest) were refactored to point height calculated tile generation. Cave and River were rewritten to be compatible with the modified base geographies. Farview mode was refactored and beautified based on new geographies. New configuration parameter called RENDER_DISTANCE_FARVIEW was added. World generation was extended with rivers and caves. The demo game is now running in the generated world." Download, test and report!

Thursday 20 December 2007

Cave, River plus Farview mode rewritten

The Cave and River has been modified to work together with all the new stuff in Geography. They fit together now well.

While I was tinkering with the new height based tile calculation method it occurred to me that with this new code at last I can make the far view mode work much better than before! The cube kind of a given height is calculated based on the neighboring cubes' height relative to the current cube's height. The method calculates if a slope or a ground or some other kind of cube is needed. Slope if the cube is at a lower height than neighbors, normal ground if in equal height, etc. And here comes the trick! In farview parts only every 4th cube is rendered and the scale of it is multiplied by 4. Before using this method farview rendering resulted in ugly gaps between ground and lower positioned ground parts unconnected with a slope. BUT with height based cube kind calculation we can have gapless view if the neighbors in far view are determined to be 4th cube in the 8 used directions for cube kind calculation instead of the next cubes around. Thus big sized slopes will be always put between two different levels of ground. Finally farview is usable and much nicer than anytime before! :-) Okay, not the nicest I've ever seen, but gives some base potential to later sophistication.

Tuesday 18 December 2007

What to do if jcrpg is slow?

If you are testing JCRPG and it runs slow there are a few things you can check to improve performance.

Firstly there's config.properties in the root directory of the game that can be modified with a text editor. Things to care about in ascending order of impact on game aesthetics:

  • WATER_SHADER - turn it "false" for more FPS
  • RENDER_GRASS_DISTANCE - set it to 0 to switch of grass, this may help a lot in terms of FPS and memory usage too
  • TEXTURE_DETAIL - set it to 0 or 1 for low and middle settings, can be a big FPS and memory eater
  • DETAILED_TREES - set it to false for less detailed trees with less foliage
  • VIEW_DISTANCE - a really large factor in FPS - as much as in the look of the game. Set to lower values for bigger FPS
  • RENDER_DISTANCE - helps out the loading and the memory usage - big memory usage may load the Java VM too. Set it to lower values, especially if you have little memory
  • RENDER_DISTANCE_FARVIEW - the higher this is the more memory and CPU/GPU it will consume rendering it. If using far view a sane value is used to be VIEW_DISTANCE/RENDER_DISTANCE/RENDER_DISTANCE_FARVIEW = 26/52/80. You will be able to see ~ 13 cubes distance detailed plus 27 cubes distance undetailed tiles magnified/simplified.
  • FARVIEW_ENABLED - set it to false, will help a great lot, cutting down the whole far view part
Second you can have hogging problems if you set high detail values and Java runs with low memory parameters or your system has small free memory. If you plan to run on high settings you may consider edit jcrpg.bat or jcrpg.sh and modify the -Xmx parameter to a higher value. (Example: -Xmx200m.) I recommend you to have at least 300MB free memory or more for the current default configuration (dec 2007).

Thirdly you may try to run it in lower resolutions - this can help a lot too.

I'm testing the game on a Geforce 6200Go + 1.6GHz P4 + 500MByte memory. It generally runs well if I switch extras off (water shader, grass off, around 30 view distance).

Last modified 27 Dec 2007

Sunday 16 December 2007

First round geo facelift completed

Yeah, perfection is a must. We got close to it: smithing on the ground component models and hours and hours of experimenting with the optimal height point geography generation plus the refactoring of all the classic geographies like Plain, Mountain, Forest resulted in a much varied environment full of slopes and levels to explore! :) Thus we are now in the second round: to beat the river and cave into its place...gee, hard work ahead! Maybe meaning another big refactoring to come... Shots depict now a bit of the varied climate with a small mountain part plus the new "next gen ground code" plains and forests. ;-)

Friday 14 December 2007

Mountain Chaos Glimpse

More Results of Height Point Geography

I will reconsider some boosting of the whole geography with Height Point tile generation (where possible). That's because I could write a code that pretty easily handles the steeps and such. Check the shot. There's an easy way to add valleys too now so I'm thinking about using the valley thing or adding Height Point tiling to the Plain and such. But I'm leaning towards adding Valley and leaving plain as it is - and add a generic function to the Place root class that gives the height and such things if a Geography will need data outside its boundary (to fit the tiles together at the edge).

Thursday 13 December 2007

Rewriting Mountain

While trying to get work the mountains with different size and height in connection with the World Generator I decided to rewrite it fully from the basics...the square pyramid like look is not really usable in bigger size. Now it will be a point height based thing with some kind of mathematical function that tells Y in a point of (X,Z). The previous code was messy and too firm to be developed...the new one is planned to be better ... yet the classic look and standard, something like the shot shows with some more variation. :-)

Tuesday 11 December 2007

Night in Unbald Mountain

Yeah, a big refactoring, hacking and bug hunting in the Cube/World section plus the Mountain and Cave code resulted in world sized Mountain and Cave geography addressable and usable in blocks. This means a mountain is shaped where its parent Mountain geography is having an area occupied in its WorldSizedBitBoundaries. It's usable, faster and convenient for world generation! One little thing is the AI cannot tell them apart only if I will add some later enhancement for the base Geography class that will make it able to tell some of its bigger areas apart. Understood? No problem, check the shot for the visual result. :-)

Sunday 9 December 2007

Going into details of old codes

I had to go and fix, change and test some codes while moving on with the world generation code. Internal flora was colored by outside lights and the flora overwrote some cave limiter rocks making the outside hill badly visible from inside the cave! :-) You can experience this in the previous release I think. But before that a bit based boundary was implemented which stores the areas that the Geography may occupy. The previous version which stored the boundary coordinates in a hashset filled with Integer coordinates was slow and memory eater. Bit based I could create several layers of World sized Geographies of forest/plain in a world size of 10 thousands * 10 thousands Cubes with a 10x10 Cubes sized area granulation which means 1000x1000x100 bits sized data stored in the so-called WorldSizedBitBoundaries' byte array. Then I created a frame for the big map window to make it nicer. All is inside SVN!

Thursday 6 December 2007

Climate belts, big world map

World Generator step onto its next level with the working Climate addition. A preliminary version of UI menu windows is also committed into SVN. If you press F1 you get a pop-up window showing the World Map in big with a red dot showing your position. Pressing it again makes the window go away. The map is colored according to the climate belt colors. Shot shows the Window and the generator added Tropical belt. :)

Tuesday 4 December 2007

Ocean and WorldMap sophistication

I was busy coding to boost up the Ocean coastal code part. It's ready now and more or less working like it should. Fixed many things in its logic experimenting with it a lot. It caused quite a headache! :-D After that WorldMap was the next target to add a step by step updated red mark of current location onto it. Now I'll head to further develop the WorldGeneration geography addition part plus the Climate belt addition. Geography addition will be based on big zone hashing and similar quick tricks. :-)

Sunday 2 December 2007

The "Base UI" Release

A long time passed since the last release and looking at the changes in the last few weeks I decided to pack and push out one new - though the World Generator is in a rather primitive stage of development. The release is out, world generation is done when you start jcrpg yet you will enter the old one already known and put together previously by me without the new generator. Headlights: "UI base elements were added: load icon, compass, time meter, world map, HUD panel. Internal Flora is now configurable through FloraGenerators. Example internal flora in the Cave. Initial version of the World Generator is added. The World Map UI element shows a world generated by it. Updated JME libraries from CVS." Download it here! Hope to see you around commenting here or the forum. (This time it's gzipped for easier handling.) The screen shots depict the new compass/time block and loading icon plus the map. (The small yellow dot [Sun] shows the passing of local time where you stand, it is going around the compass.)

Saturday 1 December 2007

Coding some UI base + GIMP

I'm working for a short time on the first steps into the User Interface to give some idea for you and for me what will be this all about. Integrated the map into one corner of my first attempt in GIMP to create some nice transparency boosted gfx for the main first person screen.

Twitter