Среда, 27 Ноября 2024, 02:06

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Помогите с созданием игры
ГортхаурДата: Четверг, 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 (ПрофЭссор)
полностью все дыры закрыл

Прям таки ВСЕ!? cool А если хорошо поискать?
Quote (ПрофЭссор)
много чего полезного набраться можно, заместо "плохого" .

Здесь, конечно палка о десяти концах smile Можно набраться полезного, можно "плохого", а можно и того, и другого(что более всего вероятно, т.к. нубу тяжело или даже невозможно отличить "хорошее от плохого"). Поэтому, ИМХО, лучше учиться правильно - у педагогов, или на крайняк учебники и форумы.

Quote (ПрофЭссор)
У меня много знакомых, которые с нулевым знанием в программировании написали игру на базе АнтиБК, ИнстинктВоина

С нулевым знанием в программировании написать игру можно, наверное, только за бабло.

Quote (ПрофЭссор)
Даже те, которые хорошо программируют, всё равно берутся за пример в исходниках.

Естественно, зачем изобретать велосипед?! Но они-то могут отличить "хорошее от плохого" в отличии от нуба.
А теперь собственно по теме...
Гортхаур, значение ресурсов пользователя лучше и удобнее хранить в самой таблице пользователя, или же использовать внешние ключи


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг