Looking to start a new project

Looking to start a new project

Postby xahodo » 05 Jan 2019, 09:57

Hello,

I'm looking to start a new space 4X game. It will be turn based. The starmap will be in full 3D.

These are the libraries I already set my mind on:
  • Graphics: Ogre3D;
  • UI: CEGui;
  • Input: OIS (on top of CEGui);
  • Sound: SoLoud;
  • AI/Modding (for lack of a better word): Squirrel;
  • Networking: ENet.

Now, I'm still having some issues:
  1. Strings: how do I best deal with internationalization (possibly even Arabic, which is a left-to-right language)?
  2. Is input going to be handled properly by OIS (i.e. will I get the appropriate language characters, or do I need to do some processing in order to get those)?

I'm starting with research, so I don't have to do all of this later.
Now, I'd prefer to avoid complicated beasts like boost, I'd like a nice solution I can actually use. Any suggestions?
Last edited by xahodo on 05 Jan 2019, 16:12, edited 2 times in total.
xahodo
 
Posts: 61
Joined: 23 Mar 2010, 15:11

Re: Looking to start a new project

Postby Julius » 05 Jan 2019, 11:47

Somewhat OT, but Star Ruler 2 would be a much better project to contribute to in regards to 4X space games: https://github.com/BlindMindStudios/StarRuler2-Source
User avatar
Julius
Community Moderator
 
Posts: 2562
Joined: 06 Dec 2009, 14:02

Re: Looking to start a new project

Postby xahodo » 05 Jan 2019, 16:10

Enet Seems easy and elegant enough to deal with for networking. By the way: I'm going for a client/server approach (if that wasn't obvious already).

EDIT: Yikes! Seems like there hasn't been any activity on OIS for 5 years and no release for more than 7 years. Does this mean I can better look for something else?
xahodo
 
Posts: 61
Joined: 23 Mar 2010, 15:11

Re: Looking to start a new project

Postby Danimal » 05 Jan 2019, 23:41

My god, that framework you are proposing is ancient, do yourself a favor and grab "Godot" for the task; you will save yourself hours of just melding everything into working order, hours that you can use into making an actual game.
User avatar
Danimal
OD Moderator
 
Posts: 1327
Joined: 23 Nov 2010, 13:50

Re: Looking to start a new project

Postby Lyberta » 06 Jan 2019, 10:43

Writing your own engine is a pain. It will take you a long time before you get anything playable and that time can span several years and will be very discouraging.
⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧
User avatar
Lyberta
 
Posts: 588
Joined: 19 Jun 2013, 10:45

Re: Looking to start a new project

Postby xahodo » 06 Jan 2019, 20:55

Last releases of these libraries:
Ogre3d - December 20th, 2018.
CEGui - April 28th, 2016 (community is active). Usable right on top of Ogre.
wgOIS - December 2nd, 2018
SoLoud - Novermber 19th, 2018
squirrel - March 27th, 2016 (there's recent activity in the community and in git they're active).
enet - unknown (v1.3.13 being last release, 4 months ago last activity in git).
So, they're not so ancient. Squirrel might be the only one considered "ancient", however openttd uses it and that game seems to compile quite happily.

I find learning quite fun. :) So, if I spend months figuring out how I could connect the dots, it doesn't matter. I'm doing it because I than have something constructive and fun to spend my time on. However, I'm not all-knowing.

Regarding Godot... I feel it shoves a particular way of working down my throat; An API should not do that.
xahodo
 
Posts: 61
Joined: 23 Mar 2010, 15:11

Re: Looking to start a new project

Postby Julius » 06 Jan 2019, 21:09

Anything that is more integrated will probably make this a much more enjoyable experience. The Ogre3D setup (due to having to juggle so many parts) has IMHO resulted in a lot of failed open source games as maintainers lost the drive to update it due to that complexity.

Maybe have a look at: https://www.panda3d.org/ if Godot isn't your thing.
User avatar
Julius
Community Moderator
 
Posts: 2562
Joined: 06 Dec 2009, 14:02

Re: Looking to start a new project

Postby Andrettin » 06 Jan 2019, 22:19

Danimal {l Wrote}:My god, that framework you are proposing is ancient, do yourself a favor and grab "Godot" for the task; you will save yourself hours of just melding everything into working order, hours that you can use into making an actual game.


Indeed, Godot is a marvelous engine. Learning stuff is fun, but reinventing the wheel and then end up having put a lot of work into something for which there is a better, already-existing solution out there can end in a lot of frustration.
Andrettin
Wyrmsun Moderator
 
Posts: 220
Joined: 29 Mar 2015, 19:26

Re: Looking to start a new project

Postby charlie » 16 Jan 2019, 10:40

