Я хотел «эмулировать» популярную флеш-игру Chrontron на C ++, и мне нужна была помощь для начала работы. (ПРИМЕЧАНИЕ: не для релиза, просто тренируюсь для себя)
Basics:
Player has a time machine. On each iteration of using the time machine, a parallel state
is created, co-existing with a previous state. One of the states must complete all the
objectives of the level before ending the stage. In addition, all the stages must be able
to end the stage normally, without causing a state paradox (wherein they should have
been able to finish the stage normally but, due to the interactions of another state,
were not).
Итак, это как-то объясняет, как работает игра. Вы должны играть немного, чтобы действительно
понять в чем моя проблема.
Я думаю, что хороший способ решить эту проблему - использовать связанные списки для хранения каждого состояния,
которая, вероятно, будет либо хэш-картой, основанной на времени, либо связанным списком, который выполняет итерации
основанный на времени. Я все еще не уверен.
АКТУАЛЬНЫЙ ВОПРОС:
Теперь, когда у меня есть приблизительные характеристики, мне нужна помощь в определении того, какие структуры данных использовать для этого и почему. Кроме того, я хочу знать, какой графический API / слой мне следует использовать для этого: SDL, OpenGL или DirectX (мой текущий выбор - SDL). И как бы я пошел о реализации параллельных состояний? С параллельными нитями?
РЕДАКТИРОВАТЬ (чтобы уточнить больше):
ОС - Windows (так как это хобби-проект, возможно, позже это сделают в Linux)
Графика - 2D
Язык - C ++ (должен быть C ++ - это практика для курса в следующем семестре)
Q-Без ответа: SDL: OpenGL: Direct X
Ответ на вопрос: Избегайте параллельной обработки
Вопрос-ответ: Используйте STL для выполнения действий с шагом по времени.
So far from what people have said, I should:
1. Use STL to store actions.
2. Iterate through actions based on time-step.
3. Forget parallel processing -- period. (But I'd still like some pointers as to how it
could be used and in what cases it should be used, since this is for practice).
Подходя к вопросу, я раньше в основном использовал C #, PHP и Java, поэтому я бы не назвал себя программистом. Какие специфические знания C ++ помогут мне сделать этот проект легче? (т. е. векторы?)