Friday, 30 May 2008

The "Anniversary Boom" release attacks!

One whole year, 365 days have passed since leaving the safe harbors of non-game-developing times. It's been a long one, with many joyful and many painful moments. At start I thought that one year will take much further in completeness but 15 releases did not brought its fruit that easily - every corner brought new ideas and new things to code with hours to spend on them. As progressing from thing to thing it became more and more relevant that the undertake, the scope of the project needs a whole lot more of work hours than projected at start. But every step taken made the progress more and more unstoppable, rounding up such a concept in my mind that lures it further and further to completion. Every step taken made the vision clearer and me more eager and curious to turn the vision into reality. And so we progress further every day.

The big revelations while doing the design and development through the months - as far as I remember - were the following things...first the Magnification of the stored world into bigger blocks using hashing and other surface calculus algorithms to fill up the world with detailed content on the fly. This brought the possibility of relatively large lands to store in little data. Second came the idea of "Magnification" of living things into Entities, groups of beings with a common intelligence and keeping EntityMembers as special persons with more detailed personal intelligence - this will make large populations available even with less memory and cpu consumption, and bring a real edge to the things happening around the won't mess with a whole population of 200 members around, "you'll try to keep a good reputation" if you want to live in the town one might guess. Yet powerful NPCs (special members of an Entity) can serve as a hook to these groups who can serve as a strengthening channel between player and a community. And these masses can serve as basis for big scale historical happenings between rivaling Towns and so on...who knows what other possibilities yet. Third came the idea of adding a set of Social skills to rule the problems of life in the game by more peaceful means - social skills with act forms like spells in a magical book yet different, Reasoning -> Deduce like Elemental Magic -> Shocking Grasp :) - which gives more color to the encounter situations with the help of such points as Morale and Sanity along with normal Health, Stamina and Mana Points. And fourth came the idea of dynamic relations and dynamic economy with Ecology and Economy updates which will bring a dynamic progress to the world of jcrpg - a turn in the game when whole town districts may change their face, new buildings and streets, new agriculture around. Along with these things we cook the cool things what the legacy of classics like Wizardry, Bard's Tale and lastly Dune 1 (because of its group based + personal "strategy-rpg" likeness) - multi-member party, turn based encounters, strong skill system, 6 direction only movement, 3D tile based graphics. Well, well many of these things are really partially complete, but these ideas serve well a game that I would like to play. And probably will...

Especially because such a big and good community like was and is helping this thing to get ahead! Many names could be named who helped to keep up the things and my faith on the way, all of those great people's name are carved on the walls of the Hall of Fame of jCRPG... Thank them a lot again! :)

So here we are on the road of development, standing at the time of first anniversary... let this be celebrated with a new release! A big lot of new things are pushed into this one, all of them of much importance. Check it out downloading, testing, commenting, bug reporting and so on and so on. Oh, and probably feel free to be the first person ever to donate to the cause of this project through this Pal of Pay at the top of the blog. ;-)

