2022 - Non-Euclidean Doom: what happens to a game when pi is not 3.14159…

MCH2022
24 Jul 202219:13

Summary

TLDRIn this talk, the speaker explores the impact of altering the value of pi in the classic game 'Doom,' resulting in non-Euclidean gameplay. They discuss the game's history, its initial release in 1993, and its open-source nature. The speaker humorously details how incorrect values of pi were used in the game's source code, leading to peculiar gameplay experiences when modified. They also touch on the game's technical requirements in 1993 and the networking issues it caused. The presentation concludes with a live demonstration of 'Doom' with various pi values, showcasing the game's adaptability and the strange,扭曲 worlds that result.

Takeaways

  • 🎮 The presentation discusses the classic game 'Doom', a first-person shooter released in 1993, and its development history.
  • 👨‍💻 John Carmack, a key figure in the game's development, made a significant mistake in the networking stack which led to unintentional denial of service attacks.
  • 🔄 Doom was open-sourced in 1997 under a non-profit license and then under GPL in 1999, leading to various ports, including 'Chocolate Doom' which aims to be true to the original game.
  • 📦 The game was initially shareware, allowing users to try before purchasing the full version.
  • 🖥️ The minimum requirements for running Doom in 1993 were quite modest, including a 386 processor and 4MB of RAM with no 3D acceleration.
  • 🕸️ Doom's networking issues led to network administrators at universities banning or restricting the game due to its impact on network stability.
  • 👾 The game has been ported to numerous platforms, including a badge, showcasing its widespread appeal and adaptability.
  • 📜 An incorrect approximation of pi (π) was hardcoded in the game's source code, which was a mistake admitted by John Carmack himself.
  • 🧩 The game utilizes lookup tables for trigonometric functions due to the limitations of the hardware at the time, emphasizing the need for fast computations.
  • 🔢 Experimenting with different values of pi in the game's source code resulted in various visual and gameplay effects, highlighting the importance of pi in rendering and geometry.
  • 🌐 The presentation concludes with a discussion on other projects related to Doom, such as 'Ray Tracing Doom' and 'JPEG Injection', showcasing the game's lasting impact and the creativity of its community.

Q & A

  • What is the game 'Doom' about and when was it released?

    -Doom is a classic first-person shooter game where space marines fight against invading demons from hell. It was released in 1993.

  • Who was one of the main people behind the development of Doom?

    -John Carmack was one of the main developers behind Doom.

  • When was Doom open-sourced and under which license?

    -Doom was initially open-sourced in 1997 under a non-profit license and then under the GPL license in 1999.

  • What is Chocolate Doom and why is it significant?

    -Chocolate Doom is a port of the original Doom game that aims to be very true to the original game's experience.

  • What were the minimum system requirements for playing Doom in 1993?

    -The minimum requirements for Doom in 1993 were a 386 processor with four megabytes of RAM, running at a 320 by 200 resolution with no 3D acceleration, and using IPX for networking instead of TCP.

  • What was the issue with the networking stack that John Carmack wrote for Doom?

    -John Carmack made a mistake in the networking stack by underestimating the impact of a few packets on network performance, which inadvertently caused denial of service attacks and led to network administrators banning or restricting Doom in universities.

  • Why was the value of pi incorrect in the original source code of Doom?

    -The incorrect value of pi in the original source code of Doom was due to John Carmack incorrectly recalling the 10th digit of pi.

  • What is the significance of lookup tables in the context of Doom's development?

    -Lookup tables were used in Doom to speed up trigonometric calculations, which was necessary given the lack of 3D acceleration and the need for fast rendering on the hardware available in 1993.

  • What happens when the value of pi is changed in Doom's source code?

    -Changing the value of pi in Doom's source code affects the game's rendering and gameplay, creating non-Euclidean spaces and altering the game's geometry in various ways, depending on the value assigned to pi.

  • What is the largest playable value of pi that can be used in Doom, according to the script?

    -The script does not specify the largest playable value of pi in Doom, but it mentions that the value used by John Carmack in the original game was marginally larger than the incorrect value and still playable.

  • What other interesting projects related to Doom were mentioned in the script?

    -The script mentions projects such as Ray Tracing Doom, which improves the game's graphics with ray tracing, and a JPEG injection project that demonstrates code injection via a renamed JPEG file.

