Yeah, I've got most of the stuff I was talking about yesterday in place, except fixing that one minor bug in the Journal. Sound is in, thanks to Soundsnap and pdsounds, offering free sound samples to use, and OpenAL providing the library!
Anyway, about the sound system:
And, regarding Journal:
Here's the build: adv2_20080425_1.zip
Here's the required Sound Pack, which I'm not going to update as often since it's big: sound_20080425_1.zip
Here's the OpenAL Driver pack if you don't already have a game that installed it for you already: oalinst.ex
Anyway, about the sound system:
- I scrapped the part with the list of samples- now it just registers by filename in the various places it's called
- It keeps any buffer it creates, unless it is cleared (which it does upon entering a new area, and such). it basically acts as a caching system.
- It uses the first sound source (of which there is a limited number.. 20) it can find that's useful. If it can't find anything it fails
- BG is a special source, although it counts towards the 20. If you try to play a new background music it'll stop the old one first.
- I still need to add a timing feature for sound so that they can be properly timed (like special effects)
- monsters and items can have their own 'hit' sounds.
- Skills can have sounds, played at any part as part of the command list
- Area scripting also allows the music to change and for sounds to play (and looping sound samples is also supported here, as well as stopping all sound)
- I don't have the code to play sounds in the subscreen done yet (such as when using healing items)
- the title screen music, miss sound effect, and victory theme are all coded in defines for now, since they're system-wide and not dependant on anything in the content.
And, regarding Journal:
- It loads a big string, splits it by line, figures out wrapping and allows scrolling using the keyboard (although that's not all properly done yet)
- There's a file to define which ones are available, and it uses it's position in the file to determine the order
- The code to 'award' things such as when talking to someone or getting journal pages is not yet in place
Here's the build: adv2_20080425_1.zip
Here's the required Sound Pack, which I'm not going to update as often since it's big: sound_20080425_1.zip
Here's the OpenAL Driver pack if you don't already have a game that installed it for you already: oalinst.ex
I haven't posted a new build in a while, but unlike the other times that doesn't mean i haven't been working on it. I've been working on a few sub-systems which aren't yet ready to show:
- The Journal screen.
I had to find a wrap-supporting code snippet that I could modify into a "scrolling text" thing, which I've largely done. It still has some problems with eating the character immediately after a carriage return, but that should be relatively easy to fix. - Sound support using OpenAL
This is a big thing, since it ties into everything.. I'm still getting my head around the way the "buffers" and "sources" work. I've got it playing some test sounds, but I haven't finished building the Manager which will:- Load a text file containing all the relevant samples
- Load them into a buffer when they're called, using the loading code I already have (which supports pack files)
- Put them into one of X sources when they need to be played
- Remove them from the source when playing is complete, so I can 'juggle' the limited number of sources I have.
What? It's been months upon months, but I've actually gotten some progress done on the game. Isn't that ridiculous?
( Yes, it is.. )
To lead off right now I'd like to make an announcement. The game is, and always has been ADVENTURERS 2. The full name of the game is- ADVENTURERS!! II: The Cursed Mask and the Sword of Reality
What, you want to see the logo? As a wallpaper? Well, if You insist..
Some facts: The three characters currently in game are products of the canonical couples from ADV! - Protagonist is Karn and Lumi's son, Dashijiru is Drecker and Karashi's son, and Justica is the offspring of Tesla and Ardam.
The build this time, I built a few days ago but never got around to posting it. New features are listed below.
DOWNLOAD BUILD
I've got a report that the game can crash when you click an item in the item menu, neither they nor me were able to reproduce this bug, but if you see it, let me know.
What, you want to see the logo? As a wallpaper? Well, if You insist..
Some facts: The three characters currently in game are products of the canonical couples from ADV! - Protagonist is Karn and Lumi's son, Dashijiru is Drecker and Karashi's son, and Justica is the offspring of Tesla and Ardam.
The build this time, I built a few days ago but never got around to posting it. New features are listed below.
DOWNLOAD BUILD
- Title screen (with menu)
- You can now use potions at all from the menu screens
- Ditto spells
- Learning spells is implemented (try levelling protagonist up and seeing the spells in the menu)
- There's a few random bug fixes
I've got a report that the game can crash when you click an item in the item menu, neither they nor me were able to reproduce this bug, but if you see it, let me know.
Today's a great day, if yo like menus
DIAL M FOR MENU! FEETURES:
- Fixed a combat bug with status effects after a character dies
- Added the menus! Press M when walking around
- The item menu shows you the list of items, you can't use them yet
- Quit quits the game (removed the ability to do so from the menu)
- Party lets you switch party members.. double click or hit enter/space on one, and then on another. Use the "nobodies" to create a smaller party.
- Back to return to the game
- The party lists show up for equip and skills but you cant do anything here yet
Upcoming:
- Make more of the menus actually do things
- Replace the menus in the combat with these ones (since they work with both mouse and keyboard)
Known bugs:
- Base 1 won't stay in the party. This is because he's not technically "in" the party but it wasn't checking it. Fixed in my local copy
Here's the new build.
There's actually TWO builds since the last one (apparently livejournal failed to post the last one), so you might as well just read the list:
New features (20070718)
New Features: (20070721)
Known bugs:
There's actually TWO builds since the last one (apparently livejournal failed to post the last one), so you might as well just read the list:
New features (20070718)
- Equipment can now have triggered skills, such as on-attack or on-damage or some such. I've added one to Dashijiru's weapon, a 50% chance of gaining some mp back after his turn.
- Skills can be set to resist (Poison has a small chance of it) based on arbitrary stats
- Skills can have a chance to not fire (see the above 'mp regen" ability.)
- Status Effects, are handled pretty much identically to weapons (and for now are defined in the weapon file)
- I added a walking up animation for Protagonist on the map
- Skills can now be set to either target dead or not target dead- I added a life spell to Dashijiru if you want to test it by killing off a party member
- Added particle effect support (the actual particle engine is built into HGE) - see the healing skill and poison for examples
- Skills can now modify stats, since I handle dead as a stat (instead of a status effect) that's how the revive skill works
- in-combat-only stat modifiers can be done using statname_temp, and until nex turn can be statname_turn
- Changed the directory structure to be easier to manage
- Changed the fonts a bit to actually fit all the skills that need to be fit
- Apparently the latest version of HGE had this all along: press alt-enter to play in full screen
New Features: (20070721)
- Added the title screen handler, and removed the HGE logo in debug mode (when compiling in Release mode, it still shows up)
- Added the beginnings of the camp screen: hit M when walking around
- Added per-hit effects per weapons. Supports both particles and sprites. For the character that throws their weapons, it'll be used for that animation effect too.
- Cleaned up losing code (try it out)
- Added the ability to have a skill cast a second skill as an all target, for targeting all monsters. Try Rays of Lights for an example (it's also a good way to test losing)
- Started making my own Gui controls (using the hgeGUIObject base class) - the first one is the menu items in the menu (notice the pointing finger)
- Cleaned up some of the drawing-special-effect-location-code to use sprite centers instead of the hotspots which are used for sprite positioning
- Put in support for absorbing (cast fire on SlimeLeader) or resistance (he has a high holy resistance, too) and Weakness to elements, properly. A defense stat over 255 starts to absorb.
- Some stuff I dont have tests in for yet.
- Preliminary Unfinished saving code that's currently inaccessable.
Known bugs:
- Status effect.. effectiveness (say poison damage) currently cant be based on the caster's skill, so poison always does 15 damage.
- Sometimes the menu highlights too many items.
I added running and defending. Both of them were very easy to add. Other stuff too, it's really shaping up.
Download build
Feature adds:
Download build
Feature adds:
- Fixed the bug with SlimeA
- Added sprite/weapon for third main character - Dashijiru, the emo white mage
- Shuffled the skills around to more match the character data sheet I wrote
- Added a few skills, including one with a new effect
- Changed the fonts
- Added critical hits - it uses a random number compared with the agility of you and the target to determine if it hits. Basically it compares a random based on your agi, with the opponent agi to the power of two. Crits do double damage, and show up bigger.
- Added misses, with a similar calculation as above. But it doesn't have a power two, so a miss will happen about 50% of the time given equal agility.
- Added a heal spell. Compare Protagonist (mag=2) with Dashijiru (mag=10 +3 for weapon)
- Added the ability to run away. It's based on your entire party's agility, and the agility of the entire monster party. It's rand * agi vs rand * agi * 10
- Added the ability to defend. Any reducable-damage hit is reduced by half until next turn.
- Actually I should talk about damage reduction, since I coded that without really putting any in a few versions ago. Damage has an element. it can be "phys" for physical, "magic" for generic magic, "[phys]fire" and such for fire physical, "fire" for fire magical, "other" for irreducable. Phys is reduced by DEF, magic by MDEF, physical fire by def and fire resistance, fire magic by mdef and fire resistance, and other is never reduced. Healing is not subject to these rules, but MP Damage is. It's vaugely a percentage based system- as your def goes up to 255, you reduce up to 99.9% or so. Damage cannot be reduced to zero. I haven't put in absorbing yet.
- known bug: the fire sword attack is fire magic instead of fire physical, and the animation isn't timed properly for Ray of Light.
First off, here's the file so you can follow along.
I put in the inventory code. At least some of it. Max item stuff isn't coded, but otherwise it works. Basically, an item is attached to a skill, and it runs the skill as if it were casted when you use the item
I put in the inventory code. At least some of it. Max item stuff isn't coded, but otherwise it works. Basically, an item is attached to a skill, and it runs the skill as if it were casted when you use the item
- Added inventory
- Added ability to heal hp/mp
- Added targeting-ally abilities.
- I'm going to change the way target-all abilities work so I've removed the menu option for it.
- Added item use code
- Added menu items for run and defend, but they don't do anything yet
Download new build
I've added a bunch of stuff, here's the rundown:
I think next.. either the Inventory system, or begin work n the Camp screen.
I've added a bunch of stuff, here's the rundown:
- Added a sprite/definition for the 2nd main character: Justica
- Added the Weapon sprite attachment code. Basically, every frame has a point with a rotation where to draw the weapon, which is drawn seperately allowing a huge number of weapon sprites!
- Added the ItemManager and InventoryItem classes, and the beginnings of the equipment system. The default.sav gives each character a weapon, and items.itm defines the actual items.
- There's no inventory yet, but when you gain items it uses the full name from the string file instead of the ID.
- The victory screens are now in place. Try fighting a few times to gain a level to see how that shows up. I lowered the EXP for the fight, btw.
I think next.. either the Inventory system, or begin work n the Camp screen.
New build. I'll let the bullets do the talking..
next up, should be weapon sprites. ( EDIT: Added some videos )
- Replaced the textbox graphic
- Added stats staying outside of battle, and levelling. The level stat gain is defined in the party file at the bottom. I also made the 2nd NPC heal you if you talk to him.
- Added interface graphics in combat
- Added a real headshot of Protagonist.
- Fixed the intermittant second battle crashing issue, I hope.
next up, should be weapon sprites. ( EDIT: Added some videos )
Some major things, this time. I've finally got most of the "test" values out to files, so now the characters, skills, skill lists, abilities, and everything are loaded from files. Even the party is!
Download Build
Download Build
- party.pty loads teh default for each character's stats and stuff.
- Skills are listed as the level they have to be to use it, and negative if they dont 'know it' yet but can learn it.
- default.sav is a save file- this updates what's been lodaed from party.pty, as well as other information. Essentially, starting a new game is the same as loading a 'default save', so that's how i'm going to handle it.
- the main character, Protagonist, now has a preliminary combat sprite.
- Bugs involving going into combat a 2nd time are now fixed.
- The new Party Manager (party.pty) keeps track of all the characters, so you can add another character to it, and it'll be loaded, but not in the party (since that's chosen from the save file)
- Next i'm going to make sure to have the stats go back to the party manager after combat, as well as having levels. There's placeholder code in there for these things already
- I also added some extra friendly things: A line at top which says things like the skills being used, as well as using string tables instead of showing iDs all over the place.
- I made the combat text area at the bottom smaller
Some more skill/skill effect features today.
I need to eventually get the drawing weapons code in, but that's going to be totally murder....
Download now
I need to eventually get the drawing weapons code in, but that's going to be totally murder....
- moving the sprite is now possible in a skill. I've given the slimes an ability that does this
- Monsters can now be given skill lists which let them randomly pick the skill they use
- effect sprites and moves have two new locations to work from: target_above (or self_above) which is the top of the screen above the target, and target/self_default which is where they are supposed to stand.
Download now
I recently bought a Server ($150 for a 4-drive p3 xeon box) and finally can start posting these again.
Click here to download build 20070610_1945
This version, the main features added are 1) one thing I forget that I added months ago but never actually uploaded
2) Spell effects.
Basically, a skill can now have effects added to it.
Try the Doublefire, Firesword, and Fire1 abilities to see three examples of using the same animated sprite.
Click here to download build 20070610_1945
This version, the main features added are 1) one thing I forget that I added months ago but never actually uploaded
2) Spell effects.
Basically, a skill can now have effects added to it.
- Only sprite animations are supported now. Eventually particle, and 'beam' sprites will be available as well.
- You can animate based on time, and positions. EG: Fireball from caster to target, or a series of flames in different locations on the target
- A sprite is given the amount of time it'll animate, AND another time number- this is how long it will take to start. It accomplishes this by adding the numbers together, and then not doing any drawing/animating until the value is in the 'regular' time. Eg: 1000 250, counts down from 1250, and starts animating at 1000.
Try the Doublefire, Firesword, and Fire1 abilities to see three examples of using the same animated sprite.
Just a few minor things, changelog is later, I just want to explain one of the changes now:
I've implemented the begining of the runtime menu system (before, the menus were completely hard-coded). Granted, the actual menus are still hard coded, but they are hard coded outside of the thing that actually manages the menus- all I have to do is make the skill manager and party managers to be fully in there.
I haven't quite decided how I want to do in-battle menus, but right now they aren't going to actually support scrolling. I'd want scrolling later, but right now, using what I have, I can have an as many submenus as I want- so I can have "Magic" and then "Level 1"/"Level 2"/"Level 3" and then "Fire" "Water" etc. If one list needs more, I can just put a "More" link at the bottom of the list.
Changes:
BUILD
Next build should be skill system preliminaries
I've implemented the begining of the runtime menu system (before, the menus were completely hard-coded). Granted, the actual menus are still hard coded, but they are hard coded outside of the thing that actually manages the menus- all I have to do is make the skill manager and party managers to be fully in there.
I haven't quite decided how I want to do in-battle menus, but right now they aren't going to actually support scrolling. I'd want scrolling later, but right now, using what I have, I can have an as many submenus as I want- so I can have "Magic" and then "Level 1"/"Level 2"/"Level 3" and then "Fire" "Water" etc. If one list needs more, I can just put a "More" link at the bottom of the list.
Changes:
- Fixed that bug from yesterday
- Protagonist animations for left, right, and standing. THis means the character transforms when moving up and down, but that's just because I dont have animations done yet.
- Increased size of drawing sprites by 25% as a test
- Runtime menu system (test it out by selecting 'skills')
BUILD
Next build should be skill system preliminaries
New battle systemmy build.
Next features should be the menu manager and skill managers. After that a party/inventory management system, and equipment maybe? Equipment in battle is going to be hard, but I think I have some ideas for it.
Anyway, here's the build info:
BUILD DOWNLOAD
Next features should be the menu manager and skill managers. After that a party/inventory management system, and equipment maybe? Equipment in battle is going to be hard, but I think I have some ideas for it.
Anyway, here's the build info:
- Damage calculation using stats (including defence)
- Two player characters
- Damage counters
- Rudamentary menus
- EffectManager (used just for damage counters right now) -will be used for graphical effects and stuff
- Pick targets by clicking Fight and then the monster name.
- Your turn is up when the player name goes white.
BUILD DOWNLOAD
Today's build is very special.
You see, the first bits of the combat system are in and playable!
A lot is missing, but here's what you need to know
You see, the first bits of the combat system are in and playable!
A lot is missing, but here's what you need to know
- talk to the lower guy
- (btw use ctrl to run on main screen)
- press 1, 2, and 3 on keyboard to hit the three slimes (slimea, slimeb, and slimeleader)
- the only attack that anyone has is 10 damage.
- it's just stick figures.
Still nothing to show, but I've got SOME combat stuff done. Right now, it loads the combat data files, and can display monster and player sprites on screen, as well as I have the ATB count system in place. There's, as of yet, no skills or abilities or attacking, or AI, but soon I'll be able to start putting that part of the code in.
I was asked some questions (woo) so I'm going to answer them here for everybody to see:
1. How exactly do you structure the elements you implement in games? Of course you first go with basic elements such as a sprite walking on a map, and eventually doing stuff, but how do you organize your priority on, say, mechanical and storyline elements? Do you flesh out a combat system first, or develop a spellcasting system that also includes out-of-combat effects?
Answer: You really have to prioritize mechanical elements, but having an idea of what the storyline requires helps figure out what your requirements are. I try to make my engines as generic as possible for the genre, though. There's no atomic "plot twist" class, plot and storyline just come from text and animation, and the engine as I'm developing it could be used to make a completely different RPG in terms of tone and story.
As for combat, the best thing to do is design your combat system first, then design a SKILL system that works into it, but is also flexible enough to work outside of combat (for healing and such).
But yeah, the important thing is that 99% of the time, there's no such thing as a 'storyline element' on the coding side of a video game, just ways to -display it-.
2.Speaking about combat...in general, what do you work on more: The capabilities of the heroes or the monsters?
Is it easier to implement monster abilities once you've coded hero abilities, or vice versa?
The trick is to make them mostly the same. Fire1 on a party member and Fire1 on a monster should pull from the same data tables and use the same stuff.
3.When will the next version of your game come out?
When there's a playable combat system.
4.What should we be able to expect of it?
A playable combat system. It might just be stick figures but it'll work.
5. Do you have a generic story/plot already done for that game, and/or are you open to suggestions or other ideas?
I have stuff in mind but I may completely change it.
6.Can/will you implement certain mechanical elements such as...
-a stealing system?
Stealing isn't so hard, a monster just needs a steal table and you add whatever is in the table to your party's inventory
-a way to summon (temporary) allies?
There will be summons, I dont know if there's going to be 'ally' summons a la FFX/FF12, but summon spells for sure will exist.
-a way to access nifty secret features or neat tricks such as ardam's reverse summon->"Summon Pantheon"?
Secrets will be done, but I don't know if there will be specific battle tricks like that or not.
1. How exactly do you structure the elements you implement in games? Of course you first go with basic elements such as a sprite walking on a map, and eventually doing stuff, but how do you organize your priority on, say, mechanical and storyline elements? Do you flesh out a combat system first, or develop a spellcasting system that also includes out-of-combat effects?
Answer: You really have to prioritize mechanical elements, but having an idea of what the storyline requires helps figure out what your requirements are. I try to make my engines as generic as possible for the genre, though. There's no atomic "plot twist" class, plot and storyline just come from text and animation, and the engine as I'm developing it could be used to make a completely different RPG in terms of tone and story.
As for combat, the best thing to do is design your combat system first, then design a SKILL system that works into it, but is also flexible enough to work outside of combat (for healing and such).
But yeah, the important thing is that 99% of the time, there's no such thing as a 'storyline element' on the coding side of a video game, just ways to -display it-.
2.Speaking about combat...in general, what do you work on more: The capabilities of the heroes or the monsters?
Is it easier to implement monster abilities once you've coded hero abilities, or vice versa?
The trick is to make them mostly the same. Fire1 on a party member and Fire1 on a monster should pull from the same data tables and use the same stuff.
3.When will the next version of your game come out?
When there's a playable combat system.
4.What should we be able to expect of it?
A playable combat system. It might just be stick figures but it'll work.
5. Do you have a generic story/plot already done for that game, and/or are you open to suggestions or other ideas?
I have stuff in mind but I may completely change it.
6.Can/will you implement certain mechanical elements such as...
-a stealing system?
Stealing isn't so hard, a monster just needs a steal table and you add whatever is in the table to your party's inventory
-a way to summon (temporary) allies?
There will be summons, I dont know if there's going to be 'ally' summons a la FFX/FF12, but summon spells for sure will exist.
-a way to access nifty secret features or neat tricks such as ardam's reverse summon->"Summon Pantheon"?
Secrets will be done, but I don't know if there will be specific battle tricks like that or not.
My goal with these game posts is this:
- To explore game design and development from beginning to end
- Educate people a little in my game development processes
- Provide an interesting thing to read
- Find out what people think of the project from point to point
- Help drive myself to continue by having others develop an interest
No build today. The only working things I've finished since the last build was a thing for putting in global flags ("i have taked to this guy", "this door has been opened already", "you've already saved the princess" etc.), simple branching based on it, and some re-organization of the code. What I worked on the most, though, was the framework for the Combat system.
Here's how it's going to go:
There's also a few things I need to come up with: a good damage curve based on the stats, for one thing. I used to have a decent one somewhere, maybe I can scrounge it up.
Here's how it's going to go:
- When a map is loaded, all possible monsters in that area and all possible encounters are loaded too
- Combat is triggered either through random battles (using Zones in the map) or through scripts.
- Any running script is stopped immediately
- The game switches entirely from the AreaManager to the CombatManager, and combat is set up
- An encounter can have as many monsters as you want, at any size
- A monster will only have four animation frames (but be large, sort of like old final fantasies)
- They can either be in the same file (if the monsters are going to be 256x256) or in seperate files (each 512x512, for huge bosses)
- no stats are hard-coded. This makes stat-modifying scripts a lot easier to handle
- When a skill or attack happens, first it puts it on a vector of combat events
- It iterates through. Each iteration:
- It puts the EFFECTS on a seperate vector which iterates through. This is stuff like displaying a damage counter or animating a fire effect over a character
- When done, it clears that vector
- It then checks if there's anything triggered by that event, in which case it adds to to the end
- When it's done, the turn is over.
- You select the skill and target
- Adds Resolve Spell to event list
- Runs event
- Resolve Spell resolves: there are three events, which are added to the end of the list
- IT runs the first event: Fire. Adds the following effects:
- Casting animation
- Fire animation
- Cause damage - fire type
- Damage counter
- Runs through the effect vector, and does it.
- Triggers on damage: Adds "Auto potion" to end of vector
- Does the same with Water, only without casting animation
- Adds a 2nd auto potion to end of vector
- Runs the Poison event, following effects:
- Poison animation
- Cause status effect - posion
- status effect poison counter
- Poison animation
- No trigger this time, since there's no damage to trigger.
- Performs two auto potions (which would be a potion animation and a healing effect)
- End of turn, clear event vector, check if anyone is dead
There's also a few things I need to come up with: a good damage curve based on the stats, for one thing. I used to have a decent one somewhere, maybe I can scrounge it up.
