游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3351|回复: 7

游戏设计的两种方式?

[复制链接]

3

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2004-4-13 00:43:00 | 显示全部楼层 |阅读模式
 以前开发过一款小型飞机类游戏,用的是DX,主要用 Ontimer() 函数进行游戏主循环,但是看过很多游戏方面的书籍,发现他们一般采用类似Windows 消息模式的方式,就是
   while( message)
   {
      case 1:   ;
  case   2:           ;



      case   n:           ;
  }

我想问一下这两种方式有什么优缺点吗? 如果我要开发网络游戏,应该采用哪种方式? [em10]

15

主题

83

帖子

123

积分

注册会员

Rank: 2

积分
123
发表于 2004-4-13 08:04:00 | 显示全部楼层

Re:游戏设计的两种方式?

哎,实际上,游戏无非就是要要获得CPU时间,而所谓的timer循环或idle循环也就是周期性的向CPU索求时间。   while( message)
   {
      case 1:   ;
  case   2:           ;


      case   n:           ;
  }
在开发网络游戏的时候你需要用WINDOWS消息作为基础,因为比较稳定,而且你可以用wait序列函数来同时WAIT消息和事件,这是进行消息分流的必要条件。

而一般单机游戏或网络游戏的“单机”部分当然是用自己的事件处理机制罗,一个指针的回调当然比消息来的直接和高效

4

主题

29

帖子

41

积分

注册会员

Rank: 2

积分
41
发表于 2004-4-16 12:36:00 | 显示全部楼层

Re:游戏设计的两种方式?

估计没什么正式的游戏会用OnTimer和Windows message来实现自己的Render loop,太低效。网络游戏当然使要实现自己的协议层,一般使用berkley socket,消息机制对游戏来说太低效了。
while(loop_condition)
{
     Logic();
     Physics();
     Render();
}

21

主题

109

帖子

109

积分

注册会员

Rank: 2

积分
109
发表于 2004-4-16 13:36:00 | 显示全部楼层

Re:游戏设计的两种方式?

    // Initialize Direct3D
    if( SUCCEEDED( InitD3D( hWnd ) ) )
    {
        // Create the scene geometry
        if( SUCCEEDED( InitGeometry() ) )
        {
            // Show the window
            ShowWindow( hWnd, SW_SHOWDEFAULT );
            UpdateWindow( hWnd );

            // Enter the message loop
            MSG msg;
            ZeroMemory( &msg, sizeof(msg) );
            while( msg.message!=WM_QUIT )
            {
                if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
                {
                    TranslateMessage( &msg );
                    DispatchMessage( &msg );
                }
                else
                    Render();
            }
        }
    }

36

主题

135

帖子

135

积分

注册会员

Rank: 2

积分
135
发表于 2004-4-16 17:06:00 | 显示全部楼层

Re:游戏设计的两种方式?

peekmessage的cpu占用率是100%!

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
QQ
发表于 2004-4-19 21:19:00 | 显示全部楼层

Re:游戏设计的两种方式?

好可怕

15

主题

1268

帖子

1268

积分

金牌会员

Rank: 6Rank: 6

积分
1268
发表于 2004-4-21 09:54:00 | 显示全部楼层

Re:游戏设计的两种方式?

在自循环方式中还有基于时间片和基于绝对时间两种方式
各有优劣

3

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2004-4-21 17:12:00 | 显示全部楼层

Re:游戏设计的两种方式?

多谢各位大虾指点, 关于 berkley socket  哪有相关资料可供查询吗?
caojunvincent@163.com  
这是我的邮箱
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-30 09:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表