diff --git a/Game.cpp b/Game.cpp index 9d0727f..e78205c 100644 --- a/Game.cpp +++ b/Game.cpp @@ -14,6 +14,27 @@ using std::make_unique; Game* Game::smInstance = nullptr; + +/* + Game class is the conductor of every part of this "piece of scr*tch" game engine. + + Only keyboard is implemented as input (but mouse alse for debug purpose). + + SFX and music are planned later... + + Rendering will be done with CPU intrinsics (SIMD) if available. + Both 2D and 3D rendering is mixed to display interface to the player. + The static and UI element are 2D. The world and some pieces of the UI are in 3D. + For simplicity (and somehow, style effect), the game is in wireframe like old arcade game. + > Game instance call UI Update() method for quick computation of state, but only + a call to the Draw() method will proceed to the pixels drawing. + THIS SHOULD NOT BE USED TO UPDATE THE WORLD STATE OR ANYTHING ELSE THAN UI! + + World is the module responsible of the game elements states, FSM and start/end condition. + > The method Tick() is used to compute new elements states + + More details to write here... +*/ Game::Game(std::shared_ptr mainWnd, bool dbgFlag) : mbDbgModeEnabled(dbgFlag), mMainWindow(mainWnd) { unsigned int wndWidth, wndHeight; GetDefaultWindowSize(wndWidth, wndHeight); diff --git a/README.md b/README.md index 1a8dc88..0fa33da 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,20 @@ # ProtoTank -A quick concept of a 80s arcade game with tanks \ No newline at end of file +A quick demonstration of the development of my skills in video games and C++ programming. + +It (should be) a "very dirty" 80s-style arcade game with tanks. + + + + +I like big-canon, ballistics, retro and simulation, and that's where the initial concept came from. +The similarity with Battlezone (Atari, 1980) or 3D Tank Duel (ZX Spectrum, 1984) only became apparent to me later in the development. + +The game itself isn't very polished. Mainly focused on game engine design, state-of-the-art rendering, and CPU-accelerated computing techniques. + +This code has been written with experimentation and education in mind. It is subject to the MIT license. + +I've used some libs for backend "boiler plates" like: +- SFML (window management) +- tinyobjloader (OBJ file loading) +- Tweaked DirectXMath (Heavy math duty) \ No newline at end of file