Till recently I always were a bit uncertain how the previous 2D text rendering might work out on the long run. On screens with dense windows the FPS counter dropped down a bit too much for my taste. There are two different text rendering ways used in the game - one was used for the bottom log, the other for all the UI. The true type font renderer was used for all the UI elements - that renderer was creating a separate quad for each letters in a text. The monospace (bitmap based) text renderer was much nicer and more performant -- but it's working with its own font bitmap format only!
I looked at it and found that if I was able to create my own bitmap out of the current UI ttf font (Vinque), I could replace the slower method and use the low poly version instead. So two things followed by a big refactoring of the UI elements changed the whole UI into a faster performing sweetness. :D
First, I overrode the jME Text class (shape responsible for 2D texts) and thus overrode the default font bitmap path too. Second, I used FontForge to tweak the ttf font into a monospace font set exported into a new ttf set and using 'convert' of ImageMagick converted it into a bitmap. A little tweak with GIMP and voila, there goes the Vinque font and TextureState based font rendering of jME tuned for jClassicRPG. :) After that, a tideous process of reviewing all the UI element and window codes came. But it was worthy! On my Intel gfx card it can even double the FPS on the character creation screens! Saving a lot of polys and also scene graph elements, that's quite understandable. :)
Sunday, 30 August 2009
Optimized text rendering READY!
Friday, 28 August 2009
Top button row icons ready, Character creation improved
Still working on the UI part, this time a lot of minor fixes and polishing of the mouse input was going on. Finally I decided to not wait for the top button icons to be contributed, instead 'do-it-yourself', created them by modifying different free icons or painting it myself. I hope you like it. You will be able to click them with the 'pointer mode' mouse, swap between the different windows - that is quite comfortable. :)
The other major upgrade is of the Character Creation part. Following the idea of TheAncientGoat @ freegamer, I changed the profession selection process. Instead of letting professions be chosen after tweaking the attributes to unknown minimums, now player can select a profession which automatically sets the minimum attribute levels that are required for the given profession. This makes it a lot more easier to select a profession. The other change is on the skill setting page - added a Reset button, which will reset the skill value set to the original values.
Next I can move back to enhancing the map. After that I will integrate the new 3D content (made by tidbit & TheAncientGoat). That done a test release is due - so there'll be a new release before moving on to the next chunk of bigger development goal (story/dialog/commerce system).
Monday, 24 August 2009
Fixing Windows mouse issues, Vista 64 bits note
I have just fixed two issues related to Windows + the new mouse input. First, cursors under Windows rather be 32x32 or displayed corrupted - googled it up after a series of experimentation in Gimp with no success. Now all cursors resized to 32x32, to let it work as fine as under Linux. Second, main menu mouse input didnt work under Windows - solving it was to prepare the code for Windows specific file path separator. All committed into SVN repo.
MysticSkript visited us on IRC chat and told about a problem related to running latest release under Vista64bit. I figured out just today that the solution right now is to use x86 (32-bit) Java installation if you want to run the previous release. (SVN version should work with 64 bit Java and Vista64 tho' I haven't tested it yet.)
Saturday, 22 August 2009
Enhancing the UI experience
Now that mouse support is in, I have looked at the possible ways to use the mouse over the default ways of input on the keyboard that are now already possible by using the mouse. Of two major thing the first to have a ButtonRow on the top of the screen, which let's the player toggle the different windows and to start/stop camping (resting). The second thing is to let the player use the character portraits to raise the Inventory or Character sheet for the given character. Both of these are now in the SVN repo. Check the screenshot! :) I plan to add unique image buttons for the top ButtonRow's instead of the text. Also a nice background for the strip. Nicely done contributions for these two would be mostly welcome! (The image buttons for: MainMenu, Map, Camp, PartyOrder, Behavior [party members background skill selection for use while walking in normal mode], Act [do things like use an item, drink potion], Search [look for opening a door, trap, chest]. For size, look at the screenshot.)
Wednesday, 19 August 2009
[Updated] Mouse support READY!
Currently I have narrowed down my attention to the process of providing full mouse support for the UI. I've added mouse event processing to 70% of the UI elements already, and also cursor replacement, different cursor types for normal/scrolling/tuning values etc. Still more is to be done, the remaining UI element classes awaiting, along with the addition of new Close signs for the windows that lack them, reviewing the UI mechanisms of the already present windows. And of course more and more testing. :) Things are in SVN, so anyone interested can help in testing as well.
Update: spending some more hours on the matter today, now it's time to announce: the mouse support dev is completed and committed to SVN!
Friday, 14 August 2009
Wiki moved, addition of mouse support for the UI started, contributions
Due to the previous mediawiki (self installed) being dogslow (every page loading takes +5-10 seconds just waiting for something, probably DB or some name resolution?) I have decided to revisit the idea of using MediaWiki hosted natively by sf.net for the projects. I've gone through all the content, copied the remaining changes to the new MediaWiki. From now on please use that one (all the links I've tried to replace, so you just have to follow those links). To edit it, you will need an sf.net account, and probably permission from me. I'm not sure how this part works on sf.net hosted mediawiki. We'll see! :)
Yesterday after incroporating mkienenb's new patch for starting the addition of menu mouse handling, I've found some time to tweak it and make it work with the InputBase class of the InputWindows, with a special kind of picking for the UI element based on Mike's advice - to check the WorldBound of the given Spatials under a window's root node. At least buttons are working now! We will keep on working for an all encompassing UI mouse support (dropdowns, inputs, value tuners and all the stuff). You can expect it to work in the next release. :)
Meanwhile tidbit is helping with a lot of different new content. Yeti, igloo, snowy road texture for the arctic region is ready for integration (animation still needed, if interested in that part visit our forum/wiki/irc for more details). He's just finished a new series of Shrines to be integrated as part of the road networks later. TheAncientGoat - another helping hand from the FreeGameDev community - has created a new unique monster (something like a horrifying larva/insect/spider mixture) and posted it on the forums. So lots of things happening in the contributions forum! Check the topics out for preview images! :D
Monday, 10 August 2009
Path development ready
After tweaking the worldmap display (thinner lines of road with direction) and adding some bends to the road network I started to fiddle with some better algorithms for road generation - instead of simple lines drawn between the populations an A* algo should find the most efficient path to build a road upon. With the help of the superb slick 2d java library I managed to add a fully featured, cost based, fast road network generation - the class World of jcrpg implemented the TileBasedMap interface of slick pathfinder. Kudos goes to slick2d! ...and thus ended the first iteration of road network development in jcrpg! :) Check the screenshots to see how it looks on the world map! :) (PS.: Updated 1st screeny, nicert gfx now in SVN.)
Wednesday, 5 August 2009
Turning, bridging that old dusty road
While I've been working on to make the roads better fit its purpose (turning points added to generation and display, removed wooden steps replacing those by simple road) tidbit created a brand new road texture for it. Now it looks quite appropriate! :) Also the unusual yeti is complete, textured and rigged by him! Thanks for those! Attached are the new screenshots of the road (note texture splatting is on on the 1st, which kindof eats resources, luckily my intel gm965 works with it with smaller/bigger hickups).
What remains is to finalize the selection process - what counts as big towns - and wether should there be more than one graph of roads (separating enemy countries like not building roads between them). This latter idea is more probable to be dropped - in general even not friendly countries used to have road connections. Eh, and another smaller task will be to make the map correctly display thin lines of the road with turns and crossings. Then I can go on and start the labeling of the world map! Yay! :)
Monday, 3 August 2009
Something crosses?
Hah, with some very basic tweaking of the Economic class melted with some parts of the EconomicGround class and the River's WorldSizedFlowDirection thingy (a kind of bit switch map, 4 bits for each world map block and the for directions (currently a block is 40x40 sized areas)). The mixture is called RoadNetwork! Right now the roads go in a cross in the middle of the block where road directions are defined. Nothing complicated, still now it's being represented in the 3D view as well. :) I will improve it later on.
The IRC channel (you can find a webchat link to it above at Chat menu element) seems to be quite useful, we gather there day by day, chat and try to be constructive. :D mkienenb from New York has shown up there as well and helped out with some good ideas and code patches along with some editing of the project Wiki's brand new user guide part created by him. Meanwhile tidbit started to work on an polar monster called 'yeti'.
Saturday, 1 August 2009
Update on the roads
Yeah, I've tried to come up with something regarding roads. Now it's getting into shape! Certains towns of bigger size are now interconnected. Each town with two of the closest big cities. A web of road will get you into all the bigger towns. Currently it's very early but at least some kind of very simple path drawing is already in, using the WorldSizedFlowDirection class (already used for rivers and their directions). The WorldMap is already showing something of it, but the 3D view and abstract cube architecture is not yet aware of the roads. :) The screenshot shows the randomly generated world, with a few bigger towns connected with the reddish colored road.