Get it here:
http://code.google.com/p/quakeconstruct/
Quake Contruct Alpha Release!
August 16, 2009 by hxrmnMe and my pal Sorlag
June 12, 2009 by hxrmn





The 2 front teeth didn’t come out very well (low poly) so incidentally she doesn’t bite.
A paper art project by me,
Total virtual 3D-layout time 15 minutes.
Total construction time 45 minutes.
Pong and Panels
June 2, 2009 by hxrmnRemember when I mentioned that draw.3D function, well I did more stuff with it.
I also wrote a new networking tool: CreateNetworkedTable(index) which allows you to share a table(array) of data.
Here’s my friend and I demonstrating both systems in a game of 2D3D pong:


The paddles, text, and board are all 2D elements plastered onto a 3D quad.
The 2 players are just 3D models rendered into the scene.
I also turned off world rendering in this example so what you see here is all that’s being rendered.
Now here’s the other thing, panels:




These are similar to the panels in quake4 and doom3
This demonstrates several things:
- QuakeConstruct’s new abillity to control and spawn map entities.
- Draw.3D
- Networked tables
These panels were placed in the map and paired with other entities.
The locked panel (OpenDoor) is set to be locked by default. Clicking on the other panel will unlock it, once unlocked the “OpenDoor” panel will… open the door.
I know images aren’t quite enough to convey what’s going on here, so I’ll post a video later.
Also, I made this pretty awesome 3D scoreboard for maps q3dm17 and q3ctf4:





So yeah, draw3D again and this also shows off the new client scoreboard binds in QuakeConstruct.
So now you guys are up to date on what I’ve been messing with.
I’ll post some videos later
Render Targets and draw.Start3D awesome stuff
May 17, 2009 by hxrmn



Trails!
April 28, 2009 by hxrmnJust finished work on a shiny new trail renderer:



Took about 2 days.
P.S. 300th code revision!
Late night update
April 5, 2009 by hxrmnToday I added loading screen support to lua now you can change the loading screen layout, also I changed quake3’s windows console color (the blue was getting annoying)

Here’s the script to do it:
local function centerText(y,str,tw,th)
local sw = string.len(str)*tw
draw.Text(320 – sw/2,y,str,tw,th)
return y + th
endlocal function centerText2(y,str,ts)
local tw = 18*ts
local sw = string.len(str)*tw
draw.Text2(320 – sw/2,y,str,ts,0)
return y + 25
endlocal console = LoadShader(“textures/sfx/console02″)
local t = 0
function d2d(tab)
draw.SetColor(0,0,0,1)
draw.Rect(0,0,640,480)local svinfo = GetConfigString(CS_SERVERINFO)
local sysinfo = GetConfigString(CS_SYSTEMINFO)
local cheats = CS_ValueForKey(sysinfo,”sv_cheats”)
local pure = CS_ValueForKey(sysinfo,”sv_pure”)local mapname = CS_ValueForKey(svinfo,”mapname”)
local host = CS_ValueForKey(svinfo,”sv_hostname”)
local maptext = GetConfigString(CS_MESSAGE)
local motd = GetConfigString(CS_MOTD)
local levelshot = LoadShader(“levelshots/” .. mapname .. “.tga”)
local detail = LoadShader(“levelShotDetail”)
if(levelshot == 0) then
levelshot = LoadShader(“menu/art/unknownmap”)
endlocal w,h = 320,250
draw.SetColor(1,1,1,1)
local y = centerText2(10,”Connecting to ” .. host,1)
y = centerText2(y+2,”Loading ” .. tab.loadString,.5)draw.Rect(320-w/2,240-h/2,w,h,levelshot)
draw.Rect(320-w/2,240-h/2,w,h,detail,0,0,2.5,2)local ny = 240+h/2
ny = centerText2(ny,maptext,1)
centerText(ny,motd,10,10)local x = 0
y = 400for k,v in pairs(tab.playerIcons) do
draw.Rect(x,y,40,40,v)
x = x + 40
endx = 0
y = y + 40for k,v in pairs(tab.itemIcons) do
draw.Rect(x,y,30,30,v)
x = x + 32
enddraw.RectRotated(600,440,60,60,console,-t*10)
t = t + 1
end
hook.add(“DrawInfo”,”cl_ginfo”,d2d)
Pretty simple stuff.
My crowning achievment for the day was optimizing the lua downloader.
Instead of taking 45 seconds to download a 500 line lua file it takes about 6 seconds. woot
I’m thinking about releasing this very soon. It’ pretty stable now
I just need to tie up some lose ends.
By the way, if anyone is visiting this blog (and I think you are)
Please don’t hesitate to make suggestions. I’m at a bit of an inpass because I’m not sure what people will want to do with this.
So if you have any ideas, post them in the comments or email me at Hxrmn@comcast.net
-Thank you
Progress!
March 10, 2009 by hxrmnToday I made a hud using the new itemInfo bindings and the animatedSprite code I created.

