Journeywar - Page 54

Journeywar

PicassoCT's stunning mixture of game design and psychedelia, for your enjoyment!

Moderators: Moderators, Content Developer

User avatar
Karl
Panzerstahl Developer
Posts: 746
Joined: 01 Apr 2010, 21:05

Re: Journeywar

Post by Karl »

nice soap pad you've got there
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: Journeywar

Post by PicassoCT »

@Karl: Cleanest mod of them all.

Can somebody tell me how to keep the org sky from popping back into existance, when i zoom in ?

I use zwzsgs skybox widget to draw the sky, and the holotable below..

Image

I had a neat idea today.. PlasmaFieldForces..
Image
its actually pretty simple.. you have microwave-lasers. Lots of them.. in two batterys.. and you 3d print very fast a form into the sky, and then you juice the resulting plasma figure with power crawling up another laser. Result? Magnetic Coil out of nowhere.. very neat idea if you for example want to print a coil beneath something coming along at high speed allready, which should reach altitude..

http://en.wikipedia.org/wiki/Mass_driver
Attachments
PlasmaFieldForces.jpg
PlasmaFieldForces.jpg (22.92 KiB) Viewed 2176 times
nativeSkz.jpg
(1.49 MiB) Downloaded 1 time
User avatar
Anarchid
Posts: 1384
Joined: 30 Nov 2008, 04:31

Re: Journeywar

Post by Anarchid »

skybox widget
Wait, do you mean you're actually replacing the sky? Oh god the horror!

(must use for some apocalyptic event though!)
User avatar
zwzsg
Kernel Panic Co-Developer
Posts: 7049
Joined: 16 Nov 2004, 13:08

Re: Journeywar

Post by zwzsg »

PicassoCT wrote:Can somebody tell me how to keep the org sky from popping back into existance, when i zoom in ?

I use zwzsg skybox widget to draw the sky, and the holotable below..
The OpenGL scene is sized to about a large map size. Or something like that, ask a dev. So if the Lua skybox is too big, part of it gets out of the volume where things are rendered. If the lua skybox is too small, then it goes through the terrain.

I couldn't manage to find a callin to draw things after the sky and before the terrain. Once I tried to disable engine terrain rendering and replace it by Lua, but it's not really practical: only minimap texture, not full size texture, is available to Lua. Not to mention perfomance issues. It led me to a nice retro-future widget though.
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: Journeywar

Post by PicassoCT »

Another day of bringing Journeywar to 97 - full of boring maintainenance.

First Thing:
Im trying to convert spring, to the lups directory and config structure that zero-k has. Zero-k is by now the driving factor of this engine, and the most shiny new toys clearly integrate better if you adapt to this structure.
Also its very clean, everything is seperated by concern and a lot less one-big-file-mess.

Second Thing:
Teamplatter and MapGrid VR interact in a rather poor fashion with each other. Meaning Teamplatter makes the VR-Grid flicker. I think it something with the DrawWorldPreUnit() calls beating each other..

Third Thing:
I even got sound now when in LuaIntro. Skinfantry needs dieing sound. Several yet to do buildings and units have been implemented as placeholders.
Testgames indicate that some units are redundant. Other are way to micro intensive.

Fourth Thing:
The Tutorial is not working anymore. Which is lousy because it is basically the most simple widget. Check the Unitdef of the selected unit. If type not tutored yet - set a marker near the unit.

Fifth Thing:
Im thinking about a new mini-mission. The idea is simple. Everyone has a spy in the enemy team. And he knows this spy ahead of time. Now the moment this guy extracts, everyone knows, so you got to help the guy to get out alive with the mc guffin. Could make for pretty intense gameplay.

Good night
User avatar
1v0ry_k1ng
Posts: 4656
Joined: 10 Mar 2006, 10:24

Re: Journeywar

Post by 1v0ry_k1ng »

this looks insane and awesome (and insane)!
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: Journeywar

Post by PicassoCT »

I will not use my thread as a picture source dump
I will not use my thread as a picture source dump
I will not use my thread as a picture source dump
I will not use my thread as a picture source dump
I will not use my thread as a picture source dump
I will not use my thread as a picture source dump
I will not use my thread as a picture source dump
I will not use my thread as a picture source dump

Image
Attachments
innerswirl.png
innerswirl.png (23.98 KiB) Viewed 2064 times
User avatar
zwzsg
Kernel Panic Co-Developer
Posts: 7049
Joined: 16 Nov 2004, 13:08

Re: Journeywar

Post by zwzsg »

PicassoCT wrote:Teamplatter and MapGrid VR interact in a rather poor fashion with each other. Meaning Teamplatter makes the VR-Grid flicker. I think it something with the DrawWorldPreUnit() calls beating each other..
I'd say it's more about z-fighting, and that a judicious of either gl.DepthMask/gl.DepthTest, or gl.PolygonOffset, would fix it.
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: Journeywar

Post by PicassoCT »

zwzsg wrote:
PicassoCT wrote:Teamplatter and MapGrid VR interact in a rather poor fashion with each other. Meaning Teamplatter makes the VR-Grid flicker. I think it something with the DrawWorldPreUnit() calls beating each other..
I'd say it's more about z-fighting, and that a judicious of either gl.DepthMask/gl.DepthTest, or gl.PolygonOffset, would fix it.
I dont understand, both sides are depth testing as far as i can tell.

Code: Select all

--related thread: http://springrts.com/phpbb/viewtopic.php?f=13&t=26732&start=22
function widget:GetInfo()
  return {
    name      = "External VR Grid",
    desc      = "VR grid around map",
    author    = "knorke, tweaked by KR",
    date      = "Sep 2011",
    license   = "PD",
    layer     = -3,
    enabled   = false,
    --detailsDefault = 3,
  }
end

if VFS.FileExists("nomapedgewidget.txt") then
	return
end

local DspLst = nil
--local updateFrequency = 120	-- unused
local gridTex = "LuaUI/images/vr_grid.png"
--local height = 0	-- how far above ground to draw

---magical speedups---
local math = math
local random = math.random
local spGetGroundHeight = Spring.GetGroundHeight
local glVertex = gl.Vertex
local glTexCoord = gl.TexCoord
local glColor = gl.Color
local glCreateList = gl.CreateList
local glTexRect = gl.TexRect
local spTraceScreenRay = Spring.TraceScreenRay
----------------------

local heights = {}
local island = false
local mapSizeX = Game.mapSizeX
local mapSizeZ = Game.mapSizeZ

--[[
local maxHillSize = 800/res
local maxPlateauSize = math.floor(maxHillSize*0.6)
local maxHeight = 300
local featureChance = 0.01
local noFeatureRange = 0
]]--

options_path = 'Settings/Graphics/Map/VR Grid'
options_order = {"mirrorHeightMap","drawForIslands","res","range","northSouthText"}
options = {
	mirrorHeightMap = {
		name = "Mirror heightmap",
		type = 'bool',
		value = true,
		desc = 'Mirrors heightmap on the grid',
		OnChange = function(self)
			gl.DeleteList(DspLst)
			widget:Initialize()
		end, 		
	},
	drawForIslands = {
		name = "Draw for islands",
		type = 'bool',
		value = Spring.GetConfigInt("ReflectiveWater", 0) ~= 4,
		desc = "Draws mirror grid when map is an island",		
	},	
	res = {
		name = "Tile size (64-512)",
		advanced = true,
		type = 'number',
		min = 64, 
		max = 512, 
		step = 64,
		value = 512,
		desc = 'Sets tile size (lower = more detail)\nStepsize is 64; recommend powers of 2',
		OnChange = function(self)
			gl.DeleteList(DspLst)
			widget:Initialize()
		end, 
	},
	range = {
		name = "Range (1024-8192)",
		advanced = true,
		type = 'number',
		min = 1024, 
		max = 8192, 
		step = 256,
		value = 3072,
		desc = 'How far outside the map to draw',
		OnChange = function(self)
			gl.DeleteList(DspLst)
			widget:Initialize()
		end, 
	},	
	northSouthText = {
		name = "North, East, South, & West text",
		type = 'bool',
		value = false,
		desc = 'Help you identify map direction under rotation by placing a "North/South/East/West" text on the map edges',
		OnChange = function(self)
			gl.DeleteList(DspLst)
			widget:Initialize()
		end, 		
	},	
}

-- for terrain randomization - kind of primitive
--[[
local terrainFuncs = {
	ridge = function(x, z, args)
			if args.height == 0 then return end
			for a=x-args.sizeX*res, x+args.sizeX*res,res do
				for b=z-args.sizeZ*res, z+args.sizeZ*res,res do
					local distFromCenterX = math.abs(a - x)/res
					local distFromCenterZ = math.abs(b - z)/res
					local heightMod = 0
					local excessDistX, excessDistZ = 0, 0
					if distFromCenterX > args.plateauSizeX then
						excessDistX = distFromCenterX - args.plateauSizeX
					end
					if distFromCenterZ > args.plateauSizeZ then
						excessDistZ = distFromCenterZ - args.plateauSizeZ
					end
					if excessDistX == 0 and excessDistZ == 0 then
						-- do nothing
					elseif excessDistX >= excessDistZ then
						heightMod = excessDistX/(args.sizeX - args.plateauSizeX)
					elseif excessDistX < excessDistZ then
						heightMod = excessDistZ/(args.sizeZ - args.plateauSizeZ)
					end
					
					if heights[a] and heights[a][b] then
						heights[a][b] = heights[a][b] + args.height * (1-heightMod)
					end
				end
			end
			--Spring.Echo(count)
		end,
	diamondHill = function(x, z, args) end,
	mesa = function(x, z, args) end,
}
]]--
local function GetGroundHeight(x, z)
	return heights[x] and heights[x][z] or spGetGroundHeight(x,z)
end

local function IsIsland()
	local sampleDist = 512
	for i=1,mapSizeX,sampleDist do
		-- top edge
		if GetGroundHeight(i, 0) > 0 then
			return false
		end
		-- bottom edge
		if GetGroundHeight(i, mapSizeZ) > 0 then
			return false
		end
	end
	for i=1,mapSizeZ,sampleDist do
		-- left edge
		if GetGroundHeight(0, i) > 0 then
			return false
		end
		-- right edge
		if GetGroundHeight(mapSizeX, i) > 0 then
			return false
		end	
	end
	return true
end

local function InitGroundHeights()
	local res = options.res.value or 128
	local range = (options.range.value or 8192)/res
	local TileMaxX = mapSizeX/res +1
	local TileMaxZ = mapSizeZ/res +1
	
	for x = (-range)*res,mapSizeX+range*res, res do
		heights[x] = {}
		for z = (-range)*res,mapSizeZ+range*res, res do
			local px, pz
			if options.mirrorHeightMap.value then
				if (x < 0 or x > mapSizeX) then	-- outside X map bounds; mirror true heightmap
					local xAbs = math.abs(x)
					local xFrac = (mapSizeX ~= xAbs) and x%(mapSizeX) or mapSizeX
					local xFlip = -1^math.floor(x/mapSizeX)
					if xFlip == -1 then
						px = mapSizeX - xFrac
					else
						px = xFrac
					end
				end
				if (z < 0 or z > mapSizeZ) then	-- outside Z map bounds; mirror true heightmap
					local zAbs = math.abs(z)
					local zFrac = (mapSizeZ ~= zAbs) and z%(mapSizeZ) or mapSizeZ
					local zFlip = -1^math.floor(z/mapSizeZ)
					if zFlip == -1 then
						pz = mapSizeZ - zFrac
					else
						pz = zFrac
					end				
				end
			end
			heights[x][z] = GetGroundHeight(px or x, pz or z)	-- 20, 0
		end
	end
	
	--apply noise
	--[[
	for x=-range*res, (TileMaxX+range)*res,res do
		for z=-range*res, (TileMaxZ+range)*res,res do
			if (x > 0 and z > 0) then Spring.Echo(x, z) end
			if not (x + noFeatureRange > 0 and z + noFeatureRange > 0 and x - noFeatureRange < TileMaxX and z - noFeatureRange < TileMaxZ) and featureChance>math.random() then
				local args = {
					sizeX = math.random(1, maxHillSize),
					sizeZ = math.random(1, maxHillSize),
					plateauSizeX = math.random(1, maxPlateauSize),
					plateauSizeZ = math.random(1, maxPlateauSize),
					height = math.random(-maxHeight, maxHeight),
				}
				terrainFuncs.ridge(x,z,args)
			end
		end
	end	
	
	-- for testing
	local args = {
		sizeX = maxHillSize,
		sizeZ = maxHillSize,
		plateauSizeX = maxPlateauSize,
		plateauSizeZ = maxPlateauSize,
		height = maxHeight,
	}
	terrainFuncs.ridge(-600,-600,args)	
	]]--
