Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Michael Heilmann
@michaelheilmann
@/all as cmake supports cross-platform downloading and unpacking (yes even tar.bz2 works on windows (at least here)) the dependencies impose no thread to this effort - even PhysFS (the worst as it is only packaged on some Linux systems and certainly not packaged on Cygwin) can be handled then
positive effect is most likely that the "external" repository/submodule will be gone
@/all also a change as it does not seem to be possible to grant free access to things without people causing a desaster: Egoboo/Idlib/... changes will be strictly speaking pull request based and i will merge them only after careful examination :(
Michael Heilmann
@michaelheilmann
@/all shouldn't be a surprise that SDL fucked up its CMake system
Michael Heilmann
@michaelheilmann
@/all i think i will just upload prebuild binaries, i am fed-up with this clusterfuck SDL project; these subprojects like SDL mixer do not even provide CMake build files
Michael Heilmann
@michaelheilmann
all right egoboo was built successfully using cmake visual studio and cygwin
there are four linker errors left e.g. "map_generate_tile_twist_data"
i can not find a definition of this function however, which is weird
Michael Heilmann
@michaelheilmann
id::semantic_cast<Vector2f>(getPosition())
that baby is nice; again, you define your own functor
id::semantic_cast<Vector2f>(getPosition(), id::zero<Point2f>())
the semantic cast for the case in which you want to define some point of origin
id::semantic_cast<Vector2f>(getPosition(), Point2f(1,1))
can be used for implementing any cast you'd ever need
auto t = id::euclidean_norm(v);
if (t.length == id:zero<float>()) { /* v was zero, t.vector contains v*/ }
else { /*t.vector contains the normalized vector*/ }
Michael Heilmann
@michaelheilmann
id::pi_over<float,4>()
egoboo/egoboo#361
so far 2200 lines of code removed
Michael Heilmann
@michaelheilmann
as you see there are only 3 types of commits; one for the CI (as this is changing until CMake works), one for math, and one for the rest, i keep it that way until the PR is ready
Michael Heilmann
@michaelheilmann
so as Egoboo has "some" text rendering issues (including the still to be fixed console) and i require an actually usable console to check wether the "camera system" still works when i change something about these dreaded "facing" angles, there it comes: the inevitable "document" class: the idea and some of the code was taken from an engine that is a bit dated (lighfeather) and i was working on the GUI back then - the GUI back there actually had text support for formatted multi-line text and it was using this approach. In PR #361 the document class still resides in Egolib, this will change of course, as soon as it passes all the unit tests
Michael Heilmann
@michaelheilmann
the fundamental issue documents aid to solve is text rendering - more precisely the costly operation of preparing text for rendering; they raise appropriate events when parts of a long text change. For example, if you replace a part of the string then you will receive the original string, the string with the part replaced, and the range of characters affected. Themselves, they do not deal with rendering (separation of concerns). Receiving such events makes it easier to re-prepare the text for rendering after changes. For example if an event is received that says a number of characters l starting at index i were changed, it becomes quite trivial to update a graphical representations of specific text lines (i and l make it trivial to find the affected lines and update)
lightfeather, the engine i was talking about, is not really competitive these days, however, it's gui system was and (taking a look at CEGUI and others) most likely still is competitive
certain languages (C#, Java) use in their GUI toolkits quite exhaustively what these documents are: there, they are called models
Michael Heilmann
@michaelheilmann
for the updated reference to idlib: id::c contains now code, that was distributed all around idlib, that pertains to the various "languages" Egoboo uses.
c does not stand for C or C++ but rather compiler
Michael Heilmann
@michaelheilmann
ok we have a working console now, Console::get().ExecuteCommand.subscribe([](std::string command) { ... })
so now the task is to be able to check the game state and acquire a pointer to the current game state and we can implement cheats; by cheats i mean cheats for development e.g. grog() which grogs the player
Michael Heilmann
@michaelheilmann
roughly 6000 LoC remove
Michael Heilmann
@michaelheilmann
now, we are going to remove most of the technical code from egolib moving it into "engine"
this project will be built with CMake as well
Michael Heilmann
@michaelheilmann
the most important difference to idlib is: this will has to compile with SDL support
Michael Heilmann
@michaelheilmann
Michael Heilmann
@michaelheilmann
@/all so as you can see the event system (distributed through Idlib and Egolib) was moved into Idlib-Game-Engine. Now, a slightly hard part starts: We have an "Image" class in Egolib (wrapping SDL surfaces) but it is hardly used. So the next steps are
@/all make Egolib actually use the image class (to get rid of all the C-like functions) and then move the image class into Idlib-Game-Engine. This will also require that Idlib-Game-Engine properly links with SDL.
Michael Heilmann
@michaelheilmann
@/all so i was able to replace most SDL_Rect intances by Rectangle2f. As a side-note: It does not matter if you use integers or floating-point numbers as long as you are in the FP safe range; otherwise JavaScript for example as a language would not work at all
Michael Heilmann
@michaelheilmann
@/all so there is a commit for Egoboo coming that replaces SDL_Surface by Ego::Image; this is a prerequisite for full SDL encapsulation
Michael Heilmann
@michaelheilmann
the pixel format descriptors queries will be changed to allow for runtime inputs instead of compile-time inputs, for the reason that the input (i.e. a pixel format enumeration value) to a pixel format descriptor query might not be available at compile-time (e.g. load pixel format enumeration values from files)
Michael Heilmann
@michaelheilmann
when switching to Ego::Image i have exactly one display problem in one menu ...
Michael Heilmann
@michaelheilmann
ego00.png
doesn't matter if a module is select or not, i think the problem is the "Press an icon ..." label
Vaclav Janku
@AlmostCZ_twitter
Wow,it is so amazing to after so many years see this game still being worked on. I cant wait to a final release. Keep it up,you're doing amazing job :)
Michael Heilmann
@michaelheilmann
@AlmostCZ_twitter Thank you for these encouraging words.
Vaclav Janku
@AlmostCZ_twitter
@michaelheilmann Hello in a year 2018. I only wanted to ask,if we can expect some more nighly build releases early,or later in a new year
Michael Heilmann
@michaelheilmann
Statement: There is nothing that I would dare to deliver to players in terms of a released game - there never was for that matter.
Reason: Egoboo has too many problems that prevent it from being released to players. These problems are distributed over code and data. That is, they are distributed over the whole software.
Comparing to real games/real game tools, Egoboo is in its infancy.
Resolutions: More developers which want and are able to (technically and theoretically) on these problems.
Interim Solution: I have technical means to provide pre-built packages for Windows.
However, what is the purpose ofnon-developers playing an unfinished software.
Michael Heilmann
@michaelheilmann
in any case, there is no osx maintainer so i am trying to port idlib to osx now ... blind
Michael Heilmann
@michaelheilmann
Unbenannt.PNG