Demiurge, la naissance d’un concept

J’aimerais me remettre sur le développement de Demiurge, mais ça attendra de me sentir un peu mieux dans mon environnement. Je ne vais pas parler de ce soucis ici, mais plus tôt exposer comment je vois ce logiciel. Et ça pourra toujours servir d’introduction à une succession d’articles sur les idées et le développement de Demiurge.

Tout d’abord, j’ai dis logiciel, et non jeu-vidéo. Au début, c’est en tant que jeu-vidéo que j’ai parlé et montré les images du développement de Demiurge. Mais, mon idée a évoluer avec le temps pour donner un projet de réalité virtuelle. J’aurais préféré dire metavers, plus tôt que réalité virtuelle, car en ce moment ce terme est employé pour parler des logiciels de mondes virtuels utilisant les casques comme Oculus Rift ou d’autres marques. Cependant mon projet pourra tout à fait, et même aura intérêt à utiliser ce type de technologie, ainsi que plus encore selon les avancés dans le domaine. Je vais qu’en-même utiliser le terme metavers pour être précise et aussi par nostalgie de mes expériences passées dans ActiveWorlds et SecondLife.

Avant Demiurge, j’avais un projet de metavers en 3D, puis j’ai voulu créer un site de réseautage social avec des objectifs politiques progressistes. Au font de moi, je voulais faire bien plus sur Internet. J’avais, au tout départ, le désir de créer une nation sur Internet. Une vrai nation, avec une reconnaissance mondiale, une monnaie, de vrais citoyenxs, etc… Et il se trouve que depuis, le concept de cryptomonnaies et les technologies Bitcoin, Ethereum, Ripple, etc… ont vu le jour. Forcément, ayant mis les pieds sur les marchés des cryptos et ayant commencé à m’intéresser aux technologies sur le plan technique, j’ai vu le potentiel pour réaliser le rêve visionnaire que j’avais il y a longtemps.

Je suis sur Internet depuis avant les années 2000. Bon, à l’époque, nous n’avions que du 56k, et un temps de connexion gratuit de seulement 10h par mois avec Liberty Surf. Il existait plusieurs fournisseurs d’accès, et ce dernier était le mien. Youtube, Facebook, Twitter, la cryptomonnaie, mais aussi dans le monde du jeu vidéo, Minecraft et autres, ou dans le metavers, SecondLife, n’existaient pas. ActiveWorlds existait, mais je n’ai pu y accéder que lorsque les forfaits étaient devenu illimités en France. Pour la petite anecdote sur moi, j’ai commencé à vouloir créer un business avant mes 18 ans, avec … du porno. Bon, je disais toujours que je faisais de l’érotisme, pas du porno, mais bref. J’avais créé un site sur lequel j’exposais des dessins érotiques dont j’étais l’auteure et des poèmes érotiques qui venait de visiteurs (oui je n’ai pas eu de visiteuses) pour alimenter le site et leur permettre de s’exprimer. Je n’ai pas pu lancer vraiment mon business parce qu’à l’époque je ne savais pas comment fournir un RIB à une compagnie américaine de régit publicitaire pour adultes, et puis j’étais mineur qu’en-même x) Mais, en y repensant, j’avais cette état d’esprit d’envoyer une demande de contrat pour faire du business avant 18 ans. Je me sens fière là 😀 Maintenant, je n’aime plus trop la publicité, du coup je ne le fais plus. Je veux dire, même en dehors du porno, parce que ça aussi j’ai arrêté. Même si je devrais refaire un truc, d’autant que je voulais déjà faire quelque chose de safe à l’époque. Bref, à cette époque, c’était les débuts de Google, et je me souviens que j’avais même acheté un exemplaire du magazine Capital, parce que j’étais vraiment dans cet esprit de faire du business et gagner beaucoup d’argent et apparaître un jour dans les médias comme une jeune entrepreneuse qui réussi. Je rêvais un peu trop à l’adolescence 😀

Dans cette période, après qu’on se soit retrouvé avec une facture téléphoniques de quelques milliers de francs (oui il n’y avait pas l’euro non plus) à cause de mes dépassements de forfait … sourire gêné … j’ai commencé à imaginer ce que pourrait devenir Internet. Et finalement, après avoir pris mon pied à construire un palais sur ActiveWorlds, mais être frustrée par les limitations en espace, à cause des problèmes techniques de l’époque concernant la bande passante, et aussi après avoir eu plaisir avec des jeux-vidéo, mais frustrée par le fait qu’on n’y construisait pas ou n’y inventait pas comme on a pu le faire sur Minecraft par la suite, j’ai projeté de lancer un projet de logiciel 3D perso. Et assez vite, un metavers plus optimisé. Et comme je découvrais le potentiel des forums, des tchats, des blogs et des portails (oui avant il y avait des portails avec plein de sites référencés selon des thèmes et c’était pratique et beau à voir – en même temps Google n’était qu’un nouveau concept naissant), j’ai voulu savoir si des gens avaient essayé d’exploiter plus que ça encore ce potentiel pour créer des pays. Et presque, mais pas vraiment. J’ai trouvé à l’époque des sites, ou parfois de simples pages (en HTML et c’est tout, la majorité du temps. Oui oui, c’était l’époque hein. CSS, PHP, voilà quoi…) qui parlaient de nations virtuelles. Sauf que c’était une sorte de jeu d’imagination. Des gens inventaient leur nation et se partageaient leurs liens entre elleux pour le plaisir. Voilà voilà. Évidemment, qui aurait oser vouloir faire la même chose, mais pour de vrai ? … Moi … Qui a dis que j’étais tout à fait saine d’esprit ? xD

