Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
tofast
7 / 7 / 0
Регистрация: 22.07.2012
Сообщений: 85
#1

Возможность перевода игрового движка c# на c++ - C++

27.10.2012, 23:42. Просмотров 1338. Ответов 30
Метки нет (Все метки)

У меня вопрос. Делаем с другом игровой движок. Точнее делаем редактор к портированому на c# графическому движку ogre. Вопрос: Если мы все сделаем на c# можно будет легко перенести все на winapi или mfc?. Если что ogre изначально для c++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2012, 23:42     Возможность перевода игрового движка c# на c++
Посмотрите здесь:

Написание звукового движка C++
Где можно раздобыть иходники каково-нибуть движка? C++
Варианты перевода из 10 СС в 2-ую C++
C++ Программа перевода
C++ Программирование движка для трёхмерной игры
C++ Составить алгоритм обхода игрового поля
C++ Как правильно обрабатывать исключения в приложении на базе графического движка?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
defer
秘密
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
28.10.2012, 00:13     Возможность перевода игрового движка c# на c++ #2
Цитата Сообщение от tofast Посмотреть сообщение
Если мы все сделаем на c# можно будет легко перенести все на winapi или mfc?
Нет, просто не перенесете. Придется менять слишком много
Avazart
7044 / 5221 / 259
Регистрация: 10.12.2010
Сообщений: 22,945
Записей в блоге: 17
28.10.2012, 01:36     Возможность перевода игрового движка c# на c++ #3
Если мы все сделаем на c# можно будет легко перенести все на winapi или mfc?.
Всё равно что начать с нуля.
san92der
14 / 14 / 3
Регистрация: 27.10.2012
Сообщений: 108
28.10.2012, 03:27     Возможность перевода игрового движка c# на c++ #4
За игровой движок на шарпе лучше вообще не браться. Этот язык просто не для этого создан.
Savvy
119 / 117 / 1
Регистрация: 21.12.2011
Сообщений: 348
28.10.2012, 04:03     Возможность перевода игрового движка c# на c++ #5
tofast, все зависит от того, насколько хорошо движок будет отделен от интерфейса. Если связность будет минимальна, то заменять много, но не критично. В основном типы данных, + потом подумать где оптимизировать потребление памяти переходом на указатели.

Цитата Сообщение от Avazart Посмотреть сообщение
Всё равно что начать с нуля.
бред

Цитата Сообщение от san92der Посмотреть сообщение
За игровой движок на шарпе лучше вообще не браться. Этот язык просто не для этого создан.
бред, для движков средней детализации и скорости лучше языка и не придумаешь.
Croessmah
Модератор
Эксперт CЭксперт С++
12724 / 7184 / 801
Регистрация: 27.09.2012
Сообщений: 17,716
Записей в блоге: 2
Завершенные тесты: 1
28.10.2012, 04:10     Возможность перевода игрового движка c# на c++ #6
Цитата Сообщение от Savvy Посмотреть сообщение
бред, для движков средней детализации и скорости лучше языка и не придумаешь.
для 3D тетриса пойдет
Savvy
119 / 117 / 1
Регистрация: 21.12.2011
Сообщений: 348
28.10.2012, 04:17     Возможность перевода игрового движка c# на c++ #7
Croessmah, на юнити вполне годная картинка получается, не понимаю в чем ирония. ТС судя по всему явно не конкурента БФ3 пишет.
Casper-SC
28.10.2012, 09:03
  #8

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
для 3D тетриса пойдет
Да ладно. Сам лично запускал 3D гонки с достаточно приличной графикой (проект для XNA Game Studio) игра нормально шла, не тормозила по сравнению с играми с аналогичной графикой. Давайте на вещи смотреть трезво, на шарпе можно вполне сносные 3D игры делать. Вот отрисовка 3D планеты на XNA.

