[X] The "/OldFiles" file could not be found or is not available. Please select another file.

By utilizing XML as a base, Life RPG aims to make it easier for individuals with little or no coding experience to be able to write their own role-playing adventures!


http://liferpg.sourceforge.net





Separate each tag with a space.

Release Date:

2009-01-07

Topic:

Operating System:

License:

Translations:

Intended Audience:

User Interface:

Database Environment:

Programming Language:

Registered:

2008-07-25

Ratings and Reviews

Be the first to post a text review of Life RPG. Rate and review a project by clicking thumbs up or thumbs down in the right column.

Project Feed

  • Semester Standoff

    UPDATED ------- Sorry, the first link was broken in the original post, its fixed now. ------- ... and so ends my first winter break as a graduate student. For my own sanity, I'm putting this project on hold for the duration of the semester (much as I had last semester). I may get bits and pieces together here and there, but I will by FAR not be doing as much work as I had been the last 2 months until mid-late May. For a more structured update, I am at what I am considering alpha 5.5, or so. I've gotten a handful of work completed, but not as much as I'd like for a full alpha release. I've got the code to a point where it will compile and I have generated some API that I'm going to put on my website (noted below) for any interested parties. I will put this current code online, but mainly as a backup, in the event the computer I'm doing most of this work on, decides to up and die in the next few months (I'm not expecting it, but you can never be too safe with these things). Anywho, 5.5 will be up but incomplete (I'm not going to change version strings to 5.5 or really provide access to it as a release, but it'll be there none the less. As usual, if anyone has any questions, comments, suggestions, offerings, intimidating threats or personal insults, feel free to contact me by any and all means possible (including the 'Contact Me' form on my webpage (the main page, of which, is also noted below) API-> http://cyberneticpitstop.zapto.org/Database/DevolvedAPI/ Main Page (contact me is in the 'about me' page, look at the links in the top-left)-> http://cyberneticpitstop.zapto.org/

    posted by alienjon 346 days ago

  • January times is fun times!

    Devolved 0.5 alpha is officially up and reachable via the downloads page. It should compile just fine and contains (as all the previous versions did) some test files to get it running and see the features currently implemented. I want this to be a quick update, but two things I wanted to note. Firstly, my next semester starts at the end of January (the 26th) and I'm hoping to get 0.6 alpha released by then. I'm well underway towards adding additional code and cleaning up what mess I've already done so this may be a realistic goal. Secondly, I've made a sincere effort to document my work as best as I can. I have a doxygen API for the code I have written and I plan on posting this somewhere before next semester begins for me as well. I may use this as my sourceforge 'homepage' or I may put it up on my personal website, I haven't decided yet. Either way, its something else for anyone else out there who wants to look at what I've been doing and how I've been doing it without having to download any code.

    posted by alienjon 365 days ago

  • File released: /Devolved/Devolved 0.5 alpha/Devolved_Alpha-0.5.tar

    posted 365 days ago

  • Devolved Devolved 0.5 alpha file released: Devolved_Alpha-0.5.tar

    //////////////////////////////////////////////// // This is the full list of changes between // // game versions with the most recent on top. // //////////////////////////////////////////////// ///////////////////////////////////////////////////////////// // Note: I plan on all versions being 'Alpha' quality until version 1.0. // // After 1.0, the next few versions will be beta // denoted with a 'beta' tag - 1.0beta) until enough // bugs are sorted out. ////////////////////////////////////////////////////////////////// ///////////////////// // 0.5 - 12/27/08 // // Alpha 5 release // ///////////////////// Code Cleanup Cleaned up all of the code to make sure that declarations are in the header and definitions are in the source. Did a quick look-through to see what memory I can clear at item deletion. All XML tags and attributes and some other const char* were added as global const char* for easy access. Finally had my epiphany in regards to dealing with screen loading. A loaded screen now is saved and loaded at the beginning of the next frame. This will prevent any segfaulting from trying to read from a screen that was deleted in logic(). Items Removed PlotItems as I realized that they would be unnecessary considering PlotTriggers can target any item. Item prototypes are now their own files and are defined specifically in the adventure file. The prototype contains all information for that specific item. The item manager can now create new items from prototypes. Calling 'createItem' will create a new item. createItemContainer will create a new item container. Usable items were created. A usable item is an item that can be used to perform a set of actions (such as increase hp, fill mp, etc...) Usable items perform actions, which (as described below - in fighting) is not yet implemented in this release Basically, this means that you cannot use items yet. Plot Stuff Removed much of the code from the Plot class in favor of putting it in an interface for access by other children. Created a MapEvent class (a sibling to Plot) which inherits from TriggerEventSystem. MapEvents are just like regular Plot Triggers and Events except they are checked for in every call of logic(). In other words, they are not removed when a trigger is tripped. Added a LoadMapEvent which adds the player to the provided map, at the provided point facing a provided direction. "Fixed" the WinGameEvent and LoseGameEvent. Fixed GiveItemEvent. This event takes a creature, the name of the item to give, the name of it's prototype and the type of item. Creatures Creatures can now be set to wander with wander="true" Creatures can now be set to be hostile towards the player with hostile="true" Removed the moving methods from Sprite and added them to Creature. Only creatures are allowed to move. Creatures are now defined entirely within their own element in the adventure file. Placing a creature in a map now simply means placing a <creature name="" x="" y="" /> element within the specified map. The name is the creature's name who you want to place in the map. The X and Y define the grid point on the map the creature should be placed. Note that you still can tell a creature certain things in the map. Calling hostile="true" means the creature will fight the player if they interact. Calling wander="true" means the creature will wander. Creatures now know if they are in a fight and can tell you the fight they are in. getFightScreen() returns null, if the creature is not in a fight, or the screen the fight is taking place in. setFightScreen() sets the current fight (but should likely only be called by the FightScreen Maps Each map now owns it's own MapEvent object to check for Triggers that are constantly present. IE: A MoveToTrigger tied to a LoadMapEvent so that when the player enters a certain area, they will move to a new area. Story Enhanced the story just a bit (moved NPCs around and in separate maps, added a MapEvent to move the player to and from each map..) BugFixes Fixed a bug where pressing the action key without a Sprite in front of it would cause the player to try and start a random convo. This was because Creature::getFacingObject() tell the map to retrieve the object in the correct area. This method now looks 1 pixel in each direction for the interaction. Development Moved project from KDevelop IDE to Eclipse IDE so that project maintenance over several computers and OS's should be more fluid. Restructured files. Files are now grouped based on function (GUI objects are in one folder, Engine objects in another, etc...) Fighting Implemented the basics for fighting. If the player's creature interacts with another creature whom is hostile, a fight will begin. A fight screen handles a fight. Creatures are displayed based on their team or 'party' The fight continues until one party is either completely dead or has run away. A fight is turn/initiative based, in that creatures take turns based on whomever's initiative reaches 100% first A creature can use the weapon they are carrying to attack. Weapon's have styles. A style is a single type of attack a weapon can perform (Described in the adventure's xml file) Utilization of a style will produce a game-developer defined set of actions. Actions are equal to Events (in the Trigger/Event system). As such, I decided to not implement actions in this release so that I could later focus on expanding this 'action idea' What this means is that if you have a weapon equipped on the main character, you can see the styles, but they don't do anything. Creatures can also use usable items in battle. A usable item is an item that can be used to perform an action. As actions are not yet implemented, using a usable item will have no effect. If a creature has a shield, it can try to block any attacks aimed towards it until it reaches its next round. Blocking produces a high defense value until the next turn begins. If a creature has no shield but has a weapon equipped, it can try to parry (using the weapon) to block any attack. Parrying produces a moderate defense value until the next turn begins. If a creature has no shield and no weapon equipped, it can try to dodge any attacks aimed at it until the next round. Dodging produses a low defense value until the next turn begins. Creatures can also try to run away. Right now a creature can always run away. In the future, their odds of running away will be based on external and internal factors. ///////////////////// // 0.4 - 08/19/08 // // Alpha 4 release // ///////////////////// Guichan Guichan version upgrade. Guichan 0.8.1 is now required to compile and run the executable binary. When compiling, add "-Wl,--rpath -Wl,LIBDIR" as a linker flag, where LIBDIR is the directory of the guichan lib. Rectangles Rectangles were removed in favor of the basic Guichan rectangles. With the reimplementation of collision detection, the need for custom rectangles is not obsolete. Logger The logger's user-set 'log output level' will now display messages appropriate for that level. If the logger's level is set to DEBUG_HIGH, only error messages will be shown. If the logger's level is set to DEBUG_MODERATE, both error and warning messages will be shown. If the logger's level is set to DEBUG_LOW, error, warning and informational messages will be shown. In addition, there is a DEBUG_NONE level which is used solely to output information (name, version info, etc..) to the logger. Cleaned up the logger output so it is now a bit easier to read. Map Manager Reviewed the map generation code and made it MUCH faster. (It now takes ~3 seconds to load a map where it used to be ~10) Collision detection was re-implemented. It had broken during creation of the Plot stuff and needed a revamping anyway. There are now 2 different types of collisions: Collision with the environment and collision with other sprites. Doing this reimplementation fixed a bug where NPCs could walk through the player even if the player couldn't do the same. checkCollision() now takes a BasicSprite as a parameter instead of the rectangle. This should make more sense as a sprite will be passing through and not just it's mass, so to speak. LoadingScreen creation The loading screen displays a background, a progress bar and text for what is currently being loaded. The object works completely independently from Guichan and the rest of the game loop. When progress() is called, it will update the screen with what is being loaded. The bar will also be updated with the determined percentage. GameScreen The mouse cursor is now only shown if a menu is open. If an item is being held by the mouse, you can now drop the item on the ground (right in front of wherever the player is facing) If the item will be placed in a colliding object, it won't be dropped. If a weapon is wielded (placed in an equipable item (weapon/armor/helmet/shield) is wielded, the stats will immediately refresh) Hovering over an item in the player stats list now explains how that stat is generated. Items The grid lines in the item container widget can now be toggled on and off. If a container is interacted with, it will display itself in it's own window in the Game Screen. This 'GameScreenContainerWidget' is an ItemContainer's display of itself and is therefore a member of that class. Items may also now be added to containers via the adventure file. Creatures Creature movement is cleaned up a bit. Creatures now move an entire cell (instead of just a few steps) Creatures can also now run, as well as walk (just a difference in movement rate) There is a bug with this (a Guichan code problem, I think) To have the character 'run', the shift key must be pressed. But if the player is 'running' and release the shift key, the player is still running. Instead, release of the shift key should toggle so that the player now walks even if the directional key is pressed Item equipping actually equips. Now, if an sword, armor or shield is 'wielded' (placed in its container in the PlayerMenu) its attack/defense value is used Conversation handling has been simplified (see 'Conversations' below) Development Story Lost Necklace was created for development. Plot System Developed A plot system was created which consists of plot nodes. Each plot node consists of a trigger and an event. A plot trigger is something that can trip to cause an event. They are: moved into, spoken, grabbed and death. moved into: Triggers when a specified creature steps into a certain cell area. spoken: Triggers when a specified creatures speaks a specific statement in a provided conversation. grabbed: Triggers when the specified creature picks up (grabs) a specified item. death: Triggers when a specified creature dies. interated (unimplemented right now): Triggers when the specified creature interacts with another specified sprite. A plot event is something happens. They are: move to, wander, lose item, add xp, add level, set conversation, give message. move to: Moves a specified creature to a specified point. wander: Makes a specified creature wander (cannot tell player to wander). give item (unimplemented): Gives an item to the player. lose item: Forces a creature to lose an item. add xp: Gives XP to a specified creature. add level: Gives 1 level to a specified creature. set conversation: Has a creature speak a certain conversation. Set to _RANDOM_ to have a creature speak a random convo. message: Displays a message for the player. win game (unimplemented): The player has won the game. lose game (unimplemented): The player has lost the game. Both triggers and events can be null (trigger_null and event_null). A null trigger runs the tied event immediately. A null event means that the player must hit the trigger before moving on the next trigger for an event to run. You can look at the "Lost Necklace" plot for an example of some events and tied triggers. (although not all of them) The exact attribute tag names and their required values are: trigger_moved_into: creature, x, y, width, height trigger_spoken: creature, conversation, statement trigger_grabbed: creature, item trigger_death: creature event_move_to: creature, x, y event_wander: creature event_lose_item: creature, item event_add_xp: creature, xp event_add_level: creature event_set_conversation: creature, conversation event_message: message Conversations Conversation management has been simplified. Creatures no longer hold a list of all the conversations they can speak in 'event' and 'random' collections. Creatures now just have a single collection of conversations which are the ones listed between the tags in the adventure file. Just use setConversation(string) to set the current conversation to the conversation with the provided string. Set string to "_RANDOM_" for the creature to randomly speak a conversation from their collection. Setting string to another value will find that conversation from the conversation manager. ///////////////////// // 0.3 - 07/28/08 // // Alpha 3 release // ///////////////////// Sprite development Sprites now include the 'interact' method which requires all implementing classes to inherit. Interact is a way for a creature to utilize the sprite. NPC sprite movement has begun to be implemented. Sprites can now be asked to wander(). When wandering, a sprite will randomly move in a cardinal direction or pause for a bit. A framework for movements along a pre-determined path is in place. By adding points to this path, the creature follows from one point to the next. Creature development Creature objects have been expanded and now include most basic functions. Creatures can now be interacted with and will independently handle what happens during each interaction. Item development Items can now be interacted with and will independently handle what happens during each interaction. The item class has been expanded to include special items for plot, weapons, armor, helmets, shields and containers. Weapons are items which can be wielded and cause damage. Armor, helmets and shields are items which can be wielded and protect the wielder. Containers are items which hold other items except other containers. ItemContainerWidget created A new Item/Widget hybrid (the ItemContainerWidget) connects to a single container and displays the contents of the container. ///////////////////// // 0.2 - 04/07/08 // // Alpha 2 release // ///////////////////// A preliminary error-handling system has been implemented. If a problem with very specific game aspects is encountered, a simple message will be displayed to the console. An in-game options menu is now available (even if it is pretty empty) Pressing 'Escape' while playing will open up the options menu. The options menu currently will allow the player to resume playing or return to the main menu. Dummy options are also available but some things are just plain blank for now. A label at the bottom of the options menu provides information for the current menu selection. Loading of creatures was almost completely redone and minor tweaks to adventure loading, item creation and sprites were performed. A message is displayed to the console for everything that has been loaded from the adventure. Creature prototypes were (re)implemented to generate the creature's information before the creature is actually created. This allows a creature's statistics, animations, etc... to be edited/modified before the creature is created. This will be most helpful for 'dynamic' creature creation (mainly that of the player) Game-sprites are no longer part of the gui system (they had originally inherited from gcn::Widget) I realized that while this made sense in terms of efficiency (most parts of a widget will be properties of any game sprite) the game sprites should be separate. A more accurate FPS algorithm was implemented The new algorithm, while it really cannot be utilized by other members of the engine, is more accurate. The program Tiled is now used to generate maps from tilesets. With only small changes (and a few restrictions) Tiled can allow an individual to easily create a map. To create a map via Tiled, do the following after map creation: Create a copy of the tiled file and name it {MAPNAME}.xml Open up the XML file with a text editor and make the following changes. Remove all <data> and </data> nodes. Rename all <tile> and </tile> nodes to <cell> and </cell>. A larger game map was created for testing purposes. The new map allows for more area to explore. The map also has a 10 tile 'buffer' around the walkable part of the map where the player cannot go (this should probably by 20) This 'buffer' hides the background for the sake of only allowing the player to see the map. Conversations with creatures is now fully implemented. By referencing which conversations a creature can have with the player on a per-map basis, the player can now talk with others. A conversation box will slide on screen to show the text of a conversation and an image of the person currently speaking. Pressing the action key will progress through the conversation. A conversation has the following structure: Answer - The NPC speaks to the player. Option - The player presses the UP or DOWN button to highlight, and then the action key to select, a type of response. Types of responses are in the conversation file and essentially say how the player will react, not what is said. Response - This shows the player's actual response (the PC now sees what they actually said based on what they selected) A pause method was implemented in GameScreen It is now possible to pause all character animation by calling GameScreen::Pause() When an event system is implemented, it must also be paused from progressing while the game is paused. GameScreen::Pause() is a toggle method, so calling it a second time will resume gameplay. ///////////////////// // 0.1 - 03/06/08 // // Initial release // ///////////////////// XercesParser class should be complete (albeit any bugs) This parser loads a file (is provided a filename) and allows information to be loaded from that XML file. Data can be stored in the DOMNode system The file can be saved (overwriting the initial file, but replacing everything with (hopefully) strict XML) Implementation and integration of Guichan into the game. The game engine was integrated with Guichan so that key/mouse input is easier and so that widgets are a basic part of the game. Main Menu system MOSTLY implemented Start && Load, load the testing adventure - 'Life of JR' Options allow you to change audio/visual (audio has not been tested yet, but there really aren't any sounds yet anyway) Credits show the credits to be attributed to the game. Quit quits. When Start or Load is seleted from the Main Menu, the testing adventure loads. While playing, the character can move around and interact with items and other creatures by pressing the ACTION button (SPACE by default) Animations and tilesets are implemented for animated sprites and locations to be drawn. Location/tileset/item/creature/collision managers have been created which manage their respective types. (Read up on how locations, items, creatures, tilesets and adventures are loaded (for development) in the readme.txt file) A location reads from a location xml file and loads different cells and knows which ones are passable and which ones are not. A tileset is a collection of images which locations utilize to render various cells. Items and creatures have prototypes generated from respective XML files. I'm not sure if this is how collisions are professionally done in a situation such as this, but (at least initially) it seemed to make sense to create a manager to handle all collisions. Basically, whenever a sprite (an object within the game world) is created, it is either added to the collision manager (and cannot be passed through (not passable)) or is not added to the collision manager and can be passed through (passable).

    posted 365 days ago

  • Source API

    I thought the documentation section would allow for API information, but I was wrong in that guess. While I probably could upload it there I'm instead uploading the API to my personal website (for now, at least). This based on source in the pre alpha-0.5 release (so it isn't at a full '0.5' release quite yet) Anyway, I wanted to get it online so others could look at it more easily. You can look at the code here: http://cyberneticpitstop.zapto.org/Database/DevolvedAPI/ Lastly - on an unrelated topic - I've been rethinking the naming scheme for this project. While part of my original idea was to create an 'RPG' of ones life (I'm thinking I can have some fun setting it up so that a 'fight' is really an argument between 2 people and instead of having health decrease, you would lose esteem) I am now thinking of completely separating this idea from the main project. This is indicative of an idea of mine that, as most ideas, may or may not come to fruition pending on time, assistance, and interest. Basically I'm going to rename the project (news on this as it develops) and separate any content to a separate site - I'm thinking Neverwinter Nights style 'Vault' for people to upload/share sprites/stories/tilesets/etc... Again, more info as this develops.

    posted by alienjon 384 days ago

  • Pre Alpha 0.5

    My apologies that I have not gone through the sourceforge site much to give more detailed information, but as I'm currently a grad student my updates (and work on this project) are on an 'if I have a few moments to spare' basis. Anyway, the last code I've put up is for alpha 0.3. There actually was a 0.4 but it was at a point that I was working on code so fast that I forgot to package it up before going onto 0.5. Needless to say I'll hopefully have 0.5 up within the next few weeks or so. I'll try to update this as best as I can but, as I already said, life's been busy for me. Questions/comments/suggestions/insults: please feel free to e-mail me :-)

    posted by alienjon 385 days ago

  • File released: /Life RPG 0.1 Alpha/0.1 Alpha/life_rpg-0.1alpha-x86.tar.bz2

    posted 527 days ago

  • File released: /Life RPG 0.1 Alpha/0.1 Alpha/life_rpg-0.1alpha-amd64.tar.bz2

    posted 527 days ago

  • File released: /Life RPG 0.3 Alpha/0.3 Alpha/life_rpg-0.3alpha-src.tar.gz

    posted 527 days ago

  • File released: /Life RPG 0.2 Alpha/0.2 Alpha/life_rpg-0.2alpha-x86.tar.gz

    posted 527 days ago

Rate and Review

Be the first person to add a text review.

Would you recommend this project?






<

Related Projects

Life RPG Actions

Thanks for your rating!

Would you also like to write a review?





Skip Review

Thanks for your review!

Get credit for your review by logging in via OpenID. Click your account provider:

No Thanks