Projekt: Blood of the Undead
Re: Projekt: Blood of the Undead
Häuser werden jetzt gebaut, ein Männlein und ein Weiblein werden dafür "geopfert". Die Häuser machen noch gar nichts.
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: Projekt: Blood of the Undead
Ich tue mich grad ein bisschen schwer, manchmal hilft es ja die Probleme zu formulieren.
Main Plan ist eine Art Fabrik-System aufzubauen. In den kleinen Wohnhäusern werden Mann/Frau abwechselnd produziert. Vermutlich werde ich noch einen Schalter einbauen, so dass der Spieler auch nur Männer/nur Frauen produzieren kann. Die Menschen können zu einem anderes Gebäude geschickt werden, wo sie veredelt werden. Das soll vom Spieler manuell gemacht werden können, oder direkt ab Produktion via Pathfinding verschickt werden.
Das Problem ist das Pathfinding. Gebäude blockieren das Grid, die entsprechenden Grid sind als blockiert gekennzeichnet. Meine erste Idee war die blockade mit der id der blockierenden Einheit zu setzen. Blockiert das Gebäude mit id 5 ein Feld, steht im Feld "blocked" der Wert 5. Einheiten die zu diesem Gebäude geschickt werden, bekommen im Pathfinding eine Ausnahme blockierte Felder mit Wert 5 zu passieren. Einfach eigentlich. Nur habe ich das Pathfinding schon etwas komplizierter gemacht. Jedes Grid enthält ein Feld "size", welches mir sagt wie gross eine Einheit maximal sein darf, die auf diesem Feld steht. Eine 2x2 Grid grosse Einheit had "size" 2 and kann alle grid mit Feld "size">=2 passieren. Wird ein Feld blockiert/frei wird "size" für alle Grids neu berechnet. Heisst ein blockiertes Feld hat auch immer den Wert "size"=0. Die Informationen sind etwas redundant.
Meine Lösung die Grids zu passieren mit der id meines Zielgebäudes läuft nicht mehr, sobald ich "size" mit einbeziehe. Die einfachste Lösung wäre auf "size" ganz zu verzichten, was momentan Sinn machen würde, da ich eh praktisch nur Einheiten habe die nur 1 Feld belegen. Das würde auch alle neu Berechnungen unnötig machen, aber es tut mir etwas weh das Problem noch nicht lösen zu können.
edit: 10min später... Schreiben hat echt was gebracht. Habe schweren Herzens meine "coole" Lösung vorläufig verworfen und jetzt klappt es mit Einheiten bauen und veredeln.
Main Plan ist eine Art Fabrik-System aufzubauen. In den kleinen Wohnhäusern werden Mann/Frau abwechselnd produziert. Vermutlich werde ich noch einen Schalter einbauen, so dass der Spieler auch nur Männer/nur Frauen produzieren kann. Die Menschen können zu einem anderes Gebäude geschickt werden, wo sie veredelt werden. Das soll vom Spieler manuell gemacht werden können, oder direkt ab Produktion via Pathfinding verschickt werden.
Das Problem ist das Pathfinding. Gebäude blockieren das Grid, die entsprechenden Grid sind als blockiert gekennzeichnet. Meine erste Idee war die blockade mit der id der blockierenden Einheit zu setzen. Blockiert das Gebäude mit id 5 ein Feld, steht im Feld "blocked" der Wert 5. Einheiten die zu diesem Gebäude geschickt werden, bekommen im Pathfinding eine Ausnahme blockierte Felder mit Wert 5 zu passieren. Einfach eigentlich. Nur habe ich das Pathfinding schon etwas komplizierter gemacht. Jedes Grid enthält ein Feld "size", welches mir sagt wie gross eine Einheit maximal sein darf, die auf diesem Feld steht. Eine 2x2 Grid grosse Einheit had "size" 2 and kann alle grid mit Feld "size">=2 passieren. Wird ein Feld blockiert/frei wird "size" für alle Grids neu berechnet. Heisst ein blockiertes Feld hat auch immer den Wert "size"=0. Die Informationen sind etwas redundant.
Meine Lösung die Grids zu passieren mit der id meines Zielgebäudes läuft nicht mehr, sobald ich "size" mit einbeziehe. Die einfachste Lösung wäre auf "size" ganz zu verzichten, was momentan Sinn machen würde, da ich eh praktisch nur Einheiten habe die nur 1 Feld belegen. Das würde auch alle neu Berechnungen unnötig machen, aber es tut mir etwas weh das Problem noch nicht lösen zu können.
edit: 10min später... Schreiben hat echt was gebracht. Habe schweren Herzens meine "coole" Lösung vorläufig verworfen und jetzt klappt es mit Einheiten bauen und veredeln.
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: Projekt: Blood of the Undead
Ging leider kaum weiter die letzten Tage :(
Ich wollte noch die angesprochene Mechanik (nicht Echtzeit RTS) und Gegner eingebaut haben. Sonst wärs nur Einheiten rumschieben und planlos bauen. Ich habe jetzt einfachstes Gegnerverhalten implementiert und mich lange gewundert wieso sie einfach nicht mehr angreifen. Für die Bösen wurde kein FoW kalkuliert und sie tapsten einfach immer im dunkeln :D
Ich wollte noch die angesprochene Mechanik (nicht Echtzeit RTS) und Gegner eingebaut haben. Sonst wärs nur Einheiten rumschieben und planlos bauen. Ich habe jetzt einfachstes Gegnerverhalten implementiert und mich lange gewundert wieso sie einfach nicht mehr angreifen. Für die Bösen wurde kein FoW kalkuliert und sie tapsten einfach immer im dunkeln :D
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
- Schrompf
- Moderator
- Beiträge: 5083
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Projekt: Blood of the Undead
Ganz ehrlich, ist doch wurst, wann das spielbar wird. Ich freu mich sehr, dass Du Deine enormen theoretischen Fähigkeiten mal auf ein RL-Projekt geworfen hast. Und Du hast ja echt schon was erreicht! Wenn Du das zu ner einfachen Runde Skirmish ausbaust, wär das doch ein echtes Achievement!
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.