--- Log opened Sun Dec 02 00:00:01 2007 |
00:16 | | GeekSoldier [~Rob@Nightstar-4541.pools.arcor-ip.net] has quit [Ping Timeout] |
00:18 | | GeekSoldier [~Rob@Nightstar-3694.pools.arcor-ip.net] has joined #code |
00:18 | | GeekSoldier is now known as GeekSoldier|bed |
00:25 | | Forj [~Forj@Nightstar-5330.worldnet.co.nz] has quit [Quit: Gone] |
00:27 | | Derakon is now known as Derakon[Blended] |
00:43 | | Orthia is now known as Reiver |
01:03 | | You're now known as TheWatcher[T-2] |
01:06 | | You're now known as TheWatcher[zZzZ] |
01:43 | | gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has quit [Quit: Z?] |
02:39 | | Vornicus is now known as Vornicus-Latens |
02:41 | | Derakon[Blended] is now known as Derakon |
02:59 | | Chalcedon [~Chalcedon@Nightstar-10789.ue.woosh.co.nz] has joined #code |
02:59 | | mode/#code [+o Chalcedon] by ChanServ |
03:02 | | Forj [~Forj@Nightstar-10789.ue.woosh.co.nz] has joined #code |
03:02 | | mode/#code [+o Forj] by ChanServ |
03:03 | | Chalcedon [~Chalcedon@Nightstar-10789.ue.woosh.co.nz] has quit [Ping Timeout] |
03:03 | | Chalcedon [~Chalcedon@Nightstar-10789.ue.woosh.co.nz] has joined #code |
03:03 | | mode/#code [+o Chalcedon] by ChanServ |
06:13 | | GeekSoldier|bed is now known as GeekSoldier |
07:52 | | Derakon is now known as Derakon[AFK] |
09:01 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out] |
09:02 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code |
09:02 | | mode/#code [+o ToxicFrog] by ChanServ |
09:03 | | GeekSoldier [~Rob@Nightstar-3694.pools.arcor-ip.net] has quit [Ping Timeout] |
09:05 | | GeekSoldier [~Rob@Nightstar-5021.pools.arcor-ip.net] has joined #code |
09:14 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out] |
09:14 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code |
09:14 | | mode/#code [+o ToxicFrog] by ChanServ |
09:46 | | Chalcedon [~Chalcedon@Nightstar-10789.ue.woosh.co.nz] has quit [Quit: Gone] |
09:58 | | Forj [~Forj@Nightstar-10789.ue.woosh.co.nz] has quit [Quit: Gone] |
10:02 | | You're now known as TheWatcher |
11:53 | | Vornicus-Latens is now known as Vornicus |
13:17 | | You're now known as TheWatcher[afk] |
13:51 | | gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has joined #Code |
13:51 | | mode/#code [+o gnolam] by ChanServ |
15:13 | | You're now known as TheWatcher |
15:27 | | Xiphias [Ameroth@Nightstar-25243.dsl.in-addr.zen.co.uk] has joined #code |
16:30 | <@ToxicFrog> | My dad is awsome. |
16:31 | <@ToxicFrog> | So. I'm lying in bed, still POSTing. Phone rings. It's my dad. "I have this totally cool idea for a game!" |
16:31 | <@jerith> | How awesome is he? |
16:31 | <@ToxicFrog> | The idea: |
16:32 | <@jerith> | When my parents phone, it's usually "My email is broken". :-/ |
16:32 | <@ToxicFrog> | It's probably an FPS. Basic premise, you're a programmer working on a new shooter game, full of nifty stuff. The suits want to use it as the test for some new solid-hologram VR rigs they're showing off, things go horribly wrong, the game becomes real. Fairly standard so far. |
16:33 | <@ToxicFrog> | Where it gets cool is, once you have the tools, you can access the source code of enemies, items, weapons, and whatnot. |
16:33 | <@ToxicFrog> | And rewrite them. |
16:33 | <@jerith> | I like this game. |
16:33 | <@ToxicFrog> | Limiting this so that you can't trivially rewrite your starting weapon into a city-destroying nightmare will be tricky but doable, I think. |
16:34 | <@jerith> | Are you going to build this game? |
16:34 | | * Vornicus still wants to remake Uplink. |
16:34 | | * jerith still wants Vornicus to remake Uplink. |
16:35 | < Vornicus> | *snrk* |
16:35 | <@jerith> | Did mylink ever take off? |
16:35 | <@jerith> | Next weekend I'm going to lead a team of Intrepid Programmers writing a Pentago game. |
16:35 | < Vornicus> | Mylink? |
16:35 | <@ToxicFrog> | Presumably, as the game continues, you'll collect new functions, write access to new structures, and so forth. |
16:36 | <@ToxicFrog> | I figure that with only minor modification this could actually be an educational game; start off simple and teach the player how to program. |
16:36 | | * jerith ponders. |
16:36 | <@jerith> | I think it might be better to model that with memory allocations and such. |
16:36 | <@ToxicFrog> | We don't want to scare them off. |
16:37 | | * Vornicus wanted Vornlink to do that. |
16:37 | <@jerith> | You have to get access to structures before you can read or modify them. |
16:38 | <@jerith> | Then, you have limited memory (instructions?) to work with. |
16:38 | <@ToxicFrog> | I figure read access is 'free' once you have the tools and skill. |
16:38 | <@ToxicFrog> | How exactly do you mean? |
16:38 | <@EvilDarkLord> | So you can work out what they do and exploit loopholes? |
16:38 | <@ToxicFrog> | And how would this prevent the user from, say, opening up their weapon, and doing: |
16:38 | <@jerith> | Your starting gun is written in 5 instructions (for example) so you can rwrite it with any 5 instructions, but you can't use 6. |
16:38 | <@ToxicFrog> | function punylittlegun:hit(monster) |
16:38 | <@jerith> | *rewrite |
16:39 | <@ToxicFrog> | monster:applydamage(2^31) |
16:39 | <@ToxicFrog> | end |
16:39 | <@jerith> | No, you need access to the damage types to do that. |
16:39 | <@jerith> | bullet.add_damage(basic) |
16:40 | < GeekSoldier> | TF: your dad is awesome. |
16:40 | <@ToxicFrog> | jerith: for i=1,800 do bullet.add_damage(basic) end |
16:40 | <@jerith> | bullet.add_damage(armour_piercing) |
16:40 | <@jerith> | You can only add each damage type once. Or something. |
16:40 | <@jerith> | It's a set, not a list. |
16:41 | <@ToxicFrog> | So how is the actual damage amount calculated? |
16:41 | <@jerith> | You can't bullet.add_damage(uber) until you know where in memory uber lives. |
16:41 | <@jerith> | Or something. |
16:42 | <@jerith> | On the other hand, later in the game you get access to damage types and can modify them. |
16:42 | <@jerith> | Except doing so is global, so all your enemies get uber damage as well. |
16:43 | <@jerith> | And you can find references to damage types by picking up guns with that damage type. Or something. |
16:46 | <@ToxicFrog> | GeekSoldier: I know! |
16:46 | <@ToxicFrog> | jerith: right, but are these attacktypes, or actual damage values? |
16:46 | <@jerith> | ToxicFrog: Both. They're data structures that can contain either or both.\ |
16:46 | <@jerith> | Or something. |
16:46 | <@jerith> | I'm just thinking out loud here. |
16:47 | < GeekSoldier> | that sounds intensly interesting. |
16:47 | <@jerith> | Perhaps a damage type and an amount? |
16:48 | <@jerith> | And that then ties into the enemies' structures which have resitances to various types of damage. |
16:48 | <@jerith> | Or something. |
16:48 | <@jerith> | sideways... |
16:48 | <@jerith> | Aww, shinybot isn't running here. |
16:50 | <@ToxicFrog> | One easy distinction to make is between instance modification and class modification - the latter is probably an endgame ability, and definitely not for everything. |
16:50 | <@ToxicFrog> | (for example, to make enemies that are now relatively weak a total non-threat, so that the player is no longer bothered by them, if they so desire) |
16:50 | | * jerith nods. |
16:51 | <@jerith> | Class-space is more difficult to get into or something. |
16:51 | < Xiphias> | You could distinguish between physical objects that you can't modify, like bullets, and code that you can like reload, targeting and networking algorithms |
16:51 | < GeekSoldier> | perhaps put a limit on the size of the compiled bytecode? then, to add more to your weapon, for example, you will need to expand the memory. |
16:52 | <@jerith> | But certain objects (damage types, in my proposal) would be singletons. |
16:52 | <@ToxicFrog> | jerith: yes. But enemies and weapons won't be. |
16:52 | | * jerith nods. |
16:52 | <@ToxicFrog> | GeekSoldier: possibly. Hard to determine what's a reasonable limit without tedious trial and error, though. |
16:53 | < Xiphias> | Plus the most damaging things are often the most simple. Stick While(true) {} in an enemy's code for example. |
16:54 | <@ToxicFrog> | Infinite loops are disallowed. |
16:54 | < Xiphias> | AimGun(Self); Fire; |
16:54 | <@jerith> | ToxicFrog: Do you get a debugger console or something to do this in? |
16:58 | <@ToxicFrog> | You get an in-game source viewer/editor. |
16:58 | <@jerith> | SmallTalk-style object browser thing, perhaps? |
16:59 | <@ToxicFrog> | Quite possibly. |
16:59 | <@ToxicFrog> | With distinction between "you can't read this yet", "read-only", "instance write", and "definition write". |
17:00 | < Xiphias> | Would there be small amounts of enemies taken on one or two at a time or would there be some way of quickly modifying and changing a mob of creatures? |
17:01 | <@ToxicFrog> | Perhaps that could be added as an intermediate ability? |
17:01 | <@ToxicFrog> | A sort of copy-paste of modified code from one entity to another. |
17:11 | | Shel2476 [~Shel2476@24.236.66.ns-3568] has joined #code |
17:29 | | Forj [~Forj@Nightstar-10789.ue.woosh.co.nz] has joined #code |
17:29 | | mode/#code [+o Forj] by ChanServ |
17:31 | <@ToxicFrog> | Vornicus. First-class functions in python. Any gotchas? |
17:42 | | Xiphias [Ameroth@Nightstar-25243.dsl.in-addr.zen.co.uk] has quit [Quit: I was never gone] |
17:45 | <@EvilDarkLord> | Does lack of tail recursion count? |
17:45 | <@jerith> | ToxicFrog: Not that I know of. |
17:46 | <@jerith> | What are you wanting to do? |
17:50 | | Forj [~Forj@Nightstar-10789.ue.woosh.co.nz] has quit [Connection reset by peer] |
17:51 | <@ToxicFrog> | I'm not, but my sister is still learning Python |
17:51 | <@ToxicFrog> | And ran into a problem that is easily solved with first-class functions. |
17:51 | <@ToxicFrog> | (which she didn't know about) |
18:02 | | * jerith nods. |
18:03 | <@jerith> | All methods are functions, which is cool. |
18:03 | <@jerith> | But I'm not sure if there are gotchas about using them. |
18:03 | <@jerith> | Straight functions should be fine, though. |
18:06 | | Shel2476 [~Shel2476@24.236.66.ns-3568] has left #code [] |
18:50 | | Chalcedon [~Chalcedon@Nightstar-10789.ue.woosh.co.nz] has joined #code |
18:50 | | mode/#code [+o Chalcedon] by ChanServ |
19:06 | | gnoboredatmeeting [~nsJChat@Nightstar-23795.netlogon.liu.se] has joined #Code |
19:36 | | gnoboredatmeeting [~nsJChat@Nightstar-23795.netlogon.liu.se] has quit [Quit: Blargh] |
19:46 | | GeekSoldier is now known as GeekSoldier|bed |
20:19 | | Derakon[AFK] is now known as Derakon |
21:10 | | Vornicus is now known as Finerty |
21:11 | | AnnoDomini [AnnoDomini@Nightstar-29797.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
21:17 | | AnnoDomini [AnnoDomini@Nightstar-29648.neoplus.adsl.tpnet.pl] has joined #Code |
21:17 | | mode/#code [+o AnnoDomini] by ChanServ |
21:48 | | Attilla [~The.Attil@194.72.70.ns-11849] has quit [Quit: <Insert Humorous and/or serious exit message here>] |
22:06 | | Attilla [~The.Attil@194.72.70.ns-11849] has joined #code |
23:01 | | Thaqui [~Thaqui@219.89.45.ns-12785] has joined #code |
23:01 | | mode/#code [+o Thaqui] by ChanServ |
--- Log closed Mon Dec 03 00:00:07 2007 |