6 ms·
Show HN: Toy – A thin C++ game engine
- skocznymroczny 8y agoTried it on my 2016 Macbook Pro. Has some performance issues, I don't know how many exactly, but I'd say I'm getting around 10 FPS or less.
- wlkr 8y agoSeconding the performance issues (at least on web). For comparison, https://kripken.github.io/misc-js-benchmarks/banana/ https://kripken.github.io/misc-js-benchmarks/banana/ these demos run fairly smooth for me on their highest settings.
- hugoamnov 8y agoThe PBR pipeline of toy is not well optimized yet: I'll have more time to tackle this issue now that the heavy lifting work has been done ! Framerates are much better in the non-web version somehow: I suspect some unnecessary texture sampling ops are to blame, but I need to investigate. Resizing the window to a smaller helps greatly improve the framerate, which tends to show that the bottleneck is in the fragment shaders.
- degenerate 8y ago"toy is under heavy development" If your commits in the last week keep their pace, you may as well have this statement be a clickable link to the github activity page: https://github.com/hugoam/toy/graphs/commit-activity https://github.com/hugoam/toy/graphs/commit-activity But if you slow down significantly, change wording to "active development" Not knowing anything about game dev, your presentation page looks great. It's nice to see all the important pieces mentioned (3D, audio, physics, scripting). I think you did a good job on the page.
- cjohansson 8y agoWow impressive, wish you the best of luck with this project
- gitgud 8y agoLooks very interesting, but not what I expected a "thin" game engine to be, as it seems fully featured; Obj importer, physics, UI components and sound capabilities.
- shezi 8y agoThe second row of the main page states this: "The first concern of toy is to bring the thinnest and simplest stack of technology for making games directly from C++, instead of focusing on a monolithic editor, or insulating the user from the core systems." So I think this is "thin and wide", instead of "thin and small". Having all the components you need and having them directly accessible counts as thin in my opinion.
- gitgud 8y agoFair enough, my interpretation of a thin game engine is a thin abstraction over the mechanics of the game... but now that I think about it, this is exactly that...
- hugoamnov 8y agoIt's thin in the way that all the goodies are in separate modules that you don't have to use, and also in the way that it still runs in the browser with all these goodies. But it's also not so thin, you are right :)
- gitgud 8y agoGreat idea, I recently did an opengl project and just getting TinyOBJLoader to work was a task in it self. Thin & Batteries Included!
- gmueckl 8y agoLook at the example code further down: the engine isn't a heavy framework with tons of abstractions between the big systems and the game code. You get to directly access and drive all the individual systems yourself. The most common "big" game engines don't allow that. There you get a big, quite opaque runtime that somehow will do rendering, sound, physics and networking and occasionally call individual fragments of your game logic in between.
- shezi 8y agoNote that the engine is licensed under GPLv3. Which means that any game must be licensed as such as well.
- hugoamnov 8y agoHi, the license is a temporary choice. I wish to release it under a permissive license in the future, I'd just like to secure a tiny bit of funding before that !
- halfastack 8y agoJust a note that if you accept any merge from anyone else, when changing the licence, you'll have to have their consent to change the license as well. Sounds like it might be a difficult thing to switch, depending on how many contributors you'll have when wanting to switch.
- sbjs 8y agoIs that true though? I thought all third party contributed changes are licensed separately, with the contributor still having all rights, unless they explicitly say otherwise.
- cpburns2009 8y agoIANAL: My understanding is the same as @halfastack's. > I thought all third party contributed changes are licensed separately, with the contributor still having all rights, unless they explicitly say otherwise. That's true, but it prevents the project owner from changing the license unless either the contributed code's license is compatible with the new license, or all contributors consent to the license change. That is, going from MIT to GPL is fine, but GPL to MIT is not. Projects concerned with this frequently require contributors to sign a CLA (Contributor License Agreement) where the contributor gives permission for the project to use the contributions and relicense them in the future. E.g., Ubuntu [1]. [1]: https://www.ubuntu.com/legal/contributors https://www.ubuntu.com/legal/contributors
- pure-awesome 8y agoMud is an odd choice of name for a component of a graphical games engine, given that a MUD is a Multi-User Dungeon: the old-school style text-only MMORPG. (There are still a few active ones such as Alter Aeon and Miriani).
- justaguyinspace 8y agoI immediately thought of MUD's as well. There's an active community on Reddit and still many hundreds (maybe thousands) online and playable!
- tachyonbeam 8y agoIf your game engine supports multiple scripting languages, including one that is graph-based, maybe it’s not that “thin” anymore.
- zwaps 8y agoOutstanding concept, I like the thin&wide idea.
- mukuro 8y agoI like how many modules are designed to work in "immediate mode", it makes playing around with stuff very easy and satisfying.
- adiusmus 8y agoEngine looks good. Open source needs more projects like this. That GPL3 in the license.txt is a fun document full of dark places where less experienced adventurers might get eaten by a grue. Certainly makes it easier for plenty of interesting times and exciting quicksand sidequests for those without a suitable guide.
- S-E-P 8y agoHoly crap, yeah... "thin" huh. Might want to define your terms lol But for real, this looks great, I'll poke around it a bit more on the weekend, but it looks pretty darn good as it stands
- dandigangi 8y agoThose demos were amazing. Makes me want to learn C++ instead of Go. :)