Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by 8Observer8

  1. 8Observer8

    GameDev Books

    Updated 3/27/2019 I created a new section: Math and Physics I added a new link on this nice book: Beginning Math and Physics for Game Programmers I study how to write my own game engines using modern OpenGL/C# and WebGL/TypeScript. I advice you this book: C# Game Programming: For Serious Game Creation. This book shows how to write your own game engine with maintainable code using TDD. This is a great book. It is not for GameDev only. It shows how to develop big projects in general. I know that you like to write games using Game Engines like Unity. By this book you will know basics of Linear Algebra, Shader Math, Game Physics and so on. Shader Math is important for Unity too because you need to write shaders for Unity. HLSL and GLSL are very similar. It is a great book really. Behaviour-Driven Development: 2014 - 10 - BDD in Action: Behavior-driven development for the whole software lifecycle - John Ferguson Smart. Source Code: https://www.manning.com/books/bdd-in-action Test-Driven Development: 2013 - 12 - The Art of Unit Testing: with examples in C# - 2nd Edition - Roy Osherove. Source Code: https://github.com/royosherove/aout2 Writing Games: 2010 - 06 - C# Game Programming: For Serious Game Creation. Source Code: 9781435455566.zip (121 MB) 2015 - 09 - Build your own 2D Game Engine and Create Great Web Games Using HTML5, JavaScript, and WebGL by Kelvin Sung, Jebediah Pavleas, Fernando Arnez, and Jason Pace. Source Code: https://github.com/apress/build-your-own-2d-game-engine 2017 - 10 - Pro HTML5 Games - 2nd Edition - A.R. Shankar. Source Code: https://github.com/apress/pro-html5-games-17 2018 - 04 - Unity in Action - 2nd Edition - J. Hocking. Source Code: https://www.manning.com/books/unity-in-action-second-edition Computer graphics: 2013 - 07 - WebGL Programming Guide - K. Matsuda, R. Lea. Source Code: https://sites.google.com/site/webglbook/ 2013 - 06 - Computer Graphics Principles and Practice - 3rd Edition - John F. Hughes, Andries van Dam, Morgan McGuire, David F. Sklar, James D. Foley, Steven K. Feiner, Kurt Akeley. Source Code: http://cgpp.net/about.xml Math and Physics: 2004 - 04 - Beginning Math and Physics for Game Programmers - Wendy Stahler 2011 - 06 - Mathematics for 3D Game Programming and Computer Graphics - 3rd edition - Eric Lengyel 2011 - 11 - 3D Math Primer for Graphics and Game Development - F. Dunn, I. Parberry 2013 - 04 - Physics for Game Developers - 2nd Edition - David M. Bourg, Bryan Bywalec 2014 - 05 - Physics for JavaScript Games, Animation, and Simulations - Adrian Dobre, Dev Ramtal Multiplayer: 2015 - 05 - Multiplayer Game Development with HTML5 - Rodrigo Silveira. Source Code: https://www.packtpub.com/code_download/21527 2015 - 10 - Multiplayer Game Programming -  Josh Glazer, Sanjay Madhav. Source Code: https://github.com/MultiplayerBook/MultiplayerBook
  2. 8Observer8

    How math is used in game development?

    2004 - 04 - Beginning Math and Physics for Game Programmers - Wendy Stahler 2011 - 06 - Mathematics for 3D Game Programming and Computer Graphics - 3rd edition - Eric Lengyel 2011 - 11 - 3D Math Primer for Graphics and Game Development - F. Dunn, I. Parberry 2013 - 04 - Physics for Game Developers - 2nd Edition - David M. Bourg, Bryan Bywalec 2014 - 05 - Physics for JavaScript Games, Animation, and Simulations - Adrian Dobre, Dev Ramtal
  3. 8Observer8

    GameDev Books

    I added book links to "Math and Physics" section.
  4. Playground for WebGL and TypeScript version: https://plnkr.co/edit/7gjdZi2GNHZvtHQEMc4Y?p=preview Original Tutorial: https://noobtuts.com/python/snake-game ToDo List for OpenGL 3.1, OpenTK and C# will be here: https://trello.com/c/x8VwvUJr/3-snake-2d-from-noobtuts-in-opengl-31-and-c ToDo List for WebGL and TypeScript will be here: https://trello.com/c/9nuOiOqX/2-snake-2d-from-noobtuts-in-webgl-and-typescript
  5. You can keep your TXT files locally on the Plunker playground. For example, you have the TXT file that contains you level like this: Level_001.txt 10000 00100 00100 00100 20000 Playground As you can see I read the file with XMLHTTPRequest and print it on the page.
  6. 8Observer8

    How math is used in game development?

    This series for video lessons: Math for Game Developers contains 112 lessons for beginners. Author uses C++ but you can implement example in any language and even engine like Unity. These knowledges will be useful everywhere. Especially if you love Geometry and Linear Algebra.
  7. 8Observer8

    win32 breakout

    Yes, this tutorial is awesome! I will translate the code to OpenGL and WebGL.
  8. I realised these two situations (XMLHttpRequest and FileReader) in TypeScript. Playground Source Code on GitHub Source Code:
  9. I think, we have two different situations: The program allows to user to load files from his computer (from his hard driver) by click on the "Choose" button. In this case you need to use FileReader We have some text files in our project folder, for example, levels for our game in text format, OBJ file for 3D models, shader files and so on. And we have to load them from the HTTP server. In this case you need to use XMLHttpRequest We need some information from topic starter to understand what he wants.
  10. I think the FileReader instance can be used only with an input element. If you want to load local data from the server you need to use the XMLHttpRequest instance. Am I right? This code works if you need to load data from project folder and remote server: public static LoadUsingXMLHttpRequest( filePath: string, callback: (fileContent: string) => void): void { let request = new XMLHttpRequest(); request.onreadystatechange = () => { if (request.readyState === 4 && request.status !== 404) { callback(request.responseText); } }; request.open("GET", filePath, true); request.send(); }
  11. The readAsText() method can get the Blob or File instances. I can get the File instance from the FileList that is returned by files[0]: let input = document.createElement("input") as HTMLInputElement; let file = input.files[0]; But how to create the File instance without the HTML input element? I tried to google but I see examples with the HTML input element. My current code: public static LoadUsingFileReader( filePath: string, callback: (fileContent: string) => void): void { let reader = new FileReader(); reader.onload = () => { callback(reader.result as string); } let input = document.createElement("input") as HTMLInputElement; let file = input.files[0]; reader.readAsText(file); }
  12. Thank you for information. I did not know about FileReader. I read about Blob and File. Could you show an example how to read a text from this .txt file: https://www.w3.org/TR/PNG/iso_8859-1.txt
  13. I use the method that I read in the book: WebGL Programming Guide Authors describe in the Appendix F "Load Shader Programs from Files" how to load text files (GLSL shaders) from the project folder. You can run the JavaScript example in JSFiddle: https://jsfiddle.net/8Observer8/wdn9ubhj/ I wrote a simple example in TypeScript. You can run it in playground by click. My example just get text from here: https://www.w3.org/TR/PNG/iso_8859-1.txt and put it on the page. Playground
  14. 8Observer8

    Blender: How To Start With 3D Modeling?

    Thank you for links. I study Blender too. I want to add one of my favorite teacher - "Alan Thorn". But his courses are not free: http://3dmotive.com/softwares/blender-modo.html You can find some of his courses on Lynda too. I completed some of his courses. I need a practice. I will public results in my blog. We can discuss something. Now it is empty blog but you can follow if you want.
  15. Boilerplate Source: https://github.com/8Observer8/boilerplate-socketio-typepescript-unit-tests-jasmine-specs Run: https://boilerplate-socketio.herokuapp.com/ My boilerplate boilerplate allows: Add new clients in TypeScript using Socket.io (Now I have two clients: BabylonJS and PixiJS). Build to debug version. I use the AMD compilation and the RequireJS library. The debug version allows to set breakpoint using Chrome extension for VSCode and publish TS examples with a few file on Plunker. Build to release version. I use the CommonJS compilation, Browserify and Uglify to create a minified bundle. Build Jasmine specs for server and clients. Build Jasmine specs to debug and to release versions. Build Jasmine specs for shared script like for server. Shared script is scripts in the "shared" folder that are shared by server and client. Set up breakpoints for Jasmine specs on server and on clients. Run Jasmine specs in browser by click on the "Run Unit Tests" button: https://boilerplate-socketio.herokuapp.com/ Run Jasmine specs in Playground by click on the "Run Unit Tests" button: https://next.plnkr.co/edit/77Ex6gPTBxQyyXNML9tk?p=preview&preview Run the client and server at the same time to debug in compound mode in VSCode (see docs: Compound launch configurations) when you can set breakpoint at the server and client at the same time. Step-by-step instruction: Will be later
  16. See how it is simple to deploy your application that based of my boilerplate on Heroku: Create a new repository on Github Create a new Node.js web application on Heroku: https://www.heroku.com Set "GitHub" in "Deployment method" on the Deploy tab of heroku Push your changes on GitHub Your server and client well be deployed automatically on Heroku. Heroku will be automatically deploy your app from Github every time when you push your commits on GitHub. See the "Activity" tab when deployment will be finished.
  17. If you have a questions you can publish your Phaser/TypeScript examples on Playground to demonstrate your problem or to demonstrate your feature. I use Plunker. You can publish your example that contains a few files. This is the first example from the Discover Phaser book that animates Phaser Logo by rotating: https://next.plnkr.co/edit/NmyeEqvkRV25hYxD?preview You can fork and use it. Now you know how to publish your TypeScript multi files examples on Playground. Source code on GitHub: https://github.com/8Observer8/getting-started-with-phaser-and-typescript Later I will write an instruction how to build Debug and Release versions locally from command line on your computer.
  18. 8Observer8

    win32 breakout

    Why don't you want to open Youtube or the Internet and search: c++ breakout tutorial or c++ arkanoid tutorial I like this tutorial that was created by Mozilla team "2D breakout game using pure JavaScript": https://developer.mozilla.org/en-US/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript It uses Canvas API and JavaScript but you can translate it to C++. For example, I want to translate it to C# and OpenGL 3. I will use textures instead of colors. I will publish my result here to show you how it is simple to translate it to another language and drawing method. If you like C++ you can translate it to SFML or SDL2. They are cross-platform. I like cross-platform tools because a lot of people use Mac or Linux. But if you use WinAPI to study how Windows works - it is good.
  19. The game will be here: https://tic-tac-toe-socketio-ts.herokuapp.com/ Source Code: https://github.com/8Observer8/tic-tac-toe-socketio-ts I have connected Heroku with my public repository with code. I will use two versions of clients: Unity and Pixi.js. I will write the Pixi.js client and the game server in TypeScript. The Unity client will be for desktop. I will build client for Windows, Mac and Linux. In the future I will make clients in pure WebGL, Canvas API, BabylonJS and ThreeJS. I use: TypeScript VSCode Free Heroku hosting that are connected with GitHub. My game deployed automatically when I push on GitHub AMD and RequireJS for debug version CommonJS, Browserify, UglifyJS for release version Date: Sat Jun 29 14:22:55 2019 +0400 Added: debug mode, the main index.html file with list of clients, Pixi.js and Babylon.js client that show examples Date: Sat Jun 29 23:35:23 2019 +0400 The server sends JSON message 'Hello from server'. Client display this message on the page.
  20. I create the separate topic for my boilerplate: Boilerplate, SocketIO, Jasmine, TypeScript
  21. I added compound debugging with VSCode for Server and Client to the boilerplate: https://github.com/8Observer8/boilerplate-socketio-typepescript-unit-tests-jasmine-specs
  22. I made a boilerplate: https://github.com/8Observer8/boilerplate-socketio-typepescript-unit-tests-jasmine-specs
  23. I will rewrite examples from this book WebGL Programming Guide to OpenGL 3.1. I will commit here on GitHub. I will translate examples on C#/OpenTK and TypeScript. I hope it will be useful for someone. I work for you. Please, support me: https://www.paypal.me/8observer8 Original Examples on JSFiddle Playground I moved all JavaScript examples from the book on JSFiddle: TypeScript Example on Plunker Playground I will add TypeScript Playground example in this list: How to Build TypeScript Example locally I will inform you when I add new example in C# and TypeScript.
  24. 8Observer8

    WPG. Ports to C# OpenGL 3.1 and TypeScript

    I ported the "Colored Cube" example to OpenGL 3.1 C# Winforms and TypeScript. Chapter 07. Toward the 3D World ch07/ColoredCube: https://next.plnkr.co/edit/88OzrQSw4z64CF0C?preview
  25. 8Observer8

    wanna be 3D programmer?

    Learn C# and OpenTK. It is more simple than C++ and OpenGL. It will help you to use Engines that use C# for scripting. With C# and OpenTK you can make non-game hybrid applications with GUI in WinForms or WPF. You can draw 3D plots, 2D graphs of functions or industrial interactive 3D scenes. You will understand how shaders works and how to write your own shaders for game engines like Unity, Godot and so on. I think my ideas is good for programmers but not for designers and not for artists. I like to learn TypeScript and WebGL engines. You can start to make 3D games and interactive applications using Three.js and TypeScript. Maybe my simple 3D Snake will help you. You can play and see code on Playground: https://next.plnkr.co/edit/mGx2Qek0eTDujQDYy5tt?p=preview P.S. I made this demo using this tutorial about Unity 2D Snake I like this idea. Writing simple games can help kids and students to learn programming. It helps to learn programming deeper me too. If you add multiplayer to simple games (like card games, checkers, sea battle, snake and so on) it will be awesome. Let's practice with writing simple games.
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!