October 15th, 2018
gamedev was started before I had this site, so no official project updates
were written for any of the commits. The best way to see the updates that
occurred is to look at the
that was written during the primary development period.
If any development is done to gamedev from this point on, I will add some
updates here, until then the changelog and github commits will have to do.
January 3rd, 2016
gamedev was started as a high school project between drumsetmonkey and tcsullivan, written in C++ and using SDL2/OpenGL. The goal of this project was to have a completed commercial-grade video game available for Linux and Windows users; the plan was to profit off the game once it and the engine were finished. Through the first year and a half of development we quickly learned that the game's engine would need the most focus, as we were starting from complete scratch. Due to this, there is no playable, plot-based game (yet?).
However, the engine is still growing. Development has now slowed to a crawl with the start of our college lives, but changes will still be made every now and then. Maybe a true video game will eventually come out of this, but the engine will always remain open source.
The 'gamedev' project can be built on both Linux-based and Windows operating systems. The game has been verified (at some point) to work on Debian, Arch Linux, FreeBSD, and Windows 7/10. The following programs and libraries are required to build 'gamedev':
- SDL2, SDL2_image, and SDL2_mixer
- FreeType 2
- lua (liblua linked into program)
Windows builds are done with msys2, 64-bit. The compiler must support C++17.
The Makefile expects a file named setup.mk to exist. It needs to define two variables:
TARGET_OS = # either win32 or linux
TARGET_BITS = # either 32 or 64
A settings file must also exist. Take the sample one to start:
(from the root directory)
cp config/settings.xml.example config/settings.xml
Finally, create an output directory (used for compiling):
mkdir -p out/systems out/components
EntityX needs to be built only once before building the rest of gamedev, a library file will be outputted that the main Makefile uses for the main build.
To build the engine:
This command may be multithreaded using the -j argument.
To run on Linux, once built:
To run on Windows:
The executable takes the following arguments:
- -r, which will reset XML data and delete player data
- -d, which will initialize the engine, and then exit
- -x, tells the engine which XML file to load. Looks in the XML folder defined in config/setting.xml
-d is mainly used in conjunction with -r, to reset the XML files and then exit the game before they can be rewritten.
The following are the controls for the game. Any extra controls can be found somewhere in
Some controls can be adjusted using the in-game control menu.
- 'esc' for the menu
- 'a' and 'd' move the player left and right
- 'w' enters buildings
- 'e' opens the inventory
- 'space' makes the player jump if he obtains the jumping skill
- 'L-Shift' sprints if the player obtains the running skill
- 'L-Ctrl' decreases the player's speed
- 'h' opens a current quest menu
- 'f3' for debug information
- 'f12' for screenshot
- 't' speeds up time (ticks)