Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Aug 11 2017 10:07

    lierdakil on master

    Typed emitter Use typings-provided IEventDesc (compare)

  • Aug 11 2017 10:07

    lierdakil on master

    Update typings Moved common.d.ts types to typi… (compare)

  • Aug 11 2017 09:31

    lierdakil on master

    bump submodules (compare)

  • Aug 11 2017 08:46

    lierdakil on master

    bump submodules (compare)

  • Aug 10 2017 18:46
    mrkaspa closed #218
  • Aug 10 2017 18:46
    mrkaspa commented #218
  • Aug 10 2017 16:56
    lierdakil commented #218
  • Aug 10 2017 16:41
    mrkaspa opened #218
  • Aug 10 2017 00:28
    lierdakil closed #209
  • Aug 09 2017 23:52
    lierdakil commented #210
  • Aug 09 2017 23:51

    lierdakil on v2.0.2

    (compare)

  • Aug 09 2017 23:51
    lierdakil closed #210
  • Aug 09 2017 23:51

    lierdakil on master

    Update typings Fix #210 Update CHANGELOG and 1 more (compare)

  • Aug 09 2017 23:09
    vitormmatos opened #210
  • Aug 09 2017 21:44

    lierdakil on master

    Define Symbol.asyncIterator Update CHANGELOG Prepare 2.0.6 release (compare)

  • Aug 09 2017 21:44

    lierdakil on v2.0.6

    (compare)

  • Aug 09 2017 18:46
    karljs commented #207
  • Aug 09 2017 18:04
    lierdakil edited #209
  • Aug 09 2017 18:04
    lierdakil commented #209
  • Aug 09 2017 18:03

    lierdakil on master

    Fix run-filter type Prettify editor controller Reworked editor controller inte… and 3 more (compare)

matrixbot
@matrixbot
s0da on Freenode lierdakil: ok
s0da on Freenode lierdakil: im not a complete noob, but inexperienced. i have experience in BlitzBASIC, BASIC, Visual BASIC, and C++
s0da on Freenode (so FORCING a programmer to only declare variables at the start of a procedure/sub-routine is NOT a Good Thing? serious ques. im not being sarcastic, im just ignorant.)
matrixbot
@matrixbot

lierdakil > <@freenode_s0da:matrix.org> (so FORCING a programmer to only declare variables at the start of a procedure/sub-routine is NOT a Good Thing? serious ques. im not being sarcastic, im just ignorant.)

That depends on who you ask, but the general wisdom nowadays is it's not usually a good idea -- if a lanugage needs local varaible declarations, it's generally more convenient to have those declarations close to where the variables are used. For example, consider a procedure with a for-loop. In modern C++ you would write for(int i = 0; i < 10; ++i) {...} and be done with that. In ye olden Pascal you'd have to declare that int i at the beginning of the procedure.

