Giter Site home page Giter Site logo

corwinn / h3r Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 3 MB

As of 23.08.2023 this project continues elsewhere.____A remake to be of the game engine of the well-known computer game "Heroes of Might and Magic III" and its official expansions.

License: BSD 3-Clause "New" or "Revised" License

Makefile 0.31% C++ 96.97% Shell 0.68% C 2.04%
game heroes-3 heroes-of-might-and-magic multiplatform remake sdl2 sdl2-mixer remake-games opengl

h3r's Introduction

This is a remake of the game engine of the well-known computer game
"Heroes of Might and Magic III" and its official expansions.

I'm not affiliated in any way with the authors/owners/etc. of the original
game, so re-making the AI for example will be purely observation-based and
experience-based.

This remake is being made for fun and education. This remake does not, and will
not provide any of the original game assets, so you need to buy the original
game prior being able to play it by using this remake.

The primary source of the original game data formats is:
http://sf.net/projects/vcmi

Credits.
========

Thanks to:

 * A masterpiece: "Heroes of Might and Magic III"
 * Inspiration and file format descriptions: http://sf.net/projects/vcmi
 * OS windowing system and sound bridges: "SDL2-2.0.5"
 * "ffmpeg" - for their magic all over the years! (.bik and .smk support)
 * The .h3m map makers - you rock!

h3r's People

Contributors

corwinn avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

h3r's Issues

Resource Manager

Abstract away the game data. Define a plug-in interface for custom resource managers.

Memory manager

When you put something in RAM remember where you put it.

Render the terrain

Smallest map - all kinds of terrain; walk around with a single hero (limitless movement points).

Big picture

Using my favorite diagrammer, clarify what blocks depend on what blocks, and observe the most obvious too-stupid-decisions.

Error handling

1st the project needs error handling:

  • out of memory policy: default - exit()
    //LATER - ask the user to resolve it or exit()
  • file IO policy : same as above
  • log policy : default - exit()
    //LATER - silence

Cross-build the SDL

Prepare build scripts. Read the license info. Add questions. Etc.
.
The cross-compile adventure never ends.

.bmp export

So I can see what the game bitmaps look like, whats their contents, to guess how are things organised, etc.

Merge h3r_def and h3r_resdecorder

No point. Their data is going to a texture atlas. Besides if one bitmap format converter is needed, that's exactly what shall be done: one bitmap format converter function at one place.

Testing works

So I can test my new code prior or after it being written.

String

The most re-written class around. Text services.

UI: VBO

Render the UI as a single VBO:

  • make more windows
  • make the texture atlas cache Texture Cache: initial
  • finalize the UI design (the object-oriented one)

Sort()

Because everything is better when its sorted. I'm not joking.

One issue to rule them all

Milestone 1: Render the main screen. Bridge. "SDL2" initially.
Milestone 2: Create the game model. (because otherwise boredom would slow down the project)
Milestone 3: View 1 - UI.
Milestone 4: Controller Main - UI.
Milestone 5: View 2 - map.
Milestone 6: Sound.
Milestone 7: View 3 - battle.
Milestone 8: AI.
Milestone 9: Hi-scores.
Milestone 10: AI scripting.
Milestone 11: View 4 - campaigns
Milestone 12: https://heroes3wog.net/did-you-know-second-edition/
Milestone 13: Multi-player.
Milestone 14: Plug-ins. (sound, resource manager, renderer, AI)
Milestone 15: Mods. (should take 2 minutes if all of the above are designed correctly)
Milestone 16: New things. (see "Whats the new?" at the file "project")
Milestone 17: Map editor.

Versioning: 0.* - alpha releases; 1.0 - proof of concept; 1.1* - to be decided.

The above could be wrong, could be right. I have no idea. Only one way to find out.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.