Monthly Archives: September 2007

DSP on sf.net

DSP has finally arrived on SF.net! http://sourceforge.net/projects/dsp/
And its blog: http://dsp.sf.net
This means the source code is now available, etc etc etc.

I’ll get some documents up on the source layout and such things as I have time over the next week.

As I have said in the DSP News:

Its been a long wait but it was worth it!
The current release (1.1a) has been uploaded and the SVN repository has been imported.

I’ve decided on GPL v3 for the code, and licensed the existing art under a creative commons license (see readme.txt)

I am keen to have more levels hosted in the SVN, but only ones which are CC licensed.
Only levels included in the SVN will be in the official releases, but there will be a wiki page dedicated to level links.

The wiki pages will slowly show up over the next few days as I import them from various sources.

DSP Status

I’ve applied for a sourceforge site for DSP. It is a takeover from another project using ‘dsp’ as its name already, they haven’t used the project at all however, (it has been idle for 2 years,) so I shouldn’t have any trouble getting the name.
I’ve done some minor improvements since the last release including:
– Show splash/speed when > 0
– Show tower stats when maxed.
– Very minor rendering tweaks.

I’ve also been researching improving the framerate and trying various different techniques.
Currently DSP renders at 30fps on the PSP, dropping to 20 if you are on the ingame-menu when between waves (text rendering is slow by the looks).
I’ve tried converting the rendering engine from immediate mode to use vertices with glDrawArray, this gave no noticable FPS differences.
During this testing I discovered that certain textures of the same size render faster than others.
Looking into this further (including the pspgl source) It would appear to be that PSPGL doesn’t copy/move textures between GE-Memory and System-Memory, so if your texture ends up in system memory you get slower render speed and nothing you can do about it 🙁
Will need to do more research into this including a debug build of PSPGL to find out what is really happening, but that is my current thoughts.
It may be possible to fix this in PSPGL or alternatively switch to using GU for rendering on PSP instead, we will see.
Not something DSP needs as of yet since the framerate stays high even with huge waves with lots of towers firing at them, but something new, fun and interesting to work on at some stage 😉

I’ve also created a draft XML file for the next level format: http://localhost.geek.nz/dsp/level_draft_1.xml
This is a proposed replacement for the current level.txt.
Switching to XML for the file formats will give numerous advantages:
– Files become alot more self explanatory (no more, “what is line 5 again?”)
– Better backwards compatibility in the future.
– etc… >_>
Please give it a quick look over and offer any suggestions you may have (especially you Shazz!)

I will also switch enemy.txt / tower.txt to XML files, but haven’t drafted any up yet.

Another interesting thing I’m thinking about adding is the ability to run levels from within zip files, this will make for much faster copying of levels to your PSP.

Thats enough news for now.
danzel.

Update, will use this post for general ‘next gen’ XML file format discussion.
level.xml changes:
– Capitalize all attributes.
– Add ‘Radius’ to waypoints.
– Change “Name” attribute to “Folder”
– Change Path.flags to be seperate attributes (Boss, SaveTheHouse, UpgradePoint, all default to false)
– Add Enemy.Multiplier, makes old enemies new again! 😉
I’ve also added an enemy and tower draft, no big changes in there yet.
http://localhost.geek.nz/dsp/level_draft_2.xml
http://localhost.geek.nz/dsp/enemy_draft_2.xml
http://localhost.geek.nz/dsp/tower_draft_2.xml

Draft 3
Level:
– Add Level.LevelSprite (includes changeable Width, Height)
Enemy:
– Enemy has levels, the first one is used by default unless specified in Level.Waves.Wave.Enemy->Level (Which replaces Multiplier)
– Specify Sprites/Sounds in XML, allows different amounts of Frames for each.
– Add a “Leave Level” sound.
Tower:
– Add Capability (Hit Ground/Air, Slows), Replaces old tags
– Add Sprites (includes turret position)
– FireSprite (shown when shoots).

http://localhost.geek.nz/dsp/level_draft_3.xml
http://localhost.geek.nz/dsp/enemy_draft_3.xml
http://localhost.geek.nz/dsp/tower_draft_3.xml

Draft 4 (final)

Everything:
– UpgradePoint is now an integer everywhere.
Level:
– InterestLevel/Live can now cost upgrade points.
– Add StartSound to Wave.
– Add Win/Lose (With Sound and Sprite)
Enemy:
– Add Weakness (take more/less damage from certain towers)
Tower:
– Add PlacementSound
– Add SellAmount to Level
– Add Poison:Damage/Length to Level
– Move Capability.Slow to Level.SlowLength/SlowAmount
– Change <ShotType /> to <Shot />, has supporting attributes for shot animation etc.

http://localhost.geek.nz/dsp/level_draft_4.xml
http://localhost.geek.nz/dsp/enemy_draft_4.xml
http://localhost.geek.nz/dsp/tower_draft_4.xml

Still missing:
– Music, Special music for boss waves.
Smoke trail ShotType.

Missing but may not make it:
Add min range (to define a target reachable band instead of a target reachable disk)