All Projects → nicupavel → Openpanzer

nicupavel / Openpanzer

Javascript/HTML5 rewrite of Panzer General 2 game

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Openpanzer

Libgdx
Desktop/Android/HTML5/iOS Java game development framework
Stars: ✭ 19,420 (+19716.33%)
Mutual labels:  game, cross-platform, html5
Megaglest Source
MegaGlest real-time strategy game engine (cross-platform, 3-d)
Stars: ✭ 259 (+164.29%)
Mutual labels:  game, strategy, cross-platform
Intrinsic
Intrinsic is a Vulkan based cross-platform game and rendering engine. The project is currently in an early stage of development.
Stars: ✭ 984 (+904.08%)
Mutual labels:  game, cross-platform
Svg World Map
🗺 A JavaScript library to easily integrate one or more SVG world maps with all nations (countries) and second-level political subdivisions (countries, provinces, states).
Stars: ✭ 38 (-61.22%)
Mutual labels:  game, strategy
Tower game
💒 盖楼游戏 html5 canvas tower building game 🏢🏬🏦🏯🏰
Stars: ✭ 1,110 (+1032.65%)
Mutual labels:  game, html5
Openetg
Stars: ✭ 32 (-67.35%)
Mutual labels:  game, html5
Expo Stack
🎮🧱 stack game clone made in expo (ios, android, web), three.js, react native
Stars: ✭ 34 (-65.31%)
Mutual labels:  game, cross-platform
Fish
golang h5捕鱼游戏
Stars: ✭ 58 (-40.82%)
Mutual labels:  game, html5
Ancientbeast
Turn Based Strategy Game. Master your beasts! 🐺
Stars: ✭ 907 (+825.51%)
Mutual labels:  game, strategy
Unknown Horizons
Unknown Horizons official code repository
Stars: ✭ 1,172 (+1095.92%)
Mutual labels:  game, strategy
Openatdeluxe
The open source remake of Airline Tycoon Deluxe
Stars: ✭ 69 (-29.59%)
Mutual labels:  game, cross-platform
Engine
C++11 and SDL2 lightweight 2d game framework
Stars: ✭ 71 (-27.55%)
Mutual labels:  game, cross-platform
Thrive
The main repository for the development of the evolution game Thrive.
Stars: ✭ 874 (+791.84%)
Mutual labels:  game, strategy
Zemeroth
😠⚔️😈 A minimalistic 2D turn-based tactical game in Rust
Stars: ✭ 940 (+859.18%)
Mutual labels:  game, strategy
Erewhon Game
Video game about programming your spaceships to destroy other programmed spaceships o/
Stars: ✭ 35 (-64.29%)
Mutual labels:  game, cross-platform
Monsterpong
Our entry for Github GameOff 2018
Stars: ✭ 23 (-76.53%)
Mutual labels:  game, html5
Knights province
Knights Province missions and wiki.
Stars: ✭ 43 (-56.12%)
Mutual labels:  game, strategy
Novelrt
A cross-platform 2D game engine accompanied by a strong toolset for visual novels.
Stars: ✭ 81 (-17.35%)
Mutual labels:  game, cross-platform
Korge
KorGE Game Engine. Multiplatform Kotlin Game Engine
Stars: ✭ 780 (+695.92%)
Mutual labels:  game, html5
Brainpowerapp
A visual memory training game, a mobile game made with Xamarin for both Android and IOS .
Stars: ✭ 17 (-82.65%)
Mutual labels:  game, cross-platform

Open Panzer - HTML5 Panzer General 2 Game

Open Panzer

http://panzermarshal.com http://www.linuxconsulting.ro/openpanzer/

Copyright(c) 2012-2020 Nicu Pavel [email protected]

The code of Open Panzer is issued under the GNU General Public License (GPL), version 2 or later. By contributing code or content to the project, you agree for it to be distributed under GPL or whatever other open-source license the project maintainers choose in the future.

http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Supported browsers:

OpenPanzer respects latest W3.org HTML5, CSS3 specs and browser specific specs are kept to a minimum -> null. Base supported javascript engine is V8 open source engine. Code should be kept to basic features of ECMAScript 5.

