Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(1 edit)

First of all: thank you very much for your kind words and thank you for taking the time for writing them. And most of all: thank you for recommending the book!

The issue that you brought to my attention is absolutely valid:

  • C++ is complex and requires a lot of "manual operations", including memory management, 95 (!!) reserved keywords to remember and pointers. It's obviously the "most powerful" solution, but also has the "highest maintenance cost".
  • Python is a strange beast, it's easy to write code with it, but it's hard to write "high performance code", sometimes it can be next to impossible (Global Interpreter Lock, for instance, can be seen as an obstacle to CPU-bound multi-threading). My reason for making an edition in this language is two-fold: I'm mainly a Python Dev, so it's good exercise, and I see python as a good entry-level general-purpose programming language.
  • Pseudocode is not a real language, but it's a helpful tool if someone wants to understand just the concept of an algorithm, without being tied to a real-world programming language.

I've been thinking about making an ECMAScript6-compliant JavaScript edition, since it has better support for Object-Oriented paradigms, but never made a "To-do" kind of note. If all goes well, I wouldn't exclude taking some time to make a JavaScript edition in the near future.

Sadly my experience with the Ruby language doesn't go further than configuring Vagrant virtual boxes, but at the same time Ruby is one of those programming languages that fascinates me, so I don't exclude a Ruby release in a distant future.

I want to mainly focus on free/open source solutions, so if you happen to know some frameworks, game engines or libraries that use Ruby or JavaScript that are well-known, please let me know, I will check on them and eventually add them (also let me know if you want to be credited for that!)

Again, thank you for your kind words and suggestions.

Take care!

Penaz.

(1 edit)

I’m glad to hear your response Mr. Penaz.

Well first the bad news.

I haven't personally used any open source Javascript frameworks aimed specifically for game development but there are sure many of them which you can take a look at here: https://gamefromscratch.com/javascript-game-engines/

However the best JavaScript game engine that I know of is the MV engine by RPG Maker.

Unfortunately, regarding the JavaScript documentation, like any run-of the-mill JavaScript API, it is badly documented for RPG Maker. There is an incomplete documentation of the JavaScript code used in RPG Maker MV engine at this link:

https://forums.rpgmakerweb.com/index.php?threads/jump-into-javascript-a-breakdown-and-explanation-of-the-default-js-files-in-mv.74928/

Despite being released since 2015, there isn’t any official documentation of the JavaScript code released by Degica, the proprietary company of the MV engine. (at least in my knowledge).

GameDevs tend to just wing it when using the MV Engine. It’s JavaScript afterall.

That’s why there are huge third-party repositories in existence detailing third-party plugins.

Here is the largest plugin library regarding the MV engine in Javascript:

http://yanfly.moe/category/yanfly-engine-plugins/

This library itself links to scores of other plugin libraries. Most of us have had our hands full with them yet the inherent lack of order that is inherent to the JavaScript community technically condemns most RPG Maker MV games to be of shoddy quality (as you may know the reputation that RPG Maker games have on platforms such as this very website or on Steam etc.)

This is why I am humbly requesting a JavaScript version of your awesome book;

to bring order to the chaos.

The most decent introduction to this JavaScript engine I could find is this:

https://www.gamedeveloper.com/programming/rpg-maker-mv-scripting-first-impressio...

Also, don't forget the awesomeness that is SRPG Studio: https://store.steampowered.com/app/857320/SRPG_Studio/

It's codebase is also entirely written in Javascript.

================================================================

On the brighter side, 

Regarding open source Ruby game development, look no further than the Gosu Library: https://www.libgosu.org/cgi-bin/mwf/board_show.pl?bid=2

In addition, unlike the JavaScript MV engine, the more matured RPG MAKER VX Ace engine has full official AND third-party documentation of its Ruby code.

INTRO: https://www.gamedeveloper.com/programming/rpg-maker-vx-ace-ruby-scripting-crash-course

Here is the OFFICIAL documentation for the Ruby code used in VX Ace:

https://dlscrib.com/download/rpg-maker-vx-ace-help-rgss3-reference-manual_5830548e6454a7646bf32c9a_pdf

This is the basic manual that all budding Scripters begin with. We RPG Maker gamedevs use it as a reference.  

There is no better official introduction to the Ruby Game Scripting System 3 (RGSS3 for short) that is used in the RPG Maker VXAce engine based off Ruby version 1.9.

RPG Maker XP might be the more famous engine, but it uses the older Ruby version 1.8 which isn’t my cup of tea. This is also well documented: http://www.rpg-maker.fr/dl/monos/aide/xp/index.html?page=source%2Frgss%2Findex.h..


Next, a deep dive into the code; the complete full fledged in-depth third-party documentation of RGSS3 :

https://forums.rpgmakerweb.com/index.php?threads/slip-into-ruby-an-introductory-guide-to-rgss-for-beginners.38900/

It took an eternity to fully compile the RGSS3 documentation. It even has been listed on Ruby Gems:

https://rubygems.org/gems/rpg-maker-rgss3/versions/1.02.0

In fact, there is an entire wiki dedicated to the VX Ace engine, https://rmvxace.fandom.com/wiki/RPG_Maker_VX_Ace_Wiki

Plus there is a Japanese language wiki about RGSS3

https://rgss3.wiki.fc2.com/

(No fret, Ruby code is one of the most English dependant languages out there. You’ll be able to read the code even if the website is in Japanese!)

FINAL THOUGHTS

When it comes to OOP game development using interpreted languages, starting with the JavaScript MV engine might seem logical, but you’ll get bogged down like the rest of us in the chaos that is its code base.

The good news is that JavaScript MV engine’s chaotic codebase is mostly a translation of the older Ruby codebase found in RGSS3. 

The RGSS3 codebase has been fully documented, and once known, one can easily transfer all of its concepts over to the JavaScript codebase in my opinion.

Hence it is easier and more effective to start with a Ruby background, instead of spending an eternity trying to bring some order to the JavaScript camp from the get go in my opinion.  Besides, your book could be a huge boost to the Gosu community.

Heaven knows that they need all the help that they can get. 

(P.S. the Gosu games aren't all that good IMHO).

In any case, these engines serve as a proving ground for newbies (like myself) before they move onto more in depth books as yours in order to make some truely professional games from scratch.

Migrating from either Ruby or Javascript into Python, let alone C++ is setting the bar a bit too high.

I do urge you to not overextend yourself in trying to fix the pseudocode version of your book. I don’t think many people like pseudocode anyway.

Instead focus on the only two standard programming languages that are used as the fundamental code base for official and non-proprietary 2D game development engines; Ruby and Javascript; as new versions of your book for those who want to strike it out on their own. 

Let me know if you need more info.

Thank you kindly for your reply and all the material!

I personally don't want to tie myself to any engine just yet, but I am thinking about making a system that would allow me to swap out code listings with more flexibility, so I could offer working code that can be written down and (mostly) work.

I have to let all this information settle down in my mind before tackling some of the sources you mentioned.

In case you have more suggestions or requests, feel free to open a topic in the "community section": https://therealpenaz91.itch.io/2dgd-f0th/community

Thank you very much.