source: abuse/branches/win32/Abuse32/What's New.txt @ 658

Last change on this file since 658 was 100, checked in by Sam Hocevar, 15 years ago
  • Importing an old Win32 port by Jeremy "Marauder" Scott.
  • Property svn:keywords set to Id
File size: 13.9 KB
Line 
1February 26, 2001
2-----------------
3        - Justin and I have been writing LISP code to do teamplay
4                and capture the flag.  The CTF objects all function
5                correctly; it'd be cool if we could get some better
6                artwork for them, and if they were tinted right, though.  :)
7        - Redefined the cons_cell and related structures to make it
8                easier to browse through the watch window in the debugger
9                without having to type-cast everything I want to see.
10
11February 18, 2001
12-----------------
13        - Changed lisp function (set_player_color x) to
14                (set_object_tint x)
15        - Added lisp function (get_object_tint)
16
17February 17, 2001
18-----------------
19        - Lots of playtesting recently
20        - Have fixed all of the window display problems (I think)
21        - Added lisp function (set_player_color x) to switch player
22                to color number x
23                see chat.lsp for details
24        - Modified cop.cpp with Leon's suggestion for player drawing
25        - Modified people.lsp to correspond to the change to cop.lsp
26        - added -window switch to allow play in a window (still
27                experimental -- only works with 32-bit desktop color
28                depth) -size still works the same.  Press alt-tab to
29                switch away from Abuse.
30
31February 04, 2001
32-----------------
33        - Finally got alt-tabbing to behave nicely.  Still minor
34                issues with the main menu, but it's at least much
35                better than it was.
36
37January 28, 2001
38----------------
39        - There's now only one place where a window_manager
40                is instantiated.  There are no functions which
41                take a window_manager parameter anymore.
42        - Well, in the process of adding changes necessary to
43                handle recovery from alt-tabbing away from Abuse
44                (which is why I was updating jwindow::redraw()),
45                the entire windowing system is getting an overhaul.
46                It's gonna be sweet when I'm done, though.
47        - jwindow::redraw() has been changed to a virtual
48                function requiring no parameters.  This'll make
49                it much easier to implement special specific-
50                purpose windows.
51        - renamed wm[] array in dev.cpp to WinMenus so that it
52                doesn't have a name collision with the satic wm
53                singleton.
54        - Starting work on singleton code; will get rid of all
55                references to an arbitrary window_manager* because
56                there's only going to be one, and it's not ever
57                going to change.
58        - Got rid of X-ish "control is only active when mouse is
59                over it"  Now you've gotta click on a control to make
60                it take focus, and you can hit tab to move between
61                controls even when one isn't currently selected.
62        - Fixed right/down arrow display in selection boxes...
63                Finally.  That bug had been eluding me forever.
64                (Accidentally Lock()ed again at the end of drawing
65                instead of UnLock()ing ...  Oops)
66
67January 27, 2001
68----------------
69        - I think I've figured out why the automap is crashing the
70                engine sometimes.  When I'm done with other stuff, I'll
71                take a look at fixing it.
72        - Got fRaBs' uninstall working.  I guess "company name" is
73                required before the uninstaller can initialize.  Dumb
74                limitation, if you ask me...
75        - Moving username.lsp, gamename.lsp, and some other LISP
76                files out of /addon/deathmat into /config.  Adding
77                more saved configuration stuff as well.
78        - Added net_configuration::save() function
79        - Modifying deathmatch startup code to look for -a switch,
80                allowing addons to redefine deathmatch settings.
81        - Added net_configuration::load() function
82        - fixed info_field->find() function
83        - fixed button_box->press_button() function
84        - Also found the foretile corruption display in the editor.
85                Will take a look at it soon -- for now just close the
86                window and re-open it and it'll be okay.
87
88File notes:
89        changed:
90                /
91                        abuse.lsp
92                /lisp
93                        people.lsp
94                        startup.lsp
95                /addon/deathmat
96                        deathmat.lsp
97                        dstartup.lsp
98                /addon/fRaBs
99    !new->  netstart.lsp
100                /addon/fRaBs/lisp
101                        startup.lsp
102                /addon/fRaBs/deathmat
103                        deathmat.lsp
104                        dstartup.lsp
105
106
107January 24, 2001
108----------------
109        - Engine now deletes lcachexx.tmp on exit, and doesn't
110                ever create end.mem in the release build.
111        - Working on Shareware/Retail/fRaBs InstallShield packages.
112                Can't get fRaBs' uninstall to start correctly...
113
114January 23, 2001
115----------------
116        - Finally fixed the sound so that Abuse doesn't crash when
117                it can't find a sound card...
118        - Fixed game_getter() so that lbreak() works.
119        - Removed *all* exit() calls and replaced with WriteErr().
120                Abuse should *never* shut down without giving a reason
121                anymore.  If it does, I've got an error somewhere that
122                isn't being taken into account.
123        - Fixed fRaBs so that it'll work within /addon/fRaBs with
124                the -a switch.  Now I just need to tell Justin how he
125                needs to do things from now on...  ;)
126
127January 19, 2001
128----------------
129        - I actually added this a while ago, but for anyone who's
130                interested, the GUID I'm using to create DirectPlay
131                sessions is:
132                {7FAABB28-D1AB-4b3b-957C-58A124E03542}
133                Not that anyone'll probably need this, but who knows?
134        - Added -module switch for specifying "add-on modules,"
135                which will be a more complete version of the -a switch.
136        - Tweaked with the re-worked DPlay stuff and it's much
137                better now.  Still works, and is far prettier.
138
139January 18, 2001
140----------------
141        - The entire Abuse engine now runs inside its own thread,
142                allowing WinMain() to do event processing --
143                Now alt-tab should *always* work, even in game loops
144                where it previously wasn't polling for Windows events.
145        - Re-worked some DirectPlay stuff to allow it to start
146                a new network game after it's done with another...
147                Not the best solution, but it works.
148        - DirectInput routines now run inside their own thread,
149                as part of an effort to make the entire engine multi-
150                threaded.  Currently working on moving Get/Translate/
151                DispatchMessage() out of the event handling code and
152                back into WinMain() where they belong.
153        - also had an idea to improve mouse wheel weapon switching
154                that works great except for one tiny problem.  I
155                doubt if anyone'll encounter this problem, tho'.  If
156                you find it, and it's a major problem, let me know
157                and I'll see if I can get to the bottom of it.
158        - worked on the lighting altorithm.  Got a 100% speedup
159                in one of the inner loops, according to the profiler.
160                Lighting now takes about 10% less processor time when
161                using hw acceleration.
162
163                Could still be sped up, though.  The 32-bit reads
164                are faster (and fewer), but they're still not
165                guaranteed to be on a DWORD boundary, so there's
166                still a potential performance hit.  I also need
167                to re-work the lighting table's functionality to
168                get rid of another good portion of the 8-bit
169                operations.
170
171January 17, 2001
172----------------
173        - fixed blinking player location dot not displaying in
174                automap.
175        - finally completely fixed the far right/bottom lines not
176                being drawn problem.  Really bizarre solution -- I'm
177                not entirely convinced that the problem doesn't lie
178                elsewhere -- but it's fixed.
179        - weaning functions from image::width() to use
180                image::Pitch instead...  DirectDraw aligns all scan
181                lines on DWORD boundaries, so width() doesn't
182                necessarily equal bytes/scan line.
183        - Right now I'm having a problem with system vs. local
184                video memory...  If I create any of my surfaces in
185                system memory, the hardware acceleration takes a
186                serious hit on non-AGP systems.  If I create surfaces
187                (one in particular representing the offscreen buffer)
188                in local video memory, any software rendering routines
189                (especially lighting) take serious performance hits.
190
191                Hardware acceleration blazes through all of Abuse's
192                drawing routines.  I can get upwards of 120 fps on my
193                computers with delays turned off ...  But more than 50%
194                of all processing time is spent in the lighting routine.
195                When using system memory, lighting takes about 15% of
196                the processing time...
197               
198                Methinks I'll have to do some work on the lighting
199                algorithm to make it more 32-bit friendly...
200
201January 10, 2001
202----------------
203        - fixed bug that made Abuse think that keys were being
204                pressed when they were released, and vice-versa.  It was
205                only by an incredible coincidence that the DirectInput
206                code was working at all before this.  Now everything
207                (should) work.
208
209January 08, 2001
210----------------
211
212Code Notes:
213        - changing file_manager::remote_file::unbuffered_read() so
214                that it won't overrun the read buffer anymore -- ever.
215        - trying to find a bug that's preventing files larger than
216                8k from transferring over the network correctly
217                (only a problem in the debug executable ... for now.
218                has potential to make things really bad later on.)
219
220
221January 07, 2001
222----------------
223        - Added automap, though it's crashed a test machine twice,
224                so I removed it again.
225        - Built InstallShield package for shareware install
226        - Added mouse wheel support for changing weapons (not
227                perfect yet)
228        - Other stuff, though I've forgotten what.
229
230January 06, 2001
231----------------
232        - DirectInput for mouse works.  Mouse sensitivity can be
233                changed, but needs a user interface still.
234        - Modified do_title() routine to no longer be hard-coded
235                for the original "intro" string ...  Any string should
236                now be shown in its entirety.  Mouse button click will
237                also exit the title screen.
238        - Started looking at LISP processing code to see about
239                adding functions that'll allow LISP scripts to do
240                intro/title-type stuff.  (Draw pictures, show
241                scrolling text, etc.)
242        - Fixed editor map mode ... again.  Forgot that I'd lost that
243                fix when I had a mini HD crash.
244        - Framerate is no longer "game tick" based.  The game tick
245                runs at a fixed rate of 15Hz, and all game objects run
246                at this rate.  This made the mouse move kinda choppy,
247                (as Bill pointed out) even if your computer is capable
248                of framerates much higher.  Screen is now updated as
249                fast as possible, and game ticks still happen at 15Hz.
250                Interesting note, though: all I've got to do to increase
251                or decrease the speed of the game is to change a
252                floating-point value to something other than 15 ...
253                Throw a user interface in for it, and "Turbo-mode Abuse,
254                anyone?"
255
256It's amazing how much I've been able to tinker with now that the
257DirectPlay code is more or less done...  It's also amazing how
258much of this engine's capabilities went unused by the original
259Abuse...
260
261
262January 05, 2001
263----------------
264        - Now using DirectInput for keyboard input.  Faster, better.
265                Doesn't rely on Windows messaging.  No more accidentally
266                hitting the Windows key when reaching for Ctrl, Josh...
267        - Working on DirectInput for mouse input.  Will be faster,
268                better.  Will support changing sensitivity and more
269                buttons.  (5-button/wheel mouses will be more useful
270                in Abuse, eventually...)
271
272
273January 04, 2001
274----------------
275        - Sound should never crash the Sound Server anymore (thus
276                crashing Abuse)
277        - Creating DirectPlay sessions with a much higher player limit
278                to allow for more simultaneous "virtual connections" that
279                I make with each client.  Fixes "Can't create player"
280                errors.
281
282January 03, 2001
283----------------
284        - My name's in the startup console view now...  :)
285    - Adding console view; throwing out text stat_man entirely
286        - preload.lsp now required.  This file contains startup
287            configuration for game fonts, palette, and window
288                stuff.
289
290
291Code Notes:
292        - event_handler (eh) is now created only once immediately
293                after the video mode is initialized.  Same with the
294                status_manager (stat_man).  They're both destroyed
295                when the program exits.
296        - fixed up WriteErr macro
297        - moving exit(x)'s into WriteErr, which shuts down DirectDraw
298                and shows a message box describing the error.
299        - changed sprite::change_visual() to copy the image and then
300                unlink it.  jwindow::jwindow unlinks its screen.  Did this
301                to keep them from getting destroyed when lisp is reloaded.
302        - modified NF_set_file_server(net_address *addr) to use dprintf
303                for console reporting.
304        - moving most printf's and fprintf's into dprintf to give the
305                Windows port a form of output for users to see as progress
306                indication and/or error messages.
307
308January 01, 2001
309----------------
310        - Networking supports more than 2 players
311
312December 26, 2000
313-----------------
314        - Networking is much better now.
315
316December 24, 2000
317-----------------
318        - Fixed extra line of garbage being drawn on display (really!)
319        - Networking works
320
321December 9, 2000
322----------------
323        - Fixed map display problem
324        - Added experimental logic to the sound server ...  It now
325                tries to keep the number of playing sounds managed, so
326                hopefully it'll sound better.
327        - I've set the sound to play at 44.1 khz, 16-bit which helps
328                a lot even without sound management.  Eventually this'll
329                be user-configurable, but for now it's hard-coded.
330        - And yet another improvement in the sound department -- it's
331                now in *stereo*!  If something's on your left, you'll hear
332                it from the left speaker, and vice versa.  This took me
333                *exactly* one line of code to implement.  The framework
334                already had support for panning, it just wasn't used for
335                some reason.
336        - Command line switches work now.  Try -size (and give it a
337                usable resolution, because it does no checking and will
338                just die if it can't switch modes)...  All other switches
339                should work, too.  Let me know if any don't.
340        - Fixed minor graphical glitch that made garbage show on the
341                far-right column and bottom scan line of the monitor.
342                (I think.)
343        - Threw out all of my old DirectPlay code and am starting
344                over.  I've got a better idea of what it needs to do now,
345                so I should be able to get a slightly more elegant
346                solution in place than the one I was working on before.
347                (also began reading up on Winsock 2 APIs, for possibility
348                of supporting non-Windows players)
349
350Known Bugs:
351        - Once, when I was playing around with the editor, the
352                foreground tile window filled itself with garbage.  I
353                closed it and re-opened it and it was fine.  I couldn't
354                reproduce it again.
355        - Also, once, the debugger found some bad memory allocations
356                in weird places, but it didn't affect the game, and I
357                can't get it to do it again.
Note: See TracBrowser for help on using the repository browser.