Star Engine

The StarEngine is a 2D, Cross platform (Win32 + Android) Game engine, written in C++11, developed in a time span of 4 months. The StarEngine started off as a school assignment, but soon it got way bigger than that.

Tech

Functionality

  • Complete Win32 - Android cross platform
  • Component based (managed automatically)
  • Easy to use
  • Easy set of pluggable modules
  • Easy to add new modules

Features

OpenGLScenes
SpritesheetsA* Pathfinding
AudioText Rendering
Home made collision systemUI System
Gesture system and input abstractionXML parser
Camera systemResponsive layout
Timer / Stopwatch systemCustom manifest files
Doxygen documentationMakefiles

My contributions

  • Input system / abstraction (keyboard, controllers, multitouch)
  • Gesture system
  • Collision handling (AABB / OOBB, Circles, Points and Lines)
  • Logging abstraction
  • Uniform scaling system (Aspect ratio independent)
  • Text rendering

Class diagram

See it here

Showcase

The engine was used in several small games to test it.

What we learned

  • How the JNI works and how to use externs in C++.
  • OpenGL
  • GLSL
  • Makefile syntax
  • Cross platform development
  • Git
  • Android’s event system

What we would change if we’d do it again

  • Create a planning
  • Define working hours to avoid spending too much time
  • Split tasks into smaller tasks
  • Have 1 responsible person for the Git repo. (merging)
  • Report bugs instantly & give clear description
  • Write documentation at the same time as the code
  • Motivate each other & ask for help faster
  • Everyone does code reviews!
  • Everyone accepts code reviews
  • Avoid hacky solutions
  • Plan tasks on paper
  • First Research, then program
  • When learning git, start with a test project

Team:

Glen De Cauwsemaecker, Cedric Van de Walle, Simon Vanhauwaert


© 2020. All rights reserved.