[Challenge] How cold is 4096 bytes? / Hackathon

In order to advance society, we must all stand on the accomplishments of our predecessors one way or another. The old knowledge should be maintained and generally understood, but need to be not constantly re-invented - that would interfere with the progression of capabilities the economy needs.

1 Like

I think you need to look into what it takes to even create a small windows demo like this. It is much more than wrapping a screensaver. That is an insult to these people! Why don’t you look at this … http://www.lofibucket.com/articles/64k_intro.html … It is generated algorithmicly not from the windows libraries. The libraries are only used to access the graphics hardware. They developed their own tools to be able to create it. The shader code is written for the GPU.

This is from the above link for a different demo …

  • C++ and OpenGL, dear imgui for GUI
  • 62976 byte Windows executable, packed with kkrunchy
  • mostly raymarching
  • 6 person team, one artist :slight_smile:
  • built in four months
  • ~8300 lines of C++, library code and whitespace excluded
  • 4840 lines of GLSL shaders
  • ~350 git commits

1 Like

I noticed right away that they used FM synthesized music, which you almost never hear anymore. I was already impressed by the visuals, even after it was ridiculed as a screen saver.

1 Like

Actually they implemented their own player in the 64k demo in the above link … you can read about it in the article. They actually use the GPU for part of it!

1 Like

Obviously this is impressive as hell. Orchestrating even 400MB of libraries using only 4K and producing such a novel output requires amazing techniques. “Clever” is technically correct in the same sense that an atom bomb explosion is “warm”. I would be interested, like some others who prefer to appear publicly disdainful, in a definition of what constitutes “cheating” here that includes forking to a screensaver but doesn’t include these awesome intros. Thats a tricky question I think.

2 Likes

I’ve read somewhere that part of what lead to the birth of civilization was when we learned how to survive long enough to be grandparents. But since the 1990s, with the proliferation of the internet, I think that type of thinking has broken down. Experience is far less important. What I once thought was valuable experience from 20 and 30 years ago just gets in the way of learning something new. A lot has changed over the years. A program that took me a month to write in 1998, takes only an afternoon to write in 2018. I constantly struggle to forget what I used to know, just like I had to forget about writing spaghetti code, in favor of procedural programming; and OOP. Now I write software that (just a few years ago) used to be impossible for a team of 10,000 programmers pounding away on keyboards for 100 years. That’s the latest programming paradigm of deep learning.

Despite my decades of experience in computing, especially when it comes to something marginally outside my domain, I’d like to think I’m humble enough to call myself a novice. I find that my experiences from 30 years ago do serve anecdotally, and all of my many mistakes might even impart some wisdom. But leaning on my past experience, and valuing it as the most important part of myself would be seen by others as resting on my laurels. I’d like to think that I’m not that lazy. But I certainly wouldn’t want to brow beat someone with my antiquated “expertise” in order to demand respect. That just comes across as laughably arrogant.

In a prior job, I was forced to lay off thousands of people by cutting hundreds of millions in funding. We began using a “new” cloud computing paradigm that resulted in one person being able to do the job of a hundred in a fraction of the time. Experience didn’t do most of these good people any good unless they were clever enough to adapt and become an active part of the organization’s change.

So, I should probably give respect where its due, and be humble enough to avoid disrespecting those who know more than I do. These days, when it comes to technology, my disconnected experiences from antiquity can often get in the way of good judgement by being a regular source of poor preconceptions, prejudice, and false conclusions. I’d rather avoid embarrassment by staying silent on topics I know nothing about.

1 Like

Good points Mark …

Also

For anyone interested … here is the Assembly '17 rules for the contest. It might define cheating …

https://www.assembly.org/summer17/demoscene/rules/

2 Likes

If you want to see real skill look at some of the demos done today that are truly written in 4k, 16k, 32k, and 64k on the older computers from the 70s and 80s. They are still figuring out new tricks to make the hardware do things nobody though possible BITD.

1 Like

For anyone having trouble respecting competitions on modern hardware, Draco’s link includes “Oldskool” competitions too.

Oldskool

The following rules apply to all entries running on Oldskool platforms:

All entries are run on real oldskool-hardware, and need to be submitted to PMS with their respective name, credit, platform information etc.
The PMS submission must be an Internet-distributable version of the competition entry (see competition rules for details). However, in the competition, the entry must run on real hardware.
Allowed platforms

The following platforms are allowed, no exceptions:

PC:
Pentium 133MHz
Tseng Labs ET6000
Gravis Ultrasound / Sound Blaster AWE32
128MB RAM
DOS
Amiga:
AGA
68060/66MHz
2MB Chip-ram / 128MB Fast-ram
no RTG or AHI
500 512k/512k
Atari Falcon:
68060/66MHz
14MB ST-ram / 128MB Fast-ram
Atari ST/STe
1MB
Atari 130XE
Vic 20 + 1541
C64 + 1541
C16/+4 + 1541
Spectrum
128k (+2)
Amstrad CPC 6128
MSX1/2
128k max
The Game Development compo is available for other oldskool platforms.

The organizers will provide the hardware.

If you have questions about the oldskool compo, please send an email to: [email protected] or if you’re on IRCnet, please contact Jope or Britelite.

Emulator issues

Entries in the oldskool competitions must run on REAL hardware. You may use emulators to aid the development process, but in the competition you must be able to run it on the machine itself.

2 Likes

freepascal.org

Personally I’d go with the direct descendant of Borland’s TP: https://www.lazarus-ide.org

I know what you mean, Nitro from demobit 2018 was interesting

https://files.scene.org/browse/parties/2018/demobit18/pc_64k/

And tmr came out with a few nice ones too:

https://files.scene.org/browse/parties/2018/chimpembly18/64k/

I hereby propose a challenge … make a windows program that is demo like but doesn’t have to be fancy and doesn’t matter the size, but it must contain no calls to windows libraries or the windows kernel.
It must also run on the windows computers at the space as a non-admin.

1 Like

no calls to windows libraries or the windows kernel

What about to other libraries like libsdl or opengl? Does it have to be graphical can text work? If text then what about termcap/AAlib?

Sure… if you can figure out a way to load them and they don’t use windows libraries or make calls the windows kernel…

cool… time to take a crack at demomaker

1 Like

I will be using a tool like

http://dependencywalker.com/ and https://docs.microsoft.com/en-us/sysinternals/downloads/procmon

to check to see that no windows libraries or kernel accesses have been made.

Ooo… :smiley: good to know but lets not tempt me to break out my bag of virii tricks for hiding :wink:

No need to hide things … I’m just interested to know if it is possible … I don’t think it is without making syscalls
This is why it is a challenge and not a contest

1 Like

Ok then; if we’re talking anything with UAC then shite out of luck there since one would have to do direct rendering and that’s going to bypass directx which hasn’t been a thing since Millennium and maybe Whistler.

There might be away to fudge dos syscalls/interrupts but even that’s a stretch. Mostly though I’d try directly playing around with opengl but if I remember correctly just like DirectDraw, Direct3D. OpenGL all use GDI calls.

I’ll have to poke around a bit but there’s a path to it… won’t be pretty but there’s a way.

If they are there, they are part of windows now … but if there is a way to make a demo without using any windows calls but run from windows non-admin … it will be a cool trick … even stdout is a syscall I believe