Вы должны указать «путь» к коду, который вы пытаетесь вызвать. Вы можете сделать это с помощью
1) Укажите пространство имен второго проекта / класса, который вы хотите использовать, как правило, в верхней части файла кода.
using MySecondProject;
var foo = new ClassFromSecondProject();
2) Явно указав имя класса, который вы хотите использовать, включая его пространство имен
//do stuff
var foo = new MySecondProject.ClassFromSecondProject();
//do more stuff
Не связывайтесь с реляционными базами данных, если только вы не вынуждены использовать их из-за внешних факторов.
Посмотрите на Python pickle
, полку
Shelve быстрый и хорошо масштабируется. Это устраняет беспорядочное преобразование между Python и представлением не-Python.
Edit.
Более важный совет. Не увязайте в выборе технологий. Получите локации, предметы, персонажей, правила и т. Д. Для работы . В Python. Как можно проще и правильно.
Не сжигайте ни единой калории в мозгу ни на чем, кроме базовой модели, правильности и базового набора функций, чтобы доказать, что вещи работают .
Если у вас есть модель, которая на самом деле работает , и вы можете потренироваться с некоторыми сложными модульными тестами, а затем сделать выбор технологии.
Если у вас есть модель, вы можете осмысленно масштабировать его до миллионов мест и видеть, какой тип хранилища требуется. Модель не может измениться - это суть приложения. Только уровень доступа и уровень сохраняемости могут изменяться для регулировки производительности.
Звучит например, то, что вы просите, является типом пространственного индекса . Для очень большой 2-мерной игры я бы рекомендовал использовать квадродерево . Quadtree хорошо работает, когда у вас большая территория, и активность, как правило, происходит в локализованных областях области, что характерно для большинства игр типа RPG. Это снизит ваши требования к хранилищу и, надеюсь, ускорит обнаружение столкновений.
Что касается сохранения игры, такие вещи, как статистика игроков и монстров, могут быть сохранены в базе данных, если вы: Меня беспокоят частые изменения. Для фактического макета уровня я бы рекомендовал использовать двоичный формат файла, специфичный для вашей игры. Не так много запросов типа базы данных, которые вам обычно нужно выполнять на уровне макета, и вы можете сделать большие оптимизации, используя свой собственный формат. Я бы не знал, как начать сохранять формат, подобный дереву квадрантов, в базе данных (хотя я уверен, что это возможно).
Я использую нереляционную базу данных для хранения больших объемов данных. Если вы можете работать на 64-битном оборудовании, MongoDB с его драйвером Python действительно очень хорош. Я не знаю, подходит ли это для Stackless, но это возможно.