![]() |
#51 | |
Veteran
Join Date: Apr 2007
Posts: 1,947
Donated: $40
![]() |
Quote:
I'm not sure what the benefits of Cello are over C++ though, and it has many disadvantages (no-one else uses it, it's ugly, only compatible with 2 compilers). You can do a lot of this stuff in C++ with much more readable syntax.
__________________
takkaria whispers something about options. -more- Last edited by takkaria; February 21, 2018 at 14:18. |
|
![]() |
![]() |
![]() |
#52 |
Prophet
Join Date: Apr 2007
Location: Seattle, WA
Posts: 5,913
Donated: $40
![]() |
dynamic calls are OK in certain limited cases, especially if they allow call-by-name (which is currently done in a crummy way in CPP x-list.h files. It's vastly better than case statements (or lua) but it is not optimal.
|
![]() |
![]() |
![]() |
#53 |
Apprentice
Join Date: Dec 2013
Posts: 71
![]() |
I think the problem with C++ is that the language is huge. Different teams use different subsets of the language, which makes sharing or transferring code between teams more difficult.
I have most problems in C with int-to-pointer-to-int situations. I get segfaults for wrong type conversions in multiple places in code. Then I have to deal with multiple data types for integers and strings, that's a headache. What's wrong with just using 1 int data type and 1 string data type that'll work on most common systems for most common situations and make life in coding a bit easier? For the configuration vs scripting for modules, scripting is easier to implement, but more difficult to maintain. Configuration is easier to maintain, but more difficult to implement depending on the amount of allowed flexibility. Maybe something like YAML or ToML could bring more readability and flexibility to the config files while standardising the config parser. I still think independent room generators or multiple independent AI "personalities" are better off in scripting, but not necessarily Lua. |
![]() |
![]() |
![]() |
#54 | ||
Swordsman
Join Date: May 2016
Posts: 330
![]() |
Quote:
![]() Quote:
|
||
![]() |
![]() |
![]() |
#55 |
Prophet
Join Date: Apr 2007
Location: Seattle, WA
Posts: 5,913
Donated: $40
![]() |
There really shouldn't be any int to pointer conversion in Angband (except in the really old-school winapi.) When there is such conversion, always use size_t as the integer type. That's pretty much it.
|
![]() |
![]() |
![]() |
#56 |
Scout
Join Date: Dec 2011
Posts: 25
![]() |
The different languages
As a long time programmer I give a little insight into your troubles. C was originally designed for very low level, just above machine code, for writing operating systems in. Along came C++ which built on C and with the thinking behind other languages like smalltalk i.e. object orientated, but again not really meant for writing user facing programs. After this people had Visual basic, then java and c#. These are all before we get into scripting languages like python.
So for C manipulation of memory was a primary point and the fore runner languages had no type checking, so C was better. C++ is still a low level language but follows a different concept, object, rather than the functional style C. Converting from C to C++ is interesting and converting from C++ to C is even more fun. I have done both in my lifetime. The best language to write Angband from scratch would in my opinion be C# or Java. They are nearly the same and are easy to follow and code in. I would not suggest we move the development of Angband to either as legacy code is painful to unpick. If you want to improve things then write front ends in a language that can use the current code. Personally, I don't have the time or energy to do so. |
![]() |
![]() |
![]() |
#57 |
Apprentice
Join Date: Dec 2013
Posts: 71
![]() |
I have some success with using data types limited to int, uint, char, uchar and the cptr and vptr pointer types. Slowly I'm getting better at this, very slowly.
I've played a bunch of Z+Angband and Debian's patched Zangband 2.7.5. Z+Angband has more modern features, but I'm not having much fun playing it. I don't like Z+Angband. What captures my imagination in Zangband is exploration and the possibility of a quest centric game, more like how a skyrim or world of warcraft would play. Right now, quests are rare, but I can tweak the game so that towns have multiple castles and a selection of multiple quests. I would also be interested in adding more houses with mini-games, like the casino. The problem I have with Z+Angband is that most quests are kill quests, requiring me to clear out levels while searching for all hidden doors and find that last monster. These quests are no fun for me and they are always too high level for my character, so I'm often forced to level up in the main dungeon. Zangband 2.7.5 is much more open-ended in quests. Hunt down a bounty, make a delivery, discover a place or retrieve an item, as a player I can pick my own quests and complete them however I feel like. Meanwhile I discover more of the world and find interesting sites on the map like ruins, camps and clearings. Each with their own dangers and rewards. Increasing the number of quests here could work and having the character advance through the quests. The rewards probably need re-balancing then. I'd add more mini-games. Maybe porting over some of the friendband speech and town themes to give the game more personality, because now it's just "some world with towns with blubbering idiots". Shouldn't be too difficult to improve on that and I have the util code anyway ![]() Z+Angband has more modern features, but if I'm going to make small changes while learning C and enjoying the playthroughs, I'd have to pick old Zangband instead. I don't think I can achieve that with small changes in vanilla Angband, not yet at least. |
![]() |
![]() |
![]() |
#58 |
Veteran
Join Date: Apr 2007
Posts: 1,947
Donated: $40
![]() |
Ah I forgot about those weird types that old bands have – I got rid of all of them when I was maintaining V. If you search and replace cptr with const char * and vptr with void * you might find the code easier to work with.
__________________
takkaria whispers something about options. -more- |
![]() |
![]() |
![]() |
#59 | |
Rookie
Join Date: Feb 2018
Posts: 20
![]() |
Good points indeed, especially 2.7.5 vs Z+
I felt the same, for me zang was always about exploration, freedom and progression through quests (variety). I never liked the forced progression as you say with quests when introduced v2.0+ I really look forward to your changes given your comments so far. Let me know if I can help. Quote:
|
|
![]() |
![]() |
![]() |
#60 |
Rookie
Join Date: Feb 2018
Posts: 20
![]() |
Continuing development on 2.7.5 learning from Z+
Anyone interested in this project?
|
![]() |
![]() |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Angband 3.5-dev | Magnate | Vanilla | 70 | July 2, 2012 17:47 |
Escape key bug in Angband dev version 21 Dec 2011 revision 700d8c8 | Shockbolt | Development | 2 | January 7, 2012 11:12 |
Looks like a new Angband Dev Blog is up. (17.8.2011) | CJNyfalt | Vanilla | 23 | August 20, 2011 17:46 |
angband-dev@oook.cz down? | d_m | Development | 2 | August 4, 2010 17:47 |
New to Angband Dev | shinobibear | Development | 10 | June 10, 2010 19:11 |