OpenPanzer works in recent Google Chrome, Mozilla Firefox, Safari and Opera. OpenPanzer works on Android (tested on 2.2, 2.3, 4.x) and iOS devices (5.0+).

Internet Explorer will probably work with version 11 but extensive code changes for IE aren't a priority.

Source code structure description:

.
├── css                        - style sheets used for ui elements
│   ├── fonts.css              - fonts used in game
│   ├── ui-combat-info.css     - animations used during combat
│   ├── ui-equipment.css       - equipment window style and positioning
│   ├── ui-message.css         - message windows style and positioning
│   ├── ui-startmenu.css       - main menu shown when game starts
│   ├── ui-unit-info.css       - unit information dialog
│   └── ui.css                 - main window, main menu, generic dom elements
├── js
│   ├── ai.js                  - AI engine
│   ├── animation.js           - draws a series of sprites in a time interval
│   ├── dom.js                 - generic function that deal with DOM
│   ├── eventhandler.js        - event driven function (unused atm)
│   ├── game.js                - game manager
│   ├── gamerules.js           - attack, move, resupply, reinforce, distance rules
│   ├── gamestate.js           - save/load game state to HTML5 local storage
│   ├── map.js                 - hex, map and player objects
│   ├── maploader.js           - loads scenarios and maps from a xml file
│   ├── prototypes.js          - generic definitions
│   ├── render.js              - canvas rendering functions
│   ├── sound.js               - generic unit sounds functions
│   ├── style.js               - canvas style for render.js
│   ├── unit.js                - unit and transport objects
│   └── ui.js                  - handle mouse, builds/updates UI windows
├── resources
│   ├── animations             - images with 1 row of sprites for animations
│   ├── campaigns              - campaigns and campaignlist.js index converted with tools/campaign/campaign-convert.py
│   ├── equipment              - contains units equipment/properties
│   ├── fonts                  - fonts used in OpenPanzer
│   ├── maps                   - big images for the map background
│   ├── scenarios              - scenarios and scenariolist.js index converted with tools/map/mapconvert.py
│   ├── sounds                 - sounds used for units
│   ├── ui
│   │   ├── buttons            - generic buttons (ok/close)
│   │   ├── cursors            - mouse cursors used in game
│   │   ├── dialogs
│   │   │   ├── equipment      - images for equipment buttons/dialog
│   │   │   ├── startmenu      - images for start menu dialog
│   │   │   ├── ui-message     - images for message dialog
│   │   │   ├── unit-context   - images for buttons that pop up on unit selections
│   │   │   └── unit-info      - images for unit info stats
│   │   ├── flags              - small (for cities) and big (for unit info) flags
│   │   ├── indicators         - small indicators that are drawn on the map (unit has fired)
│   │   ├── menu               - images used on main window text bar or main menu
│   │   ├── splash             - splash images used as loading screen on android/ios
│   │   ├── page               - images used outside main window
│   └── units                  - 1x9 sprites with unit orientations for each unit
├── tools
│    ├── campaign              - converts campaigns from PG2 .cam format
│    ├── equipment             - converts PG2Suite exported equipment to js equipment
│    ├── icons                 - converts SHPTool exported bmp to transparent png
│    └── map                   - converts SCN,MAP,TXT files to OpenPanzer XML
│
└── index.html                 - html file with basic DOM structure for openpanzer

Development notes:

OpenPanzer doesn't use any extra javascript libraries (like jquery, node etc), and should be kept like this. Styling DOM elements should be done in their CSS files. Adding style for static elements in the code shouldn't exist. All positioning of DOM elements should be done in CSS files. Bottom line: if something can be done in a css file then there it should go not in the javascript code. Code additions should follow the coding style used so far (for object creation etc).

Main testing is done on Google Chrome and Firefox under Linux.

Running the code locally in Google Chrome requires --allow-file-access-from-files option when starting Google Chrome.

Graphical assets and other resources:

Unit images are taken from OpenGeneral Icons project: http://opengeneral.sourceforge.net/db/icons/ This game has been built around the specification of the original game compiled by Luis Guzman: http://luis-guzman.com/links/PG2_FilesSpec.html Unit equipment is exported from PG2Suite: http://luis-guzman.com/PG2_Suite.html before being converted into a json format.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].