Outlines

00:00

🎮 Introduction to Doom and Its Historical Context

The speaker introduces the classic first-person shooter game, Doom, which was released in 1993 with a team led by John Carmack. Initially shareware, it became open source in 1997 and fully GPL-licensed in 1999. The presentation uses Chocolate Doom, a port faithful to the original. The speaker humorously contrasts 'euclidean' and 'non-euclidean doom' and sets the stage by highlighting the game's minimum requirements and the networking issues that arose from Carmack's underestimation of packet impact on network stability, which led to network administrators banning or restricting the game due to its potential to crash networks.

05:01

🔢 The Impact of Pi in Doom's Trigonometric Functions

This section delves into the technical aspects of Doom, discussing the game's use of lookup tables for trigonometric functions due to the lack of 3D acceleration and the need for fast computation in 1993. The speaker points out an incorrect approximation of pi (3.14156) hardcoded in the game's source code, which was a mistake by John Carmack. The talk explores the effects of altering the value of pi in the game, demonstrating that while some values like 2 or 4 break the game, others like 3 create a 'non-euclidean' gaming experience, and the correct value of pi allows the game to function normally.

10:02

🤔 Experimenting with Pi: From Euclidean to Non-Euclidean Gameplay

The speaker recounts experiments changing the value of pi in Doom's source code, resulting in various gameplay experiences. When pi is set to e or pi/2, the game becomes increasingly difficult to play, with distorted spatial orientations. The presentation also touches on the game's collision detection remaining intact despite the altered geometry. The speaker invites the audience to try similar experiments with Chocolate Doom and to explore the effects of different values of pi on the game's geometry.

15:03

🌐 The Legacy and Curiosities of Doom's Incorrect Pi Value

In the final part, the speaker discusses the legacy of Doom's incorrect pi value, noting its influence on other projects and the discovery of over 2,000 code results on GitHub and thousands on Google that have mistakenly copied this value. The talk concludes with an interactive Q&A session where the speaker addresses questions about the largest playable value of pi, the definition of 'not playable,' and the potential for further experimentation with the game's trigonometric functions.

Mindmap

Keywords

💡Non-Euclidean Doom

Non-Euclidean Doom refers to a modified version of the classic game 'Doom' where the value of pi is altered, leading to non-traditional geometrical renderings within the game's environment. This concept is central to the video's theme, which explores the effects of changing fundamental constants on gameplay and graphics. The script discusses how altering pi impacts the game's geometry, creating a 'non-Euclidean' spatial experience.

💡John Carmack

John Carmack is a key figure in the development of the original 'Doom' game. In the script, he is mentioned as one of the main people behind the game's creation and also for his role in writing the networking stack, which had a significant impact on the game's performance in networked environments. His name is synonymous with the game's technical innovation and legacy.

💡Chocolate Doom

Chocolate Doom is a port of the original 'Doom' game that aims to be very true to the original game's mechanics and graphics. The script mentions it as the version of 'Doom' used for the experiment with altering the value of pi. It represents the ongoing interest and development in classic games, ensuring they remain accessible and modifiable for modern audiences.

💡Shareware

Shareware is a software distribution model where a trial version of the software is distributed for free, with the option to pay for the full version if the user is satisfied. In the script, 'Doom' is described as initially being shareware, which was a common practice in the 1990s to allow users to try the game before committing to a purchase.

💡Open Source

Open source refers to a type of software licensing where the source code is made available to the public, allowing anyone to view, modify, and distribute the software. The script notes that 'Doom' was open-sourced in 1997 and later under the GPL in 1999, which has facilitated the creation of various ports and modifications, including the experiment with pi.

💡Network Stack

