< 1131929027 0 :calamari!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1131931773 0 :puzzlet_!unknown@unknown.invalid QUIT :Remote closed the connection < 1131931775 0 :puzzlet!n=puzzlet@61.247.147.18 JOIN :#esoteric < 1131933047 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1131933173 0 :Sgep!unknown@unknown.invalid PRIVMSG #esoteric :Later all~ < 1131933177 0 :Sgep!unknown@unknown.invalid QUIT :Remote closed the connection < 1131933212 0 :puzzlet!n=puzzlet@61.247.147.18 JOIN :#esoteric < 1131934702 0 :Arrogant!n=chatzill@50.orlando-09rh15-16rt.fl.dial-access.att.net JOIN :#esoteric < 1131936320 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1131936556 0 :calamari!n=calamari@ip68-105-130-108.tc.ph.cox.net JOIN :#esoteric < 1131936610 0 :hamako!n=plonk@pD9543872.dip.t-dialin.net JOIN :#esoteric < 1131936743 0 :hamako!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1131936770 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :hello < 1131937312 0 :kikko!n=ldupuis@modemcable211.193-200-24.mc.videotron.ca JOIN :#esoteric < 1131937338 0 :kikko!unknown@unknown.invalid NICK :MadBrain < 1131937446 0 :MadBrain!unknown@unknown.invalid QUIT :Client Quit < 1131937482 0 :mad!n=madbrain@modemcable211.193-200-24.mc.videotron.ca JOIN :#esoteric < 1131937621 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :uh, -> http://esoteric.voxelperfect.net/wiki/Object_disoriented < 1131937658 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :hi mad, and welcome :) < 1131937669 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :hello :) < 1131937671 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :I just saw your lang on the wiki < 1131937680 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :in fact I just edited the article a bit :) < 1131937709 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :It probably needs a bit polishing, no? < 1131937731 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :some simple code examples would be nice < 1131937759 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :it's a bit hard to understand now (or maybe I'm dense) < 1131937794 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :hmm, there's an untested brainfuck interpreter linked at the bottom... but you're right, it could definitely use something like a hello world < 1131937818 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :I've seen the bf-interpreter, but it is not exactly easy to comprehend :P < 1131937850 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :"untested" and "bf interpreter" usually don't go well together :) < 1131937876 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :bf is simple but there are many oppotunities for error < 1131937881 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :basically, the lang's main selling point is that everything is encapsulated, so you can only access at most 5 variables at the same time < 1131937883 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1131937925 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :calmari: Right, I bet it probably has some bugs and doesn't work... but it's always a good test to know if your lang is turing complete, no? < 1131937928 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :looks cool :) < 1131937954 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :mad: oh yeah, no question < 1131938032 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :mad: I don't see how you can do even simple arithmetics with this language... < 1131938048 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :An important data structure it uses is a stack < 1131938056 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :And a pair < 1131938085 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :A pair is an object that successively returns object A, then object B, then object A, etc... < 1131938143 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :It uses the mpair. class to make a pair with two objects, using currying to read the two parameters < 1131938188 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :The stack returns A, then returns B, then returns C, etc... until it runs out and just turns into z (null object) < 1131938243 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :For numbers, it uses 8 bit stacks... but you can implement them in many ways :) < 1131938311 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :As bits, it uses either z (null object), or an object with a function that just activates the parameter's function < 1131938390 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :So if you go fab (use a's function on object b), and a is either '0' or '1', and b is a pair, then, if a is 0, the pair stays the same, but if a is 1, the pair is switched. < 1131938440 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :Crazy functional programming :) < 1131938485 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1131938511 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :But it would be better with, uh, more OOP parody stuff < 1131938657 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :The result is that, since there's so few member data, you have to write interfaces for more or less everything, and that there's many different ways to write those interfaces... which possibly comes not that far from actual OOP < 1131938770 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :I think it's halfway between unlambda and other similar really insane languages, and standard imperative stuff... it's actually vaguely usable :) < 1131938818 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :It looks interesting. hopefully the article will become easier to understand :) < 1131938966 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I have to work on that < 1131939463 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :hmm, this hello world isn't very neat... < 1131939586 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1131940101 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :well... um... that's it :) < 1131940124 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :that's what? < 1131940248 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :well, about the language < 1131940543 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if I should add some other stuff to the wiki < 1131940573 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean? what other stuff? < 1131940590 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :oh, another vaguely similar lang < 1131940607 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :if it's esoteric then go ahead :) < 1131940613 0 :Robdgreat!unknown@unknown.invalid PRIVMSG #esoteric :which lang is this? < 1131940622 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :functional too, more low level < 1131940627 0 :Robdgreat!unknown@unknown.invalid PRIVMSG #esoteric :pardon my ignorance; I just got back < 1131940658 0 :puzzlet!n=puzzlet@61.247.146.9 JOIN :#esoteric < 1131940691 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :the one I've just talked about? Something I've just posted to the wiki, "Object disoriented" ( http://esoteric.voxelperfect.net/wiki/Object_disoriented ) < 1131940719 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :It's a new lang, I guess < 1131940758 0 :Robdgreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION head asplode. < 1131940865 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :nasty stuff, yeah < 1131941268 0 :Arrogant!unknown@unknown.invalid QUIT :"Chatzilla 0.9.68.5.1 [Firefox 1.5/undefined]" < 1131941539 0 :GregorR[notHome]!unknown@unknown.invalid NICK :GregorR < 1131941685 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :It possibly has a member variable too much, but I think it's nasty enough. < 1131941826 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is glad nobody can ever claim his prize of /first/ object oriented esolang :) < 1131942084 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :What program for GNU/Linux should I package with OBLISK next ...? < 1131942192 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :Ah, no, I can't claim that... but can I claim the first functional object oriented esolang? :) < 1131942233 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hmmm, I guess so, if that phrase can be proven to me not completely meaningless ;) < 1131942238 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Err < 1131942240 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :To be < 1131942346 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :Well, I'm not sure, but the esolang I've come up with does seem to have a pretty important functional flavour. < 1131942377 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :You have to do stuff like currying and recursion < 1131942425 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :"Since there's no looping statement, recursion must be used." < Hahah, same with ORK :) < 1131942467 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1131942820 0 :puzzlet!n=puzzlet@61.247.146.9 JOIN :#esoteric < 1131943060 0 :Robdgreat!unknown@unknown.invalid PRIVMSG #esoteric :mmmm curry < 1131943136 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Mmmmmm, flesh of the innocent. < 1131943200 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :gregor: Any suggestions you'd make? < 1131943271 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I haven't taken a detailed look, but as LORD OF OO ESOLANGS I will. < 1131943279 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :And will get back to you ;) < 1131943286 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Busy right now :) < 1131944018 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :data encapsulation is the best feature of oop to use in tarpits :) < 1131944045 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :imho, of course < 1131944431 0 :hamako!unknown@unknown.invalid QUIT : < 1131945472 0 :kipple!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1131946665 0 :mad!unknown@unknown.invalid PRIVMSG #esoteric :nite < 1131946757 0 :mad!unknown@unknown.invalid QUIT :"Christians believe Jesus can save your soul; atheists believe Hungry Man TV dinners are a quick and easy dinner solution for < 1131953177 0 :CXI!i=Sanity@dialup-187.89.221.203.acc50-kent-syd.comindico.com.au JOIN :#esoteric < 1131953944 0 :puzzlet_!n=puzzlet@61.247.146.9 JOIN :#esoteric < 1131954060 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1131955199 0 :clog!unknown@unknown.invalid QUIT :ended < 1131955200 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1131957974 0 :cmeme!unknown@unknown.invalid QUIT :"Client terminated by server" < 1131966712 0 :Gs30ng!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1131970892 0 :puzzlet_!unknown@unknown.invalid QUIT :Remote closed the connection < 1131970898 0 :puzzlet!n=puzzlet@61.247.146.9 JOIN :#esoteric < 1131971836 0 :jix!i=jix@F3193.f.strato-dslnet.de JOIN :#esoteric < 1131972612 0 :kipple!n=kipple@168.80-202-98.nextgentel.com JOIN :#esoteric < 1131975484 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1131975486 0 :puzzlet!n=puzzlet@61.247.146.9 JOIN :#esoteric < 1131987422 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131987449 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131987483 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131987490 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131987524 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131987531 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131987565 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131987572 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131987607 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131987613 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131987648 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131987655 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131987689 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131987695 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131987738 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131987738 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131987771 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131987777 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131987812 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131987818 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131987853 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131987860 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131987894 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131987900 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131987935 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131987942 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131987976 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131987983 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988017 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988024 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988059 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988065 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988100 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988106 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988141 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988149 0 :cmeme!unknown@unknown.invalid QUIT :Broken pipe < 1131988182 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988188 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988223 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988229 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988264 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988271 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988305 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988312 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988347 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988353 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988388 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988394 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988400 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hrmpf! < 1131988429 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988436 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988470 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988477 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988511 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988518 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988525 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1131988537 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :can't someone kick cmeme? < 1131988553 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988559 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988594 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988600 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988635 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988641 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988676 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988682 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988717 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988723 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988743 0 :MadBrain2!n=madbrain@modemcable211.193-200-24.mc.videotron.ca JOIN :#esoteric < 1131988750 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ban not kick < 1131988758 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988765 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988777 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :yeah, ban of course < 1131988799 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988807 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131988841 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131988848 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131989071 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131989098 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1131989132 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1131992171 0 :MadBrain2!unknown@unknown.invalid QUIT :"Christians believe Jesus can save your soul; atheists believe Hungry Man TV dinners are a quick and easy dinner solution for < 1131992984 0 :Keymaker!n=nobody@wire74.adsl.netsonic.fi JOIN :#esoteric < 1131993007 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :hello < 1131993174 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :cmeme: behave! < 1131993222 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :oh behave! :) < 1131993373 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :anyways; anyone good with unknown file formats? i mean, there's one old game i'd like to modify, but there are no modding tools for it.. :) < 1131993386 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :anyone good inspecting and realizing file formats? < 1131993396 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :the game is Skyroads < 1131993408 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :http://www.bluemoon.ee/history/skyroads/ < 1131994974 0 :jix!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1131996110 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OH MAN MOXIE IS GOOD < 1131996126 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :8) < 1131996155 0 :CXII!n=Sanity@dialup-178.89.221.203.acc50-kent-syd.comindico.com.au JOIN :#esoteric < 1131996155 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION hasn't had a Moxie in weeks. < 1131996171 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1131996199 0 :CXI!unknown@unknown.invalid QUIT :Connection timed out < 1131996257 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :keymaker: I've almost no experience with figuring out file formats, but I guess it's a bit like esoteric programming ;) < 1131996279 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :yeah, although a lot more difficult :) < 1131996310 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :perhaps i'll try to figure the format out on my own, someday.. < 1131996332 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :what kind of files do you want to mod? < 1131996341 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :levels < 1131996346 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1131996349 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :and if possible, graphics too < 1131996350 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :are they very complex? < 1131996357 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :the levels in game? < 1131996359 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1131996365 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :so the format should be discoverable < 1131996376 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :try it out, the game :) < 1131996398 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :the full version is free and legal to download < 1131996399 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :http://www.bluemoon.ee/history/skyroads/ < 1131996413 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :(that is the site of the team that made the game) < 1131996426 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :looks old. does it require dosbox or something? < 1131996441 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :it does if you don't have windows or dos :) < 1131996458 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :it's pretty good game, i think < 1131996481 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :as well, there is some demo version of it (that i haven't tried), and some x-mas version with new levels and graphics < 1131996486 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :so that means i can compare the files < 1131996505 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :and that might help to discover the formats < 1131996691 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :yeah the levels look simple enough < 1131996704 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :there seem to be 3 levels per file < 1131996725 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :the world files are pictures < 1131996730 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1131996740 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :ah, the background? < 1131996743 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1131996754 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :at least i remember so, because i switched some once < 1131996776 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :trekdat.lzs might be the file (?) < 1131996790 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :or roads.lzs < 1131996803 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :or in the worst case both combined in some bizarre way < 1131996813 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :ACTION 's head explodes < 1131996867 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :no idea at all.. < 1131997039 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :it's annoying how every old game has the files packed in some strange format < 1131997127 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :both the worldN.lzs files and cars.lzs has the same header: "CMAPR". trekdat.lzs and roads.lzs does not < 1131997140 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1131997159 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :guess you just have to try and change some bytes and see what happens < 1131997165 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :cars.lzs is probably the graphics < 1131997167 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1131997176 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :oh, i think i know where the tracks are, now < 1131997184 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :i compared the full and the demo; < 1131997198 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :trekdat is equally sized in both of them < 1131997205 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :so that probably means there is some other stuff than tracks < 1131997211 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :while roads.lzs is different < 1131997230 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :in demo 4k and in full 17k < 1131997236 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thinks it's probably easier to rewrite entire game than to reverse engineer the track files... < 1131997260 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :noooo!!! < 1131997266 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :well, then it's probably only a 17k file to decipher :) not too bad < 1131997272 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1131997292 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :you see, rewriting would be pointless < 1131997298 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :the point is to modify the ORIGINAL game! < 1131997303 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1131997305 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1131997338 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :as well, the muzax.lzs is equally sized in both versions < 1131997339 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :with 30 tracks that means only about 560 bytes of data per track. < 1131997366 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :could it be a music file or something? < 1131997368 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :and yeah < 1131997384 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :in the best case the game uses some big array, and every level data is equal size < 1131997393 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :but i have a bad feeling it won't get that easy < 1131997420 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :there are hardly any 0s in roads.lzs < 1131997424 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1131997436 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :and the full x-mas version has the same amount of levels, but the file size is different < 1131997490 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :ACTION lacks a decent hex editor for windows < 1131997500 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :try xvi32 < 1131997507 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :it's pretty decent, and totally free < 1131997526 0 :calamari!n=calamari@ip68-105-130-108.tc.ph.cox.net JOIN :#esoteric < 1131997628 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :only thing in this game that sucks is the sounds < 1131997633 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :but i hope those can be changed later, too :D < 1131997671 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :the sound didn't work for me < 1131997700 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :you're lucky :D < 1131997713 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :the music i haven't heard, since that doesn't work normally and haven't tried dosbox < 1131997740 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :anyways, i'd say we are almost done, only thing we need to is decipher the level format, we at least know where the data is located! < 1131997772 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :when that's done i'll make a level editor and small site for it.. < 1131997850 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1131997893 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :a theory: the first word in the file tells how many bytes of level data the first has. < 1131997917 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :the value is 124 < 1131997943 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :hmm, could be < 1131997948 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :that is perhaps not much, but the first level is rather simple < 1131997950 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :it's most probably 2 byte integer < 1131997959 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :yeah, a word < 1131997964 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :worrd! < 1131997985 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :after the first word and another 124 bytes the next word is 130 < 1131998065 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1131998068 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :could be a pattern, but maybe not.... < 1131998075 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :but after that, it doesn't make sense anymore < 1131998087 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't? too bad < 1131998108 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :it can be for example amount of "objects" in the level < 1131998112 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :amount of 3d blocks < 1131998116 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1131998154 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :as well, probably in this file there is also stored some level settings; < 1131998167 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :like how fast the fuel burns in the level < 1131998172 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :or what kind of gravity there is < 1131998185 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :they may differ in levels.. < 1131998194 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :(if you play it long enough, you'll see) < 1131998209 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1131998314 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :have you tried changing it? < 1131998329 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :i'm just about to :) < 1131998745 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :nice game.. was just playing it in qemu :) < 1131998776 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :nice that you like it :) and, hmmm, i changed data quite randomly in the beginning of the file, but see no difference in game.. < 1131998805 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :i'll make a zero attack < 1131998904 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :hmmmm.. nothing happened < 1131998925 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :different file then? < 1131998936 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :i don't think so.. < 1131998943 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :naturally it could be.. < 1131998951 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :but i don't think so, still :) < 1131998971 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :ha! it's right one! < 1131998986 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :the colour changed to black and the game crashed when i opened the level! < 1131998997 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :the terrain looked black, and then it crashed < 1131999006 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :seems we're on right tracks < 1131999179 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :another good news is that the size of tracks isn't hard coded anywhere in the exe or something < 1131999218 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :oh, and it's now 100% sure roads.lzs is the right file; i replaced it with the x-mas edition track file and it worked just perfectly < 1131999238 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :so, it seems the level sizes and stuff are defined in the track file itself < 1131999358 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :and when i switched the x-mas version demo tracks to the original full, it still works! < 1131999392 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :and if you try to load the levels that don't exist in the demo (levels > 6), it reads null to the level and acts strange < 1131999430 0 :Sgep!n=sgeo@ool-182e9882.dyn.optonline.net JOIN :#esoteric < 1131999582 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :when it loads the null level, the gravity-o-meter (or something) shows 2100, so that must be some constant in the game < 1132001300 0 :CXII!unknown@unknown.invalid NICK :CXI < 1132001703 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :bye < 1132001705 0 :Keymaker!unknown@unknown.invalid PART #esoteric :? < 1132003803 0 :jix!i=jix@F3193.f.strato-dslnet.de JOIN :#esoteric < 1132005884 0 :madbrain!n=madbrain@modemcable211.193-200-24.mc.videotron.ca JOIN :#esoteric < 1132005914 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :mm, hey < 1132006859 0 :jix!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1132008065 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/Object_disoriented#Examples <- Wrote a couple of easy examples for object disoriented < 1132008871 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :ha! is that the easiest way to do Hello World? :D < 1132008932 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :well, no actually :) < 1132008985 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :The easiest way is just to do a bunch of oz and o(equivalent to 1) statements < 1132008994 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :but it's not as pretty :) < 1132009052 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :well congratulations on making a truly low-level OO-language :) < 1132009118 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :Thanks :) < 1132009168 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :I'm struggling to understand the cat example.... < 1132009228 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Is OD unimplemented? < 1132009234 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1132009244 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :AFAIK at least < 1132009248 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, haven't written an implementation yet < 1132009287 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ah, well then I guess EgoBot isn't going to support it any time soon :P < 1132009396 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :I'll possibly need help on the recursion-optimisation-so-that-the-stack-doesn't-explode.. from those functional programming gurus < 1132009460 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :OK, I think I get the cat example :) < 1132009581 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :mostly I wonder if there's some more or less automatic of doing it, or if that would require solving some impossible problems and it's better just to optimise all the "usable" < 1132009583 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :cases < 1132012048 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :if I understand correctly, the halting problem only applies to undecidable languages, right? because all decidable languages either accept or reject < 1132012159 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :eh, it's complicated < 1132012161 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :are there any languages that by their syntax allow any decidable program to be written, but not undecidable? or is that impossible to enforce for the halting problem? < 1132012179 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :for->because of < 1132012222 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I can imagine a string of if statements with no loops.. but I'm not sure that can handle every decidable language < 1132012269 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :string -> tree < 1132012317 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :The halting problem is more complex than that... basically, you have a program, which might terminate or have an infinite loop. There is no program that can differentiate for any program ever whether it terminates or not, without either going into an infinite loop for some programs, or simply don't decide for some programs < 1132012356 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :well, that's a function of the language syntax < 1132012367 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :if there are no loops, the program WILL terminate < 1132012382 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :calamari: Well, yeah < 1132012387 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :But what if it has loops? < 1132012399 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :well, I'm consdidering the case where there aren't loops < 1132012401 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :How do you determine whether these will terminate or not? < 1132012412 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :can that handle all decidable languages? < 1132012424 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :define "these"? < 1132012437 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :the loops < 1132012447 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :there are no loops < 1132012459 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure what were decidable languages... < 1132012473 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :They're a subclass of turing complete languages? < 1132012473 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :perhaps I need to review the definition.. afk to look it up < 1132012615 0 :cpressey_!unknown@unknown.invalid PRIVMSG #esoteric :calamari: yes, the halting problem only applies to undecidable languages... in fact, that's what the word "undecidable" basically means: that you can't construct a program that can decide if another program will halt or not < 1132012629 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :Ah < 1132012632 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :I see < 1132012634 0 :cpressey_!unknown@unknown.invalid NICK :cpressey < 1132012671 0 :madbrain!unknown@unknown.invalid PRIVMSG #esoteric :So the problem is to know whether recursive function stack optimisation is decidable or not? < 1132012694 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :Chris: so I'm curious what a language that accepts only deciders would look like < 1132012723 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :Chris: or does that no make sense? hehe it's hard for me to put this in the correct wording < 1132012766 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :basically a language that doesn't have the halting problem and I can write deciders in < 1132012784 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :calamari: hmmm, ok. well... < 1132012795 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :take a turing machine and prove that it always halts. < 1132012798 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :that's a decider