CajunGaijiin
RPG Making Novice
Little Mary Sunshine dead of drug overdose-more at 11....
Posts: 50
|
Post by CajunGaijiin on Mar 27, 2008 1:05:48 GMT -5
Hey-weird problem here. I seem to have run out of space in my game, but not on my memory card. The game is taking up 2.7 megs. It's not allowing me to add anything to my events,scripts etc-it says I have zero memory left, even though the main file claims I have 5.5 megs left on the card. The system browser agrees with that assessment, also showing 5.5 megs free. I'm very confused, and worried. I had been led to believe that I could use all 8 megs on my game. This puts me at a standstill, can anyone shed some light on this revoltin' development?
|
|
|
Post by The Final Rune on Mar 27, 2008 1:46:00 GMT -5
[white]The game file never exceeds 2.7Mb. RPGM2 allocates all the space it needs right away to prevent a 'not enough memory' to save error from occurring. The actual memory limitation on games is limited to the number of memory units displayed in the counter on the interface. This number should be more than sufficient for most games if you started in hard mode (both the normal and beginners mode load up a lot of preset data that eats into your total memory units).
The only way to free up more memory is to delete data from the game. Or, you could make the game on multiple files.[/white]
|
|
|
Post by Dungeon Warden on Mar 27, 2008 10:39:10 GMT -5
Never start on Hard unless you're making your game completely from scratch. Normal has everything you need to create a game and little else. Easy, however, had a lot of stuff you don't need unless you what to make a game quickly by throwing a bunch of pre-made stuff together. Actually, beginner has a lot of cool stuff (mainly maps and buildings) that's worth looking at.
On normal, you should have more then enough memory to make a game. If you're running out of space it must be because you're making a lot of VFX which eat away at memory pretty quickly.
Each area of the game also has it own memory limits, which is why the counter showing the available memory in game changes depending on what you're doing.
Get rid of any VFX you're not using and simplify any VFX you created. Don't use snapshots, as you only have enough memory for 3 or 4 of them. Combine several images together if you can, but it's better not to use them at all.
I hope these tips help. Good luck with your game.
|
|
|
Post by Doan the Nado on Mar 28, 2008 1:38:22 GMT -5
More suggestions include going through the items, objects, maps, characters, and enemies and deleting any you're not using. You can always create new items and objects again if you decide you need something. You can also carefully consider the scripts and events and get rid of ones you're not using, but make sure that they definitely aren't being used. When you try to empty the Trash, it will tell you where each piece is being used. If you can trace the dependencies and you aren't using anything you come across, it can all be safely removed.
Some other memory saving tips include changing long series of conditionals to script branches. Once you have 3 or more options, the SB is much more memory effective. That is, instead of
Condition var = 1 ... Condition End Condition var = 2 ... Condition End Condition var = 3 ... Condition End
You can change it to:
Script Branch - Variable: var Apply If +1 ... To End Apply If +2 ... To End Apply If +3 ... Script Branch End
Another tip is to use Call Script as much as possible. For example, it costs 42 memory just to set a variable, while it only costs 4 to call a script. If you find yourself setting a given variable to the same value in several places, you can actually save memory by creating one script:
Script - Set Variable Foo to 2: Var Foo = 2 + 0
Then anytime you need to set that variable, call the script. Again, I believe the savings kick in when you have to set the same variable three or more times.
|
|
CajunGaijiin
RPG Making Novice
Little Mary Sunshine dead of drug overdose-more at 11....
Posts: 50
|
Post by CajunGaijiin on Apr 2, 2008 10:22:27 GMT -5
Thanks as always guys. I do have a lot of premade VFX I'm not using-I've kept them mainly as a tutorial on what can be done with 'em. My biggest problem may be that I started the game on easy. Since this was my first rpg2 game, I didn't have confidence in my abilities on harder levels. I switched to hard before the first week was up, but now I'm really not 100% certain what can be safely deleted. I'm especially wary of monkeying around with the system data, since I'm using the default battle system(modified). I guess it's the pack rat in me-I'm afraid I might need some of this stuff later. Oh well-time to start cuttin' like NASA. Thanks again-Peace.
|
|
|
Post by Dungeon Warden on Apr 2, 2008 13:29:37 GMT -5
If you started on Easy there will be a lot of maps and buildings you can remove if you're not using them. There are also a lot of preset VFX you could get rid of; however, most of the VFX are being used by the Default spells, so you need to be careful not to remove a VFX being used by a spell you're using.
I wouldn't touch any of the scripts unless you know you're not using them (there are a few scripts in the 250-300 range that are just characters talking that you could remove). Most of the unimportant scripts don't take up much memory so it wouldn't make much different if you removed them anyway.
|
|
|
Post by Doan the Nado on Apr 3, 2008 23:20:00 GMT -5
Also note that, like I said, that every object has been created in the Object Database (or whatever it's called). Feel free to remove any that you're not using.
|
|
raithwall
RPGM2 Helper
The World I know
Posts: 222
|
Post by raithwall on May 6, 2008 6:50:11 GMT -5
Hi, I would refer you to the "Conserving Memory" topic I made on the Creative Development forum.
I guarantee it will help you up a massive amount of memory, especially if you've been following the terrible examples of the preset data.
|
|
raithwall
RPGM2 Helper
The World I know
Posts: 222
|
Post by raithwall on May 6, 2008 6:53:00 GMT -5
For your convenience: and just ask if you need more specific help settings them up. I was going to make a memory conservation faq someday...
General Rules of memory efficient design:
Rule 1: always sort database numbers Rule 2: Use "Target" instead of specific whenever possible. Rule 3: Use sort instead of condition where possible Rule 4: Use direct variable calculations instead of Sort. Rule 5: Use as few events as possible. Rule 6: Use script conditions instead of event pages. Rule 7: Use Teleport and Escape auto coordinates for towns Rule 8: Sort a single Warp script by X, Y, Z coordinates. Rule 9: Sort general warp events by world number. Rule 10: Use a single Enter Map script, sorting world number.
Direct Effects: Make 3 directing events: weapons, abilities, enemy. Sort ability number, direct effect, or weapon property. Check Hp/Mp, Consume Hp/MP, make them into one script by checking ability type, magic or skill. Don't make a direct effect for every spell, make about 5 or 6 single target, and 5 or 6 multi target with different rates. A few healing, a few status.
Visual Effects: Dysect your visual effects into many 1 element effects. You can always combine them together in a directing script. When several effects have a red firework, you can delete them as you only need 1 red firework. This also increases the variety of possible screen effects you can make. leave enemy effects alone.
Enemy Level Up: You can have enemies get stronger as you level, thus reusing them, and limit them from time to time with a max monster level variable. Use the enemies battle variables as stats and set them in a custom indirect effect that multiplies them based on the players levels. Then set up a repeat branch after battle to repeatedly give xp and money up until level.
Villagers: You only need about 10 villager events that are reused in every single town. Setup a random model script, and a random conversation script. Put the party in a step script that increases and resets a variable. Have this variable determine the number of times the random model script is repeated. This is necessary because the game will choose the exact same random calculations every time.
Rumors and Text Strings: use item and ability descriptions that the player really doesn't need, such as enemy ability, generic items, etc.
Treasure: You only need about 10 different chest events, depending on how many chests you want to have at once in a single room. Sort the world number, and room number, and make a flag for each treasure. Now set the item variable to the item you want to give. You can give many random treasures with a single variable command...... At the end of the script make a merchant list with a bogus item called take treasure. Save the item number with a temp variable, then make the item number = the temp variable after the display buy list in a new merchant script. This will cause the buy item action to buy whatever item was setup with item variable. Make sure the buy list is set to 0 buy price and 0 sell price. Also use the who list so the player can decide where to put the item.
Dungeon Editor: Try not to use the dungeon editor for much. Make a room called blank dungeon, and customize it with object placement.
Building Editor: make walls and all sorts of blocks here and build your dungeons with object placement instead of the dungeon editor. This way you don't keep paying for the same blocks over and over again. Buildings can also be events, and removed with scripts making the same dungeon even more reusable.
Traits: Try not to use them. Random behavior is more efficient.
Unit Placement: Only make 1 or 2 unit placements. 1 For World, and another for Dungeon. When you need a dungeon to have a very specific set of enemies, have the enter battle teleport you to where your standing, and make your own random battle script with event battles upon entering the map. You will need several flags, but this method is far more efficient then placing battle events on every other square. Random battles won't trigger from a characters per step indirect effect script, so don't waste your time trying it.
Shave your Scripts: Delete scripts you don't need, remove the notes from preset scripts, shave off some of the error messages that only get in the way, such as xxxx gave item to zzzz.
Sound: Use map music and battle music instead of setting each song in the enter world script.
Unique Enemy Ability: Use the enemy battle input as a name for a unique ability. This ability (called battle input) should be a normal attack which sometimes applies a random status. Its the same ability but each enemy can have a different name for it.
Enemy Actions: Try to avoid having too many of these. Make more of these when you absolutely must have a different color scheme of enemy. Othetwise just make more enemies that reuse them.
Classes: If you want exclusive classes work with party members normal variables. Make 3 or 4 different class trainers and sort your classes with battle classes (offensive skills) support classes, magic classes, etc. So that each member can have one of each type. Then repeat the change class script until the chosen class number = that characters normal variable. There are other ways of doing this efficiently. Whatever you do, dont make bogus classes to serve as class paths for exclusive classes. Classes are memory intensive and bogus classes are unprofessional and clutter up the status screen.
Images: Don't use them... just don't. They take up insane amounts of memory. If you really must have one, then have only one.
Scripts: make call scripts for things you do frequency in many other scripts, such as random variables, names, etc. That way you can use them as much as you need without paying memory every time.
|
|
|
Post by sledgehammur on May 7, 2008 0:29:53 GMT -5
I recall a tecnique you could use with the maxdrive where you could continue a game on a different file, then continue everything exactly as it was left, but I only read about it. It sounds like it would work though.
|
|
CajunGaijiin
RPG Making Novice
Little Mary Sunshine dead of drug overdose-more at 11....
Posts: 50
|
Post by CajunGaijiin on Jul 22, 2008 14:49:08 GMT -5
Raithwall; There is some GREAT advice in that answer-thanks a lot!
|
|