Skip to content

tcsullivan/gamedev

Repository files navigation

Hey! We're giving this another go! gamedev2

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 (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.

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/10. The following programs and libraries are required to build 'gamedev':

  • make
  • g++
  • SDL2, 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:

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

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:

  • '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

Other:

  • 'f3' for debug information
  • 'f12' for screenshot
  • 't' speeds up time (ticks)

About

A 2D video game project

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages