tracer07, я предложил, такаю схему, если пользователь уверено решил участвовать. То каждый пишет свой движок, которым владеет. Далее по количеству движков, которые предлагали чаще определяется состав команды. Она должна взять на себя реализацию идеи. В общем пиши свой движок и будь готов, если вас(юзеров Unity3D) будет большинство продвигать дальше идею.
Думаю сделать топик с пояснениями как само организоваться и закрепить. Чтоб каждый не спрашивал, да вот думаю это должен делать server-doom3.
Всё, что с этим связано. К примеру, есть водоём(неограниченный объём воды), прорывается канал/тоннель, в яму, вода стекает по каналу/тоннелю и заполняет яму, образуя новый водоём. Или же, строительство здания, вроде замка или крепости, с механическими элементами, которые также, к примеру, при активации, заполняют помещение водой, и блокируют его(помещение). Не знаю, как полностью охарактеризовать этот термин.
Пните меня, если это не делается просто мешем с шейдером. А каким-то другим способом. Или для этого нужно ОГО, какой комп. Плакать хочу, уже не могу, я наверно отстал от технологий. Причем тут стиль, вообще я так и не понял.
Я тут мимо проходил, интересная дискуссия. Я думаю, кто против тут писать не нужно. Или решать администрация будет по постам ЗА/ПРОТИВ... не думаю. А популярность покажет количество постов
Все дело наверное в том что включена "вертикальная синхронизация" в драйвере видеокарты. Есть этот параметр и в настройках игры, однако настройки не имеет приоритета перед настройками в видеокарте. Если конечно в настройках карты не стоит выбор приложением. Проверь это первым делом.
На самом деле синхронизация происходит с частотой монитора, а не с возможностями человека
Если проблемы с производительностью, можно уменьшить качество рендера в настройках игры, разрешение можно сделать по меньше, отключить тени, шейдеры, динамичное освещение и тому подобное.
Есть вариант, разгон видеокарты - порой инет. Здесь расписывать не буду, не указана модель карты. Да и думаю дело все в "вертикальная синхронизация"
В Регламенте по репутации, как-то не полностью объяснено:
Quote (GC-Vic)
Если вы сделали что-то во благо ресурса, то вы можете обратиться к администратору с целью повышения репутации или даже снятия обоснованных минусов. Администрация уважает пользователей за полезные действия во благо ресурса и готова пойти навстречу.
Думаю снятие обоснованных минусов лишнее. Если их снимать то за исправление по существу комментария. Перестал хамить или не хамил определенное время с момента даты последнего минуса, значит исправился. А по текучему регламенту получается можно снять за сделанное благо для ресурса и остаться хамом. При таком раскладе:
Quote (GC-Vic)
администрация ориентируется и на репутацию как на показатель ценности пользователя.
Противоречие, получается можно хамить пользователям и быть ценным пользователем для ресурса.
Причем.
Quote (GC-Vic)
Репутация влияет на отношение пользователей к пользователям.
Alex_Roth, Еще команды нет, и думаю, не будет – одни идейщики. Я тоже подключусь, когда нужен будет контент (моделить буду для бюро, может что и смогу путевое), а так и мне светит тоже пункт 3. Если конечно Panda3D не будет движком, то могу и покодить.
Добавлено (04.09.2011, 21:08) --------------------------------------------- А документ это шутка, его идейщики креативные составили и больше сюда не заглядывают. Думаю, когда будет команда, то смотреть пункт 2. в сообщение 225
Kornival, Код на VB6. В инете взял, работает проверено. Думаю сможешь доработать под свои нужды.
1. Создай модуль и вставь этот код.
Code
Public Declare Function GetProcessMemoryInfo Lib "PSAPI.DLL" (ByVal hProcess As Long, ppsmemCounters As PROCESS_MEMORY_COUNTERS, ByVal cb As Long) As Long Public Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long Public Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long Public Declare Function CloseHandle Lib "Kernel32.dll" (ByVal Handle As Long) As Long Public Declare Function OpenProcess Lib "Kernel32.dll" (ByVal dwDesiredAccessas As Long, ByVal bInheritHandle As Long, ByVal dwProcId As Long) As Long Public Declare Function EnumProcesses Lib "PSAPI.DLL" (ByRef lpidProcess As Long, ByVal cb As Long, ByRef cbNeeded As Long) As Long Public Declare Function GetModuleFileNameExA Lib "PSAPI.DLL" (ByVal hProcess As Long, ByVal hModule As Long, ByVal ModuleName As String, ByVal nSize As Long) As Long Public Declare Function EnumProcessModules Lib "PSAPI.DLL" (ByVal hProcess As Long, ByRef lphModule As Long, ByVal cb As Long, ByRef cbNeeded As Long) As Long Public Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long Public Declare Function GetVersionExA Lib "kernel32" (lpVersionInformation As OSVERSIONINFO) As Integer Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long Public Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)
Public Const PROCESS_QUERY_INFORMATION = 1024 Public Const PROCESS_VM_READ = 16 Public Const MAX_PATH = 260 Public Const STANDARD_RIGHTS_REQUIRED = &HF0000 Public Const SYNCHRONIZE = &H100000 Public Const PROCESS_ALL_ACCESS = &H1F0FFF Public Const TH32CS_SNAPPROCESS = &H2& Public Const hNull = 0 Public Const WIN95_System_Found = 1 Public Const WINNT_System_Found = 2 Public Const Default_Log_Size = 10000000 Public Const Default_Log_Days = 0 Public Const SPECIFIC_RIGHTS_ALL = &HFFFF Public Const STANDARD_RIGHTS_ALL = &H1F0000
Type MEMORYSTATUS dwLength As Long dwMemoryLoad As Long dwTotalPhys As Long dwAvailPhys As Long dwTotalPageFile As Long dwAvailPageFile As Long dwTotalVirtual As Long dwAvailVirtual As Long End Type
Type PROCESS_MEMORY_COUNTERS cb As Long PageFaultCount As Long PeakWorkingSetSize As Long WorkingSetSize As Long QuotaPeakPagedPoolUsage As Long QuotaPagedPoolUsage As Long QuotaPeakNonPagedPoolUsage As Long QuotaNonPagedPoolUsage As Long PagefileUsage As Long PeakPagefileUsage As Long End Type
Public Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntThreads As Long th32ParentProcessID As Long pcPriClassBase As Long dwFlags As Long szExeFile As String * 260 End Type
Public Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 End Type
Public Function GetProcesses(ByVal EXEName As String) Dim booResult As Boolean Dim lngLength As Long Dim lngProcessID As Long Dim strProcessName As String Dim lngSnapHwnd As Long Dim udtProcEntry As PROCESSENTRY32 Dim lngCBSize As Long Dim lngCBSizeReturned As Long Dim lngNumElements As Long Dim lngProcessIDs() As Long Dim lngCBSize2 As Long Dim lngModules(1 To 200) As Long Dim lngReturn As Long Dim strModuleName As String Dim lngSize As Long Dim lngHwndProcess As Long Dim lngLoop As Long Dim b As Long Dim c As Long Dim e As Long Dim d As Long Dim pmc As PROCESS_MEMORY_COUNTERS Dim lret As Long Dim strProcName2 As String Dim strProcName As String On Error GoTo Error_handler booResult = False EXEName = UCase$(Trim$(EXEName)) lngLength = Len(EXEName) Select Case getVersion() Case WIN95_System_Found Case WINNT_System_Found lngCBSize = 8 lngCBSizeReturned = 96 Do While lngCBSize <= lngCBSizeReturned DoEvents lngCBSize = lngCBSize * 2 ReDim lngProcessIDs(lngCBSize / 4) As Long lngReturn = EnumProcesses(lngProcessIDs(1), lngCBSize, lngCBSizeReturned) Loop lngNumElements = lngCBSizeReturned / 4 'Loop thru each process For lngLoop = 1 To lngNumElements DoEvents 'Get a handle to the Process and Open lngHwndProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, lngProcessIDs(lngLoop)) If lngHwndProcess <> 0 Then 'Get an array of the module handles for the specified process lngReturn = EnumProcessModules(lngHwndProcess, lngModules(1), 200, lngCBSize2) 'If the Module Array is retrieved, Get the ModuleFileName If lngReturn <> 0 Then 'Buffer with spaces first to allocate memory for byte array strModuleName = Space(MAX_PATH) 'Must be set prior to calling API lngSize = 500 'Get Process Name lngReturn = GetModuleFileNameExA(lngHwndProcess, lngModules(1), strModuleName, lngSize) 'Remove trailing spaces strProcessName = Left(strModuleName, lngReturn) 'Check for Matching Upper case result strProcessName = UCase$(Trim$(strProcessName)) strProcName2 = GetElement(Trim(Replace(strProcessName, Chr$(0), "")), "\", 0, 0, GetNumElements(Trim(Replace(strProcessName, Chr$(0), "")), "\") - 1) If strProcName2 = EXEName Then 'Get the Site of the Memory Structure pmc.cb = LenB(pmc) lret = GetProcessMemoryInfo(lngHwndProcess, pmc, pmc.cb) MsgBox EXEName & "::" & CStr(pmc.WorkingSetSize / 1024) End If End If End If 'Close the handle to this process lngReturn = CloseHandle(lngHwndProcess) DoEvents Next End Select IsProcessRunning_Exit: 'Exit early to avoid error handler Exit Function Error_handler: Err.Raise Err, Err.Source, "ProcessInfo", Error Resume Next End Function
Private Function getVersion() As Long Dim osinfo As OSVERSIONINFO Dim retvalue As Integer osinfo.dwOSVersionInfoSize = 148 osinfo.szCSDVersion = Space$(128) retvalue = GetVersionExA(osinfo) getVersion = osinfo.dwPlatformId End Function
Private Function StrZToStr(s As String) As String StrZToStr = Left$(s, Len(s) - 1) End Function
Public Function GetElement(ByVal strList As String, ByVal strDelimiter As String, ByVal lngNumColumns As Long, ByVal lngRow As Long, ByVal lngColumn As Long) As String Dim lngCounter As Long ' Append delimiter text to the end of the list as a terminator. strList = strList & strDelimiter ' Calculate the offset for the item required based on the number of columns the list ' 'strList' has i.e. 'lngNumColumns' and from which row the element is to be ' selected i.e. 'lngRow'. lngColumn = IIf(lngRow = 0, lngColumn, (lngRow * lngNumColumns) + lngColumn) ' Search for the 'lngColumn' item from the list 'strList'. For lngCounter = 0 To lngColumn - 1 ' Remove each item from the list. strList = Mid$(strList, InStr(strList, strDelimiter) + Len(strDelimiter), Len(strList)) ' If list becomes empty before 'lngColumn' is found then just ' return an empty string. If Len(strList) = 0 Then GetElement = "" Exit Function End If Next lngCounter ' Return the sought list element. GetElement = Left$(strList, InStr(strList, strDelimiter) - 1) End Function
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Function GetNumElements (ByVal strList As String, ' ByVal strDelimiter As String) ' As Integer ' ' strList = The element list. ' strDelimiter = The delimiter by which the elements in ' 'strList' are seperated. ' ' The function returns an integer which is the count of the ' number of elements in 'strList'. ' ' Author: Roger Taylor ' ' Date:26/12/1998 ' ' Additional Information: ' ' Revision History: ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Function GetNumElements(ByVal strList As String, ByVal strDelimiter As String) As Integer Dim intElementCount As Integer If Len(strList) = 0 Then GetNumElements = 0 Exit Function End If strList = strList & strDelimiter While InStr(strList, strDelimiter) > 0 intElementCount = intElementCount + 1 strList = Mid$(strList, InStr(strList, strDelimiter) + 1, Len(strList)) Wend GetNumElements = intElementCount End Function
2. Размести, кнопку на форме и для события клика, вставь этот код.
Code
GetProcesses "explorer.exe"
Как видно это для "explorer.exe" заменишь на нужный. И по клику будет выдаваться инфа о потребляемой памяти. Допилить под монитор думаю не трудно.
З.Ы. Названия формы, модуля, кнопки. Оставь по умолчанию.
Сообщение отредактировал serg-kkz - Воскресенье, 04 Сентября 2011, 23:11
1) Решиться на чем разрабатывать игру, так как она 3д, я а только 3 знаю которые могут сделать нормальную 3д игру (не в обиду другим, мож я просто мало знаю) то решать толком нечего будет. 2) Решится с сюжетом игры - к счастью тут есть чет типа гильдии писателей, очень часто добавляются различные литературы, много писателей (я знаю 5-6) и т.д. тут тоже проблемы нет 3) Создать бюро заказов. Этакая тема, в которую скидываются заказы, типа "нарисовать черта", сделать концепт передвижения героя, сделать скрипт фонарика и т.д. И кто сможет, и кто хочет, то те пусть делают, одно задание может взять каждый, потом сравнивается просто качество выполнения. Тот кто выполнил - записывается в титры.
На каком этапе выступишь? Если ты опять о 2D создай другую тему. Знание языка ни чего не даст, нужно знание движка. Если рисовать можешь, смотри пункт 3.
Я к тому, что необязательно делать платформер в 3D. Ведь пока все идеи собираются в кучу, затем они будут отсеиваться. Посему и предложил двумерный движок.
Создай другую тему. И прочти эту тему внимательно, прежде чем писать сюда.
Quote (Alex_Roth)
А программистов (любых, включая быдло-кодеров) здесь хватит.
Здесь таких нет
Quote (Alex_Roth)
serg-kkz, вы намерены взять на себя часть работы, если она подойдет вам по профилю? Так просто интересуюсь. (Какой у вас профиль, кстати?)
Поймешь, когда прочтешь
Сообщение отредактировал serg-kkz - Воскресенье, 04 Сентября 2011, 20:25
Что у тебя с памятью-то, если не секрет? Может, тебе что-то конкретное нужно, а не абстрактный "курс на развитие памяти" (развивать можно в разных направлениях, да и память разная есть).
Vinchensoo, еще есть у провайдеров интернета что-то вроде услуги вируальной сети для офисов, получается типо локальной закрытой сети, больше сказать не чего. Можно организовать FTP обмен файлами, здесь тоже дальше дополнить не могу, проблема с онлайн нужного участника, да не у всех один провайдер . Просто слышал о них, а насколько удобно не знаю.
Может подойдёт, ограничения и возможности мне неизвестны bitbucket но что вроде этого получается. Пример. Думаю для защиты дополнительно на архивы можно пароли устанавливать. По размерам мне не известно.
Vinchensoo, насчет mail.ru у них есть агент для общения + голосовая + видео связь + ну и обмен с текстовыми сообщениями. Файлы кидаются на профиль участника конференции, нужно только мышью перетащить на поле для сообщений. Получить их можно также в агенте, не обязательно через веб браузер.
Сообщение отредактировал serg-kkz - Воскресенье, 04 Сентября 2011, 18:00