Thursday, May 28, 2026
b287b5fc-ba39-408b-ac0a-707ada0533e2
| Summary | ⛅️ Breezy in the afternoon. |
|---|---|
| Temperature Range | 18°C to 26°C (64°F to 78°F) |
| Feels Like | Low: 65°F | High: 80°F |
| Humidity | 71% |
| Wind | 17 km/h (10 mph), Direction: 252° |
| Precipitation | Probability: 34%, Type: No precipitation expected |
| Sunrise / Sunset | 🌅 05:37 AM / 🌇 07:53 PM |
| Moon Phase | Waxing Gibbous (42%) |
| Cloud Cover | 20% |
| Pressure | 1012.39 hPa |
| Dew Point | 61.93°F |
| Visibility | 6.34 miles |
The architecture of the Tombs of the Kings in Paphos “combines Greek, Egyptian and Macedonian elements”, the antiquities department said on Wednesday, adding that this fact reflects “the multicultural character of the Hellenistic period”.
A book is being published documenting the department’s excavations of the Tombs of the Kings to mark the 35th anniversary of the excavations’ completion, with the first volume, which covers the years between 1977 and 1981, now having been published.
It declares that the excavations “opened a window into the previously unknown history of Hellenistic Paphos”, with a total of 14 excavation periods having been undertaken.
“The impressive funerary monuments, attributed to the Ptolemies, find their counterparts mainly in Alexandria and Macedonia. In fact, they represent a mixture of elements from the two regions. The study of the complex architecture, as well as the variety of findings in the monuments, enriches the history of Paphos,” it said.
It added that the site’s “Tomb 8” is particularly impressive, but that it “has become the subject of misinterpretations” and “unfounded conclusions which are based on fabricated evidence”.
For this reason, it said, particular emphasis has been placed on that tomb’s history in the book.
It said that Tomb 8 was first excavated in 1979, with archaeologists finding that it is “notable for its size and complex architecture”.
“The monument is carved into the natural rock and is organised around a central rocky cube and an open courtyard with four symmetrical wings. The entrance is via a monumental stepped road, which leads into the interior of the complex and underlines the imposing character of the structure,” it said.
It went on to explain that a total of 18 burials were revealed by the excavations, while evidence of cremations, in the form of a lead urn, was also discovered. Cremation, it said, was “a practice rare in Cyprus but known in the Macedonian world”, with this suggesting “possible cultural influences and contacts beyond the island”.
“The architecture of the tomb combines Greek, Egyptian and Macedonian elements, reflecting the multicultural character of the Hellenistic period. The central cube housed a particularly elaborate burial chamber with a Doric façade, which suggests that it was intended for a person of high social or political status,” it said.
It added that one of the tomb’s “most distinctive features” is the presence of a well, which it said was “integrated into the design of the central space and accessible via a stepped recess”.
“The presence of a skylight and water-related facilities may be linked to purification rituals, practices which are also found in funerary monuments in Alexandria,” it said.
Various aspects of the tomb, it added, “suggest that [it] was used for a long period of time and for more than one generation”, while the fact that there was “a variety” of burial practices, including the burial of a child in a dead pipe, was said by the department to “reveal the diversity of customs and the dynamic evolution of rituals”.
The department also said that the existence of two limestone falcon sculptures in front of the main burial case suggests that those buried there may have had a connection to the administration the ancient Ptolemaic kingdom or even to members of its royal family.
This, it said, is because the falcon “was associated with the [Egyptian] god Horus and was a symbol of royal power in Egypt”.
“Cyprus played a key role in the political and strategic organisation of the Ptolemaic state, especially during the last centuries of the Hellenistic period,” it said.
The last Ptolemaic ruler of Cyprus, Ptolemy of Cyprus, committed suicide in 58 BC after Roman Senator Cato the Younger had advised him to submit to the Roman Empire and allow Cyprus to become a Roman province.
Cato had offered Ptolemy personal safety and the office of high priest of the temple of Aphrodite in Paphos. However, Ptolemy refused, deciding to die a king instead, and killed himself.
The Romans found the tomb empty and desecrated the monument, beheading the stone falcons.
One of the three men who jumped from a third-floor balcony during an immigration raid in Larnaca has succumbed to his injuries on Wednesday night.
The man, whose details remain unknown, had suffered a serious head injury and was later intubated at Larnaca general hospital, where he passed away shortly before 10pm.
He jumped from a balcony on the third floor of the Filanta apartment complex near the old port in Larnaca and fell to the street as police and immigration officers were conducting inspections targeting suspected illegal immigrants.
According to police, the other two men, reportedly aged 28 and 38 years and from Congo, fell from the fourth-floor balcony and landed on the apartment building’s balcony below, suffering minor injuries.
The immigration service announced that during the raid some 22 illegal residents in various domiciles have been apprehended.
The Filanta apartment complex has previously drawn the attention of local authorities, with reports indicating that the buildings had also been examined by the Larnaca district local government organisation (EOA) due to the fact they were considered potentially dangerous structures.
A similar incident occurred in Limassol in 2024, when a 24-year-old Bangladeshi national Anisur Rahman died after jumping out of a fifth-floor apartment to escape a police raid on illegal immigration.
The man had attempted to escape from the apartment’s window after the police entered the apartment where he was residing.
In the same incident, another one of 11 men Rahmen shared the apartment with jumped from a balcony and fell 7.5 metres down to the balcony of a neighbouring flat. He survived the fall but was treated in serious condition at the Limassol general hospital.
Ombudswoman Maria Stylianou Lottides later initiated an investigation into the death of the 24-year-old.
The investigation aimed to establish whether the police had followed relevant procedures and whether any human right violations occurred but was later put on hold for publicly unknown reasons.
The bust of Eoka fighter Christos Kkelis which had been stolen in Kissonerga on Tuesday will immediately be restored, the municipality of Akamas said on Wednesday.
“From the very beginning, the municipality’s services have been in close cooperation with the police directorate to facilitate the investigations,” the municipality said in a statement.
Denouncing the incident as a “brutal insult and sacrilege” against historical memory, the municipality called on the public to come forward with any hints regarding the whereabouts of the statue.
The bust is dedicated to Eoka member Christos Kkelis, who was born in Kissonerga in 1934 and became an active member of Eoka during the 1955-59 campaign against British colonial rule Cyprus. He was killed during the struggle against British rule in 1957.
Damage to a central water pipeline has led to the temporary interruption of water supply in a large area of Mouttayiaka in the Limassol district.
According to the local district government (EOA), repair works are already underway and are expected to be completed by 8pm.
Further information can be found here or by calling 25271000.
President Nikos Christodoulides said on Wednesday that the veterinary services had deemed a second round of tests for foot and mouth (FMD) unnecessary, calling on all parties to cooperate in an effort to combat the disease.
“[We need to] work in the same direction, if we do not cooperate, we will not address this issue. Within this framework, of course, we are talking and we are ready to talk with everyone,” he said.
Speaking at an event in Limassol, Christodoulides denied claims that there was a lack of communication between the veterinary services and the ministry of agriculture, and said he would “personally undertake” to talk with involved stakeholders.
“I am ready to accept anyone who wishes to meet with me and of course the agricultural organisations which are partners in this great effort to face the challenge of foot and mouth disease and more,” he said.
He said he was also open to meet with the newly formed association of livestock farmers ‘The Voice of Livestock Breeders’ and was at their disposal to address the outbreak of the disease.
“Something happened to bring [FMD] to Pachna. It means that there was no cooperation, it means that some people were not following what they were supposed to follow,” he said.
When asked about the protest that has been scheduled for Friday outside the presidential palace, Christodoulides remarked that in the absence of cooperation there would be losses for all those involved.
“Either we all cooperate and follow the necessary protocols, or we won’t be able to meet this challenge. Who will be the loser? We will all be the losers,” he said.
Christodoulides refuted claims made by livestock farmers that the virus had spread as a result of the veterinary services’ “inadequate handling” of the situation, emphasising that the virus was found across the whole island.
“How are the veterinary services to blame when the virus was found from Larnaca to Pachna? It means something must have been done that was not right, that was not in accordance with the protocols,” he said.
The met office on Wednesday issued a yellow weather warning for heavy isolated thunderstorms set to hit the island on Thursday.
According to the warning, unstable weather conditions will prevail across the island between 11am and 6pm.
During this time, thunderstorms and hail are expected to affect the mountainous areas, inland areas and the east of the island.
The precipitation rate is locally likely to exceed 35mm per hour.
President Nikos Christodoulides on Wednesday said that his meeting with United Nations envoy Maria Angela Holguin next week will not be the first to have taken place since UN Secretary-General Antonio Guterres undertook a “new initiative” with the aim of bringing about a resumption of formal negotiations on the Cyprus problem.
“It is not the first meeting which we will have within the framework of the new initiative … as I mentioned publicly after the meeting we had [with Guterres] in Brussels. The meeting … will be the continuation of meetings which have taken place, are taking place, and will continue to take place until Holguin arrives,” he told reporters.
Holguin will hold separate meetings with Christodoulides and Turkish Cypriot leader Tufan Erhurman on June 8, before travelling to both Turkey and Greece thereafter.
The question of when a “new initiative” on the Cyprus problem may be undertaken has been ongoing for weeks, with Erhurman having said a month ago that such an initiative will begin in July, following the conclusion of Cyprus’ six-month term as the holder of the Council of the European Union’s rotating presidency.
However, the Greek Cypriot side has insisted that such an initiative is “already underway”, with government spokesman Konstantinos Letymbiotis having said that Christodoulides had “made public this initiative” after he met Guterres in Brussels in March.
“Our side is ready, even tomorrow if it is necessary, to participate in an enlarged meeting, to resume negotiations from the point at which they were interrupted, in accordance with the resolutions of the [UN] security council,” he said at the time.
Holguin most recently visited Cyprus in January, holding a tripartite meeting with both leaders, and saying thereafter that no enlarged meeting on the Cyprus problem could be held until more before “results on the confidence-building measures” between the island’s two sides are achieved.
An enlarged meeting, which would involve the island’s two sides, its three guarantor powers, Greece, Turkey, and the United Kingdom, and the UN, remains Christodoulides’ main aim, and he said earlier this month that he expects for the date of such a meeting to be announced “soon”.
He said at the time that Guterres’ “effort is being strengthened even more”, and that as such “we expect soon to have a positive outcome, which, for us, can be nothing other than the convening of an enlarged meeting at which the resumption of talks will be announced”.
The convening of an enlarged meeting will require the consent of the Turkish Cypriot side, with Erhurman previously having expressed reservations regarding the prospect of such a meeting being held before substantial progress is achieved in devising and executing confidence-building measures between the two sides in Cyprus.
He has said before that Christodoulides’ insistence on the matter constitutes an effort to circumvent the Turkish Cypriots.
“I want to emphasise this. What they actually understand by an enlarged meeting is this, I am sorry, but the Greek Cypriot leadership has always tried to address the Republic of Turkey, not the Turkish Cypriot side. This is being repeated,” he said at last month’s Antalya diplomacy forum.
Instead, he said, he would rather discuss matters directly with the Greek Cypriot side.
“What I said was, ‘let us meet face-to-face in Nicosia, and let us both make decisions on confidence-building measures which will make life easier for both the Turkish Cypriot and Greek Cypriot people,” he said.
The most recent enlarged meeting on the Cyprus problem took place in July last year, before Erhurman’s election.
Since Holguin’s most recent visit, Erhurman and Christodoulides have met multiple times, most recently convening this month.
The road transport department on Wednesday said that it has immobilised 664 vehicles due potentially faulty airbags manufactured by Japanese company Takata.
“If the airbag is deployed, there is a risk that its inflator may rupture, causing metal fragments to be ejected, which could result in serious injury or death,” the department said in a statement.
The department said that affected owners have been contacted via letter, as well as SMS, and urged them to immediately take necessary measures to have the airbags replaced by a specialised technician.
“This is a serious road safety issue, as timely compliance prevents serious risks and protects the lives of drivers, passengers and third parties,” the department said.
In the case that there is no representative on the island, owners will be given an eight-month period to change the faulty airbag and send relevant proof to the authorities to ensure that the vehicle is safe to drive.
In the meantime, the department advises that owners refrain from using their vehicles until the defective parts have been replaced.
Further information on the affected vehicles can be found at https://www.gov.cy/mtcw/saab, 22807000 or via email at recalls@rtd.mcw.gov.cy
Licensed vehicle technicians can be found at: https://www.mcw.gov.cy/mcw/ems/ems.nsf/All/D1DDA847A05FE521C2258291002FB0D2?OpenDocument
Eleven fast-charging points for electric vehicles were installed at a cost of €918,000 in an effort to enhance the local charging network, the transport ministry said on Wednesday.
“The transition to electric mobility requires the development of appropriate infrastructure throughout Cyprus,” said Transport Minister Alexis Vafeades.
The charging points were installed at various locations across the island including the carparks at the Nicosia general hospital, the Limassol general hospital, the church in Trimiklini and the Tombs of the Kings bus station in Paphos.
According to the ministry, the charging points feature rapid charging capabilities and offer several methods of use and payment via mobile phone application or payment card.
The ministry said that works for the further development of the network were underway by the department of electromechanical services, which is responsible for coordinating the charging points.
Last week, Aglandjia residents witnessed an extraordinary sight, as a Nicosia municipality crew drove round neighbourhoods slinging both the purple rubbish bags with household waste with other bags containing recyclables, into the same lorry.
The lorry was fitted with a mechanical gripper, which indiscriminately grabbed all kinds of rubbish.
Residents contacted the Cyprus Mail, saying the work was “sloppy” as the crew also left plastic bottles behind, which eventually rolled into the busy street.
They also wondered why they bother recycling as “the municipality obviously does not care”.
“I very much doubt if the rubbish will be sorted later,” one Aglandjia resident said.
Another questioned the ethics of charging people €100 a go for a bundle of purple bags, when “really anything would do”.
Residents said that the van accompanying the lorry bore the Nicosia municipality logo.
The municipality was contacted for a comment.
Last year, Aglandjia residents complained to the Cyprus Mail over having to pay €100 to collect a set number of prepaid mauve bags from municipal offices, instead of purchasing them from supermarkets, as a means of pre-paying rubbish collection dues.
The municipality had said back then that the tariff did not just cover the bags, but included “other important cleanliness services offered by the municipality”, such as cleaning pavements and roads.
Europe’s future in space will depend not only on satellites and infrastructure, but also on whether it can build the workforce needed to sustain the sector’s rapid transformation, speakers at the EU Space Days 2026 conference in Nicosia said on Wednesday.
Experts warned that Europe’s space industry is no longer looking only for engineers and astronauts, but increasingly for professionals with expertise in artificial intelligence, business, law, cybersecurity and data analysis, highlighting a growing gap between traditional academic education and the sector’s evolving needs.
DG DEFIS senior expert Lysandros Stathopoulos said the pace of change in the European space ecosystem had made skills development a strategic priority for the bloc’s competitiveness.
STEMFreak Educational Innovation Centre founder Andri Vryoni said traditional education systems often fail to connect science with real innovation, discouraging young people before they even reach higher education. “Traditional schooling kills innovation, motivation, interests and children’s curiosity,” she said.
“We cannot wait until university to discover who is interested in space,” she added, warning that many students – particularly girls, young people with neurodevelopmental differences and those from vulnerable social groups – are pushed away from STEM education at a very early stage.
From the industry side, EY’s head of space, defence and digital technologies for EU institutions Monica Pesce said public perceptions of the sector remain outdated.
“People still think space means rockets and astronauts,” she said, despite the growing use of space technologies in agriculture, automotive industries, environmental monitoring and cultural heritage.
Against that backdrop, a separate panel at the conference turned to the infrastructure needed to underpin Europe’s ambitions in space.
“Space is no longer important only because of exploration and science. It is also critical infrastructure for our society, our economy, our security and our defence,” said Christina Giannopapa of the European Union Agency for the Space Programme.
She said Earth observation, satellite navigation, secure connectivity and access-to-space capabilities have become essential to Europe’s strategic autonomy and ability to make sovereign decisions in an increasingly complex geopolitical environment.
Portugal Space scientific and education officer Duarte Cota said sustainability in space infrastructure must be viewed beyond purely financial terms, particularly given current geopolitical realities.
He pointed to Portugal’s efforts to establish a spaceport in the Azores as part of a wider European network of access-to-space hubs, saying future infrastructure must be flexible and multi-purpose, with closer links to the defence sector.
From Cyprus, Cyta satellite communications services director Sotiris Alexandrou said cooperation was essential, particularly for smaller countries.
“Space is an expensive activity. Cooperation is the solution, especially for smaller countries,” he said, adding that EU support allows member states to build capabilities that can later evolve into commercial services.
Spaceopal chief technical officer Emiliano Agosta said Europe’s sovereignty depends not just on owning satellites, but also on controlling the software, algorithms and artificial intelligence behind them.
“Without systems that operate continuously and reliably, there is no strategic sovereignty,” he said.
Eratosthenes Centre of Excellence director Diophantos Hadjimitsis said infrastructure investments must translate into practical services, applications and economic value, while reducing Europe’s reliance on non-European data sources.
Speakers concluded that Europe’s competitiveness in space will depend as much on education and skills as on technological investment.
Discussion over Volt’s electoral defeat and the party’s future direction began on Wednesday following meetings of its collective bodies, with former MP Alexandra Attalides saying the new House is expected to function with “a more conservative agenda”.
Speaking to the Cyprus News Agency, Attalides said the party’s message “clearly did not get through” despite what she characterised as strong support from sections of the electorate.
Volt failed to get a seat in the House and received 3.1 per cent of the vote.
“There was a lot of pressure in recent days from the mechanisms of the major parties and unfortunately, because we are a new party, we did not have the mechanisms to react,” she said.
Attalides said discussions had already begun within the party’s leadership and would continue with candidates before decisions are announced on Volt’s next steps.
She added that party members believe Volt “must find the strength, the stamina, the means to continue to make its voice heard”.
The former MP said she believed that political priorities are shifting.
“I believe that legislation that was achieved with great effort will now remain in the drawers for another five years,” she said.
She also expressed concern over what she described as a shift to the right in political discourse.
“The agenda is becoming more conservative,” Attalides said. “It is a great shame that a European country is choosing to give in to the fear that Elam has cultivated so well.”
Moreover, she expressed her regret that parties traditionally regarded as progressive were being “dragged further and further to the right”.
At a post-election gathering, Volt co-president Panos Loizou Parras said the party “accepts the defeat we have suffered” and thanked supporters who backed Volt’s campaign.
“Volt submitted a different political proposal, a proposal that concerns more accountability, more transparency, a state that operates with stable institutional control, an unwavering European path for the country,” he said.
Co-president Andromache Sophocleous said the party had spent the last two and a half years building and presenting its political vision to voters.
“We feel proud of everything we have accomplished,” she said. “But, as far as the political stakes are concerned, yes, we have been defeated and the result must be respected.”
Attalides also insisted that Volt’s positions on democracy, reunification and human rights would continue to be represented publicly despite the election result.
“The voice in favour of the solution and reunification of Cyprus cannot be silenced,” she insisted, while pledging to continue defending “democracy and human rights” outside parliament.
Speaking separately on Politis Radio, Volt co-chair, Andromache Sophocleous, argued that one of the party’s main weaknesses was its inability to establish a sufficiently strong local presence, saying the party “fell behind in getting more involved in local communities”.
Addressing speculation surrounding the ‘Sandy’ affair and of journalist and former Volt candidate Makarios Drousiotis’ impact on the result, Sophocleous said she did not personally believe the issue had significantly affected their electoral performance.
She maintained that the party adopted an “institutional” approach by calling for a “full and independent investigation” rather than politicising the controversy.
Instead, she argued that Volt’s more fundamental weaknesses related to organisational reach and local penetration.
She further remarked that Volt has only existed for two and a half years and operates almost entirely through volunteer work, describing the formation of a full electoral list with 56 candidates and a complete political platform as “a feat in and of itself”.
According to Sophocleous, Volt’s challenge lies not only in competing electorally but in introducing “a different political culture and perception” to Cyprus through a collective and co-chair based political structure rather than a traditional personality driven party model.
Elam leader Christos Christou said on Wednesday that Elam will seek to chair the parliamentary committees on education and environment in the new House of Representatives, following the party’s strong electoral performance in Sunday’s parliamentary elections.
Speaking on CyBC, Christou said the party intends to claim the leadership of three parliamentary committees, identifying education and environment as two of its priorities while also leaving open the possibility of seeking the defence committee chair.
All three committees have, following the election results, lost their respective chairs, with Diko having held education, Edek with defence and environment being under the auspices of the Ecologists.
Christou said the requests are based on Elam’s electoral strength and parliamentary regulations governing committee representation.
“Based on Elam’s percentages, and in accordance with the regulations of the House, we can assume such committee chair positions,” he said.
Under standing parliamentary orders, only parties controlling at least 12 per cent of MPs, effectively seven seats or more, are formally entitled to claim committee chairmanships.
Following the elections, only four parties meet that threshold, Disy with 17 seats, Akel with 15 seats, and both Elam and Diko with eight seats each.
The composition and allocation of parliamentary committees are determined proportionally through negotiations between parties and overseen by the Committee of Selection, chaired by the House speaker.
The House currently operates through approximately 17 standing committees covering areas including education, defence, finance, foreign affairs, health, legal affairs and the environment.
Christou also pledged to support the allocation of committee chairs to smaller parties, including Alma and Direct Democracy, stating that Elam would insist “that the law be implemented” despite opposition from Disy Akel and Diko who passed the formal threshold.
Although the formal seven seat threshold has existed for years, previous parliaments often distributed committee chairmanships to smaller parties that did not meet the requirement.
During the outgoing parliamentary term, Edek chaired the defence committee with two MPs, Dipa chaired transport with three MPs, while the Ecologists chaired the environment committee despite holding only two seats.
The remarks come days after Elam doubled its parliamentary representation from four seats to eight, emerging as one of the biggest winners of the election and strengthening its position within the new legislature.
Elam had themselves previously been excluded from standing committee chairmanships in the last parliament on the basis of only holding four seats and being outside the qualifying threshold, instead being assigned leadership of a special demographic committee.
On education, previously chaired by formed Diko MP, Pavlos Mylonas, Elam has repeatedly promoted a nationalist and socially conservative platform centred on what it describes as the preservation of Cyprus’ “religious and national identity”.
The party has opposed bicommunal educational initiatives and state subsidies benefiting Turkish Cypriot students, while criticising gender-neutral terminology and diversity policies within the education system.
In January 2025, Elam attacked the Education Ministry’s eDea digital registration platform for using the terms “Parent 1” and “Parent 2”, accusing the ministry of adopting a “woke agenda”.
The party also objected to optional participation in Orthodox religious studies classes, arguing that “religious studies should not be optional or by choice”.
Elam has also sought cuts to state funding linked to bicommunal programmes and Turkish Cypriot student support schemes, including grants connected to The English School.
The party argued that public funds should prioritise Greek Cypriots and opposed what it described as “confidence building measures”.
On environmental matters, formerly chaired by Ecologist MP Charalambos Theopemptou, Elam has attempted to position itself as supportive of conservation issues while concurrently standing by hunting organisations, especially on calls for a more laisse-faire approach to the outright ban on trapping songbirds for the controversial delicacy ‘ambelopoulia’.
The party has also repeatedly opposed development projects in the Akamas Peninsula, describing the area as “the last virgin land in free Cyprus”.
Elam MPs have also campaigned against asphalt plants and industrial developments near residential communities in areas including Mitsero and Vasilikos, arguing that environmental policy must prioritise “public health and the environment”.
At the same time, the party has criticised aspects of European green taxation policies, describing new environmental levies as unfair burdens on taxpayers.
On defence, once held by Edek’s Marinos Sizopoulos, Elam maintains a strongly nationalist security platform focused on military strengthening and opposition to a federal solution to the Cyprus problem.
The party advocates increased defence spending, closer strategic cooperation with Greece and more recently with Israel, and a hardline approach to migration, which it frequently frames as a national security issue.
Christou reiterated on Wednesday that Elam would not support either a candidate backed by Annita Demetriou or a nominee proposed by Akel in the upcoming vote for House president, underlining the party’s intention to operate independently within the new parliament.
Furthermore, in a letter addressed to the parliamentary deputy director, Andreas Christodoulou, on Wednesday, Elam formally submitted proposals to restructure the committee system itself.
The party implored Christodoulou to merge the human rights committee with the legal affairs committee, combining the public expenditure with the institutions committee, and unifying the agriculture and natural resources committee with the environment committee.
Elam also proposed elevating the special demographic committee they formally chaired to a permanent role, describing the matter as one of “seriousness and strategic importance for the future of our homeland”.
Negotiations over the allocation of parliamentary committee chairmanships intensified on Wednesday as parties manoeuvred for influence following Sunday’s parliamentary elections.
At the centre of the discussions is the distribution of 16 standing parliamentary committees.
Under the standing orders of the House, only parties controlling at least 12 per cent of MPs, effectively seven seats or more, are formally entitled to form recognised parliamentary groups and claim committee chairmanships.
Following the parliamentary elections, only four parties meet that threshold.
Disy secured 17 seats, Akel won 15, while Diko and Elam each emerged with eight MPs.
Alma and Direct Democracy entered parliament with four MPs each, leaving them formally outside the recognised threshold.
Although the seven-seat requirement formally exists within parliamentary regulations, previous Houses repeatedly departed from its strict application.
During the outgoing parliamentary term, Edek MP Marinos Sizopoulos chaired the defence committee despite the party holding only two seats, Dipa MP Alekos Tryfonides chaired the transport committee with three MPs, while Charalambous Theopemptou of the Ecologists controlled the environment committee with just two seats.
Disy MP Demetris Demetriou acknowledged that previous exceptions had existed but signalled that the larger parties are now leaning towards applying the regulations more strictly.
“The majority tends to apply the regulation,” he said, while questioning why some political forces that “always invoke laws and regulations” are now arguing for exceptions.
The final decisions will be taken by the Committee of Selection, which is chaired by the House speaker and is responsible for allocating MPs and committee positions proportionally across parliament.
The existing committee map leaves several important chairmanships effectively open following the elections and retirements of sitting MPs.
In the previous parliament, Disy controlled five committees including foreign affairs, energy, legal affairs, health and institutions.
Of those, only the institutions committee currently has continuity, with Demetriou re-elected and expected to remain influential in the committee structure.
The foreign affairs and energy committees lost their previous chairs after outgoing MPs failed to return to parliament, forcing Disy into a reshuffle.
In legal affairs, long serving MP Nikos Tornaritis has departed, with Fotini Tsiridou emerging as a likely successor.
In health, outgoing committee chair Efthymios Diplaros has also left the committee landscape, with Savia Orphanides considered among the possible replacements.
Akel enters the negotiations in the strongest position organisationally, retaining four of its five previous committee chairs.
Aristos Damianou returns to parliament and is expected to remain central within the interior committee, while Yiannakis Gavriel remains associated with agriculture, Nikos Kettiros with refugees and Giorgos Koukoumas with human rights.
Only the labour committee is left vacant following the departure of Andreas Kafkalias.
Diko also retained significant continuity for Christiana Erotokritou remains closely linked to the finance committee, while Zacharias Koulias continues as a key figure around the audit committee.
The education committee however has become one of the most contested positions following the departure of outgoing chair Pavlos Mylonas.
That vacancy has intensified interest from Elam, which has emerged as one of the major winners of the election after doubling its parliamentary representation from four seats to eight.
Speaking on CyBC, Elam leader Christos Christou confirmed the party intends to seek the chairmanships of the education and environment committees while also leaving open a claim for defence.
“Based on Elam’s percentages, and in accordance with the regulations of the House, we can assume such committee chair positions,” Christou said.
All three committees targeted by Elam are now politically vulnerable.
Elam spokesman and MP Marios Pelekanos said the party believes it is entitled to three committee chairs “on equal terms” with the other parliamentary groups which formally satisfy the threshold requirement.
He confirmed Elam has internally ranked its priorities and is preparing for negotiations inside the Selection Committee once the new parliament formally convenes.
The positions adopted by smaller parties have further complicated negotiations over the committee structure.
Alma leader Odysseas Michaelides argued that the regulations governing committee chairs could easily be amended if parliament wished to accommodate smaller parliamentary groups.
“Why should a party with eight MPs get three committees and a party with four MPs get zero,” he asked.
Michaelides insisted the constitution itself does not prohibit smaller parties from chairing committees and stressed that parliamentary regulations are internal rules capable of amendment by MPs themselves.
Direct Democracy has also begun pressing for at least one committee chairmanship, reportedly prioritising the human rights, education and health committees.
The Ecologists’ Movement on Wednesday said that there is now an “immediate need” to reduce its spending after losing all its seats at Sunday’s parliamentary election.
Sunday’s election defeat, it said, “creates serious procedural and organisational issues, mainly of a financial nature, as the movement’s operation relied to a significant extent on state sponsorship paid to parliamentary parties”.
“Therefore, there is an immediate need for the movement to adjust and reduce its operating costs in a responsible, organised, and institutional manner,” it said.
It confirmed that the party’s political bureau had convened on Monday to evaluate the election result, and that “during the meeting, it was decided to take the necessary immediate measures which will allow for the economic survival of the movement and the continuation of its existence”.
The party’s political bureau will convene again on Thursday next week, before its central committee will convene the following Sunday, with the political bureau’s decisions regarding the party’s future set to be presented to the central committee.
Party leader Stavros Papadouris, said the party, “is leading this transitional period with the aim of the process proceeding with unity, seriousness, and full awareness of the new state of affairs”.
Sunday’s result was the party’s worst parliamentary election result since 1996, with the party receiving just two per cent of the vote nationwide and losing all of its seats in the House, finishing in a lowly 11th place.
The party faced dismal results across the island, winning just 310 votes in the Paphos district and 249 votes in the Kyrenia district, and only receiving a four-figure number of votes in Nicosia, Limassol, and Larnaca.
Health and scientific bodies in Cyprus are working on a joint proposal for a national lung cancer screening programme under the European SOLACE Plus initiative it was announced on Wednesday.
According to the Cyprus Medical Association, the programme supports early diagnosis through low-dose CT scans and forms part of the European Union’s wider cancer prevention strategy.
Cyprus is participating on a pilot basis to develop the scientific and operational framework for a future population screening programme.
A joint meeting between medical organisations has been scheduled for May 28 to discuss cooperation, priorities and implementation plans.
Officials said the project requires close coordination between all bodies involved.
Responsibility for dangerous buildings lies solely with their owners, the Larnaca district local government organisation (EOA) said on Wednesday, stressing that public safety is “not up for negotiation”.
In a statement, the authority urged all building owners, as well as management committees of jointly owned properties where applicable, to recognise that they bear full and exclusive responsibility for the safety, maintenance and structural adequacy of their premises.
It said timely inspection and maintenance of buildings is not simply a matter of prevention, but a legal obligation directly linked to the protection of human life and public safety.
Owners were called on to immediately carry out all necessary repair work, address damage and remove any potential risks.
Larnaca EOA clarified that under current legislation, it not only does not hold responsibility for private buildings, but also does not have the authority to continuously inspect or certify the condition of every privately owned structure.
“The obligation to monitor and ensure the safety of buildings remains exclusively with their owners,” it said.
The authority added that failure to comply with legal provisions constitutes a criminal offence and may result in criminal and administrative penalties, including fines and prison sentences, as provided for under the Streets and Buildings Law.
Three foreign nationals were injured on Wednesday during an immigration raid in Larnaca after they jumped from the balconies of an apartment complex to avoid arrest, with one man now critically intubated in hospital.
The operation took place at the Filanta apartment complex near the old port, where police and immigration officers were conducting inspections in search of suspected illegal immigrants.
According to police, one of the three men jumped from a third-floor balcony and fell to the street below, while the other two fell from the fourth-floor balcony and landed on the apartment building’s balcony below on the second floor.
Emergency services were called to the scene, where upon all three men were taken by ambulance to Larnaca general hospital.
One of the three remains in critical condition with severe head injuries, while the other two individuals, although sustaining serious injuries themselves, are “out of danger”.
Rescue crews and medical personnel assisted in transferring the injured men to hospital.
The immigration service announced that during the raid some 22 illegal residents in various domiciles have been apprehended.
The Filanta apartment complex has previously drawn the attention of local authorities, with reports indicating that the buildings had also been examined by the Larnaca district local government organisation (EOA) due to the fact they were considered potentially dangerous structures.
A similar incident occurred in Limassol in 2024, when a 24-year-old Bangladeshi national Anisur Rahman died after jumping out of a fifth-floor apartment to escape a police raid on illegal immigration.
The man had attempted to escape from the apartment’s window after the police entered the apartment where he was residing.
In the same incident, another one of 11 men Rahmen shared the apartment with jumped from a balcony and fell 7.5 metres down to the balcony of a neighbouring flat. He survived the fall but was treated in serious condition at the Limassol general hospital.
Ombudswoman Maria Stylianou Lottides later initiated an investigation into the death of the 24-year-old.
The investigation aimed to establish whether the police had followed relevant procedures and whether any human right violations occurred but was later put on hold for publicly unknown reasons.
Police have cordoned off the apartment complex as investigations continue into the circumstances surrounding the incident.
An appeal lodged by radio station Kiss FM against a fine imposed for playing adverts unsuitable when driving, was thrown out on Tuesday by the supreme constitutional court.
In the ruling made public on Wednesday, the court said the radio station had challenged the initial decision by the administrative court, which said Kiss FM had broken the law by playing two advertisements – Burger King and Esso – which included the hooting of horns in the audio.
The adverts had been played on May 26, 2017, between 6.42pm and 6.47pm.
Kiss FM had been fined €500 by the administrative court.
The law forbids playing adverts that could mislead or cause panic, especially by mimicking a news bulletin.
The adverts in question were considered dangerous as drivers could be misled into thinking someone was hooting at them, which could place drivers and passengers in danger.
The appellants said this was not the case, as the hooting was a low, background sound.
The appeals court upheld the administrative court’s ruling and charged Kiss FM €4,200 in expenses.
The Cyprus branch office of Turkish opposition political party the CHP has sided with Ozgur Ozel, with the party and Turkish politics at large now engulfed by a crisis after a court annulled the results of Turkey’s largest opposition political party the CHP’s 2023 party conference and thus removed Ozel from office.
Social media accounts run by the office have continued to repost content published by Ozel alongside its own social media publications in favour of him, while the branch’s youth wing’s chairman Emre Dizel attended a rally held by Ozel in Izmir.
Dizel also attached a photograph of himself meeting Ozel at Rustem’s bookshop in central Nicosia to his Eid al-Adha message.
Ozel and a few thousand of his supporters had defied Izmir’s provincial authorities to hold the rally, with riot fences having been erected to prevent the public from accessing the city’s central Republic Square.
When people nonetheless attempted to gather in the square, police deployed water cannons to disperse the crowds, who then gathered in the nearby Gundogdu Square, with Ozel addressing them from atop a bus lent to him by Muharrem Ince, the CHP’s presidential candidate who had then left the party in 2021, before rejoining last year.
Among the attendees were 19 mayors, with the mayor of Izmir itself Cemil Tugay the most notable of the group.
Ozel told the gathered thousands that “the AK Party, Recep Tayyip Erdogan, and the AK Party’s judicial branches acting on his instructions effectively shut down the CHP”.
“If a party is not governed by its members, delegates, and elected officials, if it is governed by whoever the rival party leader wants, then that political party has effectively ceased to exist,” he said.
He then lamented that following last week’s court ruling, “the CHP, which should be a single entity, is currently divided into two at the behest of the palace”.
“One of these is the appointed CHP. The appointed CHP is in the headquarters which was occupied and seized by the police. The other is the elected CHP, and it is here in this square,” he said.
He also stressed that his removal “is not an internal matter for the CHP”, adding that “anyone who sees it this way is mistaken”, and that “this is not a matter between Kemal and me either”, in reference to Kemal Kilicdaroglu, who was reinstated as CHP leader by the court, having led the party between 2010 and 2023.
“This is a matter between the nation and Tayyip. What is being done is to seize control of the CHP’s rallies, to stop a party … with high energy, many young people and women, which is running towards power,” he said.
He added, “let everyone know, and I am speaking to those who voted for the AK Party … the real issue is Recep Tayyip Erdogan’s attempt to imprison Ekrem [Imamoglu], the presidential candidate of the party which is marching towards power”.
“The issue is that Tayyip Erdogan is staging a coup against his rival and his party to avoid relinquishing power. Tayyip Erdogan has found a formula: absolute rule over the CHP, absolute rule over Turkey. We will not allow this,” he said.
He then called on Kilicdaroglu to convene an emergency party conference and “allow two million members to vote” within two weeks after the end of the Eid al-Adha holiday, which began on Wednesday.
“I beg you. Do the right thing, listen to the members, listen to the street. Let us eliminate this problem, let this anger end, and be replaced by enthusiasm. Let us all march towards power together,” he said.
Kilicdaroglu, however, was in no mood to expedite the process while speaking to journalists on Wednesday, saying that he will only convene a party conference when all appeals against last week’s court decision are either dropped or exhausted.
He also criticised Ozel and his supporters for having barricaded themselves into the CHP’s headquarters last Friday, saying, “throughout the history of the CHP, no door has ever been closed to a member of parliament”.
Ozel and his supporters were eventually removed from the CHP’s headquarters by riot police, who firing rubber bullets and tear gas at the protesters.
Quite a few people have been asking me for this, now it's here!
Any feedback is greatly appreciated - see https://github.com/sxyazi/yazi/pull/4005 for more info!
Kestrel is an open-source, privacy-focused chat platform we’ve been building as an alternative to Discord.
The backend is written in Rust and aims to provide the features people expect from modern real-time messaging apps while putting a much bigger emphasis on privacy, security, and clean operational design.
We’re still pretty early in development, so we do not yet have a full client or fully finished backend, but progress has been moving fast recently, especially after bringing on another developer who has been helping a ton.
We’re also building a JavaScript SDK so people can write their own clients, which I think is pretty cool. I also plan to write a Rust SDK later on when the time comes :3
If you’re interested in privacy-focused software or chat platforms, check us out!
Homepage: https://kestrel.chat/
GitHub: https://github.com/kestrelchat
Built it for myself and I find it pretty useful for maintaining large Rust projects.
Minarrow is a columnar data library for Rust.
The pitch: Arrow-shaped data with Python-level ergonomics, Rust-level guarantees, and a sub-2s clean build.
Firstly, I love Apache Arrow. I’m a big fan of the team, the open-source effort, and the innovation that has gone into the project. In roughly 10 years, Arrow has become the backbone of the modern data ecosystem.
However, in Rust, I sometimes find that arrow-rs reflects a few architectural choices that feel more C-like, or at least not quite how I personally want to build Rust data systems. That may simply be a matter of preference, which is fine.
If you’ve worked with arrow-rs, you may have had a similar surprise: everything is dyn Array, you downcast at call sites, and a clean build can take minutes when it ends up as a base dependency. That can be painful when it sits underneath everything else you are building. To be clear, I understand that this design was likely chosen for extensibility, which is one of Arrow’s core strengths.
I got a few months into a large project, pulled it out, started from scratch, and built the version that made sense to me. You may or may not like it, and that’s fine. This post explains the reasoning.
Minarrow keeps concrete types end-to-end, so an IntegerArray<i64> stays concrete through type-agnostic array wrappers, tables, views, streaming containers, and FFI bridges.
For anyone not super familiar with Apache Arrow, these are the foundational typing layers that propagate up into the broader data and memory stack built on top of it.
Why I personally prefer this:
In contrast, this is what arrow-rs does:
Date32Array: A PrimitiveArray of days since UNIX epoch stored as i32
Date32BufferBuilder: Buffer builder for 32-bit date type.
Then you get:
Date32Builder, Date64Array, Date64BufferBuilder, Date64Builder, and so on for each variant.
And after you complete that builder, you still end up with more primitive builders to work through:
pub type Date64Builder = PrimitiveBuilder<Date64Type>; It is still a great library, but personally, I found this onerous. There may also be shortcuts I did not find, but I was deep enough in the documentation and research that I was spending a lot of time working around what I felt could be more straightforward.
In Minarrow, these are consolidated into fewer types, such as DatetimeArray<T>, so one type can serve multiple use cases through standard generics.
Then this is how you build:
use minarrow::{arr_i32, arr_f64, arr_str32, fa, tbl, Print}; let ids = arr_i32![1, 2, 3, 4]; let prices = arr_f64![10.5, 20.0, 15.75, 7.25]; let names = arr_str32!["alice", "bob", "charlie", "dan"]; // Direct typed access assert_eq!(prices.get(0), Some(10.5)); // Build a table let users = tbl!("users", // FieldArray pairs an array with an Arrow metadata field fa!["Id", ids], fa!["Name", names], fa!["Price", prices], ); users.print(); From is implemented liberally, so application call signatures can use forms like impl Into<NumericArrayV>. Compatible variants such as IntegerArray, FloatArray, Array, and view variants all work. This reduces maintenance overhead because there is no need to duplicate traits or methods per function.arrow-rs. Minarrow gives you that directly, with no penalty if you do not enable the feature.num-traits and log, which are tiny. That is good for build speed and for the security-conscious..get(i) accessors.
// Pandas-style zero-copy selection let view = users.c(&["name", "price"]).r(0..2); let owned = view.to_table(); // materialise only when you need to Vec64, so vectorised kernels do not need a realignment pass at every call site. Chunked SuperArray and SuperTable provide the streaming variants.arrow-rs, Polars, or PyArrow, conversion is a single method call behind a feature flag. You can interoperate with those, or with Python via built-in PyO3, FFI, PyCapsule support, and similar routes, at very little penalty.
// Convert at the boundary, stay native internally let arrow = my_array.to_apache_arrow(); // feature: cast_arrow let series = my_array.to_polars(); // feature: cast_polars Sum of 1,000 i64s, Intel Ultra 7 155H:
| Implementation | Time |
|---|---|
Raw Vec<i64> | 85 ns |
Minarrow IntegerArray direct | 88 ns |
Minarrow IntegerArray via enum | 124 ns |
arrow-rs Int64Array struct | 147 ns |
arrow-rs Int64Array dyn | 181 ns |
With SIMD + Rayon, 1 billion integers sum in ~114ms.
TLDR: The difference between arrow-rs and Minarrow performance-wise is very thin. On most practical workloads, this difference evaporates. The bigger gain is the time saved while working with it.
Table (tbl!), Matrix (mat!), and SuperTable (st!), plus null-mask support on the existing arr! / fa! macros.View types.shared_dict feature.Flat columnar only. Nested List / Struct types are not supported. If you need deeply nested schemas, arrow-rs is still the right tool.
In summary: I am getting a lot of value out of it and now build a lot on top of it. I’m hoping other people in the Rust community working on high-performance systems engineering will become aware of it and consider whether it may be useful for their own projects and community use cases.
Like it? Consider leaving a GitHub star.
Don’t like it? If it is a missing feature, I’ll probably implement it quickly.
Questions? Feedback? Happy to discuss in the comments.
Thanks all.
I don't necessarily agree but it is a really good video. I know this is not Rust related but I'm really interested in hearing this sub it's thoughts about it.
Hello Rust community,
For a little while I've been building some tools that make use of iroh and its magical peer-to-peer networking capabilities. This is the first one that I'm ready to share. It's a simple web app for moving files from one device to another. The intended use case is specifically for moving large video files between members of a creative team, but you can use it for whatever you want!
I would love to hear your feedback, both on the tool itself and on my technical writing.
Hey everyone, Just wanted to share a crate I ended up extracting from an application I wrote - csvranger (docs). If anyone could provide feedback on how ergonomic the public API is or the implementation itself, or answers to this issue, I'd highly appreciate it!
csvranger?csvranger is a super tiny crate meant for parsing the outputs of the 10x Genomics suite of data-processing pipelines (cellranger, cellranger-atac, and spaceranger). In case you don't know what I'm talking about, there is an experimental modality in the world of biology research called "single-cell RNA sequencing", which is super cool and provides insights we haven't been able to tease out before. The big company that provides the instruments and reagents to execute these experiments (10x Genomics) also maintains a set of CLI tools to process the raw data (which is fairly massive, and the processing is pretty cool). These tools are the aforementioned cellranger, cellranger-atac, and spaceranger.
Anyways, besides "processed" data, these pipelines output CSVs which provide a summary view of the data, allowing non-technical users to get a sense of their data without diving deep. In legacy versions of cellranger (that is, pre v10), any numerical values in these CSVs were formatted in frankly bad ways (see below for examples), making it exceedingly difficult to parse these files and extract metrics programmatically (say, if you wanted to summarize and analyze many datasets at once).
"96.2%" -> this probably should have been encoded as 0.962"300,000 (50%)" -> not only are there a comma, space, parentheses, and a percent symbol, but there are actually TWO distinct pieces of information shoved into one fieldcsvranger provides functionality to parse legacy data into a TenxCsvValue enum or directly as floats and integers. Additionally, it's compatible with new versions of the pipelines, so you can use it to parse data generated by multiple versions of multiple pipelines.
One question I'm curious about, if you use JavaScript and/or Python: should I provide bindings to those languages (using wasm-bindgen and pyo3)? Most people in the bioinformatics/data-science space use python, so this crate might get way more traction if I provided bindings in at least python. However, I had no personal need for such bindings, so I didn't include them.
Note: I didn't use an LLM to write anything in this crate or post or readme except for the tests, and even for those I wrote a couple myself before telling Claude to basically copy-paste.
Hi r/rust fellows .
Initially I have started this as a hobby project to learn Rust, but very soon it become a real workhourse, with lot's of handy features and great performance.
It's free and OpenSource, safe and modern, have native support of Let's Encrypt with HTTP-01 challenge , rate limiting, auto protocol discovery for H2, Websocket, gRPC and many more.
Recently added log to file, rate limiting by 4xx errors and more.
100% Rust, Async at core, powered by Pingora
Not vibe coded. Not an AI slope.
Hi r/rust,
I just published my first Rust crate: memseal.
It’s a small embedded vault for storing named secrets behind a password. The basic API is intentionally simple:
use memseal::Vault; use std::path::Path; let mut vault = Vault::create(b"my-password-here")?; vault.store("api_key", b"sk-secret-12345")?; // Persist to disk vault.save(Path::new("secrets.seal"))?; // Later: load and retrieve let vault = Vault::load(Path::new("secrets.seal"), b"my-password-here")?; let key = vault.retrieve("api_key")?; Internally, it uses Argon2i for password-based key derivation, HKDF-SHA256 for separate encryption/HMAC subkeys, and XChaCha20-Poly1305 for authenticated encryption. Entry names are HMACed instead of stored in plaintext, and entries are bound to AAD so simple swap/tampering attacks are detected.
A few implementation details:
mlock via memsec;The important caveats:
mseal(2), despite the name;retrieve() currently returns a Vec<u8>, so the caller owns the plaintext and has to handle it carefully;mlock only applies to internal ciphertext buffers, not every secret-related allocation.I’m considering adding a callback-style API in a future release, something like:
vault.access("api_key", |secret| { // use secret as &[u8] })?; The idea would be to make short-lived plaintext access easier without forcing callers to take ownership of a Vec<u8>. I still need to be careful with the exact guarantees, since this would reduce plaintext lifetime at the API boundary but would not magically remove every possible internal or caller-side copy.
The README includes a threat model with what it tries to mitigate and what is explicitly out of scope.
Since this is my first published crate, I’d really appreciate feedback on the API, threat model, crate structure, and documentation. I’m especially interested in places where the security claims should be made more precise or toned down.
Repo: https://github.com/samjanny/memseal
Crate: https://crates.io/crates/memseal
Docs: https://docs.rs/memseal
I've spent the past year building a riichi mahjong game in Rust and Bevy and just put together a devlog about the journey. Most of the technical depth is on the multiplayer side (host-authoritative + lockstep + a rejoin system that I'm quietly proud of), with shorter notes on Bevy, the 3D table, and a few game-engine edge cases.
Happy to answer questions in the comments.
https://github.com/Nonanti/narwhal
Rust TUI database client that also runs as an MCP Server.
After spending days on it, I finally have a working demo. Goodbye to Windows' tedious, bloated, and nonsensical right-click menu!
Thanks to the Rust ecosystem. I love Rust!
I wanted to make a dashboard for Home Assistant on my Kindle, and since I know Slint from a previous project I was curious to see if I could use that. This resulted in a slint-backend for kindles (probably not a lot of them for now, as I only have the one device to test on).
https://github.com/sverrejb/slint-kindle-backend
Edit: I wrote a blog post about the project: https://sverre.me/blog/rust-on-kindle/
Homepage: https://mosaik.rs
Docs: https://docs.mosaik.rs
Repo: https://github.com/flashbots/mosaik
Crate: https://crates.io/crates/mosaik
I've been spending so much time writing code, that I've neglected to acquire programming friends. Currently, I only have 4 programming friends that I rarely talk to. I'm hoping to find some (preferably experienced) Rust programmers. You don't have to be experienced in Rust, just programming experience while being a Rust programmer is enough. But it's not a requirement. I've been programming for almost 18 years, and 4.5 years in Rust, so I'd like to find friends that can actually understand the stuff that I'm talking about.
Lately I've been working on a Bash loadable-builtin FFI library that enables the easy creation of Bash loadable builtins so you can use native Rust in Bash. So if you have C experience as well, that would also be appreciated.
I particularly am interested in FOSS friends. I'm a full-time FOSS developer, so I'm very much interested in finding other people that spend a lot of time writing FOSS.
I just made a simple math calculator in rust , im a beginner in programming and rust is my first language to learn, i don"t use ai cause i want to learn for real , i would appreciate an advice .
i know some git but i don't know how to push the project to github honestly , so i just copy and paste the main file to github
Hello,
Yesterday evening the CI builds of my project suddenly started breaking without any apparent reason.
After looking into it, it turns out that it's because the `nagami` crate has been removed from crates.io.
If you do a Google search for "nagami rust", you can still see links to crates.io and docs.rs in the results, but following the links leads to 404 errors. Weirdly enough I also can't find the original repository on the Internet, but maybe it's private.
A brief search says that you can remove you own crate from crates.io within 72 hours of publishing, but it's definitely been more than 72 hours that it's been in my Cargo.lock.
Since there's been some malware attacks recently, I looked at the local copy of the crate that I still have on my filesystem (it's not super big), and I don't see anything potentially malicious. It also doesn't have a build script.
So what should I do now? I can't find any sort of report on the Internet of why crates have been removed. Should I assume that the crate is gone forever and remove it from my code?
While this crate in particular is not super critical (it does optimization passes on IR code), it's a bit scary that crates you depend on can just suddenly disappear from crates.io.
Hi! Software is never really done, but my compiler finally feels "finished," so I wanted to share it.
Its Edge Python, a sandboxed Python subset that compiles to one around 170KB WASM module and runs anywhere WASM does (browser, Cloudflare Workers, Wasmtime). 13,000 lines of no_std Rust. I always loved Python syntax and wanted to run it everywhere, safely, for the web.
Where in these 90 days the project got a sponsor, who is interested in running more than 7k lines of Python on the client side to save computation and reduce latency (zero codebase changes, just a packages.json file).
Here's a little bit about this compiler:
In CPython, await only works inside async def, so asyncness infects the whole call chain. I moved te scheduler into the VM instead. Coroutines are heap objects with fully snapshotted state, so a suspension point (sleep, receive, fetch) can fire from any function, even a plain def or module top level (all of this based on the wonderfull tokio package).
The VM snapshots the live frame, parks it on the enclosing coroutine, and walks frames inside-out on resume. try/except survives it.
def setup(label): sleep(0) # suspends inside an ordinary def, no async/await return f"ready:{label}" print(setup("x")) # works at module top-level too Structured concurrency (gather, with_timeout, run, cancel) ships as builtins, and the VM never reimplements an event loop: it parks a coro as WaitingHostCall(id) and lets the hosts loop (a browser Promise, Wasmtime) signal readiness.
With no host time hook,sleep() runs on a deterministic virtual clock, so concurrent code is instant and reproducible under test.
One more for this crowd: the bytecode is SSA-versioned with Phi at control-flow joins, which you rarely see in a stack VM this small. A hand-written Pratt parser emits it directly, no AST in between.
Demo: demo.edgepython.com
Docs: edgepython.com
GitHub: github.com/dylan-sutton-chavez/edge-python
Happy to go deep on the suspension mechanism or the inline caches. Feedback welcome.
New dev here, 3-4 years working on a solo game project and nearing the end.
It's been difficult to say the least. I hardly do any work on it daily, if any at all.
Most of my energy for game dev is spent staring at a wall, trying to piece together the overcomplicated logistics of game elements I've set up for the end of the game, trying to figure out how to convey them to match the story and theme.
I took way too long to settle on an ending, and now whenever I think of it, I can't help but feel ashamed and unsatisfied with it. I can't figure out how to make it feel good, and I'm afraid to scrap what I have and go back to brainstorming.
Am I overthinking it, or is this a sign that I need to change it up more?
Have spent the last few months building this game, with a heavy inspiration from RuneScape.
Has a quest line, minigames, clues, PvE, PvP and an online economy for unique rewards.
I feel like it’s very close, but eager to have some fellow game devs play it and critique before I go on and get it into the AppStores.
Thanks in advance :)
So I just finished a shader pack for Godot 4.7+ and one decision I kept coming back to was whether to go single-pass or multi-pass on each shader. I ended up going single-pass on all 7 and I'm curious if others have dealt with this
My reasoning was bandwidth. People talk about GPU performance in terms of arithmetic but the actual bottleneck I kept running into on integrated graphics was texture reads. At 1080p you're sampling 2 million pixels per pass. If you've got 3 passes that's 6 million reads per frame, 60 times a second, before your scene has done anything. On a Steam Deck or Intel UHD that adds up fast.
So here's how each shader ended up:
Lo-Fi Retro, ASCII Cyberpunk, RGB Quantization: 1 sample each. Everything else is just math after that. Basically free on any hardware.
Anime Cel-Shading and Blueprint Sketch: 5 samples. Four neighbors for edge detection plus center. Consistent cost, nothing scary.
Manga Halftone: around 10 samples. Full 3x3 Sobel for the ink outlines plus the halftone dot math. Still one pass though.
Oil Painting (Kuwahara): this is the one I went back and forth on. 4-quadrant Kuwahara at radius 4 is around 81 samples. I kept it single-pass but it's genuinely the expensive one. Dropping brush_radius to 2 brings it down to 25 samples and honestly the difference is hard to notice unless you're looking for it.
The thing I couldn't figure out is whether there's a stylization effect where multi-pass is actually worth it. Bloom and DoF make sense to split because you need the blurred result as input for the next stage. But for pure art style filters I kept thinking: if you can do it in one pass, why wouldn't you?
Has anyone run into a case where multi-pass was the right call for a stylization shader specifically? Not asking about deferred rendering or anything like that, just screen-space art style stuff.
For context, these are part of a shader pack I just released, link in my bio if anyone wants to poke around the source.
What the stance on making a game with unity assets vs making all the assets yourself?
Found this free texture library (https://vfx.crdg.jp/tech/2026/05/26/5972/) while doomscrolling. Some of them are really really good and it comes with the nodes for Substance Designer.
Not mine (I don't even speak JP).
Title speaks for itself. Need some honest advice here, please.
I want to get into game development and I am starting from absolute scratch. If there's a bottom line I am standing on it. I am not looking for pointers or help in getting into it (reason: tonnes of pinned resources in this subreddit and information online), rather, I want to know the kind of mental wear and tear I need to prepare for. I am still in my undergrad and I am thinking about going all in but fear of failure is giving me cold feet. Give me the honest brutal reality so that my naivete does not result in a rude awakening. Thank you so much for sparing your time to respond to my post.
| We still have a lot of work to do but I think the game is much better as a result of the changes we made. [link] [comments] |
I'm already very deep into the development of a horror game with around 17 levels. I've decided to split this game into 4 chapters to get it out quicker, but now I just feel a bit burned out working on and polishing the same few levels in the first chapter.
I had the idea to use all of my mechanics/ui (with a few differences in menu design), and basically make a way shorter 3 level max game (think the length of the average psx horror game on itch) that would take place in the dream of the protagonist before he wakes up and the story starts. It would set up the plot and some of the mystery to the main game, would let me get feedback before I fully commit to the direction of the main game, and I could get practice with a lower stakes project.
I think it would only serve to make the main game stronger narratively, but time wise it may be an issue for me.
Hello,
I just released my first game yesterday and I couldn't be more relieved to finally be able to check that off the bucket list! However, the game I released yesterday is not the game that I set out to design nearly two years ago and was a valuable (but informative!) lesson about biting off more than I can chew, as well as how sometimes the game you set out to design isn't the one that you end up getting. It's far too early for any sort of "postmortem", but I wanted to share about my struggle with my MAIN mechanic and how I finally surrendered to letting the game become what it was supposed to be, rather than forcing a square peg into a round hole.
My original intent was to create a game where you sat in the middle of a 5 x 5 grid and used true spatial audio recognition, with the player's eyes "closed" to be able to determine the position of a ghost in the room. You would then use those audio clues in order to solve some sort of puzzle. I thought it would be cool to have players use their ears to solve a logic puzzle rather than relying on visual cues. At that time, I wasn't sure what the puzzle would be, but the mechanic was enough for me to get started on it.
For reference from here on out, here is the layout of the grid. Space 12 (marked with a "C") is the center of the room where the player sits. The player's "forward" is up, toward the 10. I sure hope this shows up correctly pasted as it is. If it doesn't, imagine a 5x5 grid, 0 in the top left corner, incrementing downward, along the column.
+----+----+----+----+----+
| 0 | 5 | 10 | 15 | 20 |
+----+----+----+----+----+
| 1 | 6 | 11 | 16 | 21 |
+----+----+----+----+----+
| 2 | 7 | C | 17 | 22 |
+----+----+----+----+----+
| 3 | 8 | 13 | 18 | 23 |
+----+----+----+----+----+
| 4 | 9 | 14 | 19 | 24 |
+----+----+----+----+----+
So, I set off to tackle this and ended up learning way more about spatial audio and the way that in-game sound works than I ever though that I would. The game is made in Unity, and I decided to use the Steam Audio plugin that offers HRTF (Head-related transfer function) functionality. At risk of oversimplifying, while Unity's 3D sound are good at differentiating between left and right, Steam Audio helps with front and back. There are other plugins with similar functionality, but I didn't want to waste time overthinking it and just kind of picked that one on a whim.
The reality of this was that, despite best intentions, it was still extremely difficult, if not impossible, to differentiate between a sound that was made in the far corner of the grid and one that was made in an adjacent space. Imagine spaces 0, 1, 5, and 6 on the reference grid (keeping in mind that the player/audio listener is on square "C"). Initial feedback from early players was all frustration and "I have no idea what to do"s, which was a bit disheartening, but people did seem to at least the general idea of the thing. And to be completely honest, even when I would test the system myself, I would often make mistakes that could best be described as unfair and inconsistent.
I then began experimenting with different audio profiles, some of which are still in the game. For example, sounds that were made on the outer perimeter were given reverb and made to sound more lofty and distant, while sounds made in the inner ring of squares were more dry and present. This helped to differentiate distance, but the issue was still present with adjacent sounds within their own respective rings. Still, being able to tell the difference between grid space 0 (see diagram) and grid spaces 1 or 5 next to it (and still in the same audio profile ring) was virtually impossible. Imagine if the ghost started on square 0, and then immediately moved one square adjacent and left a clue sound. Judging the direction of whether they moved downward to space 1 or to the right to space 5 was, despite the small degree difference in placement, still too muddy to consistently make any sense of. The question was: "Could a player, with a spatial audio plugin, differentiate between a sound made at 290 degrees and one made at 340 degrees?" The answer was a resounding, "no...no they could not".
My next approach to provide some sort of directional clarity was to introduce audio landmarks. You'll begin to see a theme here: my tried and true approach to this was to keep slapping new systems into this game and mechanic until it eventually turned into the game that is today. Anyway, I thought that if I put distinct sound-making objects on the perimeter of the room, it could give some sort of directional awareness. So, I added some objects to the corner squares and the edge-middle squares. Though these objects have changed MANY times for different reasons, mainly clarity and uniqueness, I settled on: a Piano, the room's doorknob, a gramophone, a music box, a stool, some chimes, some dinnerware, and a clock radio.
This helped immediately, and I realized that I was heading in the right direction with this sort of approach. However, the dilemma was that the more I edged into this sort of strategy, the further away from my original vision I strayed. Every unique landmark I gave the player reduced their reliance on pure spatial audio, which was supposed to be the main gimmick of the game.
So, with the outer perimeter of squares figured out, that still left the inner square ring, which presented the same issues as the outer ring. What was my solution? More landmarks, of course! Squeaky floorboards, broken glass, spirit bells, you name it. Coming up with new relatively believable (in an exorcism context) objects for the floor squares to make took much longer than I'd like to admit. I realized I'd crossed the Rubicon at this point and was going all in on this approach, but how many different sounds should I put on the floor?
That introduced its own internal tug-of-war. On one hand, the more sounds that you repeat (for example, 2-4 of the squares) while perhaps in different areas of the room, such as squares 3, 5, 19, and 21, still could leave room for potential confusion. Was that the squeaky floorboard in front of me, or the one behind me? I had to keep in mind during this process that not all headphones are created equally, and hearing a "squeaky floorboard" sound, while knowing there are four squeaky floorboards in the room, invites confusion. And, playtesting confirmed this.
On the other hand, the more I get toward making every single square in the room have its own unique sound, it drastically increases cognitive load on the player. In my game, there are references, in that you can both walk around inside of/play with the room, and there is a literal reference sheet on the floor for the you visuals out there. So, where do you find the balance between re-used, repeatable square sounds and new, distinct, separate sounds?
I'm not going to pretend I had hundreds of testers hammering away over rigorous months of an organized playtesting gauntlet, but I got some good feedback from a small but decent handful of people, and while none of the particular issues were consistent (some said there were not enough sounds to make deductions from, some said there were way too many sounds...), the "I'm confused" message was.
What I finally settled on was a compromise. The original objects on the perimeter of the room are still distinct and unique, providing the player with an overall general area map of the ghost as she passes by them, and the inner ring has some mirrored repeating sounds from a decent variety to choose from. It's important to note that the ghost ALWAYS starts on a corner square, so she grounds herself using one of the perimeter sounds immediately at the start of each round.
Ultimately, the game I set out to make was not fully realized, but its cousin was. Rather than a pure spatial audio deduction based game, we now have an audio-landmark deduction game where you use each sound to track the spirit's movement. Now, rather than spatial audio being the main way that you track the ghost, it is now more atmospheric support, while the puzzle in the game itself could truthfully be played and completed with 2D sound if you are highly attentive and don't rely on directionality cues at all.
One final caution I'll give: if you ever find yourself in a situation where your game evolves into its own thing, make sure your audience and testers are aware of the mechanical shift. This should seem obvious, but it wasn't to me. At least, I totally let it slip past myself without considering it. Each change I made, and each baby step I took away from spatial audio and toward pure audio deduction, took place over the matter of months and very slowly nudged the line. My mistake was not making it clear enough that I was leaning away from the "spatial" part of spatial audio, so users were going in with the (understandable) assumption that they were trying to use their focus on directional and distance-based deduction rather than just listening to the sounds themselves. So lesson is: If you move the goalposts, make sure you update the stated descriptions and goals of the game itself!
It might seem like I gave up too quickly on spatial audio, here, which I cannot say with certainly isn't true, but I left out months worth of alternate approaches that I tried along the way and ultimately scrapped. I really tried to tweak the profiles even further. I made her breath more noticeable when she was facing you, to give directional assistance. I made a white noise drone that raised and lowered in both volume and pitch in hopes of some sort of sonar to, again, help with distance. Some of these tries remain in game, as subtle as they may be, but none of them helped with my original goal. The perfect answer is probably out there, but it's beyond my current capabilities, and I also had to keep in mind that not every (or even the average) player is going to have some sort of top of the line gamer headphones that can take advantage of the technology.
Maybe someday I'll try my hand at spatial audio as a core mechanic, and I truly do feel like I gave it the best of my current skill abilities and was soundly defeated in the form of frustrated players and testers, but I'm still pretty proud of what the game ended up becoming and what ended up emerging from the block of marble. Not a worse game, but a different one, for sure. Of course, if you want to check it out and see how the audio turned out, the game is called "Peek". There's a free demo, too.
Thanks for reading!
My first game project is very niche, not a common genre, not using the latest and greatest Chris Zukowski advice, it is simply something cute and fun I wanted to make and share with others. I enjoy making it and I make short videos about it to find my tiny niche audience.
Few days ago, I got a DM on Instagram, which does not happen often and it is mostly 3D artists trying to sell their services. This time it was a girl studying game development. She said she was inspired to see another girl developer and she drew a fanart of the main character of my game. I can not explain the joy and shock I got from that message as in my development journey I am fumbling through my first project, learning things on the fly and pretty much sewing my parachute as I am jumping out of a plane like it is usual for game dev.
Thinking back to it, I also got into game development inspired by big games like Stardew Valley but mostly small (at the time) creators of Night Stones, Isle Goblin, Resttore, Nectar and others. I saw people putting in the effort and I wanted to take a chance at it, now I had a new dev looking up to my progress and enjoying my game. I know there are a lot of wish lists and likes post but I got a fanart of my character from a person genuinely inspired by my game and that really feels nice. So if you want to and if you can, don't hold back on sharing your progress because it may make someone feel inspired and creative as they make their own journey.
Can't share pictures here but it is super mega cute fanart, trust.
Hi everyone, I've spent some time recently learning how Navier-Stokes fluid simulations work and decided to create a blog post with explanations to help others
Hey guys, i’m wondering if anyone has any suggestions for tools to use in Unity that are underrated or absolute must haves that will aid in the development process. These can be tools that are already in unity and just need to be imported, tools found on the asset store, or even tools outside of unity that can help devs either create assets, build concepts, or whatever. drop your suggestions!!
Sharing a small working guide, tested in practice.
First, it is definitely necessary to prepare the maximally quality trailer and a press-kit folder in Google Drive. In the folder we included:
Announcement trailer
Banners
Logos
Screenshots
Contacts.txt
Description.txt
Factsheet.txt
Features.txt
Next, it is needed to write to the mail [ryanm@ign.com](mailto:ryanm@ign.com) We wrote at 15:00 UTC. They have morning just at this time, and the letter will be on top when the editor sees it.
Subject of the letter: Exclusive Pitch: Title — World Premiere Trailer (Game Genre)
On top is a short greeting, then a gif (it is important that it weighs little). Next goes the proposal, links, and the screenshot the most juicy.
The answer followed in 7 hours, they asked when to publish, gave a date. On this everything. The trailer came out at the right time.
Guys, if you’ve ever gotten featured on IGN, feel free to share your methods for the benefit of others.
I was looking in the subreddit and found a ton of resources for sound effect / SFX packs (freesound.org, etc.) but I'm looking to build my library and haven't really found much.
Fab and GameDevMarket so far? No need for custom just yet, though I've heard Fiverr is popular, with mixed results
Thanks in advance!
I feel like this exact phenomena has become rampant in gamedev communities specifically. Creating a whole post just to secretly promote your game is reasonable, we all do that, it's just part of being an indie dev. But I have seen a huge uptick in AI generated posts. Clearly AI ones. And I know that identifying something as AI generated or not is a topic of it's own, but sometimes it's so obvious. The sets of three's everywhere, the random bolding of key buzzwords in the post, the obvious sayings that no human would ever actually type out.
And then they get called out on it, and it's the same script. They first claim that they only used AI to translate. But then people investigate their past comments etc, and turns out, they speak perfectly fluid English, and it was a bunch of bs. Then an hour later they delete the post because the comment about it being a chatgpt post becomes the top upvoted.
I'm clearly high cortisol right now and I'm sure it is showing in the complainy nature of this post. But I just view this as the lowest form of post. You are not only gonna fabricate a whole post as an excuse to promote your game (which on it's own is okay), but then you aren't even gonna put in the effort to do it yourself?
I want to propose a rule change. I think we should require posters to disclose if they used AI in making the post, even if "just for translation". It might not stop the AI slop, but it will expedite the first step in being called out, and will give an excuse to report posts if they are clearly AI generated but don't disclose it. If they really just used AI for translation, they should have no problem getting ahead of the accusations and disclosing it.
Hi,
I'm working on a Tactical RPG, running on Unity. The architecture is the following:
The View mostly receives events and enqueues commands. All the View elements share a ViewModel, which has an internal Message System.
I'm currently working on the Camera. I want it to center on the selected unit, and to include the target if an attack is playing.
My approach would be to raise an event when an unit is selected, raise an event when an unit is targeted, etc.
But I'm afraid that this ends up in an explosion of small EventData classes, like UnitSelectedEventData, UnitTargetedEventData, UnitDeselectedEventData, UnitUntargetedEventData, etc.
Sure, this would happen in the least abstract layer so I guess it's not that bad, but I'm wondering what would be a more conventional approach to this?
Is this a problem to have that many small, and sometimes almost similar, event classes?
Thank you!
Players that engage in subreddits, forums, youtube channels account for a small portion of the playerbase and are less likely to be casual players. This may skew the perception of what changes the playerbase wants. How can game developers reach the silent majority and get their feedback?
Heyo, I wanted to share about an event I had the opportunity to participate in 2 years ago and which was honestly an amazing experience. The rabbit is a fully-funded, one-month residency for indie game developers, it's in germany but it's open to international teams/individuals. It's happening once again this year, the applications are opened until June 7th but the event itself happens over a month from October 26 to November 20.
https://coconat-space.com/the-rabbit/
- It's free: Travel, food and accomodation are paid for
- You get paid €500 to participate
- You get to meet cool devs from germany and all over the world
- You can apply as a team or as an individual
- You basically work on your game while mingling with other devs and participating in various activities, including games ground a gamedev conference in Berlin
- I think the past couple of years there were around 100 applications for 6 teams selected, so the chances of getting accepted are not negligible
- There is no catch, the event itself is sponsored by the city of Berlin
Feel free to ask if you have any questions
Coming from web software development field and electrical engineering educational background, I'm trying to understand how starting a solo game development business compares with starting a business in the mentioned fields in terms of risk and reward.
I'd say that in context of job market and freelancing/contracting opportunities it's a no brainer, as there is simply way more jobs in EE and SWD, which are stable, pay more and don't require wearing multiple hats as it's usually the case in game development (programming, marketing, visual art, game design, physics, networking, QA, etc.). However, what interests me is comparison between these fields in a sense of development of a product as a solo/one-man band, therefore starting a business.
First thing that comes to my mind is that solo/one-man band game development has long time of development in order to deliver a fun and polished game product, therefore time-to-market is long. It can be from 3-6 months to a year for development of a small game before you see your first $ of income. But, what about in a case of SWD (for instance SaaS development) or EE (for instance electronics device development), or ecommerce (for instance selling curated product junk from Alibaba)? It can take from 1 to 2 years, before you see your first $ of income in terms of consistent business. Plus you normally need upfront capital - especially for physical products - and deal with manufacturing, physical storage, operations, hang on meetings, take care of logistics, certifications, with liability and tons of other nightmare.
So I wonder, is solo/one-man band game development business really that bad endeavor, where you only need a PC, internet connection, time and patience?
Or, where is the trick, otherwise more game developers would be running their own game development businesses, and not just treat this activity as a hobby?
Hey guys,
I’ve been developing a social deduction game for the past two years, and last week I finally took a deep breath and hit the "Publish Demo" button on Steam.
Going into it, I had about 580 wishlists, no publisher, and literally zero budget. But I didn't just shadow-drop it and pray. I tried to do things right: I spent weeks building a targeted list of 70 media outlets/influencers with an exclusive trailer, and I personalized emails to 400 streamers who actively played similar games recently. To be completely honest, it was a ghost town. Barely anyone replied or shared it, which was a huge reality check. I don't regret trying, but man, it felt lonely.
So when I opened Steamworks on day one and saw over 1,000 downloads, I honestly couldn't believe it. I went from feeling defeated to thinking "holy shit, it's actually happening."
Then I saw the next stat, and it completely killed the mood: Median time played: 15 minutes. I’m not gonna lie, it hurt like hell. 15 minutes is roughly the time of a single match. I spent the whole evening wondering if the game was just garbage or if I missed my target audience entirely. But after digging into the Steam graph, the data actually started to make sense, and it’s a super weird problem to have.
Turns out, 34% of the people who launch the game stay for over an hour, and some groups are literally binging it for 2 or 3 hours straight. Steam even flags my retention there as "above average".
So why the 15-minute median? Because my game is designed for groups of 4 to 15 players, and right now there’s no auto-matchmaking. A solo player downloads it because the capsule art looks cool, opens it, reads the rulebook in an empty lobby, realizes they need a whole squad to actually play, and hits Alt+F4.
On one hand, it's incredible to see that the game actually hooks people for hours when they play in groups. On the other hand, it sucks to frustrate solo players who just wanted to test the game.
To fix this, I'm currently rushing to build a basic Solo Sandbox Mode. It won't replace the real multiplayer experience, but at least a solo player will be able to run around the map, test out our werewolf role/mechanics, and see if they like the vibe before trying to convince their friends to download it.
Has anyone else faced this trap with a multiplayer or party game? How do you deal with solo players when your game literally requires a crowd to function?
Anyway, just wanted to share the emotional rollercoaster. If you have any advice, I'm all ears.
EDIT* : To provide context about the game, it's a social deduction game where proximity voice chat is at the core of the experience.
EDIT** : I chose to create a player Discord instead of servers or automatic matchmaking in order to help players more easily find matches in the long term, as it allows them to see game sessions starting without being connected to the game.
Hey everyone! Following up on my previous posts about Japanese localization, I wanted to share a few more specific "AI translation traps" that completely flip the mood of a game—often turning a serious moment into a comedy.
If you are using basic AI tools to translate your game into Japanese, watch out for these context-blind translations:
The "Chest" Trap (Survival / RPG)
When an English game says "Open the chest," AI often translates "chest" as 胸 (Mune - human anatomy/breast) instead of 宝箱 (Takarabako - treasure box). I've played a survival game where the UI literally told me to "Open the human breast" to get wood and stones.
The "Miss" / "Missed" Blunder (RPG / Action)
In combat, when an attack fails, the game says "Miss!". AI loves to translate this as お嬢様 (Ojosama - young lady / princess) or 恋しい (Koishii - to miss someone you love). Seeing "Young Lady!" pop up every time an arrow misses an enemy completely breaks the combat immersion.
The "Leave" Nightmare (Horror / Escape)
In a horror game, when you want to give the player the option to "Leave the room" or "Leave the game," AI often translates it as 残す (Nokosu - to leave something behind / abandon). To a Japanese player, it sounds like the menu is asking them to "Abandon the game forever."
Context is everything. If your game relies heavily on immersion, items, or atmosphere, please make sure a native speaker actually double-checks how these words are being used in-game!
Have you guys encountered any weird translation bugs in your own playtests, or have any favorite localization fails from other games? Let’s share!
I updated to the latest Go and used its latest features, and I got an err:
..\..\mock\ability_handlers.go:37:16: new(caster.CurrentAtk) requires Go 1.26 or later (-lang was set to go1.25; check go.mod)
Isn't that awesome?
| Apache Fory is a blazingly fast multi-language serialization framework for idiomatic domain objects, schema IDL, and cross-language data exchange. Key Features for 1.0 release:
[link] [comments] |
I've worked on a lot of React SPAs with either Node or Go backends. For E2E testing I have mostly used Playwright or Jest + Puppeteer.
I was looking into Playwright for Go but figured I'd ask if there are any other recommendations.
The System Under Test (SUT) is a Go server + Postgres DB managed using `pgtestdb`. Some other dependencies are mocked, for example I have a development OIDC sever written using `zitadel/oidc` packages that I can use to test the login flow.
---
A related question is: would you use a different tool if you were testing something other than a JavaScript framework + server? For example, if you use HTMX or Datastar and send HTML responses from the server instead of JSON.
I don't think it would matter much form the browser's perspective because you need JavaScript either way for user interaction. You just need less with the "hypermedia" approach.
| Hey everyone, I wrote a post about something I see trip people up a lot: naive HTTP retries. Usually, we just throw a for loop and a time.Sleep() at a failing API call and move on. But that standard approach secretly causes a lot of headaches in Go. It silently consumes the request body so retries are empty, ignores context cancellation, and hardcoded sleeps just create thundering herds that hammer recovering servers. I walked through fixing these step-by-step (exponential backoff, full jitter, mocked sleepers) so we can understand what battle-tested libraries like go-retryablehttp are actually doing under the hood. Would love to hear your thoughts or if I missed any edge cases! [link] [comments] |
I am currently working on an API client for Splunk which takes x-www-form-urlencoded data. I like having the request data as structs, because it feels cleaner and can then be easily marshaled to JSON. Unfortunately there does not seem to be a function to easily convert any struct to form data.
My first idea was to create a function that takes any struct and then uses reflection to create the form with url.Values{}. However, that seems kinda pointless since I have to create the struct anyway and can set the parameters manually instead. Structs in this case feel useless, but I would still like to use them for clarity so it is easy to look up which fields are in every request.
What are your opinions on this? Should I just forego structs altogether and just set the values, or is there another way using structs that is not needlessly complicated?
The main goal is to make it easy to share data between a Go application and an application written in another language (one of the 13 languages that Skir supports). Even if your whole stack is in Go, you might still benefit from Skir's backward-compatible serialization capabilities, or the end-to-end type safety that SkirRPC brings to your internal APIs.
Skir: https://skir.build/
Skir for Go: https://skir.build/docs/go
I would love to hear what the MoonBit community thinks of it!