end

--[[
function widget:GameFrame(n)
	if n % updateFrequency == 0 then
		DspList = nil
	end
end
]]--

local function TextOutside()
	if (options.northSouthText.value) then
		local mapSizeX = mapSizeX
		local mapSizeZ = mapSizeZ
		local average = (GetGroundHeight(mapSizeX/2,0) + GetGroundHeight(0,mapSizeZ/2) + GetGroundHeight(mapSizeX/2,mapSizeZ) +GetGroundHeight(mapSizeX,mapSizeZ/2))/4

		gl.Rotate(-90,1,0,0)
		gl.Translate (0,0,average)		
		gl.Text("North", mapSizeX/2, 200, 200, "co")
		
		gl.Rotate(-90,0,0,1)
		gl.Text("East", mapSizeZ/2, mapSizeX+200, 200, "co")
		
		gl.Rotate(-90,0,0,1)	
		gl.Text("South", -mapSizeX/2, mapSizeZ +200, 200, "co")
		
		gl.Rotate(-90,0,0,1)
		gl.Text("West", -mapSizeZ/2,200, 200, "co")
		
		-- gl.Text("North", mapSizeX/2, 100, 200, "on")
		-- gl.Text("South", mapSizeX/2,-mapSizeZ, 200, "on")
		-- gl.Text("East", mapSizeX,-(mapSizeZ/2), 200, "on")
		-- gl.Text("West", 0,-(mapSizeZ/2), 200, "on")
	end
end

local function TilesVerticesOutside()
	local res = options.res.value or 128
	local range = (options.range.value or 8192)/res
	local TileMaxX = mapSizeX/res +1
	local TileMaxZ = mapSizeZ/res +1	
	for x=-range,TileMaxX+range,1 do
		for z=-range,TileMaxZ+range,1 do
			if (x > 0 and z > 0 and x < TileMaxX and z < TileMaxZ) then 
			else
				glTexCoord(0,0)
				glVertex(res*(x-1), GetGroundHeight(res*(x-1),res*z), res*z)
				glTexCoord(0,1)
				glVertex(res*x, GetGroundHeight(res*x,res*z), res*z)
				glTexCoord(1,1)				
				glVertex(res*x, GetGroundHeight(res*x,res*(z-1)), res*(z-1))
				glTexCoord(1,0)
				glVertex(res*(x-1), GetGroundHeight(res*(x-1),res*(z-1)), res*(z-1))
			end
		end
	end
	
end

local function DrawTiles()
	gl.PushAttrib(GL.ALL_ATTRIB_BITS)
	gl.DepthTest(true)
	gl.DepthMask(true)
	gl.Texture(gridTex)
	gl.BeginEnd(GL.QUADS,TilesVerticesOutside)
	gl.Texture(false)
	gl.DepthMask(false)
	gl.DepthTest(false)
	TextOutside()
	glColor(0.5,0.5,0.5,0.01)
	gl.PopAttrib()
	
end

function widget:DrawWorldPreUnit()
	if (not island) or options.drawForIslands.value then
		gl.CallList(DspLst)-- Or maybe you want to keep it cached but not draw it everytime.
		-- Maybe you want Spring.SetDrawGround(false) somewhere
	end	
end

function widget:MousePress(x, y, button)
	local _, mpos = spTraceScreenRay(x, y, true) --//convert UI coordinate into ground coordinate.
	if mpos==nil then --//activate epic menu if mouse position is outside the map
		local _, _, meta, _ = Spring.GetModKeyState()
		if meta then  --//show epicMenu when user also press the Spacebar
			WG.crude.OpenPath(options_path) --click + space will shortcut to option-menu
			WG.crude.ShowMenu() --make epic Chili menu appear.
			return false
		end
	end
