设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 9064|回复: 66
打印 上一主题 下一主题

[胡扯] How to写一个全新的rpg maker

[复制链接]

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

跳转到指定楼层
1
发表于 2021-7-29 16:56:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
看到大家贡献了这么多的runtime,就想了解一下写这个需要多少知识,然后我发现了这个课程:

Create a 2D Game Engine with C++ & Lua
https://courses.pikuma.com/courses/2dgameengine

共有如下几大章,每章里还有若干小节,果然很难啊……

1 Introduction
2 Libraries & Dependencies
3 Displaying the Game Window
4 Rendering SDL Objects
5 Fixing the Game Time Step
6 Logger
7 Files & Folder Structure
8 Organizing Game Objects
9 ECS Design
10 ECS Implementation
11 Creating Entities & Components
12 Creating Systems
13 Managing Assets
14 Animation System
15 Collision System
16 Killing Entities
17 Event System
18 Other Useful Components & Systems
19 Tagging & Grouping Entities
20 Data-Oriented Design
21 Displaying True-Type Fonts
22 Dear ImGui
23 Culling & Map Control
24 Lua Scripting
25 Next Steps
26 Bonus: The Map Editor
27 Moving Forward

众筹$29.99学费

评分

参与人数 2+2 收起 理由
域外 + 1 非常有帮助!感谢分享
哇哇哇啊叭叭 + 1 仰止

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *

Lv2.观梦者

梦石
0
星屑
701
在线时间
511 小时
注册时间
2012-4-8
帖子
255
2
发表于 2021-7-29 21:28:01 | 只看该作者
一看就是个大工程,可能需要一个经验丰富的团队开发很长时间。

点评

论坛上那些第三方runtime都是个人开发的,恐怖如斯  发表于 2021-7-30 02:26
武侠|养成|战棋游戏《以武证道》头秃开发中...
开发日记在此
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
2
星屑
13363
在线时间
2300 小时
注册时间
2011-6-4
帖子
618
3
发表于 2021-7-30 02:02:26 | 只看该作者
我记得B站有个叫红色激情的Up,用GMS仿制了一个RMMV https://b23.tv/GHqjZ4

点评

完了已经被主题曲洗脑……  发表于 2021-7-30 02:09
BUG反馈请加QQ 529283039
水友群 917854767

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1282
在线时间
257 小时
注册时间
2021-2-16
帖子
247
4
发表于 2021-7-30 08:24:42 | 只看该作者
这个课程之前的名字叫《Fundamentals of 2D Game Engines with C++ SDL and Lua》,曾在udemy上卖9.9$(该课程在udemy上貌似下架了)。现在换个名字卖的这么贵。。。当然,也许作者把课程内容优化的更好了。

点评

