среда, 19 сентября 2012 г.

Дети, игры, компьютеры и рыбки.


Началось все с того, что младший сын растет и скоро ему в школу пора будет идти. Ну и решил я, что пора бы уже и алфавит выучить, а в идеале вообще читать научится. ;)
Как известно, лучший способ научить ребенка чему-бы то ни было - это игра. Ну и конечно же я полез искать что же у нас есть из игр...

 Надо сказать, что тут все печально. :( Мало того, что индустрия игры (как и кино) деградировала просто до беспредела, уйдя полностью от смысла происходящего и перейдя исключительно в спецэффекты, так еще и детских игр нет. В общем их и раньше почти не было, а теперь дети вообще нафиг ни кому не нужны походу (впрочем как и взрослые, сейчас вообще ни кто ни кому не нужен). :( В общем прошерстив интернет я пришел к печальному выводу, что все плохо. Нет, есть довольно много и не плохо сделанных игр, например на внимательность (найди отличия), на логику (лишние предметы), на математику. Но вот для начального обучения я ни нашел ничего, кроме "ткни мышкой на букву и тетя/дядя искаженным голосом ее произнесут". :( Нет, конечно я очень рад, что находятся энтузиасты, которые делают хоть такое. Но хочется же большего... В общем сел сам писать. :)

Идея.

Думаю те, у кого есть дети, наверняка знакомы с "динозавроманией", "Немо-манией" и прочими вещами. ;) Первой помню и я "болел" в детстве, а вторая появилась после выхода чудесного мультика "Немо", остальные пока не важны. Так вот как раз после Немо, мой отпрыск сильно "заболел" рыбками и морем. Так что идея возникла написать ему такую вот рыбалку. Динозавров решил пока оставить в покое. ;) И так: делаем море, рыбок, на каждой из которых будет нарисована буква. Рыбы плывут, удочка заброшена, ловим заданную букву, для начала "А", а там по мере обучения меняем. :)

Реализация.

Я люблю python. Не буду тут писать что в нем хорошо, что плохо, это и не важно. :) Я его люблю. К тому же прога, написанная на нем будет работать в любой ОС, в отличии хотя бы от той же java (ну как же без троллинга?!) :))) К тому же на яве я писал очень давно и очень ее не люблю. ;) Далее. Раз это игра, логично взять какую-то готовую библиотеку под игры. Я не стал оригинальничать и выбрал уже знакомую мне pygame. Тут есть практически все, что мне нужно, так что больше ни каких библиотек, по крайней мере пока, я не буду добавлять.

Что реализовано:


  • в примитивном виде игровое поле (пока это просто залитый градиентом прямоугольник)
  • загрузка рыб, которые проплывают слева на право с буквами на боку
  • ловля рыб, путем наведения крючка на рыбу и нажатием кнопки на мыши :)
  • в консоли пишет поймал или нет
Условия "поимки": крючок находится на рыбе + на рыбе находится буква, которую мы ловим. Если не соблюлись все условия - рыба не поймана :)

Задумки:
  • анимация рыб
  • анимация и разукрашивание морского дна (надо же водорослей, анемон, крабов туда насадить!)
  • звуковое оформление
  • выложить все в нормальном виде на github
  • есть идея сделать игру более интересной сконструировав механическую удочку

Забрать и посмотреть можно тут. Не забываем, что это глубокая пре-альфа. ;)

Лицензия, можно сказать, GPL. ;) Хотя это ни где в файлах не указано. :)))

Для желающих попробовать игру надо поставить python и к нему pygame. Виндоуз пользователям вероятно придется еще поправить файлы на предмет перевода строки. Если допишу до вменяемого состояния, возможно выложу нормальную версию для win.

Отмазка: как известно всем моим знакомым, программист я весьма и весьма посредственный, если не сказать даже плохой. ;) Но как бы я плохо не сделал, то что сделал, это все равно лучше, чем полное бездействие и как следствие отсутствие нужного для моего ребенка. :) В общем начат "проект" на питоне, любимом моем языке. Графика надрана с инета и обработана в gimp методом "как смог".

Данная версия не является еще пока рабочей игрой, а скорее костяком для нее.

Критика в виде: "кто так делает?!" посылается сразу и далеко!
Конструктивная же, в виде "вот лучше так", а еще лучше в виде "я вот тут дописал(а)/переписал(а)/нарисовал(а)" - приветствуется целиком и полностью. :) Особенно большие проблемы у меня с графикой. :( Ведь если писать программы я еще хоть как-то могу, то вот рисовать не умел никогда...