Avazart
7044 / 5221 / 259
Регистрация: 10.12.2010
Сообщений: 22,945
Записей в блоге: 17
28.10.2012, 13:08     Возможность перевода игрового движка c# на c++ #9
Цитата Сообщение от Savvy Посмотреть сообщение
бред
А вы когда нибудь пробовали что-то переводить C# на С++ ? и тем более с WinApi ?
Это разные языки,платформы.
Savvy
119 / 117 / 1
Регистрация: 21.12.2011
Сообщений: 348
28.10.2012, 13:15     Возможность перевода игрового движка c# на c++ #10
Avazart, да, конечно. Если в шарпе использовалось WinApi, то все все функции импортились, соотв. переписать вызов и инициализацию, для меня не составляет труда.
Croessmah
Модератор
Эксперт CЭксперт С++
12724 / 7184 / 801
Регистрация: 27.09.2012
Сообщений: 17,716
Записей в блоге: 2
Завершенные тесты: 1
28.10.2012, 13:16     Возможность перевода игрового движка c# на c++ #11
Цитата Сообщение от Savvy Посмотреть сообщение
Avazart, да, конечно. Если в шарпе использовалось WinApi, то все все функции импортились, соотв. переписать вызов и инициализацию, для меня не составляет труда.
Если использовать winapi, то какой смысл тогда использовать c#?
Avazart
7044 / 5221 / 259
Регистрация: 10.12.2010
Сообщений: 22,945
Записей в блоге: 17
28.10.2012, 13:17     Возможность перевода игрового движка c# на c++ #12
В C# WinApi, не смешите
Savvy
119 / 117 / 1
Регистрация: 21.12.2011
Сообщений: 348
28.10.2012, 13:18     Возможность перевода игрового движка c# на c++ #13
Croessmah, а если нужен хук на клавиатуру? я должен всё бросить и педалить на плюсах?
Avazart
7044 / 5221 / 259
Регистрация: 10.12.2010
Сообщений: 22,945
Записей в блоге: 17
28.10.2012, 13:20     Возможность перевода игрового движка c# на c++ #14
Croessmah, а если нужен хук на клавиатуру? я должен всё бросить и педалить на плюсах?
Хорошая возможность выкинуть clr

И Сейчас нужен хук, завтра еще что... оно дела такое...

Лучше сразу подумать что нужно... и на то и рассчитывать...
Casper-SC
3481 / 1700 / 175
Регистрация: 27.03.2010
Сообщений: 4,848
Записей в блоге: 1
28.10.2012, 13:22     Возможность перевода игрового движка c# на c++ #15
Цитата Сообщение от Avazart Посмотреть сообщение
В C# WinApi, не смешите
?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Runtime.InteropServices;
using System.Windows.Input;
 
namespace Program.Hotkeys
{
    internal class HotKeyWinApi
    {
        public const int WmHotKey = 0x0312;
 
        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool RegisterHotKey(IntPtr hWnd, int id, ModifierKeys fsModifiers, Keys vk);
 
        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool UnregisterHotKey(IntPtr hWnd, int id);
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using System;
using System.IO;
using System.Net;
using System.Runtime.InteropServices;
using System.Net.NetworkInformation;
 
namespace Program.Web
{
    public static class Internet
    {
        [DllImport("wininet.dll")]
        static extern bool InternetGetConnectedState(ref InternetConnectionState lpdwFlags, int dwReserved);
        static object _syncObj = new object();
        [Flags]
        enum InternetConnectionState : int
        {
            INTERNET_CONNECTION_MODEM = 0x1,
            INTERNET_CONNECTION_LAN = 0x2,
            INTERNET_CONNECTION_PROXY = 0x4,
            INTERNET_RAS_INSTALLED = 0x10,
            INTERNET_CONNECTION_OFFLINE = 0x20,
            INTERNET_CONNECTION_CONFIGURED = 0x40
        }
 
        /// <summary>
        /// Проверить, есть ли соединение с интернетом
        /// </summary>
        /// <returns></returns>
        public static Boolean CheckConnection()
        {
            lock (_syncObj)
            {
                try
                {
                    InternetConnectionState flags = InternetConnectionState.INTERNET_CONNECTION_CONFIGURED | 0;
                    bool checkStatus = InternetGetConnectedState(ref flags, 0);
 
                    if (checkStatus)
                        return PingServer(new string[]
                                            {
                                                @"google.com",
                                                @"microsoft.com",
                                                @"ibm.com"
                                            });
 
                    return checkStatus;
                }
                catch
                {
                    return false;
                }
            }
        }
 
        public static bool PingServer(string[] serverList)
        {
            bool haveAnInternetConnection = false;
            Ping ping = new Ping();
            for (int i = 0; i < serverList.Length; i++)
            {
                PingReply pingReply = ping.Send(serverList[i]);
                haveAnInternetConnection = (pingReply.Status == IPStatus.Success);
                if (haveAnInternetConnection)
                    break;
            }
            
            return haveAnInternetConnection; 
        }
    }
}

Не по теме:

Avazart,

Цитата Сообщение от Savvy Посмотреть сообщение
Croessmah, а если нужен хук на клавиатуру? я должен всё бросить и педалить на плюсах?

Savvy
119 / 117 / 1
Регистрация: 21.12.2011
Сообщений: 348
28.10.2012, 13:24     Возможность перевода игрового движка c# на c++ #16
Avazart, если мне нужно импортить много винапи функций, я пишу дллку на плюсах и включаю в проект. Я не понимаю вашей иронии, мне кажется что вы просто не поддерживали продукт на другой платформе.
Avazart
7044 / 5221 / 259
Регистрация: 10.12.2010
Сообщений: 22,945
Записей в блоге: 17
28.10.2012, 13:26     Возможность перевода игрового движка c# на c++ #17
Ага а теперь попробуйте этот код на С++ кинуть.

На чем писать не вопрос тут дело каждого.

Речь о том что перенести сложно будет, нужно будет с нуля начинать практически.
Savvy
119 / 117 / 1
Регистрация: 21.12.2011
Сообщений: 348
28.10.2012, 13:29     Возможность перевода игрового движка c# на c++ #18
Avazart, а теперь еще раз прочитай что я написал. Я сказал что изменять много, но это не критичные изменения, больших умственных способностей для этого не надо, тем более если это твой проект!
Avazart
7044 / 5221 / 259
Регистрация: 10.12.2010
Сообщений: 22,945
Записей в блоге: 17
28.10.2012, 13:31     Возможность перевода игрового движка c# на c++ #19
Avazart, если мне нужно импортить много винапи функций, я пишу дллку на плюсах и включаю в проект. Я не понимаю вашей иронии, мне кажется что вы просто не поддерживали продукт на другой платформе.
И все же это костыли.

dll это хорошо конечно, но тут хотя бы суть в том что WinApi придется юзать для создания GUI хотя бы.

Добавлено через 1 минуту
Avazart, а теперь еще раз прочитай что я написал. Я сказал что изменять много, но это не критичные изменения, больших умственных способностей для этого не надо, тем более если это твой проект!
А вы лучше скажите что останется от вашего проекта когда он перейдет в С++ ?
- только идея...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2012, 13:56     Возможность перевода игрового движка c# на c++
Еще ссылки по теме:

C++ Автоматическое построение игрового поля
ScreenShot игрового процесса C++
Программа для определение игрового адаптера C++
C++ Организация архитектуры движка
C++ Написать программу удаления из текстового файла символов перевода строки ‘\n’ и перевода каретки ‘\r’

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Savvy
119 / 117 / 1
Регистрация: 21.12.2011
Сообщений: 348
28.10.2012, 13:56     Возможность перевода игрового движка c# на c++ #20
Avazart, зачем в шарпе для создания гуя юзать винапи? Кто в здравом уме будет это делать?
Yandex
Объявления
28.10.2012, 13:56     Возможность перевода игрового движка c# на c++
Ответ Создать тему
Опции темы

Текущее время: 03:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru