zephilinox / galacticempires Goto Github PK
View Code? Open in Web Editor NEWGalactic Empires - An unfinished 4x space "game" made in C++ with SFML, CEGUI, Thor, Lua, LuaBridge, and more.
License: Other
Galactic Empires - An unfinished 4x space "game" made in C++ with SFML, CEGUI, Thor, Lua, LuaBridge, and more.
License: Other
Line 47 of LuaState.cpp
The camera zoom limits are causing issues because of the way sf::View works. you can only increase or decrease the zoom level using floats, so even though we are keeping track of that you can end up zooming in much farther by alternative between zoom in and zoom out. I'm not sure how we could fix this.
We need entities on the map, such as stars, ships, and planets.
A logger needs to be written that allows for outputting a variety of information to aid in debugging. It may be more useful for logic errors than for actual runtime errors.
A badly written example can be found here https://gist.github.com/Zephilinox/5385ea501b5622efed03
Selecting the hexagon tile is buggy, as it approaches an edge it switches to the hexagon along that edge, and then back again once on that hexagon.
Most laptops don't have a mouse wheel, and using the touchpad as a scroll wheel (rightmost side of touchpad) doesn't work.
We need a GUI window for displaying information about an entity, such as the resources on a planet or the health of a ship.
Only valid video modes (i.e., video modes with an aspect ratio that match the monitor) work, therefore setting a default video mode in the settings config file will not work on some machines. Instead, we should generate the video settings from the output of getDesktopMode()
on the first run of the program.
We can then compare tgui and SFGUI and decide on what would be best for us.
Along with functions such as genFloat()
, genInt()
, etc. this could contain functions like genColor()
.
At some point I should ensure that premake4 is creating an appropriate MSVS project to be compiled by the MSVC. I will need to build appropriate MSVC versions of libraries being used.
When ini_parser is included twice, std::to_string is re-defined (mingw32) which is a compiler error. I've disabled the ini loading from GalacticEmpires.cpp in order to use it in OptionsState.cpp
Will need to be tested on linux
LuaBridge appears to be one of the better lua bindings out right now, but there are issues. These commits by a user show some patches and fixes which we may need in the future, so I'll leave it here for reference
https://github.com/pisto/spaghettimod/commits/master/include/
We need a GUI window to display information about a selected tile, such as a list of entities occupying it.
I think this would be useful, in that we wouldn't need to create an instance of ini_parser each time we want to use it. Thoughts?
OptionsState needs to have a properly formatted GUI using SFGUI to display a variety of INI settings
We've decided that instead of letting SFGUI automatically set the sizes of widgets, we will manually set this size (based on the resolution the game is running at) so that stuff actually looks good. It's probably a good idea to create a simple prototype to try this out.
(Seemingly) random characters are being appended to the last line of the file when writing.
https://github.com/Zephilinox/GalacticEmpires/blob/develop/src/Game/SolarSystem.cpp#L48
float shortestHexDistance = 1000000;
could be
float shortestHexDistance = std::numeric_limits<float>::infinity();
Many classes will have lua files with data that they need to load. Providing a virtual abstract class to inherit from may be something to consider.
std::unary_function: https://github.com/Zephilinox/GalacticEmpires/blob/develop/include/Game/SolarSystem.hpp#L13
std::binary_function:
https://github.com/Zephilinox/GalacticEmpires/blob/develop/include/Game/SolarSystem.hpp#L21
Probably a good idea to not use them.
at the moment premake assumes that the libraries are installed, and can thus be found in the appropriate default locations. This doesn't allow for using the extlibs/linux/ directory.
We're going to need some kind of state management, as the previous one was buggy.
Currently there are two dev branches pushed exploring possible options, which will later combine in to one
The current issue is that when a state wants to change (e.g. push a new one or pop itself) it will cause the state manager to call subsequent functions in the game loop (e.g. draw()) of the new state.
Possible solutions are to use a postDraw() function and limit state change code to that, or to have handleEvent and update() return a boolean to determine if it was changed, and if so, to abandon the current game loop.
ini_parser is using constexpr which needs to be changed
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.