All of the numbers are contained in one texture (the animated sprite) and can be referenced by frame:

I also JUST finished a new binding that lets lua coders write game shaders right in their scripts.
local data =
[[{
cull back
deformVertexes wave 100 sin 0.8 0 .5 1
polygonoffset
{
map gfx/colors/black.tga
}
}]]
local s = CreateShader(data)
local rmodel = LoadModel(“models/gibs/skull.md3″)
local tr = PlayerTrace()
local pos = tr.endpos + Vector(0,0,50)
local ref = RefEntity()
ref:SetColor(1,1,1,1)
ref:SetPos(pos)local function d3d()
ref:SetShader(0)
ref:Render()
ref:SetShader(s)
ref:Render()
end
hook.add(“Draw3D”,”cl_shadertest”,d3d)
Result:

I plan to write some kind of wrapper for this, something like:
local s = Shader()
local stage1 = s:AddStage()
stage1:AddParam(“blah”)
…etc
In other news, I am working on a help menu so people will know how to use this thing:



The help menu uses a small markup language I wrote (similar to HTML) for quakeconstruct. So I should be able to churn out a pretty detailed help system.
So that’s the status of things as of right now, I’ll keep you guys posted (more often, I promise).
-Hxrmn
Welcome
February 13, 2009 by hxrmnIt is here I shall post many posts of information about quake construct and it’s development.
Make yourselves comfortable, bookmark this site and I shall keep you up to date on that status of all that is my quake3 mod.
What is Quake Construct?
Quake Construct is a quake3 mod that allows anyone with at least some
knowledge of the lua programming language to create *simple, small
modifications for the Quake 3 engine.
Through the use of hooks and bindings to the quake3 engine, users can assign
their own responses to particular events that happen in-game such as
Graphics Drawing and Player Interactions.
Lua is a high-level programming language, usually used for providing
scripting access for lower-level code. (see http://www.lua.org/pil/)
The goal of this project is to provide quake3 players with tools to design
Their own mods without touching a line of C, these mods can be run in
Real-time without compiling.
Why did you start working on this?
Because I wanted to design a faster way to make mods. I don’t want to write 100 lines of complex C code to make the player jump differently and then compile it, test it, and debug it for an hour when it doesn’t work.
What is Quake3?
Quake3 is a first person shooter that was released by ID Software in 1999.
When will you be releasing Quake Construct?
I’m not really sure about this one. I might just release a beta to start out and let people play with that while I fine tune the final release.
How often will you update this blog?
I’ll update every time I have something important to say about the mod, or when I make some kind of new breakthrough feature.
Tell us about yourself.
I am an 18 year old student.
I love pop-tarts, dogs, television, programming, and music of all sorts.
I build computers, make movies, and create game content (music, animation, textures, models, sounds).
I don’t have a girlfriend.