A network stack is a set of protocols and software that manage the communication between computers in a network. In the script, it is mentioned that John Carmack wrote the networking stack for 'Doom,' which inadvertently caused network issues due to the game's popularity and the number of packets being sent during gameplay.

💡Denial of Service (DoS)

Denial of Service (DoS) is an attack that overwhelms a network or system, rendering it unable to respond to legitimate requests. In the context of the script, DoS attacks were inadvertently caused by 'Doom' players overwhelming networks with game packets, leading to network administrators banning or restricting the game.

💡FPGA Port

An FPGA (Field-Programmable Gate Array) port refers to a version of software that is designed to run on an FPGA, which is a type of hardware that can be configured to perform various tasks. In the script, Sylvain Lefebvre's FPGA port of 'Doom' is mentioned, showcasing the game's adaptability to different platforms and technologies.

💡Pi (π)

Pi, represented by the Greek letter 'π', is the ratio of a circle's circumference to its diameter, approximately equal to 3.14159. In the script, the incorrect approximation of pi in the original 'Doom' source code is discussed, highlighting how this mistake has propagated in various projects and the effects of altering pi on the game's rendering.

💡Lookup Tables

Lookup tables are pre-computed arrays used to speed up calculations by storing the results of functions for quick retrieval. In the script, the use of lookup tables for trigonometric functions in 'Doom' is explained, illustrating the memory and performance constraints of 1993 computing and the necessity for fast, pre-computed values.

💡Ray Tracing

Ray tracing is a rendering technique used in computer graphics to simulate the physical behavior of light, creating more realistic images. The script mentions 'Ray Tracing Doom,' a project that applied this modern technique to the 1993 game, enhancing its visuals while maintaining the original gameplay experience.

Highlights

Introduction to 'non-euclidean doom', a variant of the classic first-person shooter game 'doom'.

Doom's initial release in 1993 and its open sourcing in 1997 and 1999.

Use of Chocolate Doom, a port that aims to be true to the original game.

Doom's initial shareware model requiring payment for the full game.

Technical requirements for running Doom in 1993, including a 386 processor and 4MB of RAM.

Networking issues in Doom that led to denial of service attacks.

John Carmack's role in developing Doom and the initial networking stack.

The widespread porting of Doom to various platforms, including a badge and an FPGA.

Incorrect approximation of pi in Doom's source code and its impact on gameplay.

Explanation of lookup tables in Doom for trigonometric functions due to hardware limitations.

Experiments changing the value of pi in Doom's source code and their effects on gameplay.

Doom's gameplay with pi set to 2, 3, e, and other values, showcasing non-euclidean geometry.

Challenges in defining what makes Doom 'playable' when experimenting with pi values.

Ray tracing Doom as an example of enhancing the game's visuals.

JPEG injection as a method of code injection via image files.

Existence of other non-euclidean games and their approaches to spatial orientation.

The propagation of Doom's incorrect pi value in other projects and code repositories.

Invitation for audience to try modifying Doom themselves and explore other pi values.

Questions and discussion about the limits of playable pi values and the impact on game mechanics.

Transcripts

play00:01

[Music]

play00:18

all righty thank you for the warm

play00:20

welcome and thank you for being out and

play00:22

about at almost 11 o'clock at night this

play00:25

is non-euclidean doom if you are here

play00:27

for euclidean doom you are in the wrong

play00:29

room

play00:31

so to begin with doom

play00:33

classic first person shooter space

play00:36

marine fighting invading demons from

play00:38

hell

play00:39

released 1993

play00:41

the initial team was only a handful of

play00:43

people john carmack being one of the

play00:45

main folks behind it it was open sourced

play00:48

in 1997 under non-profit license and

play00:51

then open sourced under gpl in 1999 and

play00:55

there's a bunch of ports

play00:57

i'm using chocolate doom which is a port

play00:59

that intends to be

play01:01

very true to the original game and it

play01:04

was shareware initially so you would

play01:06

download it and then you could play it

play01:09

and then if you liked it to buy the full

play01:10

game you would send its software some

play01:13

money and then you could have the full

play01:15

game

play01:17

so this is what it looks like