Bref, je vais arrêter là, la petite histoire qui aurait continué sur mon apprentissage du HTML, puis du CSS, puis du C et C++, de Blender, etc… et de mon premier logiciel de tchat en C avec les sockets, les protocoles HTTP, puis d’autres ensuite, de mon premier visualiseur d’objets 3D à base de RWX (format de fichier de ActiveWorlds, que je m’étais amusé à analyser et chercher partout des bribes de documentation technique dessus), etc… D’ailleurs, ce visualiseur 3D ayant attiré l’attention d’un mec qui allait aussi sur ActiveWorld, et LeVillage.org (même techno), et qui voulais faire un clone de la technologie, m’a valu d’être contacté pour fournir la technologie qu’il peinait à développer. D’autant que je reproduisais cette technologie avec … OpenGL … c’est tout. Non non pas Unity, ou je ne sais quoi de déjà tout fait, clé en main. Je faisais ça avec mes … et mon couteau lol Pour revenir sur Demiurge, c’est avec les mêmes … et couteau (non mais c’est une expression hein) que j’ai fais la demo un peu buggé que vous pouvez télécharger ici. Je ne savais pas le faire, mais je l’ai fais qu’en-même :p

J’entrerai dans les détails sur comment je vois Demiurge aujourd’hui dans un prochain article. Là j’ai raconté un peu ma vie, mais ça donne un aperçu de comment le concept est né 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

recaptcha/recaptchalib.php at 1.0.0 · google/recaptcha · GitHub
Skip to content
Permalink
Switch branches/tags
Find file
8a45f9d Dec 1, 2014
141 lines (129 sloc) 4.47 KB
<?php
/**
* This is a PHP library that handles calling reCAPTCHA.
* - Documentation and latest version
* https://developers.google.com/recaptcha/docs/php
* - Get a reCAPTCHA API Key
* https://www.google.com/recaptcha/admin/create
* - Discussion group
* http://groups.google.com/group/recaptcha
*
* @copyright Copyright (c) 2014, Google Inc.
* @link http://www.google.com/recaptcha
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
/**
* A ReCaptchaResponse is returned from checkAnswer().
*/
class ReCaptchaResponse
{
public $success;
public $errorCodes;
}
class ReCaptcha
{
private static $_signupUrl = "https://www.google.com/recaptcha/admin";
private static $_siteVerifyUrl =
"https://www.google.com/recaptcha/api/siteverify?";
private $_secret;
private static $_version = "php_1.0";
/**
* Constructor.
*
* @param string $secret shared secret between site and ReCAPTCHA server.
*/
function ReCaptcha($secret)
{
if ($secret == null || $secret == "") {
die("To use reCAPTCHA you must get an API key from <a href='"
. self::$_signupUrl . "'>" . self::$_signupUrl . "</a>");
}
$this->_secret=$secret;
}
/**
* Encodes the given data into a query string format.
*
* @param array $data array of string elements to be encoded.
*
* @return string - encoded request.
*/
private function _encodeQS($data)
{
$req = "";
foreach ($data as $key => $value) {
$req .= $key . '=' . urlencode(stripslashes($value)) . '&';
}
// Cut the last '&'
$req=substr($req, 0, strlen($req)-1);
return $req;
}
/**
* Submits an HTTP GET to a reCAPTCHA server.
*
* @param string $path url path to recaptcha server.
* @param array $data array of parameters to be sent.
*
* @return array response
*/
private function _submitHTTPGet($path, $data)
{
$req = $this->_encodeQS($data);
$response = file_get_contents($path . $req);
return $response;
}
/**
* Calls the reCAPTCHA siteverify API to verify whether the user passes
* CAPTCHA test.
*
* @param string $remoteIp IP address of end user.
* @param string $response response string from recaptcha verification.
*
* @return ReCaptchaResponse
*/
public function verifyResponse($remoteIp, $response)
{
// Discard empty solution submissions
if ($response == null || strlen($response) == 0) {
$recaptchaResponse = new ReCaptchaResponse();
$recaptchaResponse->success = false;
$recaptchaResponse->errorCodes = 'missing-input';
return $recaptchaResponse;
}
$getResponse = $this->_submitHttpGet(
self::$_siteVerifyUrl,
array (
'secret' => $this->_secret,
'remoteip' => $remoteIp,
'v' => self::$_version,
'response' => $response
)
);
$answers = json_decode($getResponse, true);
$recaptchaResponse = new ReCaptchaResponse();
if (trim($answers ['success']) == true) {
$recaptchaResponse->success = true;
} else {
$recaptchaResponse->success = false;
$recaptchaResponse->errorCodes = $answers [error-codes];
}
return $recaptchaResponse;
}
}
?>
You can't perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Fatal error: Class 'ReCaptcha' not found in /homepages/39/d436294224/htdocs/clickandbuilds/TheeDonistMonk/index.php on line 29