Platformer made in Visual-ts game engine
About
Config property defined in constructor from ServerConfig class in interest way. With two defined flags dev & prod it is easy resolved boring problem with migration localhost - public server:
// enum : 'dev', 'mongodb.net' or 'prod' this.serverMode = "dev"; this.networkDeepLogs = false; this.rtcServerPort = 12034; this.rtc3ServerPort = 9001; this.connectorPort = 1234; this.domain = { dev: "localhost", prod: "maximumroulette.com" }; this.masterServerKey = "maximumroulette.server1"; this.protocol = "http"; this.isSecure = false; // localhost this.certPathSelf = { pKeyPath: "./server/rtc/self-cert/privatekey.pem", pCertPath: "./server/rtc/self-cert/certificate.pem", pCBPath: "./server/rtc/self-cert/certificate.pem", }; // production this.certPathProd = { pKeyPath: "/etc/httpd/conf/ssl/maximumroulette.com.key", pCertPath: "/etc/httpd/conf/ssl/maximumroulette_com.crt", pCBPath: "/etc/httpd/conf/ssl/maximumroulette.ca-bundle" }; this.appUseAccountsSystem = true; this.appUseBroadcaster = true; this.databaseName = "masterdatabase"; this.databaseRoot = { dev: "mongodb://localhost:27017" , prod: "mongodb://userAdmin:********@maximumroulette.com:27017/admin" }; this.specialRoute = { "default": "/var/www/html/applications/visual-typescript-game-engine/build/app.html" };- Running server is easy : From root folder (not from server folder). If you wanna use node.js debugger you need to fix path for the certs.
npm run rtcWith this cmd : npm run rtc we run server.js hosting and connector.ts websocket session and webrtc broadcaster.ts. Connector is our account session used for login, register etc. Implemented video chat based on webRTC protocol. Running rtc3 server is integrated. If you wanna disable session-database-rtc3 features and run only broadcaster:
Features comes with broadcaster:
- Multiplatform video chat works with other hybrid frameworks or custom implementation throw the native mobile application web control (Chrome implementation usually).
GUI Tools
To get GUI tools first download python3 for your OS. creator2dmap is python3 canvas oriented application.
cd tools git submodule init git submodule update // or git clone --recurse-submodules https://github.com/zlatnaspirala/visual-ts-game-engine // update git fetch git mergeIn this way you will get project: https://github.com/zlatnaspirala/creator-2dmap intro tools/creator2dmap/ folder.
Start application with:
python.exe tool.py (win) ./python3 tool.py (macos)Documentation:
Follow link for API: [WIP] Application documentation
Possible to install from (It's good for instancing new clear base project):
npm i --save visual-tsTake a look this repo (it is example for approach npm i visual-ts) https://github.com/zlatnaspirala/visual-ts-module
Work with visualTs like package library will be full teste in next commits.
If you wanna generate doc you will need manual remove comment from plugin section in webpack.config.js. Restart 'npm run dev' Best way to fully healty build.
If you wanna insert some new html page just define it intro webpack.config.js :
plugins : [ new HtmlWebpackPlugin({ filename: '/templates/myGameLobby.html', template: 'src/html-components/myGameLobby.html' }), ...- See register and login example.
Code format :
npm run fix npm run tslintor use :
tslint -c tslint.json 'src/**/*.ts' --fix tslint -c tslint.json 'src/**/*.ts'Abour visual tools
Based on python3 tk tech.It is standalone git project imported like git submodule.
https://github.com/zlatnaspirala/creator-2dmap
Important - About tools setup
After setup run python app from cli with command:
npm run creator
Public stage server / Tutorial demos
ACTUALLY SERVER IS RUNNING - You need to register.
Basic examples - How to create instance of engine. With minimum elements and features.
Static object vs Free
Webcam stream loaded as player skin
Platformer example without networking
Single player platformer
Multiplayer - With Account session
Multiplayer platformer
Multiplayer/webCam inside gamePlay - With Account session
Video chat platformer
Licence
Visual Typescript Game engine is under:
MIT License generaly
except ./src/lib. Folder lib is under:
GNU LESSER GENERAL PUBLIC LICENSE Version 3
External licence in this project:
- Networking based on :
Muaz Khan MIT License www.WebRTC-Experiment.com/licence
- Base physics beased on :
Matter.js https://github.com/liabru/matter-js
Sprites downloaded from (freebies/no licence sites):
- https://craftpix.net/
- https://dumbmanex.com
- https://opengameart.org/content/animated-flame-texture
- https://www.gameart2d.com/
- https://www.behance.net/JunikStudio
In Dreams by Scott Buckley | www.scottbuckley.com.au Music promoted by https://www.chosic.com/free-music/all/ Attribution 4.0 International (CC BY 4.0) https://creativecommons.org/licenses/by/4.0/
Todo list for 2020
I'am still far a away from project objective :
- Make visual nodes for editor mode in game play.
- Item's selling for crypto values.
- Create examples demos in minimum 20 game play variants (table games, actions , platformers , basic demo trow the api doc etc.).
- Implementing AR and webGL2.
Platformer single player solution
version 0.3.4
Published on apps facebook
http://apps.facebook.com/nidzica
Donate my work