play01:23

[Music]

play01:31

this is what it looks like

play01:33

when pie is just a little off so it

play01:35

looks mostly fine

play01:39

all right so

play01:41

let's take a very very brief segway to

play01:42

1993.

play01:44

the minimum requirements for the game

play01:46

was a 386 with four megabytes of ram

play01:49

running a very very small 320 by 200

play01:52

resolution no 3d acceleration and

play01:56

networking we not tcp it was ipx

play02:00

and also in 1993 we had hacking at the

play02:02

end of the universe so the predecessor

play02:06

conference to this conference was also

play02:08

taking place at that time and very very

play02:10

brief segway to hacking at the end of

play02:12

the universe i just love the description

play02:15

from that conference about there will be

play02:18

a guarded depository for your

play02:21

laptops and valuables and you might get

play02:23

your stuff back

play02:24

and then also

play02:26

um

play02:27

you could make payment at the door which

play02:29

we don't have

play02:30

now and then very important bring many

play02:32

guitars and laptops was for a 1993

play02:37

hacker camp so anyway back to doom

play02:40

so john carmack

play02:42

wrote the networking stack for it and he

play02:44

made a big mistake

play02:46

he thought that only a couple of packets

play02:48

would not cause any problems when people

play02:50

were playing the game networked but it

play02:53

turned out it did so you could actually

play02:56

there were denial of service attacks

play02:57

that were caused inadvertently by people

play03:00

playing doom so you would have a few

play03:02

dozen players that could completely

play03:05

a network with a few thousand

play03:07

endpoints and then there was a lot of

play03:09

network administrators at universities

play03:12

that wound up banning doom or

play03:14

restricting

play03:15

it because it would literally take the

play03:17

network down if you are playing the game

play03:20

and the other thing is it runs on

play03:22

everything people have ported doom to

play03:24

all sorts of platforms

play03:25

including

play03:27

your badge so

play03:30

runs on doom

play03:36

and sylvain lefebvre did the fpga port

play03:40

so it's actually an fpga port of of the

play03:42

game game originally of course was

play03:43

written in c

play03:45

so pi we all know pi the ratio of the

play03:48

circumference to the diameter of a

play03:50

circle all right well this is going to

play03:51

be some crowd crowd interaction here all

play03:53

right one

play03:55

four

play04:05

no

play04:06

no that's not right

play04:08

but

play04:09

but that's what the original game was

play04:11

compiled with so rather than then then

play04:14

four would would be the appropriate

play04:16

digit there it was compiled with seven

play04:18

and then one person said happy pi day

play04:20

the source code includes an incorrect

play04:22

approximation of pi instead of the

play04:24

correct one i hope someone got fired for

play04:27

that blunder

play04:28

which is very very mean um

play04:31

especially again back in 1993 it was not

play04:35

that easy to just go online and get the

play04:37

value and then john himself

play04:40

admitted it he incorrectly recalled

play04:42

the 10th digit of pi

play04:44

so

play04:45

john i think we forgive you

play04:47

for this mistake

play04:49

it was not noticeable in the game and it

play04:50

was left in the source uh incorrect

play04:53

um

play04:54

so of course where does pi come up in

play04:56

doom well there are some lookup tables

play04:59

and this is the original source

play05:01

um so look up tables do not try to look

play05:04

them up

play05:05

so that's in the original source of doom

play05:08

and then the order of appearance so

play05:10

there's one lookup table for tangents um

play05:13

there is a

play05:15

binary

play05:16

representation of angles

play05:18

um

play05:19

they're doing some bit shifts everything

play05:21

is memory constrained it's 1993. uh

play05:24

sign lookups guess what it serves as

play05:27

coastline too because you can just shift

play05:28

it

play05:29

remarkable thing is how to use bams with

play05:31

this so

play05:33

unanswered comment in the code i guess

play05:35

some things don't change since 1993.

play05:38

um and then tan to angle arctan lookup

play05:40

table

play05:42

maps the tan of the angle to the angle

play05:44

fast got a search so this is in the

play05:45

