C'est reparti pour la "4k source compo" !

Posté par  (site web personnel) . Modéré par rootix.
Étiquettes :
0
19
avr.
2004
Démo
Cette année, pour la deuxième fois de son histoire, la 4k source compo se tient sur le canal freenode #demoscene.
Le but, comme l'année dernière, est d'écrire une "démo" graphique utilisant SDL (OpenGL autorisé), en moins de 4096 octets (sans compter les espaces, les tabulations et les retours chariot).
Vous devez rendre vos copies avant le 21 Mai 2004, 17h00 CET, alors dépêchez vous, et bonne chance a tous ! Les règles, plus précisement :
1. Le code source doit faire moins de 4096 octets (sans espace tabulation et retour chariot)
2. Uniquement du C ou du C++ ANSI
3. Vous devez utiliser SDL
4. Aucune autre API autorisée.
5. Pas de données externes, juste le code
6. Le son est autorisé (uniquement via l'API SDL)
7. ESC quitte.

A noter que sans espace ni tab ni \n, le fichier ne doit pas faire plus de 8192 octets, et qu'évidement, l'option -D n'est pas autorisée.

Bonne chance :)

Aller plus loin

  • # Re: C'est reparti pour la "4k source compo" !

    Posté par  . Évalué à 2.

    C'est rigolo: du temps des démos sous DOS, les 4k étaient clairement les plus dures, mais nombre d'entre elles comportaient un compresseur de binaire à la volée.
    Je me rappelle d'ailleurs d'une démo (peut-être pas dans la série 4k) qui reproduisait une démo de "Magic Carpet", le jeux mythique de Bullfrog (Ah! Hi-Octane, Syndicate...). Clairement impressionnant pour la taille du binaire.
    Forcément, avec un source, pas moyen d'utiliser des méthodes de compression à part bien sûr d'utiliser des noms de variables d'1 ou deux caractères
    • [^] # Re: C'est reparti pour la "4k source compo" !

      Posté par  . Évalué à 1.

      Après quelques recherches, voilà l'URL de cette magnifique démo 64k, émulant Magic Carpet: http://www.madchat.org/esprit/artgfx/demo/magic64.exe(...)
      Est-ce que ça peut marcher avec DOSemu?
      • [^] # Re: C'est reparti pour la "4k source compo" !

        Posté par  . Évalué à 6.

        Alors a ce sujet, j'en profite pour reposter ce que je viens d'écrire dans un journal. Des trucs du style:
        void main (void)
        {
             char x[] { 0xb8,0x00,0x4c,0xcd,0x21 };
             ((void (*)(void))x)();
        }
        
        ... sont-ils autorisés ? :-) Cela me rappelle le temps où, lorsque les L4G commençaient à devenir vraiment à la mode, on s'était amusé à estimer la taille du plus petit exécutable réalisable sous DOS. J'étais descendu à 2 octets: CD 20. Une vieille interruption servant à terminer un programme aux premiers temps du DOS. Je me suis quand même fait battre: 1 octet avec RET, stocké dans un COM, en sachant que la pile pointait initialement sur un mot à 0000 en fin de segment, que le début dudit segment débutait toujours par le PSP, et que par norme ce PSP débutait, lui, par CD 20. C'est en tout cas une très bonne chose. Cela fait vivre les démos, devenues rares avec la débauche de puissance et la domination quasi-totale du PC, et cela rappelle aux jeunes programmeurs ce qu'est l'optimisation. Un seul mot: Bravo.
    • [^] # Re: C'est reparti pour la "4k source compo" !

      Posté par  (site web personnel) . Évalué à 0.

      "Remember, the 4k size limit is for your sourcecode, not the executable."
  • # Re: C'est reparti pour la "4k source compo" !

    Posté par  . Évalué à 10.

    si on pouvait utiliser Whitespace ca serait tout de suite plus facile :D
    http://compsoc.dur.ac.uk/whitespace/(...)
  • # Re: C'est reparti pour la "4k source compo" !

    Posté par  . Évalué à 1.

    Bouh, c'est vachement restrictif. Obligation d'utiliser le C et obligation d'utiliser SDL ?

    On peut faire des démos sympa en mode texte et faire du code compact avec perl pourtant... :)
  • # Re: C'est reparti pour la "4k source compo" !

    Posté par  . Évalué à 2.

    A noter que sans espace ni tab ni \n, le fichier ne doit pas faire plus de 8192 octets

    C'est avec les espaces, tabulations et retours chariot que le fichier ne doit pas dépasser 8192 octets. Sans ces caractères, le nombre de signes doit précisément être inférieur à 4096 !

    Sans cela, à propos des démos en mode texte, il est précisé qu'aucun appel à une API externe autre que la SDL n'est autorisé, ni aucun appel système spécifique à un OS (Exit Direct3D ou X11). On doit en outre utiliser le C ou C++ ANSI.

    La question, donc: A-t-on droit au printf, faisant partie de standard C ANSI, étant totalement portable, mais appartenant à la bibliothèque standard du C (donc accessible via une API).

    Si oui, tant mieux, je fais un appel bidon à la SDL et je code toute ma démo en mode texte,
    Si non, c'est ennuyeux parce que je n'aurais pas le droit non plus aux malloc par exemple ...
    • [^] # Re: C'est reparti pour la "4k source compo" !

      Posté par  . Évalué à 1.

      si tu codes ta démo de mode texte, est-ce vraiment la peine de participer? une démo en mode texte mieux qu'avec la librairie SDL : tu bosses pour ib2p?
    • [^] # Re: C'est reparti pour la "4k source compo" !

      Posté par  (site web personnel) . Évalué à 1.

      A mon avis tu as le droit d'utiliser les fonction standard des languages... sinon on pourrait pas faire grand chose je pense
    • [^] # Re: C'est reparti pour la "4k source compo" !

      Posté par  . Évalué à 1.

      C'est avec les espaces, tabulations et retours chariot que le fichier ne doit pas dépasser 8192 octets. Sans ces caractères, le nombre de signes doit précisément être inférieur à 4096 !

      Mais alors, peut on définir une chaîne de caractère composée uniquement d'espace, de tab, et de saut à la ligne, qu'on traite ailleurs dans le source pour la transformer en données ou en code?

      Bon ok c'est de la magouille, mais à quoi serviraient des règles strictes si ce n'est à les contourner? :-)
      • [^] # Re: C'est reparti pour la "4k source compo" !

        Posté par  . Évalué à 1.

        En effet, ce doit être tout à fait légal, mais je pense qu'avec trois combinaisons, tu as plus à perdre à utiliser ce type de stockage que du code conventionel. En ce sens, réaliser une démo tenant en 8Ko par ce moyen tient plus de la prouesse que de la gruge ...
        • [^] # Re: C'est reparti pour la "4k source compo" !

          Posté par  . Évalué à 1.

          Il faut juste exploiter les 4096 espaces blancs suplémentaires, afin de rajouter quelques centaines d'octets. En théorie on peut en gagner ln(3^4096)/ln(256) = 811,5... en pratique on devrait bien arriver dans les 600 ce qui fait 15% de gain qui ne sont pas négligeables
  • # Re: C'est reparti pour la "4k source compo" !

    Posté par  . Évalué à 4.

    ah ! J'adore les news qui parlent un peu de la scene demo ! Je n'ai jamais rien produit, mais j'adorais en regarder sur l'atari ST d'un ami, ou sur mon PC. J'ai d'ailleurs fini par acheter le DVD (mindcandy)sorti recement qui regroupe plein de demo, lisible sur un lecteur de salon: http://www.maz-sound.com/index.php?show=product&id=17(...(...))
    Quant aux compo 4K, j'avais deja regardé le code source et ca donne vraiment envie d'en faire, car ca parait "accessible", en tout cas plus que les demo sous DOS d'il y a qqs années, qui demandaientt quand meme pas mal de connaissances sur le DOS pour pouvoir faire le moindre truc. L'avantage de SDL, c'est qu'elle masque toute la partie "chiante": initialiser le mode graphique, ....
  • # Re: C'est reparti pour la "4k source compo" !

    Posté par  . Évalué à 3.

    Perso, au temps de mon vieux 486, il y avait une demo 4k qui s'appelait "MARS", reproduisant un paysage en relief dans lequel on pouvait meme se balader avec la souris. Halucinant !

    Cette facon d'essayer de gagner le moindre octet de code pour un resultat de plus en plus beau m'a toujours épaté.

    A quand une competition kernel 4K ? ;-)
  • # Re: C'est reparti pour la "4k source compo" !

    Posté par  . Évalué à 2.

    Dans le genre qui arrache, il y a ça : http://www.theprodukkt.com/(...)

    Nécessite Windows et DirectX9.0 (désolé :P).

    Pour ceux qui peuvent pas le lancer, il y a des copies d'écran.
    C'est un FPS et ça tient dans... 96kb :)
  • # La news précédente

    Posté par  . Évalué à 1.

    Pour info, et pour éviter de faire les mêmes commentaires :) la news de la compo de 2003: http://linuxfr.org/2003/02/07/11291.html(...)
  • # Re: C'est reparti pour la "4k source compo" !

    Posté par  . Évalué à 1.

    Sinon, dans les incontournables, y'a tube http://www.pouet.net/prod.php?which=3397(...) qui est un executable de 256 octets

    chapeau
  • # Re: C'est reparti pour la "4k source compo" !

    Posté par  . Évalué à -1.

    Ils appellent ça du "C" ? Ils abusent tellement des #define de façon tordue que le code est complètement illisible!

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.