Coder Social home page Coder Social logo

vcmi / vcmi Goto Github PK

View Code? Open in Web Editor NEW
3.9K 123.0 431.0 62.74 MB

Open-source engine for Heroes of Might and Magic III

Home Page: https://vcmi.eu/

License: GNU General Public License v2.0

C++ 91.01% CMake 2.09% C 2.22% Shell 0.16% Python 0.14% Batchfile 0.01% PostScript 0.01% AppleScript 0.03% Lua 0.47% Objective-C 0.05% Objective-C++ 0.05% Jinja 0.01% Java 3.75%
c-plus-plus cmake sdl2 game android cpp ios linux macos windows

vcmi's Introduction

VCMI Github Downloads Github Downloads Github Downloads Github Downloads Github Downloads

VCMI Project

VCMI is an open-source recreation of Heroes of Might & Magic III engine, giving it new and extended possibilities.

Vanilla town siege in extended window Vanilla town view with radial menu for touchscreen devices Large Spellbook with German translation New widget for Hero selection, featuring Pavillon Town

Links

Latest release

Latest release can be found in Github Releases page. As of right now we plan to have major releases around 3 times per year. Daily builds are still available at builds.vcmi.download but they are not guaranteed to be stable. So we encourage everybody to use them and report found bugs so that we can fix them. Loading saves made with different major version of VCMI is usually not supported, so you may want to finish your ongoing games before updating. Please see corresponding installation guide articles for details for your platform.

Installation guides

Forge Town in battle Asylum town with new creature dialog Ruins town siege Map editor

Documentation and guidelines for players

Documentation and guidelines for game modders

Documentation and guidelines for developers

Development environment setup instructions:

Engine documentation: (NOTE: may be outdated)

Documentation and guidelines for maintainers

Copyright and license

VCMI Project source code is licensed under GPL version 2 or later. VCMI Project assets are licensed under CC-BY-SA 4.0. Assets sources and information about contributors are available under following link: https://github.com/vcmi/vcmi-assets

Copyright (C) 2007-2024 VCMI Team (check AUTHORS file for the contributors list)

vcmi's People

Contributors

alexander-wilms avatar alexvins avatar arseniyshestakov avatar beegee1 avatar bwrsandman avatar cewbdex avatar chocimier avatar djwarmonger avatar dydzio0614 avatar fayth avatar godric3 avatar henningkoehlernz avatar ivansavenko avatar kambala-decapitator avatar krs0 avatar kuxe avatar laserlicht avatar macron1robot avatar mateuszbaran avatar mixaill avatar mwu-tow avatar nordsoft91 avatar nullkiller avatar rilian-la-te avatar rwesterlund avatar shubuscorporation avatar soundssgood avatar stopiccot avatar vmarkovtsev avatar zyx-2000 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vcmi's Issues

Water has missing ambient sound.

In vanilla H3, when hero stand next to seashore, we can hear ambient sound with waves. This sound is missing in VCMI. But can be easily fixed.
Part od terrains.json should be:

"water" :
	{
		"moveCost" : 100,
		"minimapUnblocked" : [ 8, 81, 148 ],
		"minimapBlocked"   : [ 8, 81, 148 ],
		"music" : "Water.mp3",
		"tiles" : "WATRTL",
		"type" : "WATER",
		"code" : "wt",
		"battleFields" : ["ship"],
		"transitionRequired" : true,
		"terrainViewPatterns" : "water",
		sounds": {
			"ambient": ["LOOPOCEA"]
		}
	},

Launcher shows errors during mod reinstallation

Pre-conditions: launched needs to be able to download mods from remote server. Launcher from develop can do it, but there is no server with mods available. The branch https://github.com/Nordsoft91/vcmi/tree/mod-from-github allows to download mods from GitHub.

Steps to reproduce:

  1. Open launcher
  2. Press "download and refresh repositories"
  3. Choose any mod with submods (e.g wow/vcmi extra/hota)
  4. Install mod
  5. Make sure all submods are enabled
  6. uninstall mod by pressing uninstall
  7. Install mod again

Expected result: no errors, mod is installed and enabled along with all submods
Actual result: error occurs
Снимок экрана 2022-09-04 в 03 25 17

[feature] improve marking turn order of creatures

for example, on this SS it's unclear which Naga is next. Knowing this would let me kill the one whose turn is next and grant next turn to Master Gremlins (who will suffer from alive Naga otherwise, most probably).

for example, highlight creature on mouse hovering its portrait.

Screenshot 2022-09-03 at 13 51 09

luck bonuses inconsistency

there's some inconsistency with using luck artefacts. My hero has base luck zero. Can't say if it's only a display bug or bonuses are also applied incorrectly.

Screen.Recording.2022-09-03.at.20.52.32.mov
Screen.Recording.2022-09-03.at.16.31.46.mov

Missing picking scroll sound

When we pick scroll, no sound is played.

Solution: change scroll part in config/object/moddables.json

	"spellScroll" : {
		"index" :93,
		"handler": "artifact",
		"types" : {
			"object" : {
				"index" : 0,
				"aiValue" : 500,
				"sounds" : {
					"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
				},
				"templates" : {
					"normal" : {
						"visitableFrom" : [ "+++", "+-+", "+++" ],
						"mask" : [ "VA" ],
						"animation" : "AVA0001.def"
					}
				}
			}
		}
	},

crash on Nullkiller AI turn

100% reproducible. Simply end turn, game crashes after you see tan player's hero picking up Lion's Shield of Courage (very top of the map, to the right of the center).

Game logs with "Adventure AI trace" mod enabled: Archive.tar.gz

Save game: Archive 2.tar.gz. Forge town + new terrain for this town, used this build: https://github.com/vcmi/vcmi/actions/runs/2997089185

Relevant bits of the crashlog:

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000068
Exception Codes:       0x0000000000000001, 0x0000000000000068
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   exc handler [3500]

Thread 16 Crashed:
0   libNullkiller.dylib           	       0x11d8b9aa8 AINodeStorage::calculateTownPortalTeleportations(std::__1::vector<CGPathNode*, std::__1::allocator<CGPathNode*> >&) + 88
1   libNullkiller.dylib           	       0x11d8b9992 AINodeStorage::getInitialNodes() + 690
2   libvcmi.dylib                 	       0x10dd9fbbb CPathfinder::calculatePaths() + 43
3   libvcmi.dylib                 	       0x10dd44ccc CGameState::calculatePaths(std::__1::shared_ptr<PathfinderConfig>) + 124
4   libvcmi.dylib                 	       0x10dd29664 CGameInfoCallback::calculatePaths(std::__1::shared_ptr<PathfinderConfig>) + 52
5   libNullkiller.dylib           	       0x11d8b0ecb AIPathfinder::updatePaths(std::__1::map<CGHeroInstance const*, HeroRole, std::__1::less<CGHeroInstance const*>, std::__1::allocator<std::__1::pair<CGHeroInstance const* const, HeroRole> > >, PathfinderSettings) + 1035
6   libNullkiller.dylib           	       0x11d93cea0 Nullkiller::updateAiState(int) + 1168
7   libNullkiller.dylib           	       0x11d93d2ec Nullkiller::makeTurn() + 364
8   libNullkiller.dylib           	       0x11d9944e8 AIGateway::makeTurn() + 1080
9   libboost_thread.dylib         	       0x10ccfaca2 boost::(anonymous namespace)::thread_proxy(void*) + 130
10  libsystem_pthread.dylib       	    0x7ff8015f74e1 _pthread_start + 125
11  libsystem_pthread.dylib       	    0x7ff8015f2f6b thread_start + 15

Full crashlog: crash.txt

[feature] UI zoom in window mode

currently the only way to zoom is to use fullscreen (when UI and logical resolution differ), would be great to be able to do it in window mode as well

make ability cell scrollable

Not sure if this improvement makes sense or Shield Bearers from Forge town should simply adjust/shorten their description.

Screenshot 2022-09-04 at 12 46 31

Make essential files permanent

There are two possible solutions:

  • place files from essential to filesystem folders (data/sprites/etc) and remove mod
  • keep as a mod but make impossible to disable

[feature] show amount of available creatures in dwellings

Currently it's impossible to know how many creatures is available for hire in a dwelling until you actually go there with a hero. Would be great to see this info with RMB click or in the tooltip on hovering.

This should be available only in dwellings owned by player. I think Refugee Camps shouldn't receive this feature.

[new terrains] strangely placed Garrizon

Garrizon has no creatures, doesn't guard anything and is not even placed on the road. Playing for Forge town on new terrain, using asphalt_terrain-mod.

I'm not entirely sure which part of the project is responsible for this (RMG, mod, mod system...).

image

[feature] show total required amount to buy all creatures

Currently the "buy all creatures" dialog only shows max amount that you can spend out of your available resources if you try to hire as many as possible. Would also be great to show the total required amount of resources to hire all available creatures, use case: I want to exchange resources on the market to buy the rest of the creatures, but I don't know the exact amount, need to calculate it manually.

Screenshot 2022-09-06 at 11 05 33

Make Beholders temporary attack graphics more friendly.

Because VCMI hasn't yet implemented rays (Magi and Beholders attack), we have (temporarily) replacements. And for now, Beholders shoot... ballista belts that looks ridiculous. It's better give them something that doesn't hurt the eye, for example:

			"missile" :
			{
				"projectile": "PMAGEX.DEF"
			}

BTW. It would be cool to have some (colourful one?) rays in vcmi.

client bugs when assembling artefact set

Basically a duplicate of https://bugs.vcmi.eu/view.php?id=3039

Untitled.mov

As clearly seen from the video, when you try to assemble a set (AotD in this case), something gets wrong with mouse cursor: the real cursor and the in-game one no longer have the same coordinates, which results in inability to click with the in-game cursor, and the behavior persists after dismissing the dialog.

Also, after clicking OK, the replaced artefact (Targ of Ogre) doesn't appear in the bag immediately, you have to click somewhere first.

Save game: Archive.tar.gz, hero Daneel (Forge + new terrains).

[new terrains] invisible Obelisk

I noticed it only by accident thanks to the cursor form:
Screenshot 2022-09-04 at 16 01 30 Screenshot 2022-09-04 at 16 01 38

When hero stands on it, he also becomes invisible, only flag can be seen:
Screenshot 2022-09-04 at 16 19 57

In View World there's nothing in that spot:
Screenshot 2022-09-04 at 16 21 41

no sound on new week start

When new week starts, respective dialog appears. Only after dismissing it the "new week" sound is played. IIRC in original game the sound is played in parallel to the dialog.

Use case: minimised the game during AI turn, was waiting for "new day" sound to switch back.

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.