GitHub - ozkl/doomgeneric: Easily portable doom
source link: https://github.com/ozkl/doomgeneric
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
doomgeneric
The purpose of doomgeneric is to make porting Doom easier. Of course Doom is already portable but with doomgeneric it is possible with just a few functions.
To try it you will need a WAD file (game data). If you don't own the game, shareware version is freely available (doom1.wad).
porting
Create a file named doomgeneric_yourplatform.c and just implement these functions to suit your platform.
- DG_Init
- DG_DrawFrame
- DG_SleepMs
- DG_GetTicksMs
- DG_GetKey
Functions | Description |
---|---|
DG_Init | Initialize your platfrom (create window, framebuffer, etc...). |
DG_DrawFrame | Frame is ready in DG_ScreenBuffer. Copy it to your platform's screen. |
DG_SleepMs | Sleep in milliseconds. |
DG_GetTicksMs | The ticks passed since launch in milliseconds. |
DG_GetKey | Provide keyboard events. |
DG_SetWindowTitle | Not required. This is for setting the window title as Doom sets this from WAD file. |
sound
Sound is much harder to implement! If you need sound, take a look at SDL port. It fully supports sound and music! Where to start? Define FEATURE_SOUND, assign DG_sound_module and DG_music_module.
platforms
Ported platforms include Windows, X11, SDL, Soso. Just look at (doomgeneric_win.c or doomgeneric_xlib.c).
Windows
X11 - Ubuntu
X11 - FreeBSD
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK