Помогите с созданием игры
| |
Гортхаур | Дата: Четверг, 19 Апреля 2012, 15:13 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Всем привет!
Хотел бы спросить у вас совета. Как лучше и правильно сделать БД. Посмотрев урок , я увидел 7 таблиц в БД. Тут я решил вот что, сначало сделаю таблицу персонажа, потом врага и т.д. по нарастающей.
Но хотел бы узнать вот что:
При объединении таблицы user и avatar, не будет ли ни каких проблем в дальнейшем при обращении к ней?
Вот что у меня получилось:
Code CREATE DATABASE testgame DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci; /* Создаем БД со стандартной кодировкой cp1251(для того что б поддерживался русский язык)*/ USE testgame; /* используем данную БД */
/* таблица персонажа */ CREATE TABLE `users` ( id_user bigint(20) unsigned NOT NULL auto_increment, /* уникальный номер, который не повторяеться и с каждым новым пользователем увеличиваеться на 1 */ email CHAR(64), /* текстовый тип (64 символа) */ pass CHAR(32), /* текстовый тип (32 символа) */ name CHAR(32), /* текстовый тип (32 символа) */ life INT DEFAULT 50, /* числовой тип, по умолчанию равен 50 */ atk INT DEFAULT 7, /* числовой тип, по умолчанию равен 7 */ def INT DEFAULT 5, /* числовой тип, по умолчанию равен 5 */ lov INT DEFAULT 7, /* числовой тип, по умолчанию равен 7 */ lvl INT DEFAULT 1, /* числовой тип, по умолчанию равен 1 */ exp INT DEFAULT 0, /* числовой тип, по умолчанию равен 0 */ PRIMARY KEY (`id_user`) /* Показываем что уникальным номером у нас являеться id_user */ id_ava bigint(20) unsigned NOT NULL auto_increment, /* уникальный номер, который не повторяеться и с каждым новым пользователем увеличиваеться на 1 */ gander SMALLINT(1), /* Пол игрока, цыфровой тип(1 цыфра) */ vid SMALLINT(2), /* Вид игрока, цыфровой тип(2 цыфры)*/ path CHAR(32), /* Путь к папке с рисунками персонажа, текстовый тип(32 символа) */ PRIMARY KEY (`id_ava`) /* Показываем что уникальным номером у нас являеться id_ava */ ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; /* Обозначаем тип таблицы MyISAM. Таблицы типа MyISAM показывают хорошие результаты при выборках SELECT. Для .jktt подробного изучения читайте Самоучитель по MySQL 5 */
Правильно ли это сделано мной, или всё таки оставить 2 таблицы?
И ещё может ли кто мне вот обьяснить вот это:
1. DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci 2. ENGINE=MyISAM DEFAULT CHARSET=cp1251 3. TYPE=MyISAM
От куда это и где про это можно посмотреть. Чтоб мне было понятно, а не просто копировать!Добавлено (19.04.2012, 14:17) --------------------------------------------- Вообщем попробовал то что сам написал и понял что так не получиться! Так как выдаёт ошибку:
Code #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id_ava bigint(20) unsigned NOT NULL auto_increment, /* уникальный н' at line 14
А переводиться она вот так, только промтом переводил:
Code #1064 - у Вас есть ошибка в Вашем синтаксисе SQL; проверьте руководство, которое соответствует Вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом 'id_ava bigint (20) неподписанный НЕ ПУСТОЙ auto_increment,/* уникальный н' в линии 14
Так что решил делать отдельно! Дабы было меньше проблем! Может просто для жтого есть какой то другое решение, я не знаю!
Как я понял что
1. DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci
Это вот это:
Так то можно с начало создать БД руками, а потом наполнять его таблицами?
но мне по прежнему не понятно вот это:
2. ENGINE=MyISAM DEFAULT CHARSET=cp1251 3. TYPE=MyISAMДобавлено (19.04.2012, 15:01) --------------------------------------------- Народ 30 просмотров и ни кто ни чего не скажет что ль?! Добавлено (19.04.2012, 15:13) --------------------------------------------- Вот создал БД. И вношу туда одну таблицу:
Code /* таблица персонажа */ CREATE TABLE `users` ( id_user bigint(20) unsigned NOT NULL auto_increment, /* уникальный номер, который не повторяеться и с каждым новым пользователем увеличиваеться на 1 */ email CHAR(64), /* текстовый тип (64 символа) */ pass CHAR(32), /* текстовый тип (32 символа) */ name CHAR(32), /* текстовый тип (32 символа) */ life INT DEFAULT 50, /* числовой тип, по умолчанию равен 50 */ atk INT DEFAULT 7, /* числовой тип, по умолчанию равен 7 */ def INT DEFAULT 5, /* числовой тип, по умолчанию равен 5 */ lov INT DEFAULT 7, /* числовой тип, по умолчанию равен 7 */ lvl INT DEFAULT 1, /* числовой тип, по умолчанию равен 1 */ exp INT DEFAULT 0, /* числовой тип, по умолчанию равен 0 */ PRIMARY KEY (`id_user`) /* Показываем что уникальным номером у нас являеться id_user */ ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; /* Обозначаем тип таблицы MyISAM. Таблицы типа MyISAM показывают хорошие результаты при выборках SELECT. Для .jktt подробного изучения читайте Самоучитель по MySQL 5 */
Таблица создана и нет проблем! но вот когда я создаю следующую таблицу:
Code /* таблица аватара */ CREATE TABLE `avatar` ( id_ava bigint(20) unsigned NOT NULL auto_increment, /* уникальный номер, который не повторяеться и с каждым новым пользователем увеличиваеться на 1 */ gander SMALLINT(1), /* Пол игрока, цыфровой тип(1 цыфра) */ vid SMALLINT(2), /* Вид игрока, цыфровой тип(2 цыфры)*/ path CHAR(32), /* Путь к папке с рисунками персонажа, текстовый тип(32 символа) */ PRIMARY KEY (`id_ava`) /* Показываем что уникальным номером у нас являеться id_ava */ ) TYPE=MyISAM;
То появляется ошибка:
Code #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM' at line 8
И переводится:
Code #1064 - у Вас есть ошибка в Вашем синтаксисе SQL; проверьте руководство, которое соответствует Вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать около 'TYPE=MyISAM' в линии 8
И таблица не создаётся! Почему?
|
|
| |
Assasin | Дата: Четверг, 19 Апреля 2012, 16:29 | Сообщение # 2 |
web-coder
Сейчас нет на сайте
| Code CREATE TABLE `users` ( id_user bigint(20) unsigned NOT NULL auto_increment, /* уникальный номер, который не повторяеться и с каждым новым пользователем увеличиваеться на 1 */ email CHAR(64), /* текстовый тип (64 символа) */ pass CHAR(32), /* текстовый тип (32 символа) */ name CHAR(32), /* текстовый тип (32 символа) */ gander SMALLINT(1), /* Пол игрока, цыфровой тип(1 цыфра) */ vid SMALLINT(2), /* Вид игрока, цыфровой тип(2 цыфры)*/ path CHAR(32), /* Путь к папке с рисунками персонажа, текстовый тип(32 символа) */ life INT DEFAULT 50, /* числовой тип, по умолчанию равен 50 */ atk INT DEFAULT 7, /* числовой тип, по умолчанию равен 7 */ def INT DEFAULT 5, /* числовой тип, по умолчанию равен 5 */ lov INT DEFAULT 7, /* числовой тип, по умолчанию равен 7 */ lvl INT DEFAULT 1, /* числовой тип, по умолчанию равен 1 */ exp INT DEFAULT 0, /* числовой тип, по умолчанию равен 0 */ PRIMARY KEY (`id_user`) /* Показываем что уникальным номером у нас являеться id_user */ ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; Желательно знать синтаксис mysql, а не методом тыка делать.
|
|
| |
Гортхаур | Дата: Четверг, 19 Апреля 2012, 17:21 | Сообщение # 3 |
частый гость
Сейчас нет на сайте
| Assasin, Т.е. не надо было id_ava bigint(20) unsigned NOT NULL auto_increment, /* уникальный номер, который не повторяеться и с каждым новым пользователем увеличиваеться на 1 */ и PRIMARY KEY (`id_ava`) /* Показываем что уникальным номером у нас являеться id_ava */
|
|
| |
Assasin | Дата: Пятница, 20 Апреля 2012, 12:19 | Сообщение # 4 |
web-coder
Сейчас нет на сайте
| Нет, не нужно.
|
|
| |
Гортхаур | Дата: Вторник, 24 Апреля 2012, 13:03 | Сообщение # 5 |
частый гость
Сейчас нет на сайте
| Всем привет!
Вот выбрал время и доделал БД. Так как я один работаю и практически не знаю php, сделал только 2 таблицы для начала. Таблица персонажа и таблица с деньгами. Так как навыков пока нет, можите мне что то посоветовать в каком направлении мне двигаться. Т.е. что дальше разрабатывать, так сказать от лёгкого к более сложному.
|
|
| |
Nosorog | Дата: Вторник, 24 Апреля 2012, 13:37 | Сообщение # 6 |
участник
Сейчас нет на сайте
| Quote (Гортхаур) что дальше разрабатывать Дальше разрабатывать "бизнес-план", поставить промежуточные цели, придумать сюжет и т.п. Ну а если лень или просто не хочется и Quote (Гортхаур) Так как я один работаю и практически не знаю php , то попробуй написать авторизацию/регистрацию в игре
Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
|
|
| |
Гортхаур | Дата: Вторник, 24 Апреля 2012, 20:32 | Сообщение # 7 |
частый гость
Сейчас нет на сайте
| Nosorog, Хорошо спасибо! Добавлено (24.04.2012, 20:32) --------------------------------------------- Ребят, а подскажите мне вот что!
Какая структура переходов в браузерках, по локациям, инвенратю, и т.д.? Т.е как я понимаю, у меня есть(к примеру, пока ещё нет) возможность перейти к персонажу и посмотреть егохарактеристики или что ещё. Мне надо сделать простую ссылку на другую страничку и там выводить все данные из БД? Или как это вообще всё делается?!
Заранее спасибо!
|
|
| |
ПрофЭссор | Дата: Вторник, 24 Апреля 2012, 20:55 | Сообщение # 8 |
Разработка и создание сайтов. Студия: dezFlyin.
Сейчас нет на сайте
| Quote (Гортхаур) и практически не знаю php Методом тыка работаешь?
Quote (Гортхаур) Мне надо сделать простую ссылку на другую страничку и там выводить все данные из БД? Можешь и таким способом..
skype: dezFlyin icq: 798983 e-mail: dezfl@yandex.ru Если не знаете с чего начать, просто напишите...
Чтобы оставаться на месте, надо бежать, а чтобы куда-то попасть, надо бежать ещё быстрее.
Дешевая расскрутка сайтов!
|
|
| |
Гортхаур | Дата: Вторник, 24 Апреля 2012, 20:58 | Сообщение # 9 |
частый гость
Сейчас нет на сайте
| ПрофЭссор,
Quote Методом тыка работаешь?
Ну как то надо то учиться!
Quote Можешь и таким способом..
Я есть какой то другой способ?
|
|
| |
ПрофЭссор | Дата: Вторник, 24 Апреля 2012, 21:07 | Сообщение # 10 |
Разработка и создание сайтов. Студия: dezFlyin.
Сейчас нет на сайте
| знаешь как вообще делать лучше? по моему мнению, я начинал так. брал какой нибудь исходник браузерки, АнтиБК, Инстинкт Воина ставил на локалку и разбирался в ней. Так сказать лазил по исходному коду.
Прежде чем что-то создать, нужно сломать, Ассасин тоже согласится с таким вариантом. попробуй.
skype: dezFlyin icq: 798983 e-mail: dezfl@yandex.ru Если не знаете с чего начать, просто напишите...
Чтобы оставаться на месте, надо бежать, а чтобы куда-то попасть, надо бежать ещё быстрее.
Дешевая расскрутка сайтов!
Сообщение отредактировал ПрофЭссор - Вторник, 24 Апреля 2012, 21:08 |
|
| |
Гортхаур | Дата: Вторник, 24 Апреля 2012, 21:13 | Сообщение # 11 |
частый гость
Сейчас нет на сайте
| ПрофЭссор, Мне там сложновато пока разбираться! По этому и прихоться делать всё самому! Я конечно что то посматриваю из сторонних исходников, но толка пока мало!
|
|
| |
ПрофЭссор | Дата: Вторник, 24 Апреля 2012, 21:18 | Сообщение # 12 |
Разработка и создание сайтов. Студия: dezFlyin.
Сейчас нет на сайте
| Гортхаур, лучше на мой взгляд ковырять эти дырявые исходники, набираться опыта. чем писать игру с нуля, с нулевым знанием в программировании. это тяжёлый процесс, мучительный процесс. иногда он идет неделями, месяцами, а то и во все годами. многие кто здесь находился я помню, хотели написать свою игру, и все в принципе забили на неё.
skype: dezFlyin icq: 798983 e-mail: dezfl@yandex.ru Если не знаете с чего начать, просто напишите...
Чтобы оставаться на месте, надо бежать, а чтобы куда-то попасть, надо бежать ещё быстрее.
Дешевая расскрутка сайтов!
|
|
| |
Nosorog | Дата: Вторник, 24 Апреля 2012, 21:50 | Сообщение # 13 |
участник
Сейчас нет на сайте
| Quote (ПрофЭссор) лучше на мой взгляд ковырять эти дырявые исходники, набираться опыта. чем писать игру с нуля А еще лучше учиться программировать правильно, а то эти дырявые исходники научат "плохому".
Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
|
|
| |
Гортхаур | Дата: Среда, 25 Апреля 2012, 11:33 | Сообщение # 14 |
частый гость
Сейчас нет на сайте
| Nosorog, Вот по этому и не хочу! Добавлено (25.04.2012, 11:33) --------------------------------------------- Народ, посмотрите правильно я составал таблицу: Code /* таблица денег */ CREATE TABLE `money` ( `id_money` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT , gold INT DEFAULT 0, /* Золото */ silver INT DEFAULT 0, /* Серебро */ copper INT DEFAULT 0, /* Медь */ PRIMARY KEY (`id_money`) )
|
|
| |
Nosorog | Дата: Среда, 25 Апреля 2012, 15:10 | Сообщение # 15 |
участник
Сейчас нет на сайте
| Гортхаур, если запрос ошибок не выдает - значит правильно) А с другой стороны... id_money - это что? Бабло пользователя? Тогда почему AUTO_INCREMENT и в отдельной таблице?
Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
|
|
| |
Гортхаур | Дата: Среда, 25 Апреля 2012, 16:30 | Сообщение # 16 |
частый гость
Сейчас нет на сайте
| Nosorog, Ну да, деньги пользователя!
Добавлено (25.04.2012, 16:30) --------------------------------------------- Просто когда я ввёл:
Code CREATE TABLE `money` ( gold INT DEFAULT 0, /* Золото */ silver INT DEFAULT 0, /* Серебро */ copper INT DEFAULT 0, /* Медь */ )
Выдаёт ошибку:
Quote #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 5
Сообщение отредактировал Гортхаур - Среда, 25 Апреля 2012, 16:35 |
|
| |
biohazardo | Дата: Среда, 25 Апреля 2012, 16:48 | Сообщение # 17 |
участник
Сейчас нет на сайте
| А почему бы не воспользоваться phpmyadmin'ом, если знания SQL невелики...???
web-developer, который хочет делать игры хотя-бы чуть-чуть
|
|
| |
Yoda154 | Дата: Среда, 25 Апреля 2012, 20:17 | Сообщение # 18 |
участник
Сейчас нет на сайте
| Quote (biohazardo) А почему бы не воспользоваться phpmyadmin'ом, если знания SQL невелики...??? Ну если парень хочет освоить SQL язык, то пусть делает это. С одной стороны Phpmyadmin это простота освоения и скорость использования, а с другой, чистый SQL намного круче. Сможет с бд из консоли работать...
|
|
| |
ПрофЭссор | Дата: Четверг, 26 Апреля 2012, 19:33 | Сообщение # 19 |
Разработка и создание сайтов. Студия: dezFlyin.
Сейчас нет на сайте
| Quote (Гортхаур) А еще лучше учиться программировать правильно, а то эти дырявые исходники научат "плохому".
У него здесь по другому.
Он хочет написать игру с нулевыми знаниями в программировании, а не научится программировать. У меня так же было. Исходников куча, у меня есть Инстинкт Воина, в 2009 году я её дорабатывал, полностью все дыры закрыл, большого опыта набрался, сейчас же, дорабатываю игру с нулевым написанием.
А такие исходники, берутся за пример, можно покавырятся в них, много чего полезного набраться можно, заместо "плохого" .
У меня много знакомых, которые с нулевым знанием в программировании написали игру на базе АнтиБК, ИнстинктВоина. Даже те, которые хорошо программируют, всё равно берутся за пример в исходниках.
Кому как, решать Вам. Мой вариант не плох, особенно для новичка.
skype: dezFlyin icq: 798983 e-mail: dezfl@yandex.ru Если не знаете с чего начать, просто напишите...
Чтобы оставаться на месте, надо бежать, а чтобы куда-то попасть, надо бежать ещё быстрее.
Дешевая расскрутка сайтов!
|
|
| |
Nosorog | Дата: Четверг, 26 Апреля 2012, 20:47 | Сообщение # 20 |
участник
Сейчас нет на сайте
| Quote (ПрофЭссор) полностью все дыры закрыл Прям таки ВСЕ!? А если хорошо поискать? Quote (ПрофЭссор) много чего полезного набраться можно, заместо "плохого" . Здесь, конечно палка о десяти концах Можно набраться полезного, можно "плохого", а можно и того, и другого(что более всего вероятно, т.к. нубу тяжело или даже невозможно отличить "хорошее от плохого"). Поэтому, ИМХО, лучше учиться правильно - у педагогов, или на крайняк учебники и форумы.
Quote (ПрофЭссор) У меня много знакомых, которые с нулевым знанием в программировании написали игру на базе АнтиБК, ИнстинктВоина С нулевым знанием в программировании написать игру можно, наверное, только за бабло.
Quote (ПрофЭссор) Даже те, которые хорошо программируют, всё равно берутся за пример в исходниках. Естественно, зачем изобретать велосипед?! Но они-то могут отличить "хорошее от плохого" в отличии от нуба. А теперь собственно по теме... Гортхаур, значение ресурсов пользователя лучше и удобнее хранить в самой таблице пользователя, или же использовать внешние ключи
Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
|
|
| |
|