ReleaseNotes:98.0: Difference between revisions

From Spring
Jump to navigationJump to search
Abma (talk | contribs)
No edit summary
Abma (talk | contribs)
No edit summary
Line 19: Line 19:




==notes for gamedevs==
 
 
 
===Buildprocess===
- fix freetype not found on windows / mingw
! add check for gcc >=4.6 at configure
- optional fontconfig support
! SDL2 dependency
 
===Misc===
- improve debug draw (alt+[b])
 
===Rendering===
- `DebugGL` configtag works now (cause of SDL2 switch)
 
===LuaDefs===
- the parser now checks the returned tables for NaNs & Infs and prints a warning if it finds some (they are sources of desyncs!)
 
===UnitDefs===
- add new "harvestStorage" unitdef tag, UnitHarvestStorageFull lua callin and Spring.GetUnitHarvestStorage(unitid) callout
  it's for engine assisted starcraft/c&c like feature harvesting (atm only metal is supported)
  NOTE: the unload command still needs to be implemented in lua (much less work than the reclaiming one)
 
===Lua===
- LuaRules & LuaGaia are now splitted into their synced & unsynced parts, and each one got its own luaState
  - this way unsynced parts of gadgets now get `synced` callins like 'UnitCreated' etc. w/o SendToUnsynced from their synced part
  - LuaRules & LuaGaia are now ~equal (except a very minor subset of differences) and get the same callins esp. all AllowXYZ callins
  - LuaUI now has a GotChatMsg too (same as LuaRules always had), it's similar to the now deprecated LuaUI-only ConfigCommand callin, but is called more often
  - fixed a lot bugs in Spring's c-lua code
  - use lua's original math.random() code and only use streflop for it in synced luaStates
  - always make math.randomseed() available (synced & unsynced)
  - in future this will also allow multithreading of the different luaStates
- fix Spring.Restart on windows
! new TextInput(utf8char) callin, needed cause of changed unicode handling in SDL2
- added Spring.SetUnitHarvestStorage(unitid, metal) & Spring.GetUnitHarvestStorage(unitid)
! prevent triggering of ATi driver bugs
  ! gl.LineWidth & gl.PointSize throw an error when called with incorrect argument (<=0)
  ! gl.Scissor & gl.CreateTexture throw an error on incorrect sizes, too
! fix gl.Viewport
- add missing colvol tags to Unit-/FeatureDefs:
  - .collisionVolume.type = {"ellipsoid" | "cylinder" | "box"}
  - .collisionVolume.scale{X|Y|Z}
  - .collisionVolume.offset{X|Y|Z}
  - .collisionVolume.boundingRadius
  - .collisionVolume.defaultToSphere
  - .collisionVolume.defaultToFootPrint
  - .collisionVolume.defaultToPieceTree
- add optional 4th argument to Spring.GetUnitSeperation to calc the distance between the unitsphere surfaces instead of their midpos
! fix wrong coords & crash in Spring.RemoveGrass
 
===LUS===
- SetUnitValue now accepts booleans, too
 
===Installer===
! disallow to install spring over existing installations / ask for uninstall first
- don't associate .sdf with spring.exe any more

Revision as of 22:55, 18 February 2014


New features

Visual profiling and grapher that shows how Spring spends time

green are video frames red are simframes blue is swapBuffer (gpu/vsync) pink is lua gc

You see that `Frame Grapher` which displays the last half second and its time slices:


UTF8-Support

spring 96.0 without utf8 support
spring 97.0 with utf8 support



Buildprocess

- fix freetype not found on windows / mingw
! add check for gcc >=4.6 at configure
- optional fontconfig support
! SDL2 dependency

Misc

- improve debug draw (alt+[b])

Rendering

- `DebugGL` configtag works now (cause of SDL2 switch)

LuaDefs

- the parser now checks the returned tables for NaNs & Infs and prints a warning if it finds some (they are sources of desyncs!)

UnitDefs

- add new "harvestStorage" unitdef tag, UnitHarvestStorageFull lua callin and Spring.GetUnitHarvestStorage(unitid) callout
  it's for engine assisted starcraft/c&c like feature harvesting (atm only metal is supported)
  NOTE: the unload command still needs to be implemented in lua (much less work than the reclaiming one)

Lua

- LuaRules & LuaGaia are now splitted into their synced & unsynced parts, and each one got its own luaState
 - this way unsynced parts of gadgets now get `synced` callins like 'UnitCreated' etc. w/o SendToUnsynced from their synced part
 - LuaRules & LuaGaia are now ~equal (except a very minor subset of differences) and get the same callins esp. all AllowXYZ callins
 - LuaUI now has a GotChatMsg too (same as LuaRules always had), it's similar to the now deprecated LuaUI-only ConfigCommand callin, but is called more often
 - fixed a lot bugs in Spring's c-lua code
 - use lua's original math.random() code and only use streflop for it in synced luaStates
 - always make math.randomseed() available (synced & unsynced)
 - in future this will also allow multithreading of the different luaStates
- fix Spring.Restart on windows
! new TextInput(utf8char) callin, needed cause of changed unicode handling in SDL2
- added Spring.SetUnitHarvestStorage(unitid, metal) & Spring.GetUnitHarvestStorage(unitid)
! prevent triggering of ATi driver bugs
 ! gl.LineWidth & gl.PointSize throw an error when called with incorrect argument (<=0)
 ! gl.Scissor & gl.CreateTexture throw an error on incorrect sizes, too
! fix gl.Viewport
- add missing colvol tags to Unit-/FeatureDefs:
 - .collisionVolume.type = {"ellipsoid" | "cylinder" | "box"}
 - .collisionVolume.scale{X|Y|Z}
 - .collisionVolume.offset{X|Y|Z}
 - .collisionVolume.boundingRadius
 - .collisionVolume.defaultToSphere
 - .collisionVolume.defaultToFootPrint
 - .collisionVolume.defaultToPieceTree
- add optional 4th argument to Spring.GetUnitSeperation to calc the distance between the unitsphere surfaces instead of their midpos
! fix wrong coords & crash in Spring.RemoveGrass

LUS

- SetUnitValue now accepts booleans, too

Installer

! disallow to install spring over existing installations / ask for uninstall first
- don't associate .sdf with spring.exe any more