When posting the last post I kind of promissed myself to come up with posts more often. And well, we all see how that went... Now it has gone three months, and I haven't said a word during that time.
So, what has happened since then? Have I done anything useful at all in terms of programming?
The answer is yes.
Some new objects including spikes, side-ways fans, crushers and timers. There is also a selection performed with the selection tool.
First of all, I have done some important work with the Editor. Since the Editor was completed last time I spoke to you, my focus has partly been on making it more
user friendly. I have, for instance made it possible to select objects using numpad (instead of needing to open the selection menu each time) and close menus with escape/enter.
I have also, which is shown in the above screenshot, added a selection tool which enables the user to copy and cut areas of their levels and paste them elsewhere.
The main part of my focus has been on improving the experience in the actual game. Since all the major features has been added, and the list of bugs is so short, I have
focused quite some on adding new objects as well as updating those I already had. For example, updates to the enemies includes new textures (thanks again to Doppler), different attacks (no more instant deaths),
and that they will attack friendly NPCs (known as C'wbiau) as well as the Player.
Another important improvement is that it is now possible to save the game in order to return later. This is accomplished through the usage of checkpoints, and a technique known as "serialization". (To make a complicated story
short, you can say that it saves the RAM-memory used by the game to the hard drive, so it can be loaded at a later date.)
This save system will, however, not be applied at all times. I have decided to divide the levels into to cathegories, campaign and user levels. The campaign levels will be stored within the .jar-file, and it is on these levels
that saving does work. The user levels will be stored in a folder outside the .jar and will be dynamically accessed from a level within the game.
As a final revelation on this topic, I can announce that I have started to add in sounds and music into the game (along with the option to turn these off).
So far I have to different background musics, of which one is a placeholder. When creating a level with the Editor the level's default music can be selected, but it is also possible to change the music
in-game through "Music Triggers". Triggers are invisible objects which completes an action when the Player passes them.
In terms of game sounds I have added sound for things like teleportations, jumping, fall damage, being hit by enemies and shooting fireballs.
That's it for now, I believe. Let's hope I can get some levels together soon so I can upload the latest version of the game.
Of course, if there is anyone out there who is interested in making some levels for the fun of it, or just to help me with the development, please PM me and I will provide you
with the Editor and Game in no time at all.
-== Overall ==-
• Changed the format of the data in level files.
• Made it possible to change the volume in the sound player.
• Added sound panning to the sound player.
Bugs and Performance:
• Cleaned the code somewhat.
• The encryption didn't work properly (e.g. It couldn't read levels with spaces in their names).
-== In the Game ==-
• Added Glass-tiles.
• Added one new enemy (textures by Doppler).
• Added a new collectible.
• Added saving and loading (checkpoint-based).
• Added one new NPC.
• Added "decorative grass" (which is placed ontop of tiles).
• Added three new buttons, for changing window mode, if sounds should be available and window size (800x600 or 1024x768).
• Changed the textures on the NPCs to be colour coded (e.g. yellow = healer, green = mother/father)
• Divided the levels into two sections, campaign and user levels. Saving only affects campaign.
• Changed the texture of Bammers, Blobs and the C'wbiau (friendly npcs) (textures by Doppler).
• Changed the explosion colours of the C'wbiau.
• Enemies will now attack other C'wbiau than the Player as well.
• Changed the probability that fires are extinguished (from 4/10000 to 3/10000).
• The Player, all enemies and all npcs can now "walk" over objects which are 1-2px high (no more jumping to get onto buttons).
• Added sound for jumps, fall damage, teleportation, fireballs, etc.
• Added 2 songs, one peaceful and one more scary. The peaceful one is defenitely a placeholder.
• Added score.
• Added 2 collectibles giving score.
• Enemies will now drop "Dark Matter" when they die (one of the collectibles mentioned on the previous row).
• Added armour (each point of armour blocks one hit from an enemy or an explosion).
• Added deadly spikes (and deadly thorns). (What a classic this one is...)
• Added "bouncers".
• Added "crushers".
• Added timers, triggers
• Added side-ways fans.
Bugs and Performance:
• Fixed a problem with flickering screen and game crashes when running fullscreen.
• Walking into a teleporter would sometimes lock the Player's speed, causing it to move even if no keys were pressed.
• Fans were not drawn in their proper places.
• NPCs could jump through tiles.
• Healers could overheal NPCs.
• Buttons didn't work at all. (It is possible I made some change a while back which affected them somehow)
• Slight changes in the collision system.
• Fixed a bug in the collision system which caused the game to freeze.
• Bug fixed collision with objects with an uneven width or height.
• If no "settings button" had been touched, the log-file was spammed each time the game was started.
• Fixed a movement bug which allowed you to stop moving mid-air.
-== In the Editor ==-
• The default settings will now be saved.
• Made it possible to select objects by typing on the num pad.
• The help menu will now automatically open up when you start the Editor, unless you check "Don't open on start" on the Main tab.
• Added the possibility to "lock" levels (a second copy is saved which cannot be opened in the editor). Until the level encryption is fixed this is function does not really do anything as it is easy to go past this system.
• Updated the buttons' tooltips.
• Made it possible to close all the Editor's menus with Esc (except the ones which are used to set up signs, etc).
• Moved collectibles to a separate tool/menu.
• Added a setting for window size. You can choose from 4 4:3 sizes, and 2 16:9 sizes.
• Added the possibility to set default music for levels (which is played when they are loaded).
• Added a "trigger"-object which changes the currently playing music when the Player passes it.
• Added a "trigger"-object to activate doors and the like when the Player passes it.
• Added a "timer"-object which loops at a specific time interval and activates/deactivates the objects it's linked to.
• Removed the mouse cursor from the drawing area.
• Added a selection tool making it possible to copy, cut and paste parts of a level (or the entire level :P).
• Updated the Help Menu.
Bugs and Performance:
• The Tile Selector menu did not display the ID of the objects correctly.
• Fixed a bug in the level saving.
• One of the tools would not place/remove objects properly.
• Levels wider or taller than 99 tiles could not be loaded properly.
• The Object Selector menu was positioned so only half of it was inside the screen.