original source and now you say like

play05:48

well it's

play05:50

it's just a lookup table why but why

play05:52

would you do a lookup table for simple

play05:54

trigonometry um this is the the initial

play05:57

uh values of the lookup table for find

play05:59

sign it's it's just a simple

play06:02

trigonometric function why would you

play06:03

even do a lookup table well the reason

play06:06

um for that i'll go ahead into in a

play06:08

little bit but this is the source for

play06:09

example for for calculating the fine

play06:11

sine lookup table again

play06:14

very very simple doing some very basic

play06:17

operations you know it doesn't really

play06:19

seem to make sense why you would need a

play06:21

lookup table for just some trigonometry

play06:24

but never forget this is why so the game

play06:26

is going to be running on this right so

play06:29

no 3d acceleration you're going to be

play06:31

having to make all of those queries

play06:34

fast and it turned out that in 1993 the

play06:37

way to make those queries fast was to

play06:40

pre-compute a lookup table

play06:42

and then the value of pi is embedded in

play06:45

those lookup tables

play06:47

so now we're going to get to the fun

play06:48

part we're going to change pi

play06:50

um and then we're going to

play06:52

figure out whether it compiles and

play06:54

whether it plays so first we're going to

play06:55

make pi equal to 2 pi

play06:58

okay so does it compile

play07:01

anyone

play07:02

yes

play07:03

does it play

play07:06

no

play07:07

um i know

play07:08

not fun all right so now we're gonna

play07:10

make pi equal four does it compile

play07:13

yes it does does it play uh also not fun

play07:17

the the hyperbolic values are not very

play07:20

very good uh we're going to make pi

play07:22

equal to pi

play07:23

does it compile actual pi not the wrong

play07:25

value

play07:26

yes it does compile does it play yes it

play07:28

plays and of course it the game looks

play07:31

like normal because it was

play07:33

changed at the 10th digit so that's

play07:36

very very far out so

play07:38

you don't really have a difference in

play07:40

terms of how it looks but remember how

play07:42

this looks because this style of play

play07:45

through i'm going to do for

play07:47

the other values so this is what it

play07:49

looks like with the correct value of pi

play07:51

everything seems to be

play07:53

very logical and makes sense

play07:58

now

play07:59

pi is equal to three

play08:01

does it compile

play08:02

yes

play08:03

does it play

play08:05

yes it does now it gets interesting all

play08:07

right so here is the non-euclidean doom

play08:11

alright

play08:12

so

play08:13

you can see that in the demo that plays

play08:16

in the beginning of the game it's it's

play08:17

completely shifted so this is the same

play08:20

script that plays in the normal doom but

play08:22

you it winds up killing you because

play08:24

because the game isn't expecting that

play08:27

that dynamic

play08:29

now

play08:31

we're gonna see what it looks like

play08:34

when it pi is equal to three so

play08:37

you start to see things kind of move

play08:41

a little bit

play08:43

so things are a little off the walls are

play08:46

moving in a way that you do not expect

play08:49

and so things start to shift

play08:52

right so

play08:53

because it's non-euclidean now there's

play08:55

you know a straight line is no longer

play08:57

the shortest path between two points and

play09:00

one thing i was curious about is whether

play09:02

whether the the shots would actually be

play09:05

straight and weirdly enough the shots

play09:07

were straight that's probably because of

play09:09

the the the uh the target detection that

play09:11

they were doing but everything else

play09:13

starts to kind of

play09:16

be a little weird but but it's playable

play09:18

with with pi equal to three um and yeah

play09:22

so that

play09:23

starts to look kind of interesting now

play09:25

we're going to make pi equal to e

play09:28

does it compile yes

play09:30

does it play also yes

play09:32

so now it will get a little more

play09:34

interesting

play09:38

alright so now

play09:40

yeah

play09:42

yeah it's

play09:44

it's dancing yeah

play09:52

yeah with enough intoxication you can

play09:54

recreate this

play10:00

and then the other funny thing that

play10:01

happens is they disappear if you move or

play10:04

