1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
gamedev
=======
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.
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 most likely always remain open source.
Build Requirements
------------------
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 through 10. The following programs and libraries are required to build 'gamedev':
* make
* g++
* SDL2, including SDL2_image and SDL2_mixer
* FreeType 2
* GLEW
* giflib
* lua (liblua linked into program)
Windows builds are done with msys2, 64-bit. The compiler must support C++17.
Build Preparation
-----------------
The Makefile expects a file named setup.mk to exist. It needs to define two variables on two lines:
```
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 out
```
Building
--------
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.
```
cd entityx
make
cd ..
```
To build the engine:
```
make
```
This command may be multithreaded using the -j argument.
To run on Linux, once built:
```
./main
```
To run on Windows:
```
main.exe
```
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.
Controls
--------
The following are the controls for the game. Any extra controls can be found somewhere in ```src/ui.cpp``` or ```src/player.cpp```
Some controls can be adjusted using the in-game control menu.
Movement:
* '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
Other:
* 'f3' for debug information
* 'f12' for screenshot
* 't' speeds up time (ticks)
|