PageRenderTime 43ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/README.md

https://gitlab.com/Lagi/cevo
Markdown | 77 lines | 52 code | 25 blank | 0 comment | 0 complexity | 38bdfbaf89c87bfa63b79e61c1cd10c1 MD5 | raw file
  1. ??--
  2. his "README" is targeted to developers
  3. ----
  4. This is a short developer README.
  5. If you're not a developer,
  6. you would probably want to check the [experimental](../../tree/experimental) branch
  7. of this repository.
  8. This branch's goal is to port C-Evo
  9. to the free development environment called "Lazarus".
  10. Why Lazarus?
  11. ----
  12. Why do it, and why Lazarus?
  13. * because we want a free IDE to encourage developers for joining in
  14. * because this is a powerful IDE (lazarus it definitely more powerful in 2015 than the old Delphi 7 distribution).
  15. * We will be able to launch the game on Linux and MacOS natively.
  16. * We will even be able lauch the game in a browser! This is possible because lazarus can compile to gtk, and gtk has the "broadway" engine. (It eats a lot of traffic, but works in most cases.)
  17. Current status:
  18. ----
  19. * It's possible to start the game in both Windows and Linux (the environments that I could test).
  20. * All AIs seem to work correctly. (They expand, attack etc.)
  21. * terrain generation differs in Windows and Linux, making games unreadable across each other. Both terrain versions seem correct visually, but the picture's different. This can probably be fixed, but still needs to be done.
  22. * the main screen graphics are broken. This has been gradually fixed already, but still needs some work.
  23. * the game throws exceptions in Linux at every logical step made (like end of turn, investigate a city,..)
  24. * the game is incredibly slow under Windows but fast under Linux. This is because of `BitBlt` usages, it should be easy to fix but needs to be done.
  25. * the in-game manual cannot be browsed in Linux because it lacks proper "PVSB" custom component support (see the code).
  26. * the more obvious errors got fixed, the more hard ones left.. The porting progress becomes harder.
  27. * the game proved to be hard to port. A _lot_ of winapi was used originally. Even assebly! Even now the project has a lot of platform-specific code.
  28. * compilation TODO-s are left, they look like "`lazarus todo`" or "`{$ifdef WINDOWS}`".
  29. What can I do?
  30. ----
  31. * Find and try to fix compilation-level issues.
  32. This might require using google/duckduckgo/searx a lot.
  33. Since I already did that for most of the project parts,
  34. the most hard ones are left.
  35. * Find bugs that annoy you, investigate and fix them.
  36. You might use a debugger.
  37. For example, there are `ScanLine` method usages,
  38. and `BitBlt` with the copy mode different than "SRCCOPY".
  39. You should understand what the code really meant to do,
  40. and write it in correct Pascal code. Using methods, properties, loops etc.
  41. // If you start with graphics, you'll also have easy time advertising your progress.:)
  42. It's easy to share a screenshot.:)
  43. Other notes
  44. ----
  45. Main git repo: [https://gitlab.com/vn971/cevo](https://gitlab.com/vn971/cevo)
  46. Github mirror: [https://github.com/vn971/cevo](https://gitlab.com/vn971/cevo)
  47. If you start making changes, do commit them in a timely manner.
  48. Don't wait for your changes to be 1000 lines of source code!
  49. In the contrary, make small self-contained changes.
  50. Feel free to ask questions on [http://c-evo.org/bb/viewtopic.php?f=4&t=119](http://c-evo.org/bb/viewtopic.php?f=4&t=119)
  51. You will need Lazarus-1.0.12+ to work on the project. I use Lazarus-1.4-RC2.
  52. Please send pull requests if you'll do something. At least I'd be glad to know that someone did some progress in this work. :P :)