Readme update

This commit is contained in:
JackCarterSmith 2024-10-29 19:25:34 +01:00
parent db830a2a4e
commit 184b9aa245
Signed by: JackCarterSmith
GPG Key ID: 832E52F4E23F8F24
2 changed files with 39 additions and 1 deletions

View File

@ -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<sf::RenderWindow> mainWnd, bool dbgFlag) : mbDbgModeEnabled(dbgFlag), mMainWindow(mainWnd) {
unsigned int wndWidth, wndHeight;
GetDefaultWindowSize(wndWidth, wndHeight);

View File

@ -1,3 +1,20 @@
# ProtoTank
A quick concept of a 80s arcade game with tanks
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.
<img src="https://repo.jcsmith.fr/pictures/prototank_readme_logo.jpg"/>
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)