"New UI windows for Encounter Phase, Turn Act Phase, Character Sheet (F3 key) and Inventory (F4) were added. New Population generation algorithms (GrownInfrastructure, DefaultInfrastructure) were added along with new integration level of named Towns for friendly populations to unite in. Economy Update Turn implemented for growing or declining population changes. Basic level Entity relations and Entity states (level and points) and Entity fragments (roaming entity groups) were added. A few Objects for inventory were added. Skill system further implemented with object dependencies and Skill Act Forms (like some spells and some combat forms etc.).
New animals heron and deer were added and wolf replaced (glestanimals of wciow at Smaller bugfixes, optimizations (culling works again now correctly). This is the First Anniversary Release!"

Downloading here, forum here.

PS: if you've downloaded it before this post you should download it again, I've found two major problems in the previous tar.gz, so I re-uploaded it!

Thursday, 29 May 2008

Character Sheet - first draft but working version

As you can see I've decided to put much info into one page with the help of drop down lists again. It's good enough for a first version, isn't it? All other character data have received place on the sheet, and still room for more values later. Also point bars (health, stamina, morale, sanitz and mana) are present beside the HUD character portraits - with some minor problems with update yet. All in SVN. You must create new characters and a new game - changes made to the character classes require it!

Monday, 26 May 2008

Inventory Window in the works - 4 days left till jcrpg birthday

Coding, coding when possible. Few hours in the night, yeah, trying to squeeze minutes out of the small free time I'm left with. And just passed another day - 4 left till the jcrpg birthday release! :-)

Regarding the inventory I cast my vote for a preorganized (not player organized) categorized inventory. As you can see, I've already added categories and multiselect dropdown lists for items. You can multi select items and later the window will have options like move objects to another party member, drop selected items and such. I've also added small icons to the multiselect list representing the item. I bet it's classic yet easier to use because of the categories. Always sorted, always categorized but a classic look.

Sunday, 25 May 2008

Abstract Inventory, Objects and Object dependent Skills

These are the things for today: Inventory, objects, weapons, inventory dependent skills and skill dependent objects -- some weapons with some basic parameters (attack modifier, defense modifier, damage, speed) were created. Objects can specify "use skills" and level of that skill so only those can use them that have those qualities.

I've appended Object selection to the Turn Act phase window too, so that you can select in every turn what object you want to use with an object dependent skill. Also only those object dependent skills show up in the skill select for which the person have a usable object in inventory.

Important thing is, that I've decided to leave out the "equipping round" for weapons. You don't have to equip weapons to your characters before using it in a round, you can use them anytime you want. (It's more convenient and less frustrating), yet don't forget your enemies neither have to make an equip round for changing weapon! :) The Wizardry series had this equip round which finally I've decided to leave out of jcrpg.

Now we'll need an Inventory window too along with a character data sheet... I hope to get to implementing those soon(er or later).

Saturday, 24 May 2008

Full set of Encounter windows prototyped

Nearing the first birthday of the Java Classic RPG project the drive to get to a prototype version is stronger than ever and seemingly it is more possible than ever too. The lot work put into different core aspects of the game engine under the hood, it is beginning to bring its first fruits on the UI part too as it is dragging the interface design too with its substance layn down already. Day by day we are getting nearer to a coherent game logic concept and creating/designing/programming the UI for the player's party gives a lot boost to the planning of it. So I'm trying to keep the documents up to date, game logic and architecture google docs received a bit more of input nowadays too.

I'm really happy to tell you that the different encounter phases (Interception, Encounter and Turn Act phases) have gotten a complete set of "first version" prototype windows in the game. Input fields are filled up now, so you can try out with SVN version how an encounter will look in jcrpg. So we are heading with full steam towards the first real combat / social rivalry situation ever in the history of this project... :-)

As much as time leaves will be put into the game till the first anniversary day (this 31 may), and a birthday release will be rolled out! Keep up reading, commenting and such and don't forget: you can still be the first one to donate some bucks here! ;-)

P.S.: I've forgotten to mention that we are in great need for 3D mythic monster models. This will help a lot to get close to the end of the roadmap for version 0.1 of jcrpg which road is currently tread upon.

Tuesday, 20 May 2008

netbeans 6.1 project settings added to SVN

While experimenting with netbeans 6.1 java IDE I've set up jcrpg project to work with it. I've committed the results into SVN. You can checkout and use/compile/run it easily in netbeans.

Sunday, 18 May 2008

EntityFragments - multi-roaming EntityInstance parts

"An EntityInstance can be fragmented to roam in specific fragments around, and these fragments can rejoin the entityInstance." - for specific tasks and goals EntityInstances will split themselves up into fragments. A base fragment is created upon EntityInstance setup, then later the Instance can create other smaller fragments of the base fragment or unite two fragments. For example a town's fighter group instance can decide to go for a trip around waging war against the enemies of the town. This EntityFragment is very low on contained data, restricted to size and RoamingBoundaries plus a special followingEntityMembers list that contains those NPCs that decided to follow the fragment for a while.

This all will serve as a small physical memory consuming solution for different multi placed operations of an EntityInstance. All the related codes were refactored this afternoon in SVN. A huge step in defining the game logic concept of entities. (I've even removed subEntities list of the EntityInstance class, because no hierarchy will build up of entityInstances, it would be an unnecessarily detailed Entity granulation! Instead EntityInstances consist only of small information containg fragments, and EntityInstances can join alliances or higher level integration groups coded in specific purposeful classes). More such concept definition will follow I'm sure.

Like EntityRelations, it has already been added to EntityInstance class, serving as relation quality storage for inter-entityInstance relations.

Saturday, 17 May 2008

Districts' integration: 'Town', new Grown Infrastructure

Population instances are to be considered fix sized blocks called district of a Town object. Now integration of neighbor districts to one Town is made possible. Also different population owner groups can name their town and district upon settlement. We'll just need a better world map that shows town names to make it funnier later. :)

I've implemented a new AbstractInfrastructure extension called GrownInfrastructure. In this one things are grown together from block to block flowing in random direction inside a Population. It looks better than just shuffled DefaultInfrastructure.

Friday, 16 May 2008

New term: Economic Update Turn

Walking around and around the problem of economic updating after trying different approaches in theory the final method has been born. It's called Economic Update Turn. It happens every X turns (let's say it will be happening daily in a stable version), and if a given population zone's inhabitant number has changed so much (or such an update-triggering event occurres) it recalculates a whole population infrastructure regenerating the population's physical form. (Different size levels are generated in a way that the structure of the previous size feels consistent with the new town structure.) Dynamic districts like in a "building your city" strategy game. The population's structure calculus is depending on extension of the class AbstractInfrastructure. The "reconstruction" turn means a total reload of the player 3D surroundings, a little tool icon showing that there's an economy update turn going on. Upon finishing, the player's position is recalculated to make sure that the player is still on the surface of the world. :) (This and the structure calculus algorithm will need further design, but the current svn will do as a first version.)

Little news is that external steps are also added to the economic grounds (e.g. street). Next turn a bit of EntityInstance relation coding comes.

Sunday, 11 May 2008

New animals in the fauna - models by wciow

A nice pack of models made by wciow at was added to the fauna of jcrpg. Thanks to wciow for allowing free use of it for the people. The Deer, the Heron and the Wolf was picked out of the models. The fauna of jcrpg is strengthening well! :) (On a side note, I've decided to replace old wolf model by theotherhiveking because the old one does not have a good texture, I hope someone will create one for it later although)

While adding them to the code I've fixed some minor bugs. Pre encounter window was not reset after the encounter (causing a crash to desktop on new encounter with less groups) and removed the unnecessary use of audio-system when audio is configured switched off in (which was a bug especially using a Linux where audio device can be busy and you couldn't start jcrpg although you switched audio off). So I'm a bit back in the business. I plan to catch up with the population thing with fresh ideas I've gathered during my coding-free period. :)

Saturday, 10 May 2008

jMonkeyEngine at JavaOne 2008 - and a bit of jcrpg too

JMonkeyEngine's great staff has again visited JavaOne conference in 2008 too. They've created several interesting videos. One of them showing different projects using jME. I'm happy that jcrpg was given the possibility to show itself in some of the demo video's scenes! You can check the video with some jcrpg here. :) It includes several other projects demo video cut into one, so it's worthy to check out what the awesome jME is capable of! Thank you jME!
PS.: Here's the javablog post about the day jME was presented (scroll down to jMonkeyEngine part if interested, jcrpg is linked too although as "the Java Role Playing Framework" which is not correct :) ).

Friday, 9 May 2008

MediaWiki wiki fired up on

With the recommendation and help of Charlie (@freegamer) I've tuned up a MediaWiki on sourceforge site for jcrpg. It's very basic yet, but I'm planning on adding content later on. This will be the main site of jcrpg information later. Here's the link.

Thursday, 8 May 2008

A little rest for a while

I can confirm that OpenJDK 6 is working properly with jcrpg after testing it under Ubuntu 8. I've put development to a little rest for an undecided time. Hopefully I'll get interested again in a few days or weeks. Maybe it's the nice weather and a bit of a period for incubation that's needed. :-D