Announcement

Collapse
No announcement yet.

Trying to understand darkplaces source code

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • vibok
    replied
    This link is important Quake Developers Pages . Lot's of info, haven't finished reading this all yet.

    If you want info on any modern game's internals, Valve Developer Community and official unity video tutorials are really good. Pleasure to read, even if I wouldn't use neither source nor unity.

    Leave a comment:


  • vibok
    replied
    While on topic of QuakeC. Here are a few links.

    wikipedia entry: https://en.wikipedia.org/wiki/QuakeC

    Interesting video tutorial: https://www.youtube.com/watch?v=s7GGLj1yXJE

    general info on QuakeC: http://www.gamers.org/dEngine/quake/spec/quake-spec34/

    Looks like QuakeC support was dropped in Quake 2 in favour of real compilers and real dll. Carmack said that "This wasn't an option when we had to support dos, but I think it is the correct choice now." https://github.com/ESWAT/john-carmac...n_19970313.txt

    There is no reason to use QuakeC or something like that in modern games, I plan on removing it completely. But before that I'd like to dig in and see how it works. And monster ai, I'm curious how it's written, maybe I'll be able to steal some ideas from it.
    Last edited by vibok; 06-13-2017, 03:56 AM.

    Leave a comment:


  • vibok
    replied
    Things I need to understand, in makefile

    1) This bit about dependencies, at the end of makefile

    Code:
    ##### Dependency files #####
    
    -include *.d
    
    # hack to deal with no-longer-needed .h files
    %.h:
    	@echo
    	@echo "NOTE: file [email protected] mentioned in dependencies missing, continuing..."
    	@echo "HINT: consider 'make clean'"
    	@echo
    currently reading this Auto-Dependency Generation | GNU make

    2) how profiling works, and what are those gcda and gcno files

    Code:
    clean-profile: clean
    	-$(CMD_RM) *.gcda
    	-$(CMD_RM) *.gcno

    Leave a comment:


  • Baker
    replied
    Quake has 2 component to how it works:

    1) The game logic (QuakeC)
    2) The engine.

    DarkPlaces is designed to not need much engine modification. It exposes everything it can to a mod developer.

    Monster behavior, what happens when you push a button, when happens when you touch a rocket .. those all happens in the progs.dat

    You can find the progs.dat by opening pak0.pak using PakScape
    https://www.quaddicted.com/files/tools/pakscape-011.zip

    Some info here in post 2197

    Func_Msgboard: Coding Help

    Quake mods are not engine modifications. For instance, the following mod will run in any engine:

    https://www.quaddicted.com/reviews/lunsp1.html

    On that page, note the presence of a progs.dat with green check mark, it indicates that it isn't just a custom map. The author of that mod also included .qc files for custom monsters it uses.

    /Note: I don't use QuakeC. There are plenty of others who do use QuakeC.

    Whether or not you decide to learn with, say, Unity instead is up to you. Unity has plenty of video tutorials.

    Leave a comment:


  • vibok
    replied
    Code:
    ifdef WINDIR
    	DP_MAKE_TARGET=mingw
    else
    Not sure why there is so much extra space at the bottom of code blocks, tell me if somebody knows.
    Last edited by vibok; 05-29-2017, 09:39 AM.

    Leave a comment:

Working...
X