code logs -> 2008 -> Sun, 17 Aug 2008< code.20080816.log - code.20080818.log >
--- Log opened Sun Aug 17 00:00:49 2008
00:01
<@ToxicFrog>
Part of this is so that he can exploit openGL scaling to get the tiles the right size at arbitrary resolutions.
00:02
<@ToxicFrog>
The system requirements are still insanely high, but they are - and have only ever been - CPU and memory.
00:02
<@ToxicFrog>
The video requirements are "something that supports openGL quads and scaling
00:05
<@TheWatcher>
I've nothing against using quads for text - all games based off any of the quake and doom engines to it quite extensively - but for a text only game...
00:05
<@ToxicFrog>
Win2k does run well in virtualbox, according to the forums. The question is what sort of opengl support - if any - it has.
00:05
<@ToxicFrog>
DF is not a text only game!
00:05
<@ToxicFrog>
It never was!
00:05
<@ToxicFrog>
It was never planned to be!
00:06
<@McMartin>
It still cries out for being framebuffered instead.
00:06
<@McMartin>
Because it is flagrantly tile-based.
00:06
<@ToxicFrog>
It uses mostly-textual graphics out of the box (I believe only the dwarves have actual graphical tiles) because Content Is Hard.
00:06
<@ToxicFrog>
Granted.
00:06
<@ToxicFrog>
That would mean you would have to do the scaling on the CPU, though.
00:07
<@ToxicFrog>
And the CPU is already the bottleneck.
00:07
<@McMartin>
You can pre-zoom them.
00:07
<@ToxicFrog>
Hmm, true
00:07
<@McMartin>
You need integral multiples to do it right, but, well, restrict to integral multiples.
00:08
<@McMartin>
Or, hell
00:08
<@ToxicFrog>
At present it doesn't have that restriction.
00:08
<@McMartin>
Have differently-sized tile sets.
00:08
<@McMartin>
Well, yeah.
00:08
<@McMartin>
You only put this restriction in in framebuffer mode.
00:08
<@ToxicFrog>
It does support differently sized tile sets.
00:08
<@McMartin>
People don't complain about this if OpenGL scaling is optional.
00:08
<@McMartin>
I believe I can say this with some authority
00:08
<@ToxicFrog>
True.
00:09
<@McMartin>
If you only are runnable at 320x240, though, people *will* complain.
00:12
<@MyCatVerbs>
McMartin: the people with old CRTs won't. ^_^
00:13
<@McMartin>
Yes they will.
00:14
<@McMartin>
Their old CRTs were tuned for 320x200.
00:15
<@MyCatVerbs>
Well played.
00:15
<@McMartin>
(Actually, that was a headache for us in UQM too)
00:16
<@McMartin>
(Since when we re-ripped the superior DOS graphics, they were scaled for a 320x200 screen, which doesn't play well with 640x480, the default display size)
00:16
<@MyCatVerbs>
Actually, how *do* you cope with modern resolutions?
00:16
<@McMartin>
The 3DO was 320x240, so we use DOS graphics in the 3DO screen layout.
00:16
<@MyCatVerbs>
Your sprites must be designed for, what, 25? 50 DPI?
00:17 * MyCatVerbs ponders.
00:17
<@McMartin>
We do soft scaling in various ways from 320x240 up to 640x480, and then use OpenGL if the user wants any other resolution.
00:17
<@McMartin>
And we render one[*] quad per screen.
00:17
<@McMartin>
[* Offer void for multiple display layers, such as during crossfades]
00:17
<@MyCatVerbs>
Could you upscale, and then *cheat* by putting a HUD in the spare screen real estate?
00:17
<@McMartin>
They effectively did that for us when they made the 3DO version.
00:18
<@McMartin>
Check the conversation screen, notice the 20-pixel-high VCR interface.
00:18
<@MyCatVerbs>
Sensible. So what was wrong with the3DO re: sprites. Less RAM or something?
00:18
<@McMartin>
Poorer color palette.
00:18
<@MyCatVerbs>
Ah, makes sense. How bad, out of curiosity?
00:19
<@McMartin>
PC was 256 colors of your choice out of the full 24-bit color spectrum.
00:19
<@McMartin>
3DO is "you get these colors."
00:19
<@McMartin>
Er, "You get these 256 colors"
00:19
<@McMartin>
And hardware support for mixed blits and fades, which I believe was why they did it that way
00:19
<@McMartin>
Essentially 16 color levels for 16 hues, IIRC.
00:20
<@McMartin>
They were good enough about it that you have to really look to notice
00:20
<@McMartin>
But if you play them side by side, the 3DO one is a bit more washed out.
00:20
<@McMartin>
But the PC version did swap the full-screen palette for different parts of the game.
00:21
<@McMartin>
We keep the 8-bit images in UQM, because a number of the effects are done via palette animation
00:21
<@McMartin>
Which we slowly and painfully replicate in true-color.
00:22 You're now known as TheWatcher[T-2]
00:22
<@MyCatVerbs>
"Slow and painful" being relative to, like, 500MHz CPUs which issue multiple micro-ops in a single instruction and have a minimum of about 8k of on-chip L1 D-cache. :P
00:22
<@MyCatVerbs>
Oh and that's only when we're talking about players who still game on really old machines. Still sounds painful, though.
00:23
<@McMartin>
I started UQM development on a 500MHz Celeron with a Voodoo 3.
00:24
<@McMartin>
And yeah, it couldn't handle SuperSAI
00:24
<@McMartin>
And the 3dfx cards couldn't do textures big enough for OpenGL mode to work at all.
00:25
<@MyCatVerbs>
Huh. But you weren't using OpenGL mode at that point, were you?
00:26
<@McMartin>
OpenGL was actually in at the start
00:26
<@McMartin>
The code we inherited had had an intern working on it for three months.
00:26
<@McMartin>
It was a very bad OpenGL interface that I replaced with an SDL framebuffer interface
00:27
<@McMartin>
This was then supplemented by a superior OpenGL interface that we kept for about four years.
00:27
<@McMartin>
Then I redesigned the entire graphics engine so that it had multiple display layers, which let us get rid of a lot of ugly hacks in the crossfades and treat the SDL and OpenGL layers as interchangable backends.
00:28 You're now known as TheWatcher[zZzZ]
00:29
<@ToxicFrog>
Hmm.
00:30
<@ToxicFrog>
The new version reacts...poorly when I switch desktops while it's running.
00:30
<@McMartin>
It being VBox or DF?
00:30
<@McMartin>
Or UQM?
00:31
<@ToxicFrog>
DF.
00:31
<@ToxicFrog>
Works fine if Always On Visible Workspace, though.
00:33
<@MyCatVerbs>
McMartin: cool. Interesting to hear about.
00:34
<@MyCatVerbs>
Out of curiosity, have you actually been adding features in UQM? Or primarily hacking on bugfixes, portability, code quality, etc?
00:34
<@McMartin>
There are feature adds.
00:35
<@McMartin>
The remix project - the ability to use OGG to replace MOD in general - is the most obvious and longest-standing
00:35
<@MyCatVerbs>
Sweet.
00:35
<@McMartin>
Netplay Supermelee is the most recent.
00:35
<@MyCatVerbs>
Just curious, because whenever I ask you about things, usually it's the meaty nuts'n'bolts stuff you tell me about. :)
00:35
<@McMartin>
Translation support from the same binary is the current biggie, but whether that's feature addition or "code quality" is debatable.
00:36
<@McMartin>
A russian translation has been done, it seems.
00:36
<@McMartin>
But it needs binary support right now.
00:36
<@MyCatVerbs>
Mmm.
00:36
<@McMartin>
Merging the features from PC and 3DO is a feature add depending on which one you started with.
00:36
<@McMartin>
On the PC, better graphics, namable savegames
00:36
<@McMartin>
On the 3DO, ship info videos and dialogue.
00:37
<@McMartin>
The fact that you can SuperSAI or HQ2X the graphics on the upscale, or do cubic interpolation on the MODs, may count.
00:37
<@MyCatVerbs>
Oh certainly that's a feature add. Or at least it's a step towards making the best possible SC2 implementation.
00:38
<@MyCatVerbs>
I mean, though, I'd understand if you weren't actually all that interested in adding new features until you have the whole engine in a state where it's actually pleasant to hack on. No one likes adding features to brittle code, after all.
00:38
<@McMartin>
(For various reasons, we can't actually *call* them SuperSAI or HQ2X - they're semi-clean-room reimplementations so that the resulting code is GPLable)
00:38
<@McMartin>
Our primary goal is to preserve the original, so we're unlikely to add any feature that can't be readily turned off.
00:38
<@McMartin>
And it *really* doesn't have an engine-data split.
00:40
<@MyCatVerbs>
Mmmm? I thought an engine-data split was one of your goals?
00:40
<@McMartin>
Well, a certain degree of it.
00:40
<@McMartin>
But that's things like the starmap and planet tables.
00:40
<@McMartin>
And moving them out of source.
00:40
<@McMartin>
The tables are keyed to an engine that is, essentially, Only For Playing SC2 Or Close Variants, though.
00:41
<@MyCatVerbs>
No point replacing those with something more generic?
00:42
<@McMartin>
How do you make, say, planet exploration more generic?
00:43
<@McMartin>
The tables are essentially tables of seeds for the procedural map/solar system generators.
00:43
<@MyCatVerbs>
Oh, of course. I misparsed. Thought you meant highly specific data structures and the like.
00:43
<@McMartin>
Basically, "You can't give it up without giving up procedural content generation, which, given the amount of content, is lolno."
01:32 AnnoDomini [AnnoDomini@Nightstar-29118.neoplus.adsl.tpnet.pl] has quit [Quit: Patience is a virtue.]
01:51 gnolam is now known as Salman_Rushdie
01:54 Salman_Rushdie is now known as gnolam
02:42 gnolam [lenin@Nightstar-2037.A163.cust.bahnhof.se] has quit [Quit: Z?]
03:39
<@McMartin>
Wow
03:39 * McMartin finds a Win98 image, and manages to completely hose VBox.
03:39
<@McMartin>
As in "200% CPU usage for 20+ minutes"
03:39
<@McMartin>
And then I aborted it.
03:52 Attilla [~The.Attil@92.0.29.ns-20195] has quit [Quit: <Insert Humorous and/or serious exit message here>]
04:03
<@ToxicFrog>
McMartin: when installing: disable network, sound, and USB support, and make sure all the advanced options except ACPI are off. Same for the first boot.
04:03
<@ToxicFrog>
After that you can start enabling peripherals one by one and installing drivers for them.
04:04
<@ToxicFrog>
Oh, and make sure it's configured for <512MB of memory.
04:22
<@McMartin>
How much vmem did you give it?
04:26 Thaqui [~Thaqui@Nightstar-11452.jetstream.xtra.co.nz] has joined #code
04:26 mode/#code [+o Thaqui] by ChanServ
04:42
<@ToxicFrog>
64.
06:59
<@McMartin>
In other virtualization news: http://www.theregister.co.uk/2008/08/13/vmware_apologises_12_august_code/
06:59
<@McMartin>
DIAF, Blargh.
07:01
<@McMartin>
(Did my link go through? It should have, but...)
07:27 gnolam [lenin@Nightstar-2037.A163.cust.bahnhof.se] has joined #Code
07:27 mode/#code [+o gnolam] by ChanServ
08:16 Thaqui [~Thaqui@Nightstar-11452.jetstream.xtra.co.nz] has left #code [MORE constitution LESS destitution MORE pros...perity.]
09:05 You're now known as TheWatcher
09:05 AnnoDomini [AnnoDomini@Nightstar-29118.neoplus.adsl.tpnet.pl] has joined #Code
09:05 mode/#code [+o AnnoDomini] by ChanServ
11:23 Netsplit DeepThought.NY.US.Nightstar.Net <-> Blargh.CA.US.Nightstar.Net quits: @gnolam, @Kazriko
11:37 Attilla [~The.Attil@92.0.29.ns-20195] has joined #code
11:37 mode/#code [+o Attilla] by ChanServ
12:10 Netsplit over, joins: Kazriko
12:10 Netsplit over, joins: gnolam
12:10 Reiver [~reaverta@Admin.Nightstar.Net] has quit [Nick collision (older nick overruled)]
12:10 mode/#code [+o Kazriko] by ChanServ
12:10 mode/#code [+o gnolam] by ChanServ
12:10 Reiv [~reaverta@Admin.Nightstar.Net] has joined #Code
12:15 johndoe [~johndoe@84.22.140.ns-11797] has joined #code
12:16 johndoe [~johndoe@84.22.140.ns-11797] has left #code []
12:21 Reiv is now known as Reiver
12:33 AnnoDomini [AnnoDomini@Nightstar-29118.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
12:36 AnnoDomini [AnnoDomini@Nightstar-28950.neoplus.adsl.tpnet.pl] has joined #Code
12:36 mode/#code [+o AnnoDomini] by ChanServ
12:42
<@ToxicFrog>
McMartin: yes, it did
15:00 You're now known as TheWatcher[afk]
17:35 You're now known as TheWatcher
17:59 AnnoDomini is now known as Elizabeth
18:03 EvilDarkLord is now known as Rico
18:35 crem [~moo@Nightstar-28703.adsl.mgts.by] has quit [Ping Timeout]
19:06 crem [~moo@Nightstar-28703.adsl.mgts.by] has joined #code
21:35 Shoukanjuu [~Shoukanju@Nightstar-18822.dhcp.embarqhsd.net] has joined #code
21:36
< Shoukanjuu>
I am returned.
22:16 C_tiger [~c_wyz@Nightstar-6750.hsd1.wa.comcast.net] has joined #code
22:23 Elizabeth is now known as AnnoDomini
22:24 Rico is now known as EvilDarkLord
22:41 C_tiger [~c_wyz@Nightstar-6750.hsd1.wa.comcast.net] has quit [Ping Timeout]
22:46 C_tiger [~c_wyz@Nightstar-6750.hsd1.wa.comcast.net] has joined #code
22:47 C_tiger [~c_wyz@Nightstar-6750.hsd1.wa.comcast.net] has quit [Connection reset by peer]
22:53 C_tiger [~c_wyz@Nightstar-6750.hsd1.wa.comcast.net] has joined #code
--- Log closed Mon Aug 18 00:00:20 2008
code logs -> 2008 -> Sun, 17 Aug 2008< code.20080816.log - code.20080818.log >