they they kind of jump left and right as

play10:06

well

play10:07

but it starts to

play10:09

yeah it's really it starts to get really

play10:11

funky

play10:14

all right pi over two does it compile

play10:18

yes does it play yes it does all right

play10:21

it's getting more interesting now

play10:23

so

play10:24

now it starts to just be yeah

play10:27

it's uh

play10:30

it's yeah

play10:35

um

play10:37

a little

play10:38

yeah

play10:40

pretty pretty hard to play at this point

play10:45

and then like the wall boundaries start

play10:47

are also kind of get in the way um but

play10:50

there is there's still collision

play10:51

detection here so

play10:53

it's not that easy to clip through walls

play10:55

even with this kind of rendering

play10:57

um so yeah this is pi equal to pi over

play11:00

2.

play11:02

all right pi equals

play11:06

0.0001 does it compile

play11:09

yes does it play

play11:11

surprisingly it does

play11:13

all right

play11:20

that's yeah unfortunately it plays but

play11:23

not a very fun game

play11:31

all right

play11:32

pi equals zero does it compile

play11:35

no that's right it does not

play11:37

divide by zero

play11:39

and of course it doesn't play

play11:41

negative pi

play11:44

it compiles

play11:46

unfortunately does not play that one

play11:49

would have been good

play11:51

negative one million

play11:55

yes it compiles

play11:56

unfortunately it does not play

play12:00

so there's the table for the values i

play12:02

tried

play12:03

um i'm curious if there's other

play12:05

interesting values um for those look up

play12:07

tables that

play12:09

that that could make this game

play12:11

also kind of interesting

play12:14

so if you want to try this yourself you

play12:16

can get chocolate doom

play12:18

you can modify the value of pi right in

play12:20

the source

play12:22

there's two functions that generate

play12:25

those lookup tables so they're com

play12:26

they're normally commented out because

play12:28

those tables are pre-generated so you

play12:30

uncomment them then you generate those

play12:33

three lookup arrays

play12:35

save those lookup arrays compile there's

play12:38

a

play12:39

builds tool that helps with the

play12:40

compilation as well then you download a

play12:42

map file of your choice so everything

play12:44

here i did was on on doom 1 the original

play12:47

but you can you can try this on doom 2

play12:49

and other games and see

play12:51

see how it looks

play12:53

and enjoy and you could try this

play12:54

yourself

play12:56

so um to end off with i want to go over

play12:59

some other projects so one person for

play13:00

example did ray tracing doom

play13:03

so this is making the game look better

play13:05

so it's the original game but with wayne

play13:07

tracing this was done by soul team

play13:09

this is open source as well if you'd

play13:11

like to see this um

play13:13

ray tracing in a game that's from 1993

play13:16

is

play13:16

kind of interesting

play13:19

jpeg injection this is also really

play13:21

really interesting so

play13:23

this is a jpeg

play13:25

that's 117 kilobytes normal jpeg or it

play13:29

looks like a normal jpeg

play13:31

normal image you can download it it

play13:33

renders fine

play13:34

it's jpeg image

play13:36

but

play13:37

if you take this jpeg and you save it

play13:40

as a doom save file

play13:42

and then you load it

play13:45

there's going to be something

play13:46

interesting that happens and so this is

play13:48

a video of that

play13:59

that's right

play14:00

code injection via jpeg that has been

play14:05

renamed

play14:09

[Applause]

play14:11

[Music]

play14:17

all in 117 kilobytes so that was a great

play14:20

great project that was done

play14:22

by keg sws on twitter

play14:28

uh there's other non-euclidean games

play14:30

weirdly enough they all look kind of

play14:32

similar in terms of kind of spatial

play14:35

orientation um so there's a great xena

play14:38

rogue did a great post

play14:41

listing a lot of new games that were

play14:43

deliberately made to be non-euclidean

play14:46

if you'd like to to read through them

play14:48

there's uh there's a great post there

play14:50

that lists i think there's over 20 at

play14:52

this point where they all kind of do

play14:54

different things with geometry

play14:58

there's a fun little tidbit which is so

play15:00

now that there's this incorrect value of

play15:02

pi that was placed in the source code

play15:05

well like

play15:07

is this value has have other people just

play15:09

copied this value thinking it was the

play15:11

correct value of pi

play15:13

and used it

play15:14

and the answer to this question is yes

play15:20

so

play15:20

there and then these most of these are

play15:22

not forks of the game so these are just

play15:24

new projects where someone

play15:27

copied this incorrect value enough times

play15:30

that there's now 2 000

play15:31

code results on github that use the

play15:34

wrong value of pi

play15:36

and then on google there's about four

play15:37

and a half thousand results

play15:39

i don't know how many of them reference

play15:41

doom and how many of them are just

play15:43

people incorrectly

play15:45

copying the value but if you want to

play15:46

look through those code results there's

play15:48

the github link

play15:51

and that's all so thank you so much and

play15:53

happy to take questions

play15:55

[Applause]

play16:12

i'm left ah we do have some time left so

play16:14

if you have any questions please line up

play16:16

at the microphones

play16:18

and

play16:18

feel free to ask them

play16:22

anyone yes perfect

play16:25

so we saw some examples of pi being

play16:28

smaller and still playable are there any

play16:30

examples of pi being larger and also

play16:32

still playable yeah so the the value

play16:35

that john carmack used in the original

play16:37

game was larger marginally and still

play16:40

playable um

play16:42

uh one thing i'd like to do is do a

play16:44

search to find the largest playable

play16:46

value which would be interesting i

play16:48

haven't done that experiment yet but i i

play16:50

know it's between the incorrect value

play16:53

that john used them for because four is

play16:54

not playable so it'd be interesting to

play16:57

see what the largest playable pi value

play17:00

is

play17:01

as for the game

play17:02

okay thanks

play17:04

if you find it tell me

play17:07

back microphone please

play17:09

thanks thanks for your talk it was

play17:12

really funny um i was wondering how is

play17:15

not playable defined like i mean

play17:18

obviously the you showed some examples

play17:21

were also not very playable yeah so

play17:26

yes so i define not playable as

play17:28

basically the game's psych faults when

play17:29

you try to play it so it's a hard crash

play17:32

um so the ones that were listed as not

play17:34

playable

play17:36

it would load and then the game would

play17:37

crash um so you literally couldn't do

play17:40

anything it would psycfault uh i didn't

play17:42

trace into the code to see where it was

play17:44

psych-faulting but

play17:46

but

play17:47

non-playable meant meant that the game's

play17:49

like faulted at start or at load

play17:54

okay and the front microphone hello

play17:56

thanks for the talk

play17:58

soon you've been saying you've been

play18:00

tweaking the argument of the sine and

play18:03

the cosine function but have you been

play18:05

tweaking the sine and the cosine

play18:07

function itself as well

play18:09

no but that would be another great like

play18:11

thing to do as a follow-up is to change

play18:13

those lookup tables if it if it expects

play18:15

a cosine and you give it a sign for

play18:17

example right and c

play18:18

see how that kind of modifies the the

play18:21

geometry

play18:23

and this and the same for the for the

play18:24

changes because i think

play18:26

it's you get really odd results as well

play18:29

i guess but uh okay thanks

play18:33

okay are there any more questions

play18:38

if that is not the case ah you have a

play18:41

question

play18:43

okay you don't good

play18:45

if that if you have a question you can

play18:46

probably also ask him afterwards he will

play18:48

probably be available just outside the

play18:50

tent so thank you for the really vivid

play18:53

talk i really enjoyed it and give him a

play18:56

warm round of applause

play18:58

[Applause]

play19:13

you

Rate This

5.0 / 5 (0 votes)

الوسوم ذات الصلة
Doom ClassicGame MechanicsPi ModificationSource CodeNon-Euclidean GeometryHacking ConferenceSoftware HistoryTrigonometry in GamesC ProgrammingGame PortingCultural Impact
هل تحتاج إلى تلخيص باللغة الإنجليزية؟