end

function widget:Initialize()
	Spring.SendCommands("luaui disablewidget Map Edge Extension")
	island = IsIsland()
	InitGroundHeights()
	DspLst = glCreateList(DrawTiles)
end

function widget:Shutdown()
	gl.DeleteList(DspList)
end

Code: Select all

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--
--  file:    gui_team_platter.lua
--  brief:   team colored platter for all visible units
--  author:  Dave Rodgers
--
--  Copyright (C) 2007.
--  Licensed under the terms of the GNU GPL, v2 or later.
--
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

function widget:GetInfo()
  return {
    name      = "TeamPlatter",
    desc      = "Shows a team color platter above all visible units",
    author    = "trepan",
    date      = "Apr 16, 2007",
    license   = "GNU GPL, v2 or later",
    layer     = 5,
    enabled   = true  --  loaded by default?
  }
end

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

-- Automatically generated local definitions

local GL_LINE_LOOP           = GL.LINE_LOOP
local GL_TRIANGLE_FAN        = GL.TRIANGLE_FAN
local glBeginEnd             = gl.BeginEnd
local glColor                = gl.Color
local glCreateList           = gl.CreateList
local glDeleteList           = gl.DeleteList
local glDepthTest            = gl.DepthTest
local glDrawListAtUnit       = gl.DrawListAtUnit
local glLineWidth            = gl.LineWidth
local glPolygonOffset        = gl.PolygonOffset
local glVertex               = gl.Vertex
local spDiffTimers           = Spring.DiffTimers
local spGetAllUnits          = Spring.GetAllUnits
local spGetGroundNormal      = Spring.GetGroundNormal
local spGetSelectedUnits     = Spring.GetSelectedUnits
local spGetTeamColor         = Spring.GetTeamColor
local spGetTimer             = Spring.GetTimer
local spGetUnitBasePosition  = Spring.GetUnitBasePosition
local spGetUnitDefDimensions = Spring.GetUnitDefDimensions
local spGetUnitDefID         = Spring.GetUnitDefID
local spGetUnitRadius        = Spring.GetUnitRadius
local spGetUnitTeam          = Spring.GetUnitTeam
local spGetUnitViewPosition  = Spring.GetUnitViewPosition
local spIsUnitSelected       = Spring.IsUnitSelected
local spIsUnitVisible        = Spring.IsUnitVisible
local spSendCommands         = Spring.SendCommands


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

local function SetupCommandColors(state)
  local alpha = state and 1 or 0
  local f = io.open('cmdcolors.tmp', 'w+')
  if (f) then
    f:write('unitBox  0 1 0 ' .. alpha)
    f:close()
    spSendCommands({'cmdcolors cmdcolors.tmp'})
  end
  os.remove('cmdcolors.tmp')
end

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

local teamColors = {}

local trackSlope = true

local circleLines  = 0
local circlePolys  = 0
local circleDivs   = 32
local circleOffset = 0

local startTimer = spGetTimer()

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

function widget:Initialize()
  circleLines = glCreateList(function()
    glBeginEnd(GL_LINE_LOOP, function()
      local radstep = (2.0 * math.pi) / circleDivs
      for i = 1, circleDivs do
        local a = (i * radstep)
        glVertex(math.sin(a), circleOffset, math.cos(a))
      end
    end)
  end)

  circlePolys = glCreateList(function()
    glBeginEnd(GL_TRIANGLE_FAN, function()
      local radstep = (2.0 * math.pi) / circleDivs
      for i = 1, circleDivs do
        local a = (i * radstep)
        glVertex(math.sin(a), circleOffset, math.cos(a))
      end
    end)
  end)

  SetupCommandColors(false)
end


function widget:Shutdown()
  glDeleteList(circleLines)
  glDeleteList(circlePolys)

  SetupCommandColors(true)
end


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

local realRadii = {}


local function GetUnitDefRealRadius(udid)
  local radius = realRadii[udid]
  if (radius) then
    return radius
  end

  local ud = UnitDefs[udid]
  if (ud == nil) then return nil end

  local dims = spGetUnitDefDimensions(udid)
  if (dims == nil) then return nil end

  local scale = ud.hitSphereScale -- missing in 0.76b1+
  scale = ((scale == nil) or (scale == 0.0)) and 1.0 or scale
  radius = dims.radius / scale
  realRadii[udid] = radius
  return radius
end


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

local teamColors = {}


local function GetTeamColorSet(teamID)
  local colors = teamColors[teamID]
  if (colors) then
    return colors
  end
  local r,g,b = spGetTeamColor(teamID)
 
  colors = {{ r, g, b, 0.4 },
            { r, g, b, 0.7 }}
  teamColors[teamID] = colors
  return colors
end


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
local triggerzoneDefID=		UnitDefNames["triggerzone"].id
local actionzoneDefID=		UnitDefNames["actionzone"].id
local reservoirzoneDefID=	UnitDefNames["reservoirzone"].id
-- and   udid ~=reservoirzoneDefID and udid ~=triggerzoneDefID and udid ~= actionzoneDefID

function widget:DrawWorldPreUnit()
  glLineWidth(3.0)

  glDepthTest(true)
 
  glPolygonOffset(-50, -2)

  local lastColorSet = nil
  for _,unitID in ipairs(spGetAllUnits()) do
    if (spIsUnitVisible(unitID)) then
      local teamID = spGetUnitTeam(unitID)
      if (teamID) then
        local udid = spGetUnitDefID(unitID)
        local radius = GetUnitDefRealRadius(udid)
        if (radius) then
          local colorSet  = GetTeamColorSet(teamID)
          if (trackSlope and (not UnitDefs[udid].canFly)) then
            local x, y, z = spGetUnitBasePosition(unitID)
            local gx, gy, gz = spGetGroundNormal(x, z)
            local degrot = math.acos(gy) * 180 / math.pi
            glColor(colorSet[1])
            glDrawListAtUnit(unitID, circlePolys, false,
                             radius, 1.0, radius,
                             degrot, gz, 0, -gx)
            glColor(colorSet[2])
            glDrawListAtUnit(unitID, circleLines, false,
                             radius, 1.0, radius,
                             degrot, gz, 0, -gx)
          else
            glColor(colorSet[1])
            glDrawListAtUnit(unitID, circlePolys, false,
                             radius, 1.0, radius)
            glColor(colorSet[2])
            glDrawListAtUnit(unitID, circleLines, false,
                             radius, 1.0, radius)
          end
        end
      end
    end
  end

  glPolygonOffset(false)

  --
  -- Blink the selected units
  --

  glDepthTest(false)

  local diffTime = spDiffTimers(spGetTimer(), startTimer)
  local alpha = 1.8 * math.abs(0.5 - (diffTime * 3.0 % 1.0))
  glColor(1, 1, 1, alpha)

  for _,unitID in ipairs(spGetSelectedUnits()) do
    local udid = spGetUnitDefID(unitID)
    local radius = GetUnitDefRealRadius(udid)
    if (radius) then
      if (trackSlope   and (not UnitDefs[udid].canFly)) then
        local x, y, z = spGetUnitBasePosition(unitID)
        local gx, gy, gz = spGetGroundNormal(x, z)
        local degrot = math.acos(gy) * 180 / math.pi
        glDrawListAtUnit(unitID, circleLines, false,
                         radius, 1.0, radius,
                          degrot, gz, 0, -gx)
      else
        glDrawListAtUnit(unitID, circleLines, false,
                         radius, 1.0, radius)
      end
    end
  end

  glLineWidth(1.0)
end
             

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

Attachments
convertMeToMd3.rar
(144.5 KiB) Downloaded 5 times
User avatar
zwzsg
Kernel Panic Co-Developer
Posts: 7049
Joined: 16 Nov 2004, 13:08

Re: Journeywar

Post by zwzsg »

PicassoCT wrote:I dont understand, both sides are depth testing as far as i can tell.
Exactly, if they are both depth testing, and are both at the same depth, then you get flicker.

So either you make the one drawn last not depth test (so it's always drawn over), either you fiddle with PolygonOffset to force one to be at a different depth.
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: Journeywar

Post by PicassoCT »

Tryied, removed depthtest. Which did not fix it.

Made the silcergun for the comender to feel not so useless
Image
Attachments
slicergun.jpg
(274.86 KiB) Downloaded 1 time
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Re: Journeywar

Post by smoth »

looks pretty cool
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: Journeywar

Post by PicassoCT »

well.. i had a fever.. and i did things..

basically its a feature.. that builds itself algorithmically from lego, based upon the mapname..

this whole thing worked pretty well with the varyfoo

and yes it looks shitty on my laptop

Image
Attachments
foorunner.jpg
(874.32 KiB) Not downloaded yet
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: Journeywar

Post by PicassoCT »

Some updates:

The skinfantry and tiglil now can go into ambush mode- once unattacked and out of sight -activated they get invisible and get a ambush charge, wich upon release allows them to fire more rapidly for a short time.

Im working on the Energy to Metall Converter.. and a lot of small changes.

The Varyfoo now have a unittype comon exp-hp ratio - meaning, any exp gained, translates to a growing maxhp rate. Hope you kill them fast. Also you cant activate Varyfoos before the enemy has a commender in game.

Image

Also churned out icons for the journeys.
Attachments
urdarealwip.jpg
(47.43 KiB) Not downloaded yet
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: Journeywar

Post by PicassoCT »

[f=0000910] Fatal: LuaRules: cannot allocate more memory! (805306399 bytes already used, 0 bytes maximum)
[f=0000910] Error: LuaRules::RunCallIn: error = 4, GameFrame, [Internal Lua error: Call failure] not enough memory
[f=0000910] Fatal: LuaUI: cannot allocate more memory! (805306399 bytes already used, 0 bytes maximum)
[f=0000910] Error: LuaUI::RunCallIn: error = 4, GameFrame, [Internal Lua error: Call failure] not enough memory
[f=0000910] Fatal: LuaRules: cannot allocate more memory! (805306399 bytes already used, 0 bytes maximum)
[f=0000910] [UnitScript] Error: LuaRules::RunCallIn: error = 1, CLuaUnitScript::StartMoving, [Internal Lua error: Call failure] not enough memory
[f=0000910] Fatal: LuaUI: cannot allocate more memory! (805306399 bytes already used, 0 bytes maximum)
User avatar
Silentwings
Posts: 3720
Joined: 25 Oct 2008, 00:23

Re: Journeywar

Post by Silentwings »

Which Spring version are you using? If you are using develop, make sure its more recent than this https://github.com/spring/spring/commit ... c6d27e6fcc !
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: Journeywar

Post by PicassoCT »

Thanks Silentwings that fixed everything and more. Great new Spring Version.

Lots of stuff has been modified.

The Reinforcements at gamestart do no longer include mtws..
They consume too much income at the start, killing your eco.

The Journeyman now have a harbour, and attackfishsubs.

The Ambushmode got added.

Everything is so fucking green.

Image

Currently in the works is the shroudshrike.
And its difficult. How do you visualisise luck. Infinite coins dropped and always landing on head?
Attachments
soGreen.jpg
(341.95 KiB) Not downloaded yet
User avatar
hoijui
Former Engine Dev
Posts: 4344
Joined: 22 Sep 2007, 09:51

Re: Journeywar

Post by hoijui »

pink pig with its back getting slit open with a golden coin.

never though of what this symbol signifies before writing it down here.. interesting. interesting...

.. also the chinese must have many symbols for luck, and the indians maybe some god? could have multiple symbols dancing in a circle...
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: Journeywar

Post by PicassoCT »

I looked at that.. not my thing.. i think ill paint a p-tree
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: Journeywar

Post by PicassoCT »

I looked into what i was looking forward at, and found it.. rather difficult to accomplish.

So a dice it is .. hoping through the landscape always landing six eyes.

I had another nice idea, that will never be real:

Kinect Code Foo

You basically programm with a mixture of voice and gestures.
The Gestures are all about code structure, loops, lambda expressions, while the spoken words are all about conditions, stringy parts and such.

It could be elegant taichi like movement, without ridiculos strenght drawing exercises build in. Most important, always allow the user to look on the screen. No fency dancing.

Also it helps avoiding spinal pain.Gesture suggestions welcome.

The ShroudShrike proves difficult- who would have expected that..
Post Reply

Return to “Journeywar”