xahodo {l Wrote}:I find learning quite fun. :) So, if I spend months figuring out how I could connect the dots, it doesn't matter. I'm doing it because I than have something constructive and fun to spend my time on. However, I'm not all-knowing.

That's a good attitude and I try to get that across to people when they ask "what's the point" [of somebody doing something they think is futile].
Free Gamer - it's the dogz
Vexi - web UI platform
User avatar
charlie
Global Moderator
 
Posts: 2079
Joined: 02 Dec 2009, 11:56
Location: Manchester, UK

Re: Looking to start a new project

Postby domtron » 26 Jan 2019, 04:17

@xahodo I don't know about strings/internationalization, sorry. But I'd like to point to the Sol2 library as a possible replacement for scripting. It is a LuaJit/C++ bridge and seems to be really nice to work with. I was able to get it working without much trouble because of the really nice documentation and examples. LuaJit is also really fast so your mods won't slow the core C++ code down too much.

Link: https://github.com/ThePhD/sol2
domtron
 
Posts: 95
Joined: 10 Jun 2013, 16:22

Re: Looking to start a new project

Postby Wuzzy » 27 Jan 2019, 14:22

I can't say much, but there is one basic thing …
Decide now whether you want to make a game or a game engine.

I've seen so many projects fail because the devs got lost in engine development and just “happened to” “totally forget” that they actually wanted to make a game, and the end result is a weird mess. :D

I don't want to discourage anyone from developing whatever (even engines), but it's better if you know what you actually want before. ;)
I like bitcoins: 17fsUywHxeMHKG41UFfu34F1rAxZcrVoqH :-)
User avatar
Wuzzy
 
Posts: 776
Joined: 28 May 2012, 23:13

Re: Looking to start a new project

Postby Jastiv » 30 Jan 2019, 07:03

I second, (or third or fourth or fifth) that. I highly recommend that you do games unless you have a special interest in gaming engines. Actually, my game is a fork of a another (more or less complete game, but ultimately I did not enjoy the graphics or game play of the original very much, I'm likeing it a lot more now however and zombies now drop cabbages like Ultima 9.) So, yes, game development.

I suppose the other option is to learn how to become a vampire and live forever so you have time to do both. (No, I'm not really serious.)
User avatar
Jastiv
 
Posts: 167
Joined: 14 Mar 2011, 02:18

Re: Looking to start a new project

Postby GunChleoc » 01 Feb 2019, 20:20

Regarding Internationalization, use a system that supports plural forms, like gettext. Also, never hard-code word order or serve up incomplete sentences - use placeholders instead. And add comments for the translators to give them some context, especially on short strings.

For Arabic, the tough part isn't reversing the gui, but that the script links up the letters. Have a look at the harfbuzz library.

You could also have a look at the ICU library, which is very useful e.g. for character segmentation in Unicode strings.

You will also need font support for languages that use non-Latin script.
User avatar
GunChleoc
 
Posts: 419
Joined: 20 Sep 2012, 22:45

Re: Looking to start a new project

Postby lm » 27 Feb 2019, 16:55

Most applications I see that use a standardized method for internationalizing text end up using GNU gettext. Even the musl C library added basic support for reading the file format created by gettext utilities so the library could show internationalized error messages. I personally use a BSD licensed version of gettext that was a fork of what's now the BSD Citrus project ( http://citrus.bsdclub.org/ ). Am hoping to add basic support to read files in apk and other zipped formats using zlib and libminizip to it. The musl library is under MIT license, so you could use their code or code from the Citrus project as a replacement for GNU gettext if you want a different license besides GPL.

Not that familiar with the libraries you're using, but I know SDL 2.x has support for UTF-8 input using the SDL_TEXTINPUT event. Would think most newer graphics/GUI libraries should be able to offer similar support for UTF-8 input or you can always look into what SDL 2.x does.

I really haven't seen any solutions I like for dealing with languages that use a different direction such as rendering right to left. I'm thinking of adding some code to guess if rendering should be left to right or right to left based on the LANG or LANGUAGE environment variable settings. gettext is using those already, so it might be useful extension to gettext. I'm using a UTF-8 TrueType font for rendering text. So, one would need to draw the letters on the screen starting at the right instead of the left for languages that needed it. The information as to which letters to draw is supplied by gettext or by utf-8 user input. Users that want to add new language support to a game can volunteer to create a utf-8 file in .po format with the relevant translations.

That's the easiest method I could find for adding some internationalization support to applications. Would be interested to hear if others have easier alternatives that don't require a lot of extraneous libraries.
lm
 
Posts: 8
Joined: 27 Feb 2019, 15:06

Who is online

Users browsing this forum: No registered users and 0 guests