切进网页发现已经涨到$39.99了,这就是理财课程吗?  发表于 2021-11-14 01:56
通货膨胀嘛,要是有免费的就好了(  发表于 2021-7-30 09:08
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

5
 楼主| 发表于 2021-8-1 03:32:24 | 只看该作者
本帖最后由 guoxiaomi 于 2021-8-1 03:44 编辑

成功写好了0.1个rpgmaker:
  1. #include <rice/rice.hpp>
  2. #include <iostream>

  3. using namespace Rice;

  4. extern "C" void Init_test()
  5. {
  6.     Class rb_cTest = define_class("Test");
  7. }

  8. int main()
  9. {
  10.     std::cout << "Hello, rice" << std::endl;
  11.     ruby_init();
  12.     Init_test();
  13.     rb_eval_string("p Test");
  14.     std::cout << "-- end --" << std::endl;
  15.     return ruby_cleanup(0);
  16. }
复制代码
一顿编译后得到test.exe,执行结果:
  1. Hello, rice
  2. Test
  3. -- end --
复制代码
,范例: test.zip (2.45 MB, 下载次数: 4)
现在只要把SDL加进去
参考资料:
1. rice:https://jasonroelofs.com/rice/4.x/tutorial.html
2. embed ruby:https://silverhammermba.github.io/emberb/embed

编译方法是用rice在mingw64里编译出test.o文件,然后把最终g++编译.so文件的那部分内容改为输出exe就OK了:
  1. g++ -o test.exe test.o -L. -LC:/Ruby30-x64/lib -L. -pipe -s -fstack-protector-strong -pipe -s -fstack-protector-strong -Wl,--enable-auto-image-base,--enable-auto-import test-x64-mingw32.def -m64 -static -Wl,-Bdynamic -lx64-msvcrt-ruby300 -Wl,-Bstatic -lstdc++ -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi
复制代码
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7981
在线时间
1183 小时
注册时间
2007-7-29
帖子
2055
6
发表于 2021-8-1 14:31:55 | 只看该作者
guoxiaomi 发表于 2021-8-1 03:32
成功写好了0.1个rpgmaker:
一顿编译后得到test.exe,执行结果:,范例:。
现在只要把SDL加进去

真是怀念的代码……
话说为了ruby用了rice么?

点评

你对这一套有啥经验嘛,指导一下下  发表于 2021-8-1 14:37
这样就可以写个mv出来了(x  发表于 2021-8-1 14:36
我也是胡乱搞的,js的话找到了这个:https://github.com/ftk/quickjspp  发表于 2021-8-1 14:33
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

7
 楼主| 发表于 2021-8-1 22:07:11 | 只看该作者
本帖最后由 guoxiaomi 于 2021-8-1 22:28 编辑

SDL也加进去了!
  1. #include <rice/rice.hpp>
  2. #include <SDL2/SDL.h>
  3. #include <iostream>
  4. #include <windows.h>

  5. using namespace Rice;

  6. void Init_test()
  7. {
  8.     Class rb_cTest = define_class("Test");
  9. }

  10. int main(int argc, char *argv[])
  11. {
  12.     ::ShowWindow(::GetConsoleWindow(), SW_HIDE);

  13.     std::cout << "Hello, rice" << std::endl;
  14.     SDL_Window *window = SDL_CreateWindow("demo", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN);
  15.     SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);

  16.     ruby_init();
  17.     Init_test();
  18.     rb_eval_string("sleep 10");
  19.     SDL_DestroyRenderer(renderer);
  20.     SDL_DestroyWindow(window);
  21.     std::cout << "-- end --" << std::endl;
  22.     return ruby_cleanup(0);
  23. }
复制代码
一顿编译后得到: test2.zip (2.86 MB, 下载次数: 10)
make

接下来写个事件循环就完事了
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

8
 楼主| 发表于 2021-8-2 17:53:57 | 只看该作者
本帖最后由 guoxiaomi 于 2021-8-2 17:56 编辑

v0.0.1版发布成功!话说为什么要带这么多的dll…… lib.zip (4.54 MB, 下载次数: 4)
https://gitee.com/rmxp/sdlrgss/releases/v0.0.1
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
11706
在线时间
991 小时
注册时间
2019-11-5
帖子
2427

极短24参与

9
发表于 2021-8-2 19:46:07 | 只看该作者

  这个水贴好硬核。突然有种想买的冲动...如果这是一贴广告的话,就更硬了

  什么是runtime?百度上的翻译感觉完全翻成了另一种外语


点评

QAQ.。考虑考虑卖个腰子买课程,还能剩下不少钱去南方旅个游  发表于 2021-8-2 21:57
就是“运行时”,我也不知道咋解释但是大家都叫这个runtime  发表于 2021-8-2 19:56
其实我没买课,就瞎蒙着写的,你赶紧买了把视频给大家分享一下~  发表于 2021-8-2 19:56
风继续吹,不忍远离。年少轻狂,眼神明亮,最好的年纪,最好的时光。希望岁月是一场春梦
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

10
 楼主| 发表于 2021-8-3 23:26:26 | 只看该作者
本帖最后由 guoxiaomi 于 2021-8-4 00:22 编辑

写了个draw_text:
跟右值引用干了一晚上,目前使用了全局变量,情绪非常稳定
20210731-rice-v0.0.2.zip (4.15 MB, 下载次数: 8)

Screenshot 2021-08-03 232359.png (52.71 KB, 下载次数: 38)

Screenshot 2021-08-03 232359.png
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 16:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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