New project template

I’ve created a GraphicsSettings sample dialog here:
https://github.com/PredatorMF/Urho3D/tree/SetModeTest/Source/Samples/54_GraphicsMode

The components are in ui_option.h/cpp files. There is BoolOption, MultiOption, SliderOption and TabsPanel. These are usable from C++ code and the editor. The demo looks like this:

graphics-settings video-settings

Feel free to modify and use as you like.

5 Likes

Very useful sample. Dealing with monitor/resolution stuff sucks.

Thanks! Will try to impement this when I have a chance.

I started using this to learn more about the engine and it helped me a lot. Reading through your code is a very interesting way to learn the engine and not very confusing. Thanks for the readable code! :smiley:

3 Likes

Been taking a long break from this project but few days ago decided to continue working on it. Here’s what I’ve done so far:

  • Completed the work on Android app 2 way communication. Next thing in the list for this is to try implement some sort of ad platform, cause that’s what everyone is implementing these days anyway
  • CI updates for faster building + build artifact upload
  • A lot of small updates to the sample gamemode and the GUI
  • Map selection window to allow loading 2 different maps
  • Now there’s a background scene for the main menu
  • Credits screen refactored to allow more precise start/end time detection
  • Removed Urho3DAll.h includes in all the project and done some cleanup for it

If you wan’t to try it out, here’s the build artifacts from CI:
Linux: https://303-138001494-gh.circle-artifacts.com/0/build.zip
Windows: https://304-138001494-gh.circle-artifacts.com/0/build.zip
Android: https://302-138001494-gh.circle-artifacts.com/0/launcher-app-armeabi-v7a-debug.apk

And here’s few screens of it:

8 Likes

What is the 2 way communication? Pardon my ignorance. :frowning:

Passing events from c++ to java and vice versa.

this is really great stuff, thanks! :smiley:

are you planning to stick with the urho ui then?

i’m just scratching the surface of game dev yet, but i’m curious about immediate mode and had my eye on nuklear (in particular it looked flexible for hud/journal/inventory type info), what sort of mess does it make? the performance overhead seemed pretty minimal, but i’m too noob to know if it would count as negligible.

This project was intended as a starting point for any Urho3D game so it made sense to use the inbuilt UI system. I liked working with Nuklear, but didn’t wanted to maintain it’s integration on all platforms that Urho3D supports. But honestly speaking I think that Urho3D UI system is more flexible, you just have to learn it a bit + now it supports custom shaders which should allow to add cool effects to it. The default skin might look a bit oldschool, but you can heavily modify it to look more modern.

4 posts were split to a new topic: SVG support for UI

Did a lot of updates to the sample lately, it starts to seem that my template project becomes my sandbox for testing out stuff, but I try to keep it as universal as possible, here’s the list of stuff that I added or removed:

  • introduced perlin-noise terrain generation as part of sample (implemented https://github.com/Reputeless/PerlinNoise)
  • A lot of cleanup of the code to make the actual playable scene as empty as possible
  • Implemented the @Pencheff 's settings window, very pleased how it works and looks
  • Splitscreen supports up to 8 views just for the heck of it:
  • Configuration file is now a bit more organized

If you wan’t to check it out, please do: https://github.com/ArnisLielturks/Urho3D-Project-Template

11 Likes

Awesome interesting stuff! I will be sure to give it another spin in the near future.

This has to be one of the most useful projects I have ever seen in the community. It’s useful for a wide variety of projects, from small Ludum Dare prototypes, to full blown projects. Also, very polished. Congratulations, and thank you for the effort @Miegamicis.

That splitscreen support is awesome too. I wonder if you are working on a kart game?

1 Like

All action and no talk. You are the man of the week :slight_smile:

2 Likes

No real game behind it. I’m just getting ready for a hackaton I guess. The code quality might not be the best, cause I added quite few community components and didn’t tried to update each of it’s code to match the projects just because of the future updates that might come from them.

Can’t take all the credit for it. A lot of guys here helped to shape it. :+1:

1 Like

Just tried it, had some fun jumping around pushing crates :smiley: I had linker error on Visual Studio 2019, unresolved external symbol to SetupDiEnumDeviceInfo, fixed with a

target_link_libraries(${TARGET_NAME} Setupapi.lib)
1 Like

Hi, thanks for the feedback. I ditched VS a while ago and haven’t build it on Windows since then. CI takes care of that for me. I noticed that your settings window used some sdl stuff directly, was that intentional? Could it be related to this issue? Anyways I guess we can add the cmake flag to fix this issue for now.

BTW my favourite part of this sample for now is the ability to plug in joystick while you’re playing the level, it should automatically add splitscreen support and spawn the new player on map. Sadly it works only on Windows.

1 Like

There’s actually a huge list of things that I would like to add to this project, to name a few:

• automatic build publishing to itch.io
• joystick key mapping for each connected controller
• mobile UI controls, for now the gyroscope is used for movement…
• networking support - probably only as a LUA or AS mod for easy removal but haven’t yet decided anything
• improved UI design and possibly animations
• miscellaneous settings which would allow adding new configurable values to the settings window using only event system
• and many more

Let me know if there’s something else that you might find useful.

3 Likes