2dgd-f0th / 2dgd_f0th Goto Github PK
View Code? Open in Web Editor NEW[CC BY-NC-SA] A compendium of the community knowledge on game design and development
Home Page: https://therealpenaz91.itch.io/2dgd-f0th/
License: Other
[CC BY-NC-SA] A compendium of the community knowledge on game design and development
Home Page: https://therealpenaz91.itch.io/2dgd-f0th/
License: Other
For now, I am using a custom LaTeX \code{}{}
block that imports automatically a code block for the selected language (in the metadata.yml
).
This won't work well for an Epub release, maybe using a haskell/Lua filter?
It could be a good idea to create Ruby listings to support some interesting Ruby-based toolkits.
One of the new languages I want to add in this book, is Lua (which is widely used in the field, due to modding and the Love engine).
This may prove to be hard due to lack of native classes and my scarce knowledge of the language.
In some editions they return a boolean, in others an index.
It would be nice to be able to rewrite the listing_status script with two things in mind:
As of now free, paid, and donation products symbols are created via latex commands, this should be converted to a filter
When gating a reward behind a challenge (in roguelikes) or any kind of unlockable, the unlockables should be
If we put only a negative unlockable, the player (even more in the age of wikis) will avoid unlocking it. A possible solution is putting the "negative" inside a bigger requirement for a positive thing (for instance beating a boss may yeld a negative item, but beating all available boss monsters may unlock a powerful positive item)
For now, the book uses some custom packages to import some symbols (like the degree symbol), but this isn't compatible with MathML (it fails to translate \degree
).
It seems that not many ereaders support EPub3 (which uses MathML), but I don't really want to use --webtex
, which makes the release times 10x longer.
A local service would be nice.
Here are some suggestions of how to make the book more usable for groups/platforms that can distribute your book widely. (I'm thinking of the Open Educational Resource/Textbook folks.)
In order for the CC License to work, you need one or more copyright owners (It's a copyright license). Thus you need a copyright statement and date in the front matter. For usability, it's best to enumerate the copyright owners; even if you have many contributors. The CC license is irrevocable; having multiple owners makes it difficult to enforce the license.
Put a link to your repo in the front matter.
Give yourself attribution in the front matter! Either editor or author is fine - if you can have a dedication, you should have an attribution. In fact, your CC license requires attribution, so make it easy!
Consider building 3 editions for your three language versions. Expecting readers to build it themselves is a high barrier. Your build ~~~may~~~will have dependencies that break the build in the future.
Give each edition their own edition subtitles.
Include edition and version info in the front matter.
As it stands now, the "Collision detection" section is content-rich but really messy. It should probably get sorted like follows:
Each chapter has a quote using latex's \epigraph
command.
We need an epub friendly way to make this hapoen, maybe via filters
It would be nice having a better designed and more captivating cover, as well as a back cover.
This may be interesting to talk about in the project management section.
As of now, the front matter is part of the LaTeX template, it's better to prepare some space for the front matter inside the template but keep it as a markdown document, this should also help with the template cleanup and the Epub version.
Collision reaction is chaotic, messy and badly explained, it should be restructured.
Put more emphasis on shallow-axis reaction, followed by other, more specific stuff.
See helio.fm website
Some images could benefit from vector conversion, those are usually images that represent diagrams.
Follows a list of those I think can be redone as vector:
As of now the front cover doesn't report the edition, or in some readers (like koreader) doesn't even show correctly.
It doesn't import code correctly, no highlighting for pseudocode edition (for sure, idk about the others), too much spacing, definitely different from inline code.
It seems that there are errors in the C++ Listings, mostly when declaring arrays.
It has been too long since I properly coded in C++.
Explain how to make a "bounce" transition, where at around 80% of the time passed, the property is at around 120% of the value, the rest of the time is used to get back to 100%.
This may give a better feeling in some UIs and may be an interesting effect to teach
The later sections contain a lot of the LaTeX \checkmark
command, which should be replaced with something more friendly to a future epub release, like a simple Lua filter.
Since the amount of minutes available in GitLab has been greatly reduced and the fact that GitHub releases keep breaking, I think I'll just discontinue them.
Need to remove everything from the releases and artifacts, as well as changing the README file to direct people to the Itch page.
At the moment all chapters are slapped into a single folder, which leads to some chapters being really long, like:
This can make it harder to work on single topics. Maybe switch to a nested folder structure, like part/section/subsection.md
along with the changes that may happen in #43 .
It could be an idea to separate the book structure further, into sections. Possible names:
Pandoc 2.14 makes it so that svg images are not found anymore and the build breaks down badly.
This should be easy, done via Lua Filters, shows a simple string.
Instead of a LaTex \placeholder
command, we can make something akin to the {{hello_world}}
command inside a lua filter.
This should reduce the amount of raw LaTeX in the book.
It seems that the glossary contains some commands to avoid numbering sections that mess up the Table of contents, making it less accessible.
It would be a good idea to remove them and replace them with something better, also for the benefit of avoiding raw LaTeX in the documents.
In a far off future, Java could be included in the languages we can make an edition of.
Maybe.
I think the Epub Edition lacks the back cover, should add it at the end
It is needed to check if inline LaTeX is working with an EPub release and eventually find a new way to use custom tables (which are needed with Karnaugh maps)
Bring example of Disney making SecuROM DRM license expire, thus making Tron: evolution impossible to play or activate.
Consequences are obviously unsatisfied customers and people resorting to piracy
It has no substantial difference with the one with "syntax highlight". The next release won't have this edition at all.
To force a new page (when changing chapters), we make use of the LaTeX \null\clearpage
command.
This won't work on Epub, there is a good inspiration for an "epub friendly" command in the following Lua Filter: https://github.com/pandoc/lua-filters/blob/master/pagebreak/pagebreak.lua
It could be an idea to translate the code listings into ES6-compliant javascript, since it has support for classes.
This would broaden the demographic and help more people learn.
Practically all engines make use of "scenes" and "scene trees".
Maybe an introduction to them in a generic way (I don't know about "programming them"), could be useful.
I was thinking about renewing a bit the boxes:
rand()
image as iconIt could be a nice idea to insert "addons" so people can learn algorithms in their favourite framework.
dynamic_listings/python/default
folderdynamic_listings/python/pygame
folderThis obviously limits the number of addons for each edition, but I think it's more than enough.
For puzzle platformers it seems that it's a liked idea to make wrapping screens (exit right, re-enter left). Talk about how to implement that.
the link name in this pic should be << extend>> not << include>>
https://github.com/Penaz91/2DGD_F0TH/blob/master/images/computer_science/use_case_extension.svg
There is already a filter to convert "fenced divs" into colored boxes for "pitfalls", "tips" and "trivia".
Need to check if they work on EPub (yhey may have no styling) and eventually adapt the Lua filter to support the Epub Format
In some games it is important to record inputs or at least a "lightweight video" (like the position of the player) so that cheated runs are easier to detect.
Use trackmania as an example.
Talk about how to animate multi-sprite objects like some huge bosses that are made in some games
For now, the pseudocode is really all over the place, it has no consistency: it goes from C-like to Python-like to something that is neither.
It absolutely needs to be made more consistent.
Insert some topics on how to implement and write Adaptive music
A widely used language in game development is C#, which is used in Unity.
I know a tiny bit of C#, but not nearly enough to be sure that what I write is semantically (as well as syntactically) correct.
There is surely one part where i used minipages to split the page in two to show examples side-by-side.
This doesn't work with epubs, neither in code nor in concept. Let's just make them one-after-the-other.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.