About TOC -
o Current TODO list (in ASCII),
o Section 1, About Zaeden.
o Section 2, About CPEngine.

About Zaeden -
Zaeden is an idea for centering a game around RPG style conflicts with a little MMORPG flavor.
While the game itself is not an MMORPG, it is intended to be multiplayer and in future work over the Internet. Till that time, players will simply have to battle on the same PC.

In Zaeden, your avatar (which represents your party, consisting of one or more characters) roams around looking for fights. When you encounter a monster you can immediately tell how much of a threat it is. After a short period of time the monster will run after you. It's up to you whether or not your run. If you run, the monster will gradually slow down until it gives up and returns to its home. While running, it is possible to attract the attention of further monsters. In the event that one catches you, all of the monsters chasing you will slowly join the battle (as they arrive on the scene.)

Characters do not have "levels" in the usual sense. Instead, you level up your abilities in certain fields of magic. When you are awarded a new spell, it is determined based upon your abilities in the different types of magic. You can find (in the world) or gain (from battle) magic crystals that will help you attain new spells by increasing your abilities in a certain type of magic long enough to gain the new spell.

Battles are turn-based like in many popular RPGs (the Final Fantasy series, for example.) Before you can use a spell in battle you must bind it to your magic staff. Staves can only hold a certain number of spells, but rest assured you get better staves as you grow. The purpose is to limit your firepower, requiring you to strategize.

Depending on the number of monsters vanquished in a single battle and their difficulty you will be awarded items, such as crystals. There is a different kind of crystal for each kind of magic and certain monsters tend to drop crystals representing the magic they use most (for example, a dragon will more-than-likely drop fire crystals.) Each crystal has a potency (the number of levels it will optimally add to your level in X type of magic) and a quality (the percent of the potency that it actually adds.) Thusly, a fire crystal with a potency of 10 and a quality of 50% can add 5 levels to your fire skill.

Each time you use a spell, you gain points towards the types of magic the spell requires. When you gain a full level in 3 different types of magic, you'll get a new spell. Alternatively, you can utilize magic crystals. When you use the crystals, your arrange 4 of them in a row. The first one has full effect, the second has 3/4, the third has one half and so on. Thus if you arranged four crystals from earth, fire, wind and water, each with a potency of 12 and a quality of 100%, the earth crystal would boost your earth ability by 12, the fire would grant 9 levels, wind would give 6 levels to wind, et cetera. When you complete the arrangement, a new spell will be given to you based on your magic levels, plus the boosted levels from the crystals. The crystals will disappear during the transaction.

You can download or upload your character files for others to use in their parties. When you start the game, either in single player or multiplayer, you choose the characters to join your party. In single player, the more characters you have (and the stronger they are), the less you will get from a single battle. In multiplayer, you can disable the use of downloaded characters (to avoid easy cheating.)

About CPEngine -
The Commodore Pickle Engine (CPEngine or CPE for short) is designed to facilitate the creation of 2D games or other applications that would benefit from the advanced sprite and world systems. The engine consists of many independent modules. These modules include:

Unfortunately the majority of these systems have yet to be built. Right now the foundations for the world system are in place along with the 2-D Graphics core, background system and the input core. This allows for the developer to easily make sprite-based programs with a moveable camera and static objects on a tiling background. The input core allows for the response to keyboard input and the clicking of the X button to close the window. It also has in place the functions necessary to create a simple text input box.

In short, everything necessary to make an RPG video game is ready for use. The principle behind the engine all along has been its handiness and how easy the API will be to use. For instance, right now you could put 10 lines of code into a main() function and have a completed game ready to be played.

The 2-D core has a surface system to store SDL surfaces. All surfaces placed into the system are re-mapped to be in the same format as the screen (providing a speed optimization), with the option at load-time to preserve alpha attributes. This surface system allows for surfaces to be added by reference or loaded from the local hard drive. Also, the 2-D core has an invention called the "screen table", which decides what images (or parts thereof) need to be updated when an overlapping or nearby image changes. This system is configurable in size (how large the square cells of the table are) and dramatically increases performance of the render loop. On a GeForce 2 MX 32MB video card, framerates of 180FPS aren't difficult to achieve. And at full load, when everything is moving (and thus needs to be re-drawn), the framerate drops down to just under 80FPS.

The sprite system implemented in the 2-D core allows for 2 kinds of sprites to be created: world sprites and screen sprites. As their names might indicate, world sprites are positioned relative to an imaginary "world" and appear depending on an imaginary camera's viewpoint. The screen sprites are statically places onto the screen. This means that in a role playing game model, the world sprites would include characters and houses, and the screen sprites would maybe consist of a compass and dialog box for interacting with other entities.

The 2-D graphics background system is designed to make repeating backgrounds, relative to the world. So if you created a grass background and moved the camera around, the background would appear to "scroll by", looping into infinity.

All sprite objects (world, screen and yes, even backgrounds) have a Z-order value which determines what other objects they will appear ontop or under of. Screen sprites are always drawn ontop of world sprites. Backgrounds are considered to be world sprites and are drawn in the same render function, so backgrounds with higher Z values will appear ontop of world sprites with lower Z values, just like everything else.

To summarize, the engine is easy to use and is remarkably useful for 2-D video game creation. It is especially geared towards role playing games but can be readily adapted to other purposes.

Built using:
SDL logo CPE logo