Skip to navigation
Logo Penaz's Area

cat /dev/random > penaz

"2DGD_F0TH": Poll results, analysis and thoughts


In this post I will take a look at the results of the twitter polls, and discuss some problems that arose and will probably have to take back my word.

This is a follow up to a previous post: check out "2D Game Development: From Zero To Hero - 2 years later" first.

There are very few things I despise more than having to take my word back. I always strive to deliver on what I promise, sometimes to a fault.

This time, I have to take back my word, at least partially, and here I will explain why.

Be aware: this post will contain technical jargon, I will try to simplify as much as possible, but I may fail.

The polls

On January 26th, I decided to open a couple of 7-day-long polls to understand what people were expecting from the project in its near future.

The first question was about the format: I asked what format people preferred the book to be published in among these:

  • PDF (27.3%)
  • EPub (18.2%)
  • Both EPub and PDF (54.5%)
  • Online (0%)

As you can see over half of the people who voted (11 to be precise), would like to see both a PDF and an EPub Release.

The second question was about what should the next "edition" cover, to see what language I should cover next:

  • Lua (60%)
  • C# (40%)
  • Something else (0%)

As we can see, Lua won with 60% of the votes (sadly only 5 people voted on this poll).

The languages

I know a fair number of languages, including C++, Python and Java, but I cannot possibly know them all.

Lua is a bit in a weird position: I can read it, I can do small things with it (some filters I use to produce the book are written in Lua), but I'm not a "Lua expert" by any means.

Lua is also quite a peculiar programming language: it has no class system, but it does have quite powerful metaprogramming capabilities (so if you wanted, you could make a "class system" from scratch), it has a powerful complex type called "tables".

Translating the current code in Lua would be quite a big and complex matter for me.

I'm a total newbie at C#, I started learning it in the past, hoping to get some new knowledge and spark some new will to learn. Sadly I stopped.

Making a C# edition would be a good excuse for me to learn C# again, but it would be a big task nonetheless.

The formats

This is another sore point of the project: as of now (and the foreseeable future) an EPub edition is not possible.

There are multiple reasons and I will explain them one after the other.

Embedded PDFs

To maintain crisp images throughout the book, I decided to make use of "Vector PDF" files, that allow the user to zoom into the images as much as they want without looking pixelated.

On the Calibre ebook reader those images are not shown, and I get a lot of console errors due to "sandboxing". I didn't delve further into the matter.

ERROR: clbr://internal.sandbox/book/__index__:0: Failed to load 'clbr://internal.sandbox/book/EPUB/media/file1.pdf' as a plugin, because the frame into which the plugin is loading is sandboxed.

Math Formulas

Another problem that pops out is due to math: some pieces of LaTeX math I used are not recognized and cannot be converted to MathML:

[WARNING] Could not convert TeX math '180\degree', rendering as TeX:
  180\degree

This is a simple example, but matrices and other math is affected, either due to the use of \degree , \textcolor or \bcancel .

These errors don't stop the build, but leave a broken ebook, with missing parts.

Embedded LaTeX and Dynamic Code Listings

There have been some situations where I really needed something (like a table) made exactly a certain way, and I didn't want to just make an image out of it, so I decided to just embed LaTeX code inside the Markdown document.

\begin{table}[H]
    \centering
    \caption{Karnaugh Map for A XOR B}
    \begin{tabular}{|c c|c c|}
        \hline
        & & \multicolumn{2}{c|}{A}\\
        & & \textbf{0} & \textbf{1}\\
        \hline
        \multirow{2}{*}{B} & \textbf{0} & 0 & 1 \\
        & \textbf{1} & 1 & 0\\
        \hline
    \end{tabular}
\end{table}

This is not a problem when it comes to render a PDF document: the Markdown document gets converted to LaTeX anyway and the inline LaTeX I wrote just gets passed through.

The problem comes when I have to publish to EPub: the LaTeX gets completely ignored and scrapped. Leaving nothing behind.

This also happens for another huge feature of this project: the dynamic code listings. To be able to quickly build all the editions, I created a LaTeX command:

\code{filename}{caption}

Meaning the great majority of (if not all) code listings are missing in the "draft EPub".

Further issues

Along with these problems, some may have noticed that the Travis build of this book is failing. I cannot pinpoint the cause of it, so every time I release the book I have to manually upload the releases on GitHub.

I have been thinking of dropping the GitHub Releases and GitLab Artifacts in favor of just using Butler to push on Itch.io.

Time to take back my word

Here comes the hard part for me: I have to scale back on my plans. And this entails me "taking back my word".

As much as I wish to release an EPub "branch" of this ebook, this won't be possible in the near future. Lots of things need to be reworked, a new template should be built, as well as its CSS and front matter.

Sadly there won't be a Lua or C# Edition either. I don't know enough of the languages yet, and I do not have the time (and most of all, willpower) to learn them at the moment: work is not being kind to me, and being a software developer, I don't really look forward to see more code when I'm off.

The future of the project

The project is currently on a hiatus: as I said, work is not being kind to me, and I just try to gather back some energy before pushing for more content. I'd rather focus on quality over quantity, even at the cost of waiting a lot more for a new release.

So we may just say:

There will be an EPub release in the near future.

There will be both Lua and C# releases in the near future.

Just not now.

I will be working to reduce the amount of LaTeX and improve compatibility and lower the barrier of entry for contributors, making the book more "universal" and just better.

This project has gained a bit of traction, some people added it to their "collection" on itch, daily downloads are "low" but not zero.

Sadly I don't believe this is quite "enough" traction to warrant essentially "doubling my workload" (by creating more editions) for it. It may be just my perfectionism speaking, but I really want to see this project grow.

On GitHub this project is stuck around 45 stars, (7 on GitLab) and it's currently plateauing.

I personally believe this is a good project. I truly do. I am repeating myself, but I want to see this project grow and maybe, just maybe, in the future see someone publish their first game and say "I started from here, from this book".

What can you do

The only thing I can ask for is, if you want, take the time and spread word about the project. It's free and goes a long way, I already saw the effects of it.

This project is free and will remain free forever, it is meant to be a starting point for anyone who wants to make a game.

I conclude this post with the link to the ebook's official Itch page.

Link to the Itch.io page of the book

And if you have any suggestion, feel free to send me a tweet or open a GitHub issue, my socials are in the footer of this blog.

Thank you for reading this long, drawn-out rant, and if you decided to spread word about the project, thank you twice as much.

Penaz.