s0da on Freenode lierdakil: i see where oure going with that. :)
s0da on Freenode *youre
s0da on Freenode in college, they reiterated the importnce of declaring everything at the beginning
s0da on Freenode like its the "right way" to program
matrixbot
@matrixbot
s0da on Freenode but our programming languages did not strictly enforce that
s0da on Freenode (the proffesors did when grading, tho)
matrixbot
@matrixbot
lierdakil What Haskell is good at (as is any language with very strict type system) is requiring a certain degree of "reasonable-ness" on the code. It achieves that by requiring a degree of mathematical strictness on the expressions allowed in the language by the application of type theory. For instance, in C you can write char * nextIdentifier = "myIdentifier"+100. If you're reasonably familiar with C, you will recognize this as horrible code that leads to undefined behaviour (likely not at all what the programmer intended). In Haskell, you can't do stuff like that unless you are really, and I mean really determined to break it. This is of course a trivial example, so it doesn't communicate the full power of Haskell's type system. But essentially, a well-typed program is an "automatically" proven mathematical theorem about how the program will behave (fair warning: there are a few caveats with that notion, but it more or less holds in most cases)
matrixbot
@matrixbot
lierdakil On the other hand, a language with very strict type system will reject some code that actually works, but does not conform to the abstract idea of "reasonable-ness". For instance, you can't easily write "fast inverse square root hack" aka 0x5F3759DF in Haskell. (see https://en.wikipedia.org/wiki/Fast_inverse_square_root if you're not familiar with this gem)
matrixbot
@matrixbot
lierdakil Out of all typed languages I am familiar with, Haskell has the richest (i.e. the most powerful) and the strictest type system. So by that measure, it will enforce a significant degree of well-formed-ness on programs. But it's definitely not an easy language to write in, and it will not let you write some that might technicallly work, but which can't be "proven" (in the sense of "proof" in type theory) to work. And in some cases, it takes a lot of work (and abstract math knowledge) to convince the Haskell compiler that the code you wrote actually works -- this mostly happens only when you delve deep into the arcane side of things.
lierdakil *will not let you write some code
s0da on Freenode so the compiler wont let you do certain things.
matrixbot
@matrixbot
s0da on Freenode with me, that's probably a good thing
s0da on Freenode :)
lierdakil Another thing that you could interpret as "enforcing Good Software Engineering" is that Haskell is purely functional (i.e. built on a mental model of "computation as a mathematical function" and adheres rather strictly to that). That comes with all the benefits and drawbacks of the functional approach -- and there is a fair number of both. Although contemporary general wisdom says that functional approach is really good for dealing with software complexity.
s0da on Freenode ok.
matrixbot
@matrixbot
s0da on Freenode at this point, i have narrowed my Retro GAme DEsign choices down to: HAskell, Erlang, Python, and BlitzBASIC.
s0da on Freenode (i threw out: RPG Maker, Game MAker, LUA, C++, JAVA)
s0da on Freenode (also thrown out possibilities: Allegro GAme System, Unreal Engine)
s0da on Freenode im leaning towards haskell now
lierdakil Any particular reason you "threw out" Game Maker? I mean, from a programming language design point of view, it's at best adequate, but for actually making small-ish games (quickly, cheaply and easily) it's rahter good, if I recall correctly.
matrixbot
@matrixbot
lierdakil I mean, let's be honest here. When choosing a tool (i.e. a programming language) for a particular job -- in this case being "retro game design" apparently -- you shouldn't really consider the tool on its own merits, but rather choose the one that's most suited for the job. Otherwise you might end up hammering nails with a microscope (a very good and very expensive microscope, but not that useful for hammering nails) .
lierdakil Haskell is a great language, at least by some measures, but I don't really think it's "great" for coding games in.
s0da on Freenode lierdakil: ahhh.... how about type checking. does Game MAker have that?
matrixbot
@matrixbot
lierdakil Well, GML is a weakly dynamically typed language, if memory serves. So... kinda-sorta, but not really? Compiler won't detect type errors, type checking is done at run-time (meaning your program can crash due to a type error), and the language will try to interpret the code you wrote the best it can, even if it doesn't strictly speaking make sense (e.g. it will "guess" that when you wrote "something" + 1, you actually meant "something" + "1"). I'm probably oversimplifying here, but you should get the gist.
s0da on Freenode yes, i do.
s0da on Freenode will it let you perform long division on a char or string variable?
s0da on Freenode (silly example of LACK OF TPE CHECKING)
s0da on Freenode *type
matrixbot
@matrixbot
lierdakil Eh. That I don't really reacall from the top of my head. I mean, the compiler won't catch this in any case, but what would be the behaviour at runtime, I don't really know. If I had to guess, I'd guess it'd try to convert string to real, and throw an error if that fails.
lierdakil But on the other hand, Game Maker is not only the GML (Game Maker Language) -- it's a game engine, and a whole suit of tools for managing stuff around that (sprites, rendering, physics, etc etc etc)
matrixbot
@matrixbot
s0da on Freenode lierdakil: oh cool. ive tried it before maybe 5 years ago and it seemd REALLY lacking in possibilities. maybe its come a long way since then?
lierdakil There are, of course, game engines written in (and for) Haskell, too. A few in fact. Can't speak for all of those, but most I've seen aren't really up to the commercial quality standards (features missing, API unweildly, etc). And writing a game engine from scratch is, well, not for the faint of heart, especially in a high-level language (where calling into system libraries is a bit of a chore)
s0da on Freenode ok.

lierdakil > <@freenode_s0da:matrix.org> lierdakil: oh cool. ive tried it before maybe 5 years ago and it seemd REALLY lacking in possibilities. maybe its come a long way since then?

Well, I'm not that familiar with Game Maker. I played around with it some I want to say 15 years or so, and it was prefectly sufficient for what I wanted to do at the time. From what I heard, it's rather extensible nowadays.

s0da on Freenode im looking to LEARN how to re-invent the wheel, but have the option to either DO SO OR NOT DO SO, at my liesure.
lierdakil *15 years ago or so
matrixbot
@matrixbot
s0da on Freenode so something which has a lot of OPEN-SOURCE (or exclusively) OPEN-SOURCE libraries/middleware/dependencies/apis is VERY helpful!!! Does anything like that exist?
s0da on Freenode does haskell have that?
s0da on Freenode especially for games?
s0da on Freenode cuz, for example: OpenZelda (GAme Engine) and BlitzBASIC (Language which has a lot of engines) both have what im talking about here
s0da on Freenode hope i make sense?
s0da on Freenode Perhaps an "Open Source Game Engine" is probably what im REALLY looking for?
s0da on Freenode (again sry 4 being a noob)
lierdakil You do make sense. Okay, if the point of this is more learning than making something comercially viable in a realistic timeframe, then sure, go with Haskell, or indeed Python.
lierdakil Haskell has Hackage, which is a giant on-line library of reusable open-source code. That includes a few game engines, too.
matrixbot
@matrixbot
lierdakil See https://wiki.haskell.